@coolon/angular-ui-powerups 16.1.0-aplpha.12 → 16.1.0-aplpha.121
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/form.scss +74 -27
- package/assets/icons.scss +1 -0
- package/assets/table.scss +47 -27
- package/assets/tabs.scss +2 -6
- package/esm2022/lib/animations/slide-animations.mjs +6 -1
- 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 +33 -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 +21 -9
- 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 +69 -27
- 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 +13 -3
- 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 +3 -3
- 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 +19 -1
- 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 +1 -1
- 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 +1 -1
- 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 -4
- 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 +2 -2
- package/esm2022/lib/directives/resize-observer.directive.mjs +40 -0
- package/esm2022/lib/interaction/activity.mjs +3 -4
- 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 +2 -1
- 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 +2 -1
- 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-component.mjs +7 -7
- package/esm2022/lib/place/place-definition.mjs +3 -3
- package/esm2022/lib/place/place-history.mjs +2 -2
- package/esm2022/lib/place/place-router.mjs +20 -18
- 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 +1403 -566
- 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 +15 -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 +3 -1
- 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 +27 -8
- 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 +3 -2
- 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 +14 -6
- 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 +1 -1
- 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 +1 -1
- 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 +3 -2
- package/lib/directives/exports.d.ts +1 -0
- package/lib/directives/resize-observer.directive.d.ts +16 -0
- package/lib/interaction/activity.d.ts +2 -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 +1 -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-component.d.ts +4 -4
- package/lib/place/place-router.d.ts +4 -0
- 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 { 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$
|
|
61
|
+
import * as i1$5 from '@angular/router';
|
|
62
62
|
import { ActivatedRouteSnapshot, UrlSegment, NavigationStart, NavigationEnd, NavigationError, NavigationCancel, RouterModule } from '@angular/router';
|
|
63
|
-
import { Memoize as Memoize$1 } from 'typescript-memoize';
|
|
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,33 @@ 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.cdr.markForCheck());
|
|
284
|
+
}
|
|
285
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DisposableComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
269
286
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: DisposableComponent, usesInheritance: true, ngImport: i0 });
|
|
270
287
|
}
|
|
271
288
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DisposableComponent, decorators: [{
|
|
272
289
|
type: Directive
|
|
273
|
-
}] });
|
|
290
|
+
}], ctorParameters: function () { return []; } });
|
|
274
291
|
|
|
275
292
|
let FocusBinding = class FocusBinding extends GarbageCollector {
|
|
276
293
|
focusTargetElement;
|
|
@@ -466,32 +483,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
466
483
|
}]
|
|
467
484
|
}], ctorParameters: function () { return []; } });
|
|
468
485
|
|
|
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
486
|
class HighlightPipe extends GarbageCollector {
|
|
496
487
|
sanitizer;
|
|
497
488
|
highlightContext;
|
|
@@ -736,42 +727,42 @@ var CommandFace;
|
|
|
736
727
|
}
|
|
737
728
|
}
|
|
738
729
|
__decorate([
|
|
739
|
-
|
|
730
|
+
MemoizeGet(),
|
|
740
731
|
__metadata("design:type", Object),
|
|
741
732
|
__metadata("design:paramtypes", [])
|
|
742
733
|
], Adapter.prototype, "text", null);
|
|
743
734
|
__decorate([
|
|
744
|
-
|
|
735
|
+
MemoizeGet(),
|
|
745
736
|
__metadata("design:type", Object),
|
|
746
737
|
__metadata("design:paramtypes", [])
|
|
747
738
|
], Adapter.prototype, "icon", null);
|
|
748
739
|
__decorate([
|
|
749
|
-
|
|
740
|
+
MemoizeGet(),
|
|
750
741
|
__metadata("design:type", Object),
|
|
751
742
|
__metadata("design:paramtypes", [])
|
|
752
743
|
], Adapter.prototype, "iconPosition", null);
|
|
753
744
|
__decorate([
|
|
754
|
-
|
|
745
|
+
MemoizeGet(),
|
|
755
746
|
__metadata("design:type", Object),
|
|
756
747
|
__metadata("design:paramtypes", [])
|
|
757
748
|
], Adapter.prototype, "tooltip", null);
|
|
758
749
|
__decorate([
|
|
759
|
-
|
|
750
|
+
MemoizeGet(),
|
|
760
751
|
__metadata("design:type", Boolean),
|
|
761
752
|
__metadata("design:paramtypes", [])
|
|
762
753
|
], Adapter.prototype, "iconPositionStart", null);
|
|
763
754
|
__decorate([
|
|
764
|
-
|
|
755
|
+
MemoizeGet(),
|
|
765
756
|
__metadata("design:type", Boolean),
|
|
766
757
|
__metadata("design:paramtypes", [])
|
|
767
758
|
], Adapter.prototype, "iconPositionEnd", null);
|
|
768
759
|
__decorate([
|
|
769
|
-
|
|
760
|
+
MemoizeGet(),
|
|
770
761
|
__metadata("design:type", String),
|
|
771
762
|
__metadata("design:paramtypes", [])
|
|
772
763
|
], Adapter.prototype, "color", null);
|
|
773
764
|
__decorate([
|
|
774
|
-
|
|
765
|
+
MemoizeGet(),
|
|
775
766
|
__metadata("design:type", String),
|
|
776
767
|
__metadata("design:paramtypes", [])
|
|
777
768
|
], Adapter.prototype, "style", null);
|
|
@@ -842,6 +833,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
842
833
|
args: ["class.disable-scroll"]
|
|
843
834
|
}] } });
|
|
844
835
|
|
|
836
|
+
/* eslint-disable @angular-eslint/no-host-metadata-property */
|
|
845
837
|
class IconComponent {
|
|
846
838
|
_icon;
|
|
847
839
|
prefix;
|
|
@@ -873,11 +865,13 @@ class IconComponent {
|
|
|
873
865
|
return `fa-${this.suffix}`;
|
|
874
866
|
}
|
|
875
867
|
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
|
|
868
|
+
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
869
|
}
|
|
878
870
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IconComponent, decorators: [{
|
|
879
871
|
type: Component,
|
|
880
|
-
args: [{ selector: 'aup-icon',
|
|
872
|
+
args: [{ selector: 'aup-icon', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
873
|
+
class: "mat-icon" // this ensures angular form styles that target mat icon also work with us
|
|
874
|
+
}, 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
875
|
}], propDecorators: { icon: [{
|
|
882
876
|
type: Input
|
|
883
877
|
}, {
|
|
@@ -908,6 +902,7 @@ class CommandFaceComponent extends DisposableComponent {
|
|
|
908
902
|
// tslint:disable-next-line:no-input-rename
|
|
909
903
|
get _rawFaces() { return this.#_rawFaces_accessor_storage; }
|
|
910
904
|
set _rawFaces(value) { this.#_rawFaces_accessor_storage = value; }
|
|
905
|
+
hasTextAndLeadingIcon$;
|
|
911
906
|
set face(face) {
|
|
912
907
|
this.faces$.value = [face];
|
|
913
908
|
}
|
|
@@ -927,6 +922,7 @@ class CommandFaceComponent extends DisposableComponent {
|
|
|
927
922
|
const activeFace = this.faceAdapters.first();
|
|
928
923
|
this.activeIcon = activeFace.pluck("icon");
|
|
929
924
|
this.activeColor = activeFace.pluck("color");
|
|
925
|
+
this.hasTextAndLeadingIcon$ = valueOf.all(this.activeIcon.isNotNil(), activeFace.pluckString('text').isNotBlank(), activeFace.pluck("iconPosition").doesNotEqual(CommandFace.Position.END)).areTruthy();
|
|
930
926
|
}
|
|
931
927
|
shouldIncludeIcon(face) {
|
|
932
928
|
return (!this.ignoreIcon && face.icon) || this.includeMissingIconInLayout;
|
|
@@ -940,8 +936,11 @@ class CommandFaceComponent extends DisposableComponent {
|
|
|
940
936
|
get color() {
|
|
941
937
|
return this.activeColor.value;
|
|
942
938
|
}
|
|
939
|
+
get hasTextAndIcon() {
|
|
940
|
+
return this.hasTextAndLeadingIcon$.value;
|
|
941
|
+
}
|
|
943
942
|
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 });
|
|
943
|
+
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
944
|
}
|
|
946
945
|
__decorate([
|
|
947
946
|
StoreInListModel("faces$"),
|
|
@@ -949,7 +948,7 @@ __decorate([
|
|
|
949
948
|
], CommandFaceComponent.prototype, "_rawFaces", null);
|
|
950
949
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CommandFaceComponent, decorators: [{
|
|
951
950
|
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"] }]
|
|
951
|
+
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
952
|
}], ctorParameters: function () { return []; }, propDecorators: { _rawFaces: [{
|
|
954
953
|
type: Input,
|
|
955
954
|
args: ['faces']
|
|
@@ -967,6 +966,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
967
966
|
}], color: [{
|
|
968
967
|
type: HostBinding,
|
|
969
968
|
args: ['attr.color']
|
|
969
|
+
}], hasTextAndIcon: [{
|
|
970
|
+
type: HostBinding,
|
|
971
|
+
args: ['class.has-text-and-leading-icon']
|
|
970
972
|
}] } });
|
|
971
973
|
|
|
972
974
|
/**
|
|
@@ -1070,11 +1072,11 @@ class CardContainerComponent extends AbstractCardContainerComponent {
|
|
|
1070
1072
|
}
|
|
1071
1073
|
}
|
|
1072
1074
|
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
|
|
1075
|
+
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
1076
|
}
|
|
1075
1077
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CardContainerComponent, decorators: [{
|
|
1076
1078
|
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
|
|
1079
|
+
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
1080
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { columnCount: [{
|
|
1079
1081
|
type: Input
|
|
1080
1082
|
}], enableScroll: [{
|
|
@@ -1150,14 +1152,24 @@ class CommandComponent extends PopupAwareComponent {
|
|
|
1150
1152
|
activeFace$;
|
|
1151
1153
|
iconOnly$;
|
|
1152
1154
|
tooltip$;
|
|
1155
|
+
visible$;
|
|
1153
1156
|
constructor(element, parent) {
|
|
1154
1157
|
super(element, parent);
|
|
1155
1158
|
const { chain, switchOn } = Dsl.disposeWith(this);
|
|
1156
|
-
this.faces$ = chain(this.command.busy$)
|
|
1159
|
+
this.faces$ = chain(this.command.busy$)
|
|
1160
|
+
.mapToList(busy => {
|
|
1157
1161
|
return busy ?
|
|
1158
|
-
[this.busyFace$.value, this.face$.value] :
|
|
1159
|
-
[this.face$.value, this.busyFace$.value];
|
|
1160
|
-
}, {
|
|
1162
|
+
[this.busyFace$.value ?? this.command.busyFace$.value, this.face$.value ?? this.command.defaultFace$.value] :
|
|
1163
|
+
[this.face$.value ?? this.command.defaultFace$.value, this.busyFace$.value ?? this.command.busyFace$.value];
|
|
1164
|
+
}, {
|
|
1165
|
+
allowNil: true,
|
|
1166
|
+
dependsOn: [
|
|
1167
|
+
this.face$,
|
|
1168
|
+
this.busyFace$,
|
|
1169
|
+
this.command.defaultFace$,
|
|
1170
|
+
this.command.busyFace$
|
|
1171
|
+
]
|
|
1172
|
+
})
|
|
1161
1173
|
.rejectNil();
|
|
1162
1174
|
this.activeFace$ = this.faces$.first();
|
|
1163
1175
|
this.buttonStyle$ = chain(this.activeFace$).map(f => CommandFace.getStyleOf(f));
|
|
@@ -1166,18 +1178,19 @@ class CommandComponent extends PopupAwareComponent {
|
|
|
1166
1178
|
this.iconOnly$ = this.faces$.select(face => {
|
|
1167
1179
|
return isEmpty(CommandFace.getTextOf(face)) && !isEmpty(CommandFace.getIconOf(face));
|
|
1168
1180
|
}).count().equals(this.faces$.count());
|
|
1181
|
+
this.visible$ = chain(this.command.visible$);
|
|
1182
|
+
}
|
|
1183
|
+
get cssDisplayProperty() {
|
|
1184
|
+
return this.visible$.value ? undefined : 'none';
|
|
1169
1185
|
}
|
|
1170
1186
|
isActive(face) {
|
|
1171
1187
|
return this.activeFace$.query().equals(face);
|
|
1172
1188
|
}
|
|
1173
|
-
getFace() {
|
|
1174
|
-
return this.face;
|
|
1175
|
-
}
|
|
1176
1189
|
requestFocus() {
|
|
1177
1190
|
this.button.focus();
|
|
1178
1191
|
}
|
|
1179
1192
|
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"] }] });
|
|
1193
|
+
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
1194
|
}
|
|
1182
1195
|
__decorate([
|
|
1183
1196
|
Proxify(),
|
|
@@ -1225,6 +1238,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1225
1238
|
}], button: [{
|
|
1226
1239
|
type: ViewChild,
|
|
1227
1240
|
args: [MatButton]
|
|
1241
|
+
}], cssDisplayProperty: [{
|
|
1242
|
+
type: HostBinding,
|
|
1243
|
+
args: ["style.display"]
|
|
1228
1244
|
}] } });
|
|
1229
1245
|
|
|
1230
1246
|
/**
|
|
@@ -1252,12 +1268,12 @@ class AbstractPopupMenuComponent extends PopupAwareComponent {
|
|
|
1252
1268
|
xPosition = 'after';
|
|
1253
1269
|
yPosition = 'below';
|
|
1254
1270
|
triggers;
|
|
1255
|
-
#enabled_accessor_storage;
|
|
1256
|
-
get enabled() { return this.#enabled_accessor_storage; }
|
|
1257
|
-
set enabled(value) { this.#enabled_accessor_storage = value; }
|
|
1258
1271
|
#enabled$_accessor_storage = proxify((ValueModel));
|
|
1259
1272
|
get enabled$() { return this.#enabled$_accessor_storage; }
|
|
1260
1273
|
set enabled$(value) { this.#enabled$_accessor_storage = value; }
|
|
1274
|
+
#enabled_accessor_storage = true;
|
|
1275
|
+
get enabled() { return this.#enabled_accessor_storage; }
|
|
1276
|
+
set enabled(value) { this.#enabled_accessor_storage = value; }
|
|
1261
1277
|
children;
|
|
1262
1278
|
faces$;
|
|
1263
1279
|
constructor(element, parent) {
|
|
@@ -1299,16 +1315,16 @@ class AbstractPopupMenuComponent extends PopupAwareComponent {
|
|
|
1299
1315
|
return this.faceAdapter.face;
|
|
1300
1316
|
}
|
|
1301
1317
|
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
|
|
1318
|
+
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
1319
|
}
|
|
1304
|
-
__decorate([
|
|
1305
|
-
StoreInValueModel(),
|
|
1306
|
-
__metadata("design:type", Boolean)
|
|
1307
|
-
], AbstractPopupMenuComponent.prototype, "enabled", null);
|
|
1308
1320
|
__decorate([
|
|
1309
1321
|
Proxify(),
|
|
1310
1322
|
__metadata("design:type", Object)
|
|
1311
1323
|
], AbstractPopupMenuComponent.prototype, "enabled$", null);
|
|
1324
|
+
__decorate([
|
|
1325
|
+
StoreInValueModel(),
|
|
1326
|
+
__metadata("design:type", Object)
|
|
1327
|
+
], AbstractPopupMenuComponent.prototype, "enabled", null);
|
|
1312
1328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractPopupMenuComponent, decorators: [{
|
|
1313
1329
|
type: Component,
|
|
1314
1330
|
args: [{ selector: 'aup-abstract-popup-menu', template: '' }]
|
|
@@ -1322,10 +1338,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1322
1338
|
}], triggers: [{
|
|
1323
1339
|
type: ViewChildren,
|
|
1324
1340
|
args: [MatMenuTrigger]
|
|
1325
|
-
}], enabled: [{
|
|
1326
|
-
type: Input
|
|
1327
1341
|
}], enabled$: [{
|
|
1328
1342
|
type: Input
|
|
1343
|
+
}], enabled: [{
|
|
1344
|
+
type: Input
|
|
1329
1345
|
}] } });
|
|
1330
1346
|
|
|
1331
1347
|
class CommandContainer extends GarbageCollector {
|
|
@@ -1358,13 +1374,15 @@ class ToolBarComponent extends CommandContainer {
|
|
|
1358
1374
|
get orientation() {
|
|
1359
1375
|
return CommandContainer.Orientation.HORIZONTAL;
|
|
1360
1376
|
}
|
|
1361
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ToolBarComponent, deps: [{ token: CommandContainer }], target: i0.ɵɵFactoryTarget.Component });
|
|
1377
|
+
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
1378
|
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
1379
|
}
|
|
1364
1380
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ToolBarComponent, decorators: [{
|
|
1365
1381
|
type: Component,
|
|
1366
1382
|
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
|
|
1383
|
+
}], ctorParameters: function () { return [{ type: CommandContainer, decorators: [{
|
|
1384
|
+
type: Optional
|
|
1385
|
+
}] }]; } });
|
|
1368
1386
|
|
|
1369
1387
|
/**
|
|
1370
1388
|
*
|
|
@@ -1675,7 +1693,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1675
1693
|
args: ['blur']
|
|
1676
1694
|
}] } });
|
|
1677
1695
|
|
|
1678
|
-
/* tslint:disable:no-input-rename */
|
|
1679
1696
|
const INPUT_TOKEN_HACK = new InjectionToken("INPUT_TOKEN_HACK");
|
|
1680
1697
|
class AbstractInputComponent extends DisposableComponent {
|
|
1681
1698
|
onValueEditedListeners = new EventListenerList();
|
|
@@ -1690,11 +1707,16 @@ class AbstractInputComponent extends DisposableComponent {
|
|
|
1690
1707
|
* gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).
|
|
1691
1708
|
*/
|
|
1692
1709
|
formValue$;
|
|
1693
|
-
|
|
1694
|
-
|
|
1710
|
+
#i18n$_accessor_storage = proxify((MutableValueModel));
|
|
1711
|
+
get i18n$() { return this.#i18n$_accessor_storage; }
|
|
1712
|
+
set i18n$(value) { this.#i18n$_accessor_storage = value; }
|
|
1713
|
+
#i18n_accessor_storage;
|
|
1714
|
+
get i18n() { return this.#i18n_accessor_storage; }
|
|
1715
|
+
set i18n(value) { this.#i18n_accessor_storage = value; }
|
|
1716
|
+
_label;
|
|
1695
1717
|
userFloatLabel = 'always'; // TODO: make this an injectable default
|
|
1696
|
-
|
|
1697
|
-
|
|
1718
|
+
_hint;
|
|
1719
|
+
_placeholder;
|
|
1698
1720
|
dense = false;
|
|
1699
1721
|
_enabled$ = this.registerDisposable(new DelegatingValueModel());
|
|
1700
1722
|
set enabled$(condition$) {
|
|
@@ -1761,6 +1783,9 @@ class AbstractInputComponent extends DisposableComponent {
|
|
|
1761
1783
|
isEnabled() {
|
|
1762
1784
|
return this.enabled$.value;
|
|
1763
1785
|
}
|
|
1786
|
+
get disabled() {
|
|
1787
|
+
return !this.isEnabled();
|
|
1788
|
+
}
|
|
1764
1789
|
hasErrors() {
|
|
1765
1790
|
return !this.errorList$.query().isEmpty();
|
|
1766
1791
|
}
|
|
@@ -1773,6 +1798,15 @@ class AbstractInputComponent extends DisposableComponent {
|
|
|
1773
1798
|
get focusContext() {
|
|
1774
1799
|
return this.formValue$.focusContext;
|
|
1775
1800
|
}
|
|
1801
|
+
get label() {
|
|
1802
|
+
return this._label ?? this.i18n?.label();
|
|
1803
|
+
}
|
|
1804
|
+
get hint() {
|
|
1805
|
+
return this._hint ?? this.hackyGetI18n("hint");
|
|
1806
|
+
}
|
|
1807
|
+
get placeholder() {
|
|
1808
|
+
return this._placeholder ?? this.hackyGetI18n("placeholder");
|
|
1809
|
+
}
|
|
1776
1810
|
get floatLabel() {
|
|
1777
1811
|
// return this.dense ? 'never' : this.userFloatLabel;
|
|
1778
1812
|
return this.userFloatLabel;
|
|
@@ -1787,24 +1821,45 @@ class AbstractInputComponent extends DisposableComponent {
|
|
|
1787
1821
|
onValueEdited(callback) {
|
|
1788
1822
|
return this.onValueEditedListeners.add(callback);
|
|
1789
1823
|
}
|
|
1824
|
+
hackyGetI18n(key) {
|
|
1825
|
+
// TODO: update I18n to make it possible to get an optional value with return the missing key message.
|
|
1826
|
+
const i18nFn = this.i18n ? this.i18n[key] : undefined;
|
|
1827
|
+
const i18nValue = i18nFn && i18nFn();
|
|
1828
|
+
return i18nValue?.startsWith("missing key") ? undefined : i18nValue;
|
|
1829
|
+
}
|
|
1790
1830
|
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: {
|
|
1831
|
+
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
1832
|
}
|
|
1833
|
+
__decorate([
|
|
1834
|
+
Proxify(),
|
|
1835
|
+
__metadata("design:type", Object)
|
|
1836
|
+
], AbstractInputComponent.prototype, "i18n$", null);
|
|
1837
|
+
__decorate([
|
|
1838
|
+
StoreInValueModel(),
|
|
1839
|
+
__metadata("design:type", Object)
|
|
1840
|
+
], AbstractInputComponent.prototype, "i18n", null);
|
|
1793
1841
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractInputComponent, decorators: [{
|
|
1794
1842
|
type: Component,
|
|
1795
1843
|
args: [{ template: '' }]
|
|
1796
1844
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
1797
1845
|
type: Inject,
|
|
1798
1846
|
args: [INPUT_TOKEN_HACK]
|
|
1799
|
-
}] }]; }, propDecorators: {
|
|
1847
|
+
}] }]; }, propDecorators: { i18n$: [{
|
|
1800
1848
|
type: Input
|
|
1849
|
+
}], i18n: [{
|
|
1850
|
+
type: Input
|
|
1851
|
+
}], _label: [{
|
|
1852
|
+
type: Input,
|
|
1853
|
+
args: ["label"]
|
|
1801
1854
|
}], userFloatLabel: [{
|
|
1802
1855
|
type: Input,
|
|
1803
1856
|
args: ['floatLabel']
|
|
1804
|
-
}],
|
|
1805
|
-
type: Input
|
|
1806
|
-
|
|
1807
|
-
|
|
1857
|
+
}], _hint: [{
|
|
1858
|
+
type: Input,
|
|
1859
|
+
args: ['hint']
|
|
1860
|
+
}], _placeholder: [{
|
|
1861
|
+
type: Input,
|
|
1862
|
+
args: ['placeholder']
|
|
1808
1863
|
}], dense: [{
|
|
1809
1864
|
type: HostBinding,
|
|
1810
1865
|
args: ['class.dense']
|
|
@@ -1847,6 +1902,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1847
1902
|
}], notifyFocusOut: [{
|
|
1848
1903
|
type: HostListener,
|
|
1849
1904
|
args: ['focusout']
|
|
1905
|
+
}], disabled: [{
|
|
1906
|
+
type: HostBinding,
|
|
1907
|
+
args: ["class.disabled"]
|
|
1850
1908
|
}] } });
|
|
1851
1909
|
|
|
1852
1910
|
class AbstractListInputComponent extends AbstractInputComponent {
|
|
@@ -2084,12 +2142,15 @@ class CheckboxInputComponent extends AbstractValueInputComponent {
|
|
|
2084
2142
|
constructor() {
|
|
2085
2143
|
super();
|
|
2086
2144
|
}
|
|
2145
|
+
select($event) {
|
|
2146
|
+
this.componentValue$.value = $event.checked;
|
|
2147
|
+
}
|
|
2087
2148
|
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 [
|
|
2149
|
+
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
2150
|
}
|
|
2090
2151
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CheckboxInputComponent, decorators: [{
|
|
2091
2152
|
type: Component,
|
|
2092
|
-
args: [{ selector: 'aup-checkbox-input', template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [
|
|
2153
|
+
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
2154
|
}], ctorParameters: function () { return []; }, propDecorators: { color: [{
|
|
2094
2155
|
type: Input
|
|
2095
2156
|
}], labelPosition: [{
|
|
@@ -2128,7 +2189,7 @@ class MultipleSelectInputComponent extends AbstractListInputComponent {
|
|
|
2128
2189
|
const self = this;
|
|
2129
2190
|
this.registerDisposable(new Binding(this.componentList$, this.ids$, {
|
|
2130
2191
|
toLeft(selectedItems, currentLeftValue) {
|
|
2131
|
-
const newValues = selectedItems.map(it => lookup.get(it)).filter(it =>
|
|
2192
|
+
const newValues = selectedItems.map(it => lookup.get(it)).filter(it => !!it);
|
|
2132
2193
|
// 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
2194
|
return newValues.length < 1 && selectedItems.length > 0 ? currentLeftValue : newValues;
|
|
2134
2195
|
},
|
|
@@ -2139,7 +2200,7 @@ class MultipleSelectInputComponent extends AbstractListInputComponent {
|
|
|
2139
2200
|
})).writeRight();
|
|
2140
2201
|
}
|
|
2141
2202
|
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$
|
|
2203
|
+
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
2204
|
}
|
|
2144
2205
|
__decorate([
|
|
2145
2206
|
Proxify(),
|
|
@@ -2167,48 +2228,178 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
2167
2228
|
|
|
2168
2229
|
class NumberInputComponent extends AbstractValueInputComponent {
|
|
2169
2230
|
autocomplete;
|
|
2170
|
-
min =
|
|
2171
|
-
|
|
2172
|
-
|
|
2231
|
+
#min$_accessor_storage = proxify((ValueModel));
|
|
2232
|
+
get min$() { return this.#min$_accessor_storage; }
|
|
2233
|
+
set min$(value) { this.#min$_accessor_storage = value; }
|
|
2234
|
+
#min_accessor_storage = Number.MIN_SAFE_INTEGER;
|
|
2235
|
+
get min() { return this.#min_accessor_storage; }
|
|
2236
|
+
set min(value) { this.#min_accessor_storage = value; }
|
|
2237
|
+
#max$_accessor_storage = proxify((ValueModel));
|
|
2238
|
+
get max$() { return this.#max$_accessor_storage; }
|
|
2239
|
+
set max$(value) { this.#max$_accessor_storage = value; }
|
|
2240
|
+
#max_accessor_storage = Number.MAX_SAFE_INTEGER;
|
|
2241
|
+
get max() { return this.#max_accessor_storage; }
|
|
2242
|
+
set max(value) { this.#max_accessor_storage = value; }
|
|
2243
|
+
#significantDigits$_accessor_storage = proxify((ValueModel));
|
|
2244
|
+
get significantDigits$() { return this.#significantDigits$_accessor_storage; }
|
|
2245
|
+
set significantDigits$(value) { this.#significantDigits$_accessor_storage = value; }
|
|
2246
|
+
#significantDigits_accessor_storage;
|
|
2247
|
+
get significantDigits() { return this.#significantDigits_accessor_storage; }
|
|
2248
|
+
set significantDigits(value) { this.#significantDigits_accessor_storage = value; }
|
|
2249
|
+
incrementCommand;
|
|
2250
|
+
decrementCommand;
|
|
2251
|
+
displayValue$;
|
|
2252
|
+
step$;
|
|
2173
2253
|
constructor() {
|
|
2174
2254
|
super();
|
|
2255
|
+
const { chain } = Dsl.disposeWith(this);
|
|
2256
|
+
this.step$ = chain(this.significantDigits$).map(v => 10 ** (-v)).otherwise(1);
|
|
2257
|
+
this.displayValue$ = chain(this.value$).map(v => this.clamp(v), {
|
|
2258
|
+
dependsOn: this.significantDigits$
|
|
2259
|
+
});
|
|
2260
|
+
const normalisedValue$ = chain(this.value$).otherwise(0);
|
|
2261
|
+
this.incrementCommand = Command.create(() => {
|
|
2262
|
+
this.value$.value = this.increment(this.value$.value);
|
|
2263
|
+
}).enableWhile(chain.numericValue(normalisedValue$).isLessThan(this.max$).and(this.enabled$));
|
|
2264
|
+
this.decrementCommand = Command.create(() => {
|
|
2265
|
+
this.value$.value = this.decrement(this.value$.value);
|
|
2266
|
+
}).enableWhile(chain.numericValue(normalisedValue$).isGreaterThan(this.min$).and(this.enabled$));
|
|
2267
|
+
}
|
|
2268
|
+
increment(value) {
|
|
2269
|
+
return this.clamp((value ?? 0) + this.step$.value);
|
|
2270
|
+
}
|
|
2271
|
+
decrement(value) {
|
|
2272
|
+
return this.clamp((value ?? 0) - this.step$.value);
|
|
2273
|
+
}
|
|
2274
|
+
clamp(value) {
|
|
2275
|
+
return Number(value.toFixed(this.significantDigits));
|
|
2276
|
+
}
|
|
2277
|
+
onValueChange(value) {
|
|
2278
|
+
this.value$.value = value;
|
|
2175
2279
|
}
|
|
2176
2280
|
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",
|
|
2281
|
+
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
2282
|
}
|
|
2283
|
+
__decorate([
|
|
2284
|
+
Proxify(),
|
|
2285
|
+
__metadata("design:type", ValueModel)
|
|
2286
|
+
], NumberInputComponent.prototype, "min$", null);
|
|
2287
|
+
__decorate([
|
|
2288
|
+
StoreInValueModel(),
|
|
2289
|
+
__metadata("design:type", Object)
|
|
2290
|
+
], NumberInputComponent.prototype, "min", null);
|
|
2291
|
+
__decorate([
|
|
2292
|
+
Proxify(),
|
|
2293
|
+
__metadata("design:type", ValueModel)
|
|
2294
|
+
], NumberInputComponent.prototype, "max$", null);
|
|
2295
|
+
__decorate([
|
|
2296
|
+
StoreInValueModel(),
|
|
2297
|
+
__metadata("design:type", Object)
|
|
2298
|
+
], NumberInputComponent.prototype, "max", null);
|
|
2299
|
+
__decorate([
|
|
2300
|
+
Proxify(),
|
|
2301
|
+
__metadata("design:type", ValueModel)
|
|
2302
|
+
], NumberInputComponent.prototype, "significantDigits$", null);
|
|
2303
|
+
__decorate([
|
|
2304
|
+
StoreInValueModel(),
|
|
2305
|
+
__metadata("design:type", Number)
|
|
2306
|
+
], NumberInputComponent.prototype, "significantDigits", null);
|
|
2179
2307
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NumberInputComponent, decorators: [{
|
|
2180
2308
|
type: Component,
|
|
2181
|
-
args: [{ selector: 'aup-number-input', template: "<mat-form-field
|
|
2309
|
+
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
2310
|
}], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
|
|
2183
2311
|
type: Input
|
|
2312
|
+
}], min$: [{
|
|
2313
|
+
type: Input
|
|
2184
2314
|
}], min: [{
|
|
2185
2315
|
type: Input
|
|
2316
|
+
}], max$: [{
|
|
2317
|
+
type: Input
|
|
2186
2318
|
}], max: [{
|
|
2187
2319
|
type: Input
|
|
2188
|
-
}],
|
|
2320
|
+
}], significantDigits$: [{
|
|
2321
|
+
type: Input
|
|
2322
|
+
}], significantDigits: [{
|
|
2189
2323
|
type: Input
|
|
2190
2324
|
}] } });
|
|
2191
2325
|
|
|
2192
2326
|
class PasswordInputComponent extends AbstractValueInputComponent {
|
|
2193
2327
|
autocomplete;
|
|
2328
|
+
#enableShowPassword$_accessor_storage = proxify((ValueModel));
|
|
2329
|
+
get enableShowPassword$() { return this.#enableShowPassword$_accessor_storage; }
|
|
2330
|
+
set enableShowPassword$(value) { this.#enableShowPassword$_accessor_storage = value; }
|
|
2331
|
+
#enableShowPassword_accessor_storage = false;
|
|
2332
|
+
get enableShowPassword() { return this.#enableShowPassword_accessor_storage; }
|
|
2333
|
+
set enableShowPassword(value) { this.#enableShowPassword_accessor_storage = value; }
|
|
2334
|
+
showPassword$ = new MutableValueModel(false);
|
|
2335
|
+
toggleShowPasswordCommand;
|
|
2194
2336
|
constructor() {
|
|
2195
2337
|
super();
|
|
2338
|
+
const { chain, valueOf } = Dsl.disposeWith(this);
|
|
2339
|
+
const face$ = chain(this.showPassword$).map(show => {
|
|
2340
|
+
return {
|
|
2341
|
+
icon: () => show ? "mat:visibility_off" : "mat:visibility"
|
|
2342
|
+
};
|
|
2343
|
+
});
|
|
2344
|
+
this.toggleShowPasswordCommand = Command.create(() => {
|
|
2345
|
+
this.showPassword$.value = !this.showPassword$.value;
|
|
2346
|
+
})
|
|
2347
|
+
.withFace(face$)
|
|
2348
|
+
.enableWhile(chain.stringValue(this.componentValue$).isNotBlank());
|
|
2349
|
+
}
|
|
2350
|
+
get fieldType() {
|
|
2351
|
+
return this.showPassword$.value ? "text" : "password";
|
|
2196
2352
|
}
|
|
2197
2353
|
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=\"
|
|
2354
|
+
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
2355
|
}
|
|
2356
|
+
__decorate([
|
|
2357
|
+
Proxify(),
|
|
2358
|
+
__metadata("design:type", Object)
|
|
2359
|
+
], PasswordInputComponent.prototype, "enableShowPassword$", null);
|
|
2360
|
+
__decorate([
|
|
2361
|
+
StoreInValueModel(),
|
|
2362
|
+
__metadata("design:type", Object)
|
|
2363
|
+
], PasswordInputComponent.prototype, "enableShowPassword", null);
|
|
2200
2364
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PasswordInputComponent, decorators: [{
|
|
2201
2365
|
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=\"
|
|
2366
|
+
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" }]
|
|
2367
|
+
}], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
|
|
2368
|
+
type: Input
|
|
2369
|
+
}], enableShowPassword$: [{
|
|
2370
|
+
type: Input
|
|
2371
|
+
}], enableShowPassword: [{
|
|
2372
|
+
type: Input
|
|
2373
|
+
}] } });
|
|
2374
|
+
|
|
2375
|
+
class SearchInputComponent extends AbstractValueInputComponent {
|
|
2376
|
+
autocomplete;
|
|
2377
|
+
clearCommand;
|
|
2378
|
+
constructor() {
|
|
2379
|
+
super();
|
|
2380
|
+
this.dense = true;
|
|
2381
|
+
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
2382
|
+
this.clearCommand = Command.create(() => {
|
|
2383
|
+
this.componentValue$.value = "";
|
|
2384
|
+
});
|
|
2385
|
+
this.clearCommand.disableWhile(chain.stringValue(this.componentValue$).isBlank());
|
|
2386
|
+
}
|
|
2387
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SearchInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2388
|
+
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"] }] });
|
|
2389
|
+
}
|
|
2390
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SearchInputComponent, decorators: [{
|
|
2391
|
+
type: Component,
|
|
2392
|
+
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
2393
|
}], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
|
|
2204
2394
|
type: Input
|
|
2205
2395
|
}] } });
|
|
2206
2396
|
|
|
2207
2397
|
/**
|
|
2208
2398
|
* Using templates:
|
|
2209
|
-
* <aup-select-input [
|
|
2399
|
+
* <aup-select-input [value$]="myModel" [options]="myOptions">
|
|
2210
2400
|
* <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
|
|
2211
|
-
* <ng-template #
|
|
2401
|
+
* <ng-template #selectedOptionTemplate let-option>{{option.thePropertyYouWant}} note, not used for nils (the placeholder is used)</ng-template>
|
|
2402
|
+
* <ng-template #nilOptionTemplate>Uses the placeholder by default but you can customise it</ng-template>
|
|
2212
2403
|
* </aup-select_input>
|
|
2213
2404
|
*/
|
|
2214
2405
|
class SelectInputComponent extends AbstractValueInputComponent {
|
|
@@ -2233,7 +2424,7 @@ class SelectInputComponent extends AbstractValueInputComponent {
|
|
|
2233
2424
|
super();
|
|
2234
2425
|
const { chain } = Dsl.disposeWith(this);
|
|
2235
2426
|
this.cookedOptions$ = chain(this.options$)
|
|
2236
|
-
.
|
|
2427
|
+
.mapAll(options => {
|
|
2237
2428
|
return options.length < 1 && !isNil(this.componentValue$.value) ? [this.componentValue$.value] : options;
|
|
2238
2429
|
}, {
|
|
2239
2430
|
dependsOn: this.componentValue$
|
|
@@ -2272,21 +2463,21 @@ class SelectInputComponent extends AbstractValueInputComponent {
|
|
|
2272
2463
|
id: this.delegatedIdentityOf(value)
|
|
2273
2464
|
});
|
|
2274
2465
|
let lastIdSnapshot = snapshotValueAndId(this.componentValue$.value);
|
|
2275
|
-
console.log(lastIdSnapshot)
|
|
2466
|
+
// console.log(lastIdSnapshot)
|
|
2276
2467
|
before(this.options$).changes(() => {
|
|
2277
2468
|
lastIdSnapshot = snapshotValueAndId(this.componentValue$.value);
|
|
2278
|
-
console.log(lastIdSnapshot)
|
|
2469
|
+
// console.log(lastIdSnapshot)
|
|
2279
2470
|
});
|
|
2280
2471
|
when(this.options$).changes((is, was) => {
|
|
2281
2472
|
const newIdSnapshot = snapshotValueAndId(lastIdSnapshot.value);
|
|
2282
|
-
console.log(lastIdSnapshot, newIdSnapshot)
|
|
2473
|
+
// console.log(lastIdSnapshot, newIdSnapshot)
|
|
2283
2474
|
if (newIdSnapshot !== lastIdSnapshot.id) {
|
|
2284
2475
|
this.id$.value = this.delegatedIdentityOf(this.componentValue$.value);
|
|
2285
2476
|
}
|
|
2286
2477
|
});
|
|
2287
2478
|
}
|
|
2288
2479
|
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$
|
|
2480
|
+
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
2481
|
}
|
|
2291
2482
|
__decorate([
|
|
2292
2483
|
Proxify(),
|
|
@@ -2298,7 +2489,7 @@ __decorate([
|
|
|
2298
2489
|
], SelectInputComponent.prototype, "options", null);
|
|
2299
2490
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectInputComponent, decorators: [{
|
|
2300
2491
|
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"] }]
|
|
2492
|
+
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
2493
|
}], ctorParameters: function () { return []; }, propDecorators: { options$: [{
|
|
2303
2494
|
type: Input
|
|
2304
2495
|
}], options: [{
|
|
@@ -2329,17 +2520,24 @@ class StringInputComponent extends AbstractValueInputComponent {
|
|
|
2329
2520
|
get enableClear() { return this.#enableClear_accessor_storage; }
|
|
2330
2521
|
set enableClear(value) { this.#enableClear_accessor_storage = value; }
|
|
2331
2522
|
iconPrefix;
|
|
2523
|
+
#suffixCommand_accessor_storage = proxify(Command);
|
|
2524
|
+
get suffixCommand() { return this.#suffixCommand_accessor_storage; }
|
|
2525
|
+
set suffixCommand(value) { this.#suffixCommand_accessor_storage = value; }
|
|
2332
2526
|
clearCommand;
|
|
2333
2527
|
constructor() {
|
|
2334
2528
|
super();
|
|
2335
2529
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
2336
2530
|
this.clearCommand = Command.create(() => {
|
|
2337
2531
|
this.componentValue$.value = "";
|
|
2338
|
-
})
|
|
2339
|
-
|
|
2532
|
+
})
|
|
2533
|
+
.withFace({ icon: () => "mat:clear" })
|
|
2534
|
+
.enableWhile(chain.stringValue(this.componentValue$).isNotBlank());
|
|
2535
|
+
}
|
|
2536
|
+
get hasSuffixCommand() {
|
|
2537
|
+
return Proxify.hasTarget(this.suffixCommand);
|
|
2340
2538
|
}
|
|
2341
2539
|
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 <
|
|
2540
|
+
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
2541
|
}
|
|
2344
2542
|
__decorate([
|
|
2345
2543
|
Proxify(),
|
|
@@ -2349,9 +2547,13 @@ __decorate([
|
|
|
2349
2547
|
StoreInValueModel(),
|
|
2350
2548
|
__metadata("design:type", Object)
|
|
2351
2549
|
], StringInputComponent.prototype, "enableClear", null);
|
|
2550
|
+
__decorate([
|
|
2551
|
+
Proxify(),
|
|
2552
|
+
__metadata("design:type", Command)
|
|
2553
|
+
], StringInputComponent.prototype, "suffixCommand", null);
|
|
2352
2554
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: StringInputComponent, decorators: [{
|
|
2353
2555
|
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 <
|
|
2556
|
+
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
2557
|
}], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
|
|
2356
2558
|
type: Input
|
|
2357
2559
|
}], enableClear$: [{
|
|
@@ -2360,6 +2562,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
2360
2562
|
type: Input
|
|
2361
2563
|
}], iconPrefix: [{
|
|
2362
2564
|
type: Input
|
|
2565
|
+
}], suffixCommand: [{
|
|
2566
|
+
type: Input
|
|
2363
2567
|
}] } });
|
|
2364
2568
|
|
|
2365
2569
|
class TextInputComponent extends AbstractValueInputComponent {
|
|
@@ -2547,7 +2751,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
2547
2751
|
* </aup-switch-case>
|
|
2548
2752
|
*/
|
|
2549
2753
|
class SwitchCaseComponent extends DisposableComponent {
|
|
2550
|
-
cdr;
|
|
2551
2754
|
#switch$_accessor_storage = proxify((ValueModel));
|
|
2552
2755
|
get switch$() { return this.#switch$_accessor_storage; }
|
|
2553
2756
|
set switch$(value) { this.#switch$_accessor_storage = value; }
|
|
@@ -2556,9 +2759,8 @@ class SwitchCaseComponent extends DisposableComponent {
|
|
|
2556
2759
|
set switch(value) { this.#switch_accessor_storage = value; }
|
|
2557
2760
|
switchCaseOptions;
|
|
2558
2761
|
selectedIndex = 0;
|
|
2559
|
-
constructor(
|
|
2762
|
+
constructor() {
|
|
2560
2763
|
super();
|
|
2561
|
-
this.cdr = cdr;
|
|
2562
2764
|
}
|
|
2563
2765
|
ngAfterContentInit() {
|
|
2564
2766
|
const subscription = this.switchCaseOptions.changes.subscribe(change => this.updateSelection());
|
|
@@ -2595,8 +2797,8 @@ class SwitchCaseComponent extends DisposableComponent {
|
|
|
2595
2797
|
this.selectedIndex = -1;
|
|
2596
2798
|
}
|
|
2597
2799
|
}
|
|
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$
|
|
2800
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SwitchCaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2801
|
+
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
2802
|
}
|
|
2601
2803
|
__decorate([
|
|
2602
2804
|
Proxify(),
|
|
@@ -2609,7 +2811,7 @@ __decorate([
|
|
|
2609
2811
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SwitchCaseComponent, decorators: [{
|
|
2610
2812
|
type: Component,
|
|
2611
2813
|
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 [
|
|
2814
|
+
}], ctorParameters: function () { return []; }, propDecorators: { switch$: [{
|
|
2613
2815
|
type: Input
|
|
2614
2816
|
}], switch: [{
|
|
2615
2817
|
type: Input
|
|
@@ -2619,6 +2821,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
2619
2821
|
}] } });
|
|
2620
2822
|
|
|
2621
2823
|
const HEADER_CELL_RENDERER_PORTAL = Symbol('aup-cell-header-renderer-component-ref');
|
|
2824
|
+
const FOOTER_CELL_RENDERER_PORTAL = Symbol('aup-cell-footer-renderer-component-ref');
|
|
2622
2825
|
const CELL_RENDERER_PORTAL = Symbol('aup-cell-renderer-component-ref');
|
|
2623
2826
|
const CELL_EDITOR_PORTAL = Symbol('aup-cell-editor-component-ref');
|
|
2624
2827
|
const PORTAL_RENDERER_COMPONENT = Symbol('aup-cell-renderer-portal-component');
|
|
@@ -2716,6 +2919,23 @@ class TemplateCellRendererPortalRef extends CellRendererPortalRef {
|
|
|
2716
2919
|
return new TemplatePortal(this.templateRef, this.viewContainer, { ...(data), $implicit: data.row });
|
|
2717
2920
|
}
|
|
2718
2921
|
}
|
|
2922
|
+
class CellFooterPortalRef extends CellPortalRef {
|
|
2923
|
+
componentType;
|
|
2924
|
+
initialiseHeader;
|
|
2925
|
+
constructor(componentType, initialiseHeader) {
|
|
2926
|
+
super();
|
|
2927
|
+
this.componentType = componentType;
|
|
2928
|
+
this.initialiseHeader = initialiseHeader;
|
|
2929
|
+
}
|
|
2930
|
+
initialiseHost(host, columnModel) {
|
|
2931
|
+
assert$1.isTruthy(host);
|
|
2932
|
+
host[HEADER_CELL_RENDERER_PORTAL] = new ComponentPortal(this.componentType);
|
|
2933
|
+
}
|
|
2934
|
+
// @Trace()
|
|
2935
|
+
onPortalAttached(host, portalComponent) {
|
|
2936
|
+
this.initialiseHeader(portalComponent, host.column);
|
|
2937
|
+
}
|
|
2938
|
+
}
|
|
2719
2939
|
|
|
2720
2940
|
class ColumnTextSearchFormatter {
|
|
2721
2941
|
}
|
|
@@ -2806,6 +3026,7 @@ class ColumnTextSearchWrapper extends ColumnTextSearchFormatter.Delegate {
|
|
|
2806
3026
|
}
|
|
2807
3027
|
class ColumnModel extends GarbageCollector {
|
|
2808
3028
|
columnId;
|
|
3029
|
+
order;
|
|
2809
3030
|
textPropertiesProvider;
|
|
2810
3031
|
_columnTextProperties;
|
|
2811
3032
|
_columnHeaderPortalRef;
|
|
@@ -2819,9 +3040,10 @@ class ColumnModel extends GarbageCollector {
|
|
|
2819
3040
|
dasherisedColumnId;
|
|
2820
3041
|
textSearchDelegate = new ColumnTextSearchWrapper();
|
|
2821
3042
|
visible$;
|
|
2822
|
-
constructor(columnId, textPropertiesProvider) {
|
|
3043
|
+
constructor(columnId, order, textPropertiesProvider) {
|
|
2823
3044
|
super();
|
|
2824
3045
|
this.columnId = columnId;
|
|
3046
|
+
this.order = order;
|
|
2825
3047
|
this.textPropertiesProvider = textPropertiesProvider;
|
|
2826
3048
|
const { valueOf } = Dsl.disposeWith(this);
|
|
2827
3049
|
this.installHeaderRenderer();
|
|
@@ -2866,6 +3088,14 @@ class ColumnModel extends GarbageCollector {
|
|
|
2866
3088
|
this._columnTextProperties = columnTextProperties;
|
|
2867
3089
|
return this;
|
|
2868
3090
|
}
|
|
3091
|
+
positionAfter(column) {
|
|
3092
|
+
this.order.position(this, { after: column });
|
|
3093
|
+
return this;
|
|
3094
|
+
}
|
|
3095
|
+
positionBefore(column) {
|
|
3096
|
+
this.order.position(this, { before: column });
|
|
3097
|
+
return this;
|
|
3098
|
+
}
|
|
2869
3099
|
getSearchTextFor(row) {
|
|
2870
3100
|
return this.textSearchDelegate.format(row);
|
|
2871
3101
|
}
|
|
@@ -2967,8 +3197,8 @@ __decorate([
|
|
|
2967
3197
|
|
|
2968
3198
|
class CustomTemplateColumnModel extends ColumnModel {
|
|
2969
3199
|
config = new TemplateCellRendererPortalRef();
|
|
2970
|
-
constructor(columnId, defaults) {
|
|
2971
|
-
super(columnId, defaults);
|
|
3200
|
+
constructor(columnId, order, defaults) {
|
|
3201
|
+
super(columnId, order, defaults);
|
|
2972
3202
|
this.configureCellRenderer(this.config);
|
|
2973
3203
|
}
|
|
2974
3204
|
setTemplate(templateRef, viewContainer, fillCell, padChild) {
|
|
@@ -3046,12 +3276,17 @@ class AbstractTableComponent extends DisposableComponent {
|
|
|
3046
3276
|
#showHeader_accessor_storage = true;
|
|
3047
3277
|
get showHeader() { return this.#showHeader_accessor_storage; }
|
|
3048
3278
|
set showHeader(value) { this.#showHeader_accessor_storage = value; }
|
|
3279
|
+
#enableScrolling$_accessor_storage = proxify((ValueModel));
|
|
3049
3280
|
/**
|
|
3050
3281
|
* Set to true to enable scrolling. Once enabled the table will have 0 implicit height. You will either
|
|
3051
3282
|
* need to set it explicitly e.g. height: 400px; or by using flex or grid layout to make it fill it's
|
|
3052
3283
|
* containment area.
|
|
3053
3284
|
*/
|
|
3054
|
-
enableScrolling
|
|
3285
|
+
get enableScrolling$() { return this.#enableScrolling$_accessor_storage; }
|
|
3286
|
+
set enableScrolling$(value) { this.#enableScrolling$_accessor_storage = value; }
|
|
3287
|
+
#enableScrolling_accessor_storage = false;
|
|
3288
|
+
get enableScrolling() { return this.#enableScrolling_accessor_storage; }
|
|
3289
|
+
set enableScrolling(value) { this.#enableScrolling_accessor_storage = value; }
|
|
3055
3290
|
columns;
|
|
3056
3291
|
columnIds;
|
|
3057
3292
|
columnsById;
|
|
@@ -3070,7 +3305,6 @@ class AbstractTableComponent extends DisposableComponent {
|
|
|
3070
3305
|
super();
|
|
3071
3306
|
this.injector = injector;
|
|
3072
3307
|
const { chain, when } = Dsl.disposeWith(this);
|
|
3073
|
-
this._visibleRows$.setDelegate(this._dataSource$);
|
|
3074
3308
|
when(chain(this._dataSource$).first()).becomesTruthy(it => {
|
|
3075
3309
|
if (it === this.identityOf(it)) {
|
|
3076
3310
|
console.warn("Table model identity function is using reference equality. This can cause lots of table re-rendering", {
|
|
@@ -3089,7 +3323,7 @@ class AbstractTableComponent extends DisposableComponent {
|
|
|
3089
3323
|
if (!model) {
|
|
3090
3324
|
lang$1.illegalState("aup-table tableModel is nil");
|
|
3091
3325
|
}
|
|
3092
|
-
this.columnsById = chain(model.columns).indexBy('columnId');
|
|
3326
|
+
this.columnsById = chain(model.columns$).indexBy('columnId');
|
|
3093
3327
|
this._dataSource$.setDelegate(model.dataSource$);
|
|
3094
3328
|
model.initialise(this.injector, (row) => this.identityOf(row));
|
|
3095
3329
|
}
|
|
@@ -3106,7 +3340,7 @@ class AbstractTableComponent extends DisposableComponent {
|
|
|
3106
3340
|
}
|
|
3107
3341
|
}
|
|
3108
3342
|
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 });
|
|
3343
|
+
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
3344
|
}
|
|
3111
3345
|
__decorate([
|
|
3112
3346
|
Proxify(),
|
|
@@ -3116,6 +3350,14 @@ __decorate([
|
|
|
3116
3350
|
StoreInValueModel(),
|
|
3117
3351
|
__metadata("design:type", Object)
|
|
3118
3352
|
], AbstractTableComponent.prototype, "showHeader", null);
|
|
3353
|
+
__decorate([
|
|
3354
|
+
Proxify(),
|
|
3355
|
+
__metadata("design:type", ValueModel)
|
|
3356
|
+
], AbstractTableComponent.prototype, "enableScrolling$", null);
|
|
3357
|
+
__decorate([
|
|
3358
|
+
StoreInValueModel(),
|
|
3359
|
+
__metadata("design:type", Boolean)
|
|
3360
|
+
], AbstractTableComponent.prototype, "enableScrolling", null);
|
|
3119
3361
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractTableComponent, decorators: [{
|
|
3120
3362
|
type: Component,
|
|
3121
3363
|
args: [{
|
|
@@ -3126,6 +3368,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
3126
3368
|
type: Input
|
|
3127
3369
|
}], showHeader: [{
|
|
3128
3370
|
type: Input
|
|
3371
|
+
}], enableScrolling$: [{
|
|
3372
|
+
type: Input
|
|
3129
3373
|
}], enableScrolling: [{
|
|
3130
3374
|
type: Input
|
|
3131
3375
|
}], baseCssClass: [{
|
|
@@ -3186,6 +3430,8 @@ class EditSession extends GarbageCollector {
|
|
|
3186
3430
|
// console.warn()
|
|
3187
3431
|
// }
|
|
3188
3432
|
this._liveRowValue$.value = produce(this._liveRowValue$.value, draft => {
|
|
3433
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
3434
|
+
// @ts-ignore
|
|
3189
3435
|
this.form.writeDirtyStateTo(draft);
|
|
3190
3436
|
});
|
|
3191
3437
|
});
|
|
@@ -3288,11 +3534,11 @@ class DefaultCellRendererComponent {
|
|
|
3288
3534
|
return this._value;
|
|
3289
3535
|
}
|
|
3290
3536
|
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" }] });
|
|
3537
|
+
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
3538
|
}
|
|
3293
3539
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DefaultCellRendererComponent, decorators: [{
|
|
3294
3540
|
type: Component,
|
|
3295
|
-
args: [{ selector: "aup-default-cell-renderer", template: "<span [innerHTML]=\"value| aupHighlight\"></span>\n" }]
|
|
3541
|
+
args: [{ selector: "aup-default-cell-renderer", template: "<span [innerHTML]=\"value?.toString()| aupHighlight\"></span>\n" }]
|
|
3296
3542
|
}], propDecorators: { value: [{
|
|
3297
3543
|
type: Input
|
|
3298
3544
|
}] } });
|
|
@@ -3308,7 +3554,8 @@ class SelectionHeaderCellComponent extends DisposableComponent {
|
|
|
3308
3554
|
super();
|
|
3309
3555
|
this.selectCommand = Command.create(() => {
|
|
3310
3556
|
this.selectionModel.toggleAllCommand.execute();
|
|
3311
|
-
})
|
|
3557
|
+
}).visibleWhile(this.selectionModel.toggleAllCommand.visible$)
|
|
3558
|
+
.enableWhile(this.selectionModel.toggleAllCommand.enabled$);
|
|
3312
3559
|
}
|
|
3313
3560
|
isSelected() {
|
|
3314
3561
|
return this.ifMultiSelectionModel(m => m.allSelected$.value, false);
|
|
@@ -3336,7 +3583,7 @@ class SelectionHeaderCellComponent extends DisposableComponent {
|
|
|
3336
3583
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectionHeaderCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3337
3584
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SelectionHeaderCellComponent, selector: "aup-selection-header-cell", providers: [
|
|
3338
3585
|
{ 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:
|
|
3586
|
+
], 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
3587
|
}
|
|
3341
3588
|
__decorate([
|
|
3342
3589
|
Proxify(),
|
|
@@ -3369,7 +3616,7 @@ class SelectionCellComponent extends DisposableComponent {
|
|
|
3369
3616
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectionCellComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3370
3617
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SelectionCellComponent, selector: "aup-selection-cell", inputs: { row: "row" }, providers: [
|
|
3371
3618
|
{ 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:
|
|
3619
|
+
], 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
3620
|
}
|
|
3374
3621
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectionCellComponent, decorators: [{
|
|
3375
3622
|
type: Component,
|
|
@@ -3430,25 +3677,14 @@ class Bounds extends Dimension {
|
|
|
3430
3677
|
})(Bounds || (Bounds = {}));
|
|
3431
3678
|
|
|
3432
3679
|
class ResizeAwareComponent extends DisposableComponent {
|
|
3433
|
-
elementRef;
|
|
3434
|
-
ngZone;
|
|
3435
|
-
|
|
3436
|
-
constructor(elementRef, ngZone) {
|
|
3437
|
-
super();
|
|
3438
|
-
this.elementRef = elementRef;
|
|
3439
|
-
this.ngZone = ngZone;
|
|
3440
|
-
}
|
|
3680
|
+
elementRef = this.inject(ElementRef);
|
|
3681
|
+
ngZone = this.inject(NgZone);
|
|
3682
|
+
boundsTracker = new ResizeAwareComponent.ResizeTracker(this.elementRef, this.ngZone);
|
|
3441
3683
|
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());
|
|
3684
|
+
this.boundsTracker.notifyViewReady();
|
|
3449
3685
|
}
|
|
3450
3686
|
get bounds$() {
|
|
3451
|
-
return this.
|
|
3687
|
+
return this.boundsTracker.bounds$;
|
|
3452
3688
|
}
|
|
3453
3689
|
get nativeElement() {
|
|
3454
3690
|
return this.elementRef.nativeElement;
|
|
@@ -3458,57 +3694,160 @@ class ResizeAwareComponent extends DisposableComponent {
|
|
|
3458
3694
|
return this.bounds.relativePositionOf(point);
|
|
3459
3695
|
}
|
|
3460
3696
|
get bounds() {
|
|
3461
|
-
return this.
|
|
3697
|
+
return this.bounds$.value;
|
|
3462
3698
|
}
|
|
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 });
|
|
3699
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeAwareComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
3467
3700
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: ResizeAwareComponent, usesInheritance: true, ngImport: i0 });
|
|
3468
3701
|
}
|
|
3469
3702
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeAwareComponent, decorators: [{
|
|
3470
3703
|
type: Directive
|
|
3471
|
-
}]
|
|
3704
|
+
}] });
|
|
3705
|
+
(function (ResizeAwareComponent) {
|
|
3706
|
+
class ResizeTracker extends GarbageCollector {
|
|
3707
|
+
elementRef;
|
|
3708
|
+
ngZone;
|
|
3709
|
+
_bounds$ = new MutableValueModel(new Bounds(0, 0, 0, 0));
|
|
3710
|
+
width$;
|
|
3711
|
+
height$;
|
|
3712
|
+
top$;
|
|
3713
|
+
left$;
|
|
3714
|
+
bottom$;
|
|
3715
|
+
right$;
|
|
3716
|
+
constructor(elementRef, ngZone) {
|
|
3717
|
+
super();
|
|
3718
|
+
this.elementRef = elementRef;
|
|
3719
|
+
this.ngZone = ngZone;
|
|
3720
|
+
const { chain } = Dsl.disposeWith(this);
|
|
3721
|
+
this.width$ = chain(this.bounds$).pluck("width");
|
|
3722
|
+
this.height$ = chain(this.bounds$).pluck("height");
|
|
3723
|
+
this.top$ = chain(this.bounds$).pluck("top");
|
|
3724
|
+
this.left$ = chain(this.bounds$).pluck("left");
|
|
3725
|
+
this.bottom$ = chain.numericValue(this.top$).add(this.height$);
|
|
3726
|
+
this.right$ = chain.numericValue(this.left$).add(this.width$);
|
|
3727
|
+
}
|
|
3728
|
+
notifyViewReady() {
|
|
3729
|
+
const element = this.elementRef.nativeElement;
|
|
3730
|
+
const ro = new ResizeObserver((entries, observer) => {
|
|
3731
|
+
this.ngZone.run(() => this._updateBounds());
|
|
3732
|
+
});
|
|
3733
|
+
ro.observe(element);
|
|
3734
|
+
this.onDispose(() => ro.disconnect());
|
|
3735
|
+
setTimeout(() => this._updateBounds());
|
|
3736
|
+
}
|
|
3737
|
+
get bounds$() {
|
|
3738
|
+
return this._bounds$.readonly$;
|
|
3739
|
+
}
|
|
3740
|
+
get nativeElement() {
|
|
3741
|
+
return this.elementRef.nativeElement;
|
|
3742
|
+
}
|
|
3743
|
+
// TODO: Make this handle body scroll
|
|
3744
|
+
relativePositionOf(point) {
|
|
3745
|
+
return this.bounds.relativePositionOf(point);
|
|
3746
|
+
}
|
|
3747
|
+
get bounds() {
|
|
3748
|
+
return this._bounds$.value;
|
|
3749
|
+
}
|
|
3750
|
+
_updateBounds() {
|
|
3751
|
+
this._bounds$.value = Bounds.ofElement(this.nativeElement);
|
|
3752
|
+
}
|
|
3753
|
+
}
|
|
3754
|
+
ResizeAwareComponent.ResizeTracker = ResizeTracker;
|
|
3755
|
+
})(ResizeAwareComponent || (ResizeAwareComponent = {}));
|
|
3472
3756
|
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3757
|
+
var ColumnOrderManager;
|
|
3758
|
+
(function (ColumnOrderManager) {
|
|
3759
|
+
function processPosition(position, callback) {
|
|
3760
|
+
if (position) {
|
|
3761
|
+
const keys = Object.keys(position);
|
|
3762
|
+
if (keys.includes("before")) {
|
|
3763
|
+
return position["before"] ? callback.before(position["before"]) : callback.first();
|
|
3764
|
+
}
|
|
3765
|
+
else {
|
|
3766
|
+
return position["after"] ? callback.after(position["after"]) : callback.last();
|
|
3767
|
+
}
|
|
3768
|
+
}
|
|
3769
|
+
else {
|
|
3770
|
+
return callback.last();
|
|
3771
|
+
}
|
|
3772
|
+
}
|
|
3773
|
+
ColumnOrderManager.processPosition = processPosition;
|
|
3774
|
+
})(ColumnOrderManager || (ColumnOrderManager = {}));
|
|
3775
|
+
|
|
3776
|
+
class ColumnRef {
|
|
3777
|
+
column;
|
|
3778
|
+
position;
|
|
3779
|
+
constructor(column, position) {
|
|
3780
|
+
this.column = column;
|
|
3781
|
+
this.position = position;
|
|
3782
|
+
}
|
|
3783
|
+
}
|
|
3784
|
+
class ColumnManager extends GarbageCollector {
|
|
3785
|
+
_columnRefs$ = new MutableListModel();
|
|
3786
|
+
orderedColumnRefs$;
|
|
3787
|
+
_columnsById$;
|
|
3788
|
+
allColumns$;
|
|
3789
|
+
columnVisibilities$ = new WatchList();
|
|
3790
|
+
visibleColumns$;
|
|
3476
3791
|
constructor() {
|
|
3477
3792
|
super();
|
|
3478
3793
|
const { chain } = Dsl.disposeWith(this);
|
|
3479
|
-
this.
|
|
3794
|
+
this.orderedColumnRefs$ = chain(this._columnRefs$).orderBy("position", "asc");
|
|
3795
|
+
this.allColumns$ = this.orderedColumnRefs$.pluck("column");
|
|
3796
|
+
this._columnsById$ = chain(this.allColumns$).indexBy('columnId');
|
|
3797
|
+
this.visibleColumns$ = chain(this.allColumns$).select(it => it.visible$.value, {
|
|
3798
|
+
dependsOn: this.columnVisibilities$
|
|
3799
|
+
});
|
|
3480
3800
|
}
|
|
3481
|
-
|
|
3482
|
-
|
|
3801
|
+
position(column, newPosition) {
|
|
3802
|
+
const target = this._columnRefs$.query().findMatching(it => it.column === column);
|
|
3803
|
+
const position = this.computePosition(newPosition);
|
|
3804
|
+
this._columnRefs$.replace(target, { with: new ColumnRef(target.column, position) });
|
|
3483
3805
|
}
|
|
3484
3806
|
getColumn(id) {
|
|
3485
|
-
return this.
|
|
3807
|
+
return this._columnsById$.get(id);
|
|
3486
3808
|
}
|
|
3487
3809
|
hasColumn(id) {
|
|
3488
|
-
return !!this.
|
|
3810
|
+
return !!this._columnsById$.get(id);
|
|
3489
3811
|
}
|
|
3490
3812
|
hasMatchingColumn(row, regex) {
|
|
3491
3813
|
// only search the visible columns
|
|
3492
|
-
return !!this.value.find(c => regex.test(c.getSearchTextFor(row)));
|
|
3814
|
+
return !!this.visibleColumns$.value.find(c => regex.test(c.getSearchTextFor(row)));
|
|
3493
3815
|
}
|
|
3494
|
-
addColumn(column,
|
|
3816
|
+
addColumn(column, position) {
|
|
3495
3817
|
if (this.hasColumn(column.columnId)) {
|
|
3496
3818
|
lang.illegalState(`Column with id=${column.columnId} already exists`);
|
|
3497
3819
|
}
|
|
3498
3820
|
this.registerDisposable(column);
|
|
3499
|
-
this.
|
|
3500
|
-
|
|
3501
|
-
|
|
3502
|
-
|
|
3503
|
-
|
|
3504
|
-
|
|
3821
|
+
this._columnRefs$.push(new ColumnRef(column, this.computePosition(position)));
|
|
3822
|
+
this.columnVisibilities$.add(column.visible$);
|
|
3823
|
+
return column;
|
|
3824
|
+
}
|
|
3825
|
+
computePosition(position) {
|
|
3826
|
+
const q = this.orderedColumnRefs$.query();
|
|
3827
|
+
return ColumnOrderManager.processPosition(position, {
|
|
3828
|
+
before(col) {
|
|
3829
|
+
const index = q.findIndex(ref => ref.column === col);
|
|
3830
|
+
const beforeCol = q.value[index];
|
|
3831
|
+
const afterCol = index - 1 >= 0 ? q.value[index - 1] : undefined;
|
|
3832
|
+
return generateKeyBetween(afterCol?.position, beforeCol.position);
|
|
3833
|
+
},
|
|
3834
|
+
after(col) {
|
|
3835
|
+
const index = q.findIndex(ref => ref.column === col);
|
|
3836
|
+
const afterCol = q.value[index];
|
|
3837
|
+
const beforeCol = index + 1 < q.length ? q.value[index + 1] : undefined;
|
|
3838
|
+
return generateKeyBetween(afterCol.position, beforeCol?.position);
|
|
3839
|
+
},
|
|
3840
|
+
first() {
|
|
3841
|
+
return generateKeyBetween(null, q.first()?.position);
|
|
3842
|
+
},
|
|
3843
|
+
last() {
|
|
3844
|
+
// add it to the end of the list
|
|
3845
|
+
return generateKeyBetween(q.last()?.position, null);
|
|
3505
3846
|
}
|
|
3506
|
-
this.registerDisposable(this.trackSource(column.visible$));
|
|
3507
3847
|
});
|
|
3508
|
-
return column;
|
|
3509
3848
|
}
|
|
3510
3849
|
doComputeValue() {
|
|
3511
|
-
return this.
|
|
3850
|
+
return this.allColumns$.value.filter(c => c.visible$.value);
|
|
3512
3851
|
}
|
|
3513
3852
|
}
|
|
3514
3853
|
|
|
@@ -3542,8 +3881,8 @@ function EnableCellTextSearch(options) {
|
|
|
3542
3881
|
|
|
3543
3882
|
class CustomValueColumnModel extends ColumnModel {
|
|
3544
3883
|
getValue;
|
|
3545
|
-
constructor(columnId, defaults, getValue) {
|
|
3546
|
-
super(columnId, defaults);
|
|
3884
|
+
constructor(columnId, order, defaults, getValue) {
|
|
3885
|
+
super(columnId, order, defaults);
|
|
3547
3886
|
this.getValue = getValue;
|
|
3548
3887
|
this.cellRenderer(DefaultCellRendererComponent);
|
|
3549
3888
|
}
|
|
@@ -3551,17 +3890,17 @@ class CustomValueColumnModel extends ColumnModel {
|
|
|
3551
3890
|
this.configureColumnTextSearch(EnableCellTextSearch.getFormatter(componentType, () => new ColumnTextSearchFormatter.Null()), row => this.getValue(row));
|
|
3552
3891
|
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
|
|
3553
3892
|
if (firstTime) {
|
|
3554
|
-
if (isFunction
|
|
3893
|
+
if (isFunction(onComponentInitOrOptions)) {
|
|
3555
3894
|
onComponentInitOrOptions(component);
|
|
3556
3895
|
}
|
|
3557
3896
|
else {
|
|
3558
|
-
if (isFunction
|
|
3897
|
+
if (isFunction(onComponentInitOrOptions?.onComponentInit)) {
|
|
3559
3898
|
onComponentInitOrOptions.onComponentInit(component);
|
|
3560
3899
|
}
|
|
3561
3900
|
}
|
|
3562
3901
|
}
|
|
3563
3902
|
component.value = this.getValue(rowData.row);
|
|
3564
|
-
if (!isFunction
|
|
3903
|
+
if (!isFunction(onComponentInitOrOptions) && isFunction(onComponentInitOrOptions?.onRowUpdate)) {
|
|
3565
3904
|
onComponentInitOrOptions.onRowUpdate(component, rowData.row);
|
|
3566
3905
|
}
|
|
3567
3906
|
}));
|
|
@@ -3573,8 +3912,8 @@ class CustomValueColumnModel extends ColumnModel {
|
|
|
3573
3912
|
}
|
|
3574
3913
|
|
|
3575
3914
|
class EditorControlColumnModel extends ColumnModel {
|
|
3576
|
-
constructor(columnId, saveCommandFactory, defaults) {
|
|
3577
|
-
super(columnId, defaults);
|
|
3915
|
+
constructor(columnId, order, saveCommandFactory, defaults) {
|
|
3916
|
+
super(columnId, order, defaults);
|
|
3578
3917
|
this.cellRenderer(EditRowControlsComponent);
|
|
3579
3918
|
}
|
|
3580
3919
|
cellRenderer(componentType) {
|
|
@@ -3599,8 +3938,8 @@ class ListPropertyColumnModel extends ColumnModel {
|
|
|
3599
3938
|
intermediate.map(v => v?.toString()).join(", ") :
|
|
3600
3939
|
intermediate?.toString();
|
|
3601
3940
|
};
|
|
3602
|
-
constructor(id, property, defaults) {
|
|
3603
|
-
super(id, defaults);
|
|
3941
|
+
constructor(id, order, property, defaults) {
|
|
3942
|
+
super(id, order, defaults);
|
|
3604
3943
|
this.property = property;
|
|
3605
3944
|
this.cellRenderer(DefaultCellRendererComponent);
|
|
3606
3945
|
}
|
|
@@ -3616,7 +3955,7 @@ class ListPropertyColumnModel extends ColumnModel {
|
|
|
3616
3955
|
}
|
|
3617
3956
|
cellEditor(editor, validatorsOrInitialiser, initialiseComponent) {
|
|
3618
3957
|
const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
|
|
3619
|
-
const initialiser = isFunction
|
|
3958
|
+
const initialiser = isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
|
|
3620
3959
|
this.configureCellEditor(new CellEditorPortalRef(editor, (component, editSession) => {
|
|
3621
3960
|
const formListModel = editSession.form.pluckList(this.property);
|
|
3622
3961
|
if (validators) {
|
|
@@ -3645,8 +3984,8 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3645
3984
|
_defaultSearchTextFormatter = (value) => {
|
|
3646
3985
|
return (this._userFormat ?? Functions.identity)(value)?.toString();
|
|
3647
3986
|
};
|
|
3648
|
-
constructor(id, property, defaults) {
|
|
3649
|
-
super(id, defaults);
|
|
3987
|
+
constructor(id, order, property, defaults) {
|
|
3988
|
+
super(id, order, defaults);
|
|
3650
3989
|
this.property = property;
|
|
3651
3990
|
this.cellRenderer(DefaultCellRendererComponent);
|
|
3652
3991
|
}
|
|
@@ -3654,11 +3993,11 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3654
3993
|
this.configureColumnTextSearch(EnableCellTextSearch.getFormatter(componentType, () => ColumnTextSearchFormatter.forFormatter(this._defaultSearchTextFormatter)), row => row[this.property]);
|
|
3655
3994
|
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
|
|
3656
3995
|
if (firstTime) {
|
|
3657
|
-
if (isFunction
|
|
3996
|
+
if (isFunction(onComponentInitOrOptions)) {
|
|
3658
3997
|
onComponentInitOrOptions(component);
|
|
3659
3998
|
}
|
|
3660
3999
|
else {
|
|
3661
|
-
if (isFunction
|
|
4000
|
+
if (isFunction(onComponentInitOrOptions?.onComponentInit)) {
|
|
3662
4001
|
onComponentInitOrOptions.onComponentInit(component);
|
|
3663
4002
|
}
|
|
3664
4003
|
}
|
|
@@ -3683,7 +4022,7 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3683
4022
|
component[ColumnModel.CELL_RENDERER_COMPONENT_ROW_CACHE] = rowData.row;
|
|
3684
4023
|
let disableEditCallback = false;
|
|
3685
4024
|
if (firstTime) {
|
|
3686
|
-
if (isFunction
|
|
4025
|
+
if (isFunction(options?.onComponentInit)) {
|
|
3687
4026
|
options.onComponentInit(component);
|
|
3688
4027
|
}
|
|
3689
4028
|
// install our edit callback
|
|
@@ -3698,7 +4037,7 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3698
4037
|
disableEditCallback = true;
|
|
3699
4038
|
component.value = rowData.row[this.property];
|
|
3700
4039
|
disableEditCallback = false;
|
|
3701
|
-
if (!isFunction
|
|
4040
|
+
if (!isFunction(options) && isFunction(options?.onRowUpdate)) {
|
|
3702
4041
|
options.onRowUpdate(component, rowData.row);
|
|
3703
4042
|
}
|
|
3704
4043
|
}));
|
|
@@ -3706,7 +4045,7 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3706
4045
|
}
|
|
3707
4046
|
cellEditor(editor, validatorsOrInitialiser, onComponentInit) {
|
|
3708
4047
|
const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
|
|
3709
|
-
const initialiser = isFunction
|
|
4048
|
+
const initialiser = isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
|
|
3710
4049
|
this.configureCellEditor(new CellEditorPortalRef(editor, (component, editSession) => {
|
|
3711
4050
|
const formValueModel = editSession.form.pluck(this.property);
|
|
3712
4051
|
if (validators) {
|
|
@@ -3733,8 +4072,8 @@ class SelectionColumnModel extends ColumnModel {
|
|
|
3733
4072
|
selectionModel;
|
|
3734
4073
|
_enableHeaderControls = true;
|
|
3735
4074
|
_color = "accent";
|
|
3736
|
-
constructor(columnId, defaults, selectionModel) {
|
|
3737
|
-
super(columnId, defaults);
|
|
4075
|
+
constructor(columnId, order, defaults, selectionModel) {
|
|
4076
|
+
super(columnId, order, defaults);
|
|
3738
4077
|
this.selectionModel = selectionModel;
|
|
3739
4078
|
const { chain } = Dsl.disposeWith(this);
|
|
3740
4079
|
this._selectRowOnClick(false);
|
|
@@ -3775,6 +4114,42 @@ class SelectionColumnModel extends ColumnModel {
|
|
|
3775
4114
|
}
|
|
3776
4115
|
}
|
|
3777
4116
|
|
|
4117
|
+
let RowClass$1 = class RowClass {
|
|
4118
|
+
className;
|
|
4119
|
+
matches;
|
|
4120
|
+
constructor(className, matches) {
|
|
4121
|
+
this.className = className;
|
|
4122
|
+
this.matches = matches;
|
|
4123
|
+
}
|
|
4124
|
+
};
|
|
4125
|
+
class FooterRowModel {
|
|
4126
|
+
_rowClasses = [];
|
|
4127
|
+
noPadding() {
|
|
4128
|
+
this.addClass("no-padding");
|
|
4129
|
+
}
|
|
4130
|
+
addClass(className, condition) {
|
|
4131
|
+
this._rowClasses.push(new RowClass$1(className, condition ?? (() => true)));
|
|
4132
|
+
}
|
|
4133
|
+
}
|
|
4134
|
+
(function (FooterRowModel) {
|
|
4135
|
+
class Impl extends FooterRowModel {
|
|
4136
|
+
component;
|
|
4137
|
+
onInit;
|
|
4138
|
+
portal;
|
|
4139
|
+
constructor(component, onInit) {
|
|
4140
|
+
super();
|
|
4141
|
+
this.component = component;
|
|
4142
|
+
this.onInit = onInit;
|
|
4143
|
+
this.portal = new ComponentPortal(component);
|
|
4144
|
+
}
|
|
4145
|
+
getActiveRowClasses() {
|
|
4146
|
+
return this._rowClasses.filter(c => c.matches()).map(c => c.className).join(" ");
|
|
4147
|
+
}
|
|
4148
|
+
}
|
|
4149
|
+
FooterRowModel.Impl = Impl;
|
|
4150
|
+
})(FooterRowModel || (FooterRowModel = {}));
|
|
4151
|
+
ProxyRegistry.registerOneTimeBinding(FooterRowModel);
|
|
4152
|
+
|
|
3778
4153
|
class TableMoreMenuComponent extends DisposableComponent {
|
|
3779
4154
|
value$ = new MutableValueModel();
|
|
3780
4155
|
#value_accessor_storage;
|
|
@@ -3784,13 +4159,15 @@ class TableMoreMenuComponent extends DisposableComponent {
|
|
|
3784
4159
|
popupType$ = new MutableValueModel();
|
|
3785
4160
|
popupComponentPortal$;
|
|
3786
4161
|
_visible$ = this.registerDisposable(new DelegatingValueModel());
|
|
4162
|
+
initialiseCallback;
|
|
3787
4163
|
constructor() {
|
|
3788
4164
|
super();
|
|
3789
4165
|
const { chain } = Dsl.disposeWith(this);
|
|
3790
4166
|
this.popupComponentPortal$ = chain(this.popupType$).map(type => new ComponentPortal(type));
|
|
3791
4167
|
}
|
|
3792
|
-
configurePopupComponentType(popupComponentType) {
|
|
4168
|
+
configurePopupComponentType(popupComponentType, configureCallback) {
|
|
3793
4169
|
this.popupType$.value = popupComponentType;
|
|
4170
|
+
this.initialiseCallback = configureCallback;
|
|
3794
4171
|
}
|
|
3795
4172
|
// Stops tree selection when clicking the menu button
|
|
3796
4173
|
preventDefault($event) {
|
|
@@ -3801,12 +4178,15 @@ class TableMoreMenuComponent extends DisposableComponent {
|
|
|
3801
4178
|
const component = $event.instance;
|
|
3802
4179
|
component.initialise(this.value$, Command.create(() => this.matMenuTrigger.closeMenu()));
|
|
3803
4180
|
this._visible$.setDelegate(component.visible$);
|
|
4181
|
+
if (this.initialiseCallback) {
|
|
4182
|
+
this.initialiseCallback(component);
|
|
4183
|
+
}
|
|
3804
4184
|
}
|
|
3805
4185
|
get visible$() {
|
|
3806
4186
|
return this._visible$.readonly$;
|
|
3807
4187
|
}
|
|
3808
4188
|
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:
|
|
4189
|
+
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
4190
|
}
|
|
3811
4191
|
__decorate([
|
|
3812
4192
|
StoreInValueModel(),
|
|
@@ -3835,16 +4215,25 @@ class RowClass {
|
|
|
3835
4215
|
this.matches = matches;
|
|
3836
4216
|
}
|
|
3837
4217
|
}
|
|
4218
|
+
class RowAttribute {
|
|
4219
|
+
attributeName;
|
|
4220
|
+
getValue;
|
|
4221
|
+
constructor(attributeName, getValue) {
|
|
4222
|
+
this.attributeName = attributeName;
|
|
4223
|
+
this.getValue = getValue;
|
|
4224
|
+
}
|
|
4225
|
+
}
|
|
3838
4226
|
class AbstractTableModel extends GarbageCollector {
|
|
3839
4227
|
_dataSource$ = this.registerDisposable(new DelegatingListModel());
|
|
3840
4228
|
_filteredRows$ = this.registerDisposable(new DelegatingListModel());
|
|
3841
4229
|
_visibleRows$ = this.registerDisposable(new DelegatingListModel());
|
|
3842
|
-
|
|
4230
|
+
columnManager = this.registerDisposable(new ColumnManager());
|
|
3843
4231
|
_editorSessions = new MutableListModel();
|
|
3844
4232
|
_rowsBeingEdited$;
|
|
3845
4233
|
saveCommandFactory;
|
|
3846
4234
|
_editorSessionByRowId;
|
|
3847
4235
|
rowClassNamePredicates = [];
|
|
4236
|
+
rowAttributeGenerators = [];
|
|
3848
4237
|
_columnTextPropertiesLookup;
|
|
3849
4238
|
editing$;
|
|
3850
4239
|
firstEditableColumn$;
|
|
@@ -3861,6 +4250,8 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3861
4250
|
selectedItems$;
|
|
3862
4251
|
leadSelection$;
|
|
3863
4252
|
hasSelection$;
|
|
4253
|
+
footerRowModel;
|
|
4254
|
+
_viewDependencies = new Set();
|
|
3864
4255
|
constructor() {
|
|
3865
4256
|
super();
|
|
3866
4257
|
const { chain } = Dsl.disposeWith(this);
|
|
@@ -3869,15 +4260,15 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3869
4260
|
});
|
|
3870
4261
|
this._editorSessionByRowId = chain(this._editorSessions).indexBy("rowId");
|
|
3871
4262
|
this.editing$ = chain(this._editorSessions).count().isGreaterThan(0);
|
|
3872
|
-
this.textSearchPredicate$ = chain(this.visibleColumns).
|
|
4263
|
+
this.textSearchPredicate$ = chain(this.visibleColumns$).reduceAll(columns => {
|
|
3873
4264
|
return (row, regex) => {
|
|
3874
4265
|
return (!regex || !!columns.find(c => regex.test(c.getSearchTextFor(row))));
|
|
3875
4266
|
};
|
|
3876
4267
|
});
|
|
3877
|
-
this.firstEditableColumn$ = chain(this.columns).select(c => c.hasEditorPortal()).first();
|
|
3878
|
-
this.firstVisibleColumn$ = chain(this.
|
|
3879
|
-
this.lastVisibleColumn$ = chain(this.
|
|
3880
|
-
this.rowSelectionDisabledOnAllColumns$ = chain(this.
|
|
4268
|
+
this.firstEditableColumn$ = chain(this.columns$).select(c => c.hasEditorPortal()).first();
|
|
4269
|
+
this.firstVisibleColumn$ = chain(this.visibleColumns$).first();
|
|
4270
|
+
this.lastVisibleColumn$ = chain(this.visibleColumns$).last();
|
|
4271
|
+
this.rowSelectionDisabledOnAllColumns$ = chain(this.columnManager.visibleColumns$).select(column => column.isRowSelectionEnabled()).count().equals(0);
|
|
3881
4272
|
this.dataSourceEmpty$ = chain(this.dataSource$).isEmpty();
|
|
3882
4273
|
this.selectedItems$ = this.selectionModelProxy.selectedItems$;
|
|
3883
4274
|
this.leadSelection$ = this.selectionModelProxy.leadSelection$;
|
|
@@ -3901,9 +4292,23 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3901
4292
|
],
|
|
3902
4293
|
parent: injector
|
|
3903
4294
|
});
|
|
3904
|
-
this.columns
|
|
4295
|
+
this.columns$.value.forEach(c => c.initialise(customInjector));
|
|
3905
4296
|
this.identityOf = identityOf;
|
|
3906
4297
|
}
|
|
4298
|
+
/**
|
|
4299
|
+
* Adds additional models that will trigger a table repaint. This is required if the table
|
|
4300
|
+
* needs to be redrawn outside of changes to the rows of filters. i.e. some eternal state is used
|
|
4301
|
+
* to assign row classes etc.
|
|
4302
|
+
*
|
|
4303
|
+
* Note: This function must be called before the table is bound to the model.
|
|
4304
|
+
* @param hasValues
|
|
4305
|
+
*/
|
|
4306
|
+
viewStateDependsOn(...hasValues) {
|
|
4307
|
+
hasValues.forEach(it => this._viewDependencies.add(it));
|
|
4308
|
+
}
|
|
4309
|
+
get viewStateDependencies() {
|
|
4310
|
+
return Array.from(this._viewDependencies.values());
|
|
4311
|
+
}
|
|
3907
4312
|
get dataSource$() {
|
|
3908
4313
|
return this._dataSource$.readonly$;
|
|
3909
4314
|
}
|
|
@@ -3954,19 +4359,19 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3954
4359
|
});
|
|
3955
4360
|
});
|
|
3956
4361
|
}
|
|
3957
|
-
get columns() {
|
|
3958
|
-
return this.
|
|
4362
|
+
get columns$() {
|
|
4363
|
+
return this.columnManager.allColumns$;
|
|
3959
4364
|
}
|
|
3960
|
-
get visibleColumns() {
|
|
3961
|
-
return this.
|
|
4365
|
+
get visibleColumns$() {
|
|
4366
|
+
return this.columnManager.visibleColumns$;
|
|
3962
4367
|
}
|
|
3963
4368
|
pluck(property, options) {
|
|
3964
4369
|
const columnId = options?.columnId || property.toString();
|
|
3965
|
-
return this.addColumn(new PropertyColumnModel(columnId, property, () => this.getColumnTextProperties(columnId)));
|
|
4370
|
+
return this.addColumn(new PropertyColumnModel(columnId, this.columnManager, property, () => this.getColumnTextProperties(columnId)));
|
|
3966
4371
|
}
|
|
3967
4372
|
pluckList(property, options) {
|
|
3968
4373
|
const columnId = options?.columnId || property.toString();
|
|
3969
|
-
return this.addColumn(new ListPropertyColumnModel(columnId, property, () => this.getColumnTextProperties(columnId)));
|
|
4374
|
+
return this.addColumn(new ListPropertyColumnModel(columnId, this.columnManager, property, () => this.getColumnTextProperties(columnId)));
|
|
3970
4375
|
}
|
|
3971
4376
|
// TODO: clean this up and assign the selection model on teh table directly.
|
|
3972
4377
|
// tableModel.useSelectionModel(model) and have the seleciton column automatically
|
|
@@ -3975,43 +4380,54 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3975
4380
|
_addSelectionColumn(selectionModel, visible) {
|
|
3976
4381
|
assert.isNil(this.selectionColumnModel);
|
|
3977
4382
|
const columnId = "selection-column";
|
|
3978
|
-
this.selectionColumnModel = new SelectionColumnModel(columnId, () => this.getColumnTextProperties(columnId), this.selectionModelProxy);
|
|
4383
|
+
this.selectionColumnModel = new SelectionColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId), this.selectionModelProxy);
|
|
3979
4384
|
this.selectionColumnModel.useSelectionModel(selectionModel);
|
|
3980
4385
|
this.addRowClass("aup-row-selected", row => this.selectionColumnModel.isSelected(row));
|
|
3981
|
-
const selectionColumnModel = this.addColumn(this.selectionColumnModel,
|
|
3982
|
-
if (!isNil
|
|
4386
|
+
const selectionColumnModel = this.addColumn(this.selectionColumnModel, { before: null }); // first column
|
|
4387
|
+
if (!isNil(visible)) {
|
|
3983
4388
|
selectionColumnModel.visibleWhile(visible instanceof ValueModel ? visible : ValueModel.constant(visible));
|
|
3984
4389
|
}
|
|
3985
4390
|
return selectionColumnModel;
|
|
3986
4391
|
}
|
|
3987
4392
|
addEditControls(saveCommandFactory, formFactory) {
|
|
3988
4393
|
this.saveCommandFactory = saveCommandFactory;
|
|
3989
|
-
if (isFunction
|
|
4394
|
+
if (isFunction(formFactory)) {
|
|
3990
4395
|
this._createForm = formFactory;
|
|
3991
4396
|
}
|
|
3992
4397
|
const columnId = "editControls";
|
|
3993
|
-
return this.addColumn(new EditorControlColumnModel(columnId, saveCommandFactory, () => this.getColumnTextProperties(columnId)));
|
|
4398
|
+
return this.addColumn(new EditorControlColumnModel(columnId, this.columnManager, saveCommandFactory, () => this.getColumnTextProperties(columnId)));
|
|
3994
4399
|
}
|
|
3995
4400
|
addCustomColumn(columnId, dataAccessor) {
|
|
3996
|
-
return this.addColumn(new CustomValueColumnModel(columnId, () => this.getColumnTextProperties(columnId), dataAccessor));
|
|
4401
|
+
return this.addColumn(new CustomValueColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId), dataAccessor));
|
|
3997
4402
|
}
|
|
3998
4403
|
addComponentColumn(columnId, component, onComponentInitOrOptions) {
|
|
3999
|
-
return this.addColumn(new CustomValueColumnModel(columnId, () => this.getColumnTextProperties(columnId), row => row)).cellRenderer(component, onComponentInitOrOptions);
|
|
4404
|
+
return this.addColumn(new CustomValueColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId), row => row)).cellRenderer(component, onComponentInitOrOptions);
|
|
4000
4405
|
}
|
|
4001
|
-
addMoreMenu(componentClass) {
|
|
4406
|
+
addMoreMenu(componentClass, initialiseCallback) {
|
|
4002
4407
|
return this.addComponentColumn("more-menu", TableMoreMenuComponent, (component) => {
|
|
4003
|
-
component.configurePopupComponentType(componentClass);
|
|
4408
|
+
component.configurePopupComponentType(componentClass, initialiseCallback);
|
|
4004
4409
|
}).columnTextProperties({
|
|
4005
4410
|
headerText() {
|
|
4006
4411
|
return "";
|
|
4007
4412
|
}
|
|
4008
4413
|
});
|
|
4009
4414
|
}
|
|
4415
|
+
addFooterRow(component, initialiseCallback) {
|
|
4416
|
+
assert.isNil(this.footerRowModel);
|
|
4417
|
+
this.footerRowModel = new FooterRowModel.Impl(component, initialiseCallback);
|
|
4418
|
+
return this.footerRowModel;
|
|
4419
|
+
}
|
|
4010
4420
|
addTemplateColumn(columnId) {
|
|
4011
|
-
return this.addColumn(new CustomTemplateColumnModel(columnId, () => this.getColumnTextProperties(columnId)));
|
|
4421
|
+
return this.addColumn(new CustomTemplateColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId)));
|
|
4012
4422
|
}
|
|
4013
|
-
addRowClass(className, predicate) {
|
|
4423
|
+
addRowClass(className, predicate, options) {
|
|
4014
4424
|
this.rowClassNamePredicates.push(new RowClass(className, predicate));
|
|
4425
|
+
if (options) {
|
|
4426
|
+
this.viewStateDependsOn(...DependsOnOptions.extract(options));
|
|
4427
|
+
}
|
|
4428
|
+
}
|
|
4429
|
+
addRowAttribute(attributeName, getValue) {
|
|
4430
|
+
this.rowAttributeGenerators.push(new RowAttribute(attributeName, getValue));
|
|
4015
4431
|
}
|
|
4016
4432
|
getRowClasses(row) {
|
|
4017
4433
|
const classNames = [];
|
|
@@ -4022,8 +4438,13 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
4022
4438
|
});
|
|
4023
4439
|
return classNames;
|
|
4024
4440
|
}
|
|
4025
|
-
|
|
4026
|
-
return this.
|
|
4441
|
+
getRowAttributes(row) {
|
|
4442
|
+
return this.rowAttributeGenerators.reduce((result, generator) => {
|
|
4443
|
+
return { ...result, [generator.attributeName]: generator.getValue(row) };
|
|
4444
|
+
}, {});
|
|
4445
|
+
}
|
|
4446
|
+
addColumn(column, position) {
|
|
4447
|
+
return this.columnManager.addColumn(column, position);
|
|
4027
4448
|
}
|
|
4028
4449
|
columnTextProperties(columnTextProperties) {
|
|
4029
4450
|
this._columnTextPropertiesLookup = columnTextProperties;
|
|
@@ -4140,7 +4561,7 @@ class TableCellComponent extends DisposableComponent {
|
|
|
4140
4561
|
};
|
|
4141
4562
|
}
|
|
4142
4563
|
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:
|
|
4564
|
+
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
4565
|
}
|
|
4145
4566
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableCellComponent, decorators: [{
|
|
4146
4567
|
type: Component,
|
|
@@ -4179,7 +4600,7 @@ class TableHeaderCellComponent {
|
|
|
4179
4600
|
return this[HEADER_CELL_RENDERER_PORTAL];
|
|
4180
4601
|
}
|
|
4181
4602
|
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:
|
|
4603
|
+
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
4604
|
}
|
|
4184
4605
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableHeaderCellComponent, decorators: [{
|
|
4185
4606
|
type: Component,
|
|
@@ -4191,61 +4612,132 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
4191
4612
|
args: ['class']
|
|
4192
4613
|
}] } });
|
|
4193
4614
|
|
|
4615
|
+
// eslint-disable-next-line @angular-eslint/component-class-suffix
|
|
4616
|
+
class TableFooterRow {
|
|
4617
|
+
row;
|
|
4618
|
+
defaultClassNames = 'aup-footer-row-renderer';
|
|
4619
|
+
get rowClasses() {
|
|
4620
|
+
return this.row.getActiveRowClasses();
|
|
4621
|
+
}
|
|
4622
|
+
initialise($event) {
|
|
4623
|
+
this.row.onInit && this.row.onInit($event.instance);
|
|
4624
|
+
}
|
|
4625
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableFooterRow, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4626
|
+
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"] }] });
|
|
4627
|
+
}
|
|
4628
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableFooterRow, decorators: [{
|
|
4629
|
+
type: Component,
|
|
4630
|
+
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"] }]
|
|
4631
|
+
}], propDecorators: { row: [{
|
|
4632
|
+
type: Input
|
|
4633
|
+
}], defaultClassNames: [{
|
|
4634
|
+
type: HostBinding,
|
|
4635
|
+
args: ['class']
|
|
4636
|
+
}], rowClasses: [{
|
|
4637
|
+
type: HostBinding,
|
|
4638
|
+
args: ['class']
|
|
4639
|
+
}] } });
|
|
4640
|
+
|
|
4641
|
+
const AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER = new InjectionToken("AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER");
|
|
4642
|
+
class TableRowAttributesDirective {
|
|
4643
|
+
elementRef;
|
|
4644
|
+
aupTableRowAttributes;
|
|
4645
|
+
constructor(elementRef) {
|
|
4646
|
+
this.elementRef = elementRef;
|
|
4647
|
+
}
|
|
4648
|
+
ngOnInit() {
|
|
4649
|
+
for (const attr in this.aupTableRowAttributes) {
|
|
4650
|
+
this.elementRef.nativeElement.setAttribute(attr, this.aupTableRowAttributes[attr]);
|
|
4651
|
+
}
|
|
4652
|
+
}
|
|
4653
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableRowAttributesDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4654
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: TableRowAttributesDirective, selector: "[aupTableRowAttributes]", inputs: { aupTableRowAttributes: "aupTableRowAttributes" }, ngImport: i0 });
|
|
4655
|
+
}
|
|
4656
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableRowAttributesDirective, decorators: [{
|
|
4657
|
+
type: Directive,
|
|
4658
|
+
args: [{
|
|
4659
|
+
selector: "[aupTableRowAttributes]",
|
|
4660
|
+
}]
|
|
4661
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { aupTableRowAttributes: [{
|
|
4662
|
+
type: Input
|
|
4663
|
+
}] } });
|
|
4194
4664
|
class TableBodyComponent extends ResizeAwareComponent {
|
|
4665
|
+
bufferMultiplier;
|
|
4195
4666
|
#data$_accessor_storage = proxify((ListModel));
|
|
4196
4667
|
get data$() { return this.#data$_accessor_storage; }
|
|
4197
4668
|
set data$(value) { this.#data$_accessor_storage = value; }
|
|
4198
4669
|
#tableModel_accessor_storage = proxify((AbstractTableModel));
|
|
4199
4670
|
get tableModel() { return this.#tableModel_accessor_storage; }
|
|
4200
4671
|
set tableModel(value) { this.#tableModel_accessor_storage = value; }
|
|
4672
|
+
#footerRow_accessor_storage = proxify((FooterRowModel.Impl));
|
|
4673
|
+
get footerRow() { return this.#footerRow_accessor_storage; }
|
|
4674
|
+
set footerRow(value) { this.#footerRow_accessor_storage = value; }
|
|
4201
4675
|
#showHeader$_accessor_storage = proxify((ValueModel));
|
|
4202
4676
|
get showHeader$() { return this.#showHeader$_accessor_storage; }
|
|
4203
4677
|
set showHeader$(value) { this.#showHeader$_accessor_storage = value; }
|
|
4204
4678
|
#showHeader_accessor_storage = true;
|
|
4205
4679
|
get showHeader() { return this.#showHeader_accessor_storage; }
|
|
4206
4680
|
set showHeader(value) { this.#showHeader_accessor_storage = value; }
|
|
4207
|
-
visibleRowCount = new EventEmitter();
|
|
4208
4681
|
trackBy;
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4682
|
+
#scrollMode$_accessor_storage = proxify((ValueModel));
|
|
4683
|
+
get scrollMode$() { return this.#scrollMode$_accessor_storage; }
|
|
4684
|
+
set scrollMode$(value) { this.#scrollMode$_accessor_storage = value; }
|
|
4685
|
+
#scrollMode_accessor_storage = "none";
|
|
4686
|
+
get scrollMode() { return this.#scrollMode_accessor_storage; }
|
|
4687
|
+
set scrollMode(value) { this.#scrollMode_accessor_storage = value; }
|
|
4688
|
+
scrollViewport;
|
|
4215
4689
|
columns$;
|
|
4216
4690
|
columnIds$;
|
|
4217
4691
|
columnsById$;
|
|
4218
|
-
_visibleRowCount$;
|
|
4219
4692
|
// TODO: support user defined header and row heights via css vars.
|
|
4220
|
-
headerHeight$ = new MutableValueModel(
|
|
4221
|
-
rowHeight$ = new MutableValueModel(
|
|
4693
|
+
headerHeight$ = new MutableValueModel(48);
|
|
4694
|
+
rowHeight$ = new MutableValueModel(44);
|
|
4222
4695
|
baseCssClass = "aup-table-component";
|
|
4223
|
-
|
|
4224
|
-
|
|
4225
|
-
|
|
4696
|
+
virtualScrollDataSource = new TableVirtualScrollDataSource();
|
|
4697
|
+
virtualScrollActive$ = new MutableValueModel(false);
|
|
4698
|
+
scrollTimeout;
|
|
4699
|
+
constructor(bufferMultiplier = 1) {
|
|
4700
|
+
super();
|
|
4701
|
+
this.bufferMultiplier = bufferMultiplier;
|
|
4702
|
+
const { chain, when, observe } = Dsl.disposeWith(this);
|
|
4226
4703
|
const actualHeaderHeight$ = chain(this.showHeader$).map(show => {
|
|
4227
4704
|
return show ? this.headerHeight$.value : 0;
|
|
4228
4705
|
}, { 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" });
|
|
4706
|
+
// performance is terrible if the data changes while we're scrolling, so we postpone updates until
|
|
4707
|
+
// scrolling stops.
|
|
4708
|
+
const delayedDatea$ = chain(this.data$).postponeWhile(this.virtualScrollActive$);
|
|
4709
|
+
when(delayedDatea$).changes(delatedData => {
|
|
4710
|
+
this.virtualScrollDataSource.data = delatedData;
|
|
4711
|
+
this.scheduleTableHeightCheck();
|
|
4712
|
+
}, { initialValue: "evaluate" });
|
|
4240
4713
|
this.onInit(() => {
|
|
4241
|
-
this.columns$ = chain(this.tableModel.
|
|
4714
|
+
this.columns$ = chain(this.tableModel.visibleColumns$);
|
|
4242
4715
|
this.columnIds$ = chain(this.columns$).pluck("columnId");
|
|
4243
4716
|
this.columnsById$ = chain(this.columns$).indexBy('columnId');
|
|
4244
4717
|
});
|
|
4718
|
+
// const txo = new TransactionObserver({verbose: false}).onEvent(e => console.log(e.name, e.payload));
|
|
4719
|
+
// txo.observe('this.virtualScrollRowRange$', this.virtualScrollRowRange$);
|
|
4720
|
+
// txo.observe('this.virtualScrollSpacerSize$', this.virtualScrollSpacerSize$);
|
|
4721
|
+
// txo.observe('this.virtualRows$', this.virtualRows$);
|
|
4722
|
+
// txo.observe('this.tableBodyHeight$', this.tableBodyHeight$);
|
|
4723
|
+
// txo.observe('this.virtualScrollActive$', this.virtualScrollActive$);
|
|
4724
|
+
}
|
|
4725
|
+
ngAfterViewInit() {
|
|
4726
|
+
super.ngAfterViewInit();
|
|
4727
|
+
if (this.scrollViewport) {
|
|
4728
|
+
const { observe } = Dsl.disposeWith(this);
|
|
4729
|
+
this.scrollViewport.elementScrolled().subscribe(() => this.notifyScrolled());
|
|
4730
|
+
}
|
|
4245
4731
|
}
|
|
4246
4732
|
get hideHeader() {
|
|
4247
4733
|
return !this.showHeader;
|
|
4248
4734
|
}
|
|
4735
|
+
get headerHeightCssVar() {
|
|
4736
|
+
return `${this.headerHeight$.value}px`;
|
|
4737
|
+
}
|
|
4738
|
+
get rowHeightCssVar() {
|
|
4739
|
+
return `${this.rowHeight$.value}px`;
|
|
4740
|
+
}
|
|
4249
4741
|
isEditing(row) {
|
|
4250
4742
|
return !!this.tableModel.getEditSessionFor(row);
|
|
4251
4743
|
}
|
|
@@ -4270,51 +4762,110 @@ class TableBodyComponent extends ResizeAwareComponent {
|
|
|
4270
4762
|
}
|
|
4271
4763
|
return classes;
|
|
4272
4764
|
}
|
|
4273
|
-
|
|
4274
|
-
|
|
4765
|
+
scheduleTableHeightCheck(waitMillis = 50) {
|
|
4766
|
+
setTimeout(() => {
|
|
4767
|
+
const tbody = this.elementRef.nativeElement.querySelector("tbody");
|
|
4768
|
+
const bodyHeight = tbody.offsetHeight;
|
|
4769
|
+
if (this.data$.length > 0 && bodyHeight < this.rowHeight$.value) {
|
|
4770
|
+
// Hacks to get our virtual scroll to repaint
|
|
4771
|
+
// Logger.get(this).log(`rowCount=${this.data$.length}, bodyHeight=${bodyHeight} -> virtual table not rendering, triggering resize to force repaint`)
|
|
4772
|
+
window.dispatchEvent(new Event('resize'));
|
|
4773
|
+
if (waitMillis < 500) {
|
|
4774
|
+
this.scheduleTableHeightCheck(waitMillis + 50);
|
|
4775
|
+
}
|
|
4776
|
+
}
|
|
4777
|
+
}, waitMillis);
|
|
4778
|
+
}
|
|
4779
|
+
notifyScrolled() {
|
|
4780
|
+
this.virtualScrollActive$.value = true;
|
|
4781
|
+
this.clearScrollTimeout();
|
|
4782
|
+
this.scrollTimeout = setTimeout(() => {
|
|
4783
|
+
return this.virtualScrollActive$.value = false;
|
|
4784
|
+
}, 200);
|
|
4785
|
+
}
|
|
4786
|
+
clearScrollTimeout() {
|
|
4787
|
+
if (this.scrollTimeout) {
|
|
4788
|
+
clearTimeout(this.scrollTimeout);
|
|
4789
|
+
}
|
|
4790
|
+
}
|
|
4791
|
+
initialiseFooter($event) {
|
|
4792
|
+
const portalRef = $event;
|
|
4793
|
+
this.footerRow.onInit(portalRef.instance);
|
|
4794
|
+
}
|
|
4795
|
+
Proxify = Proxify;
|
|
4796
|
+
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 });
|
|
4797
|
+
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
4798
|
}
|
|
4276
4799
|
__decorate([
|
|
4277
4800
|
Proxify(),
|
|
4278
|
-
__metadata("design:type",
|
|
4801
|
+
__metadata("design:type", ListModel)
|
|
4279
4802
|
], TableBodyComponent.prototype, "data$", null);
|
|
4280
4803
|
__decorate([
|
|
4281
4804
|
Proxify(),
|
|
4282
|
-
__metadata("design:type",
|
|
4805
|
+
__metadata("design:type", AbstractTableModel)
|
|
4283
4806
|
], TableBodyComponent.prototype, "tableModel", null);
|
|
4284
4807
|
__decorate([
|
|
4285
4808
|
Proxify(),
|
|
4286
|
-
__metadata("design:type",
|
|
4809
|
+
__metadata("design:type", FooterRowModel.Impl)
|
|
4810
|
+
], TableBodyComponent.prototype, "footerRow", null);
|
|
4811
|
+
__decorate([
|
|
4812
|
+
Proxify(),
|
|
4813
|
+
__metadata("design:type", ValueModel)
|
|
4287
4814
|
], TableBodyComponent.prototype, "showHeader$", null);
|
|
4288
4815
|
__decorate([
|
|
4289
4816
|
StoreInValueModel(),
|
|
4290
4817
|
__metadata("design:type", Object)
|
|
4291
4818
|
], TableBodyComponent.prototype, "showHeader", null);
|
|
4819
|
+
__decorate([
|
|
4820
|
+
Proxify(),
|
|
4821
|
+
__metadata("design:type", ValueModel)
|
|
4822
|
+
], TableBodyComponent.prototype, "scrollMode$", null);
|
|
4823
|
+
__decorate([
|
|
4824
|
+
StoreInValueModel(),
|
|
4825
|
+
__metadata("design:type", String)
|
|
4826
|
+
], TableBodyComponent.prototype, "scrollMode", null);
|
|
4292
4827
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableBodyComponent, decorators: [{
|
|
4293
4828
|
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:
|
|
4829
|
+
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"] }]
|
|
4830
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
4831
|
+
type: Inject,
|
|
4832
|
+
args: [AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER]
|
|
4833
|
+
}, {
|
|
4834
|
+
type: Optional
|
|
4835
|
+
}] }]; }, propDecorators: { data$: [{
|
|
4296
4836
|
type: Input
|
|
4297
4837
|
}], tableModel: [{
|
|
4298
4838
|
type: Input
|
|
4839
|
+
}], footerRow: [{
|
|
4840
|
+
type: Input
|
|
4299
4841
|
}], showHeader$: [{
|
|
4300
4842
|
type: Input
|
|
4301
4843
|
}], showHeader: [{
|
|
4302
4844
|
type: Input
|
|
4303
|
-
}], visibleRowCount: [{
|
|
4304
|
-
type: Output
|
|
4305
4845
|
}], trackBy: [{
|
|
4306
4846
|
type: Input
|
|
4307
|
-
}],
|
|
4847
|
+
}], scrollMode$: [{
|
|
4848
|
+
type: Input
|
|
4849
|
+
}], scrollMode: [{
|
|
4308
4850
|
type: Input
|
|
4309
4851
|
}, {
|
|
4310
4852
|
type: HostBinding,
|
|
4311
|
-
args: ["
|
|
4853
|
+
args: ["attr.scrollMode"]
|
|
4854
|
+
}], scrollViewport: [{
|
|
4855
|
+
type: ViewChild,
|
|
4856
|
+
args: [CdkVirtualScrollViewport]
|
|
4312
4857
|
}], baseCssClass: [{
|
|
4313
4858
|
type: HostBinding,
|
|
4314
4859
|
args: ["class"]
|
|
4315
4860
|
}], hideHeader: [{
|
|
4316
4861
|
type: HostBinding,
|
|
4317
4862
|
args: ["class.hide-header"]
|
|
4863
|
+
}], headerHeightCssVar: [{
|
|
4864
|
+
type: HostBinding,
|
|
4865
|
+
args: ["style.--aup-table-header-height"]
|
|
4866
|
+
}], rowHeightCssVar: [{
|
|
4867
|
+
type: HostBinding,
|
|
4868
|
+
args: ["style.--aup-table-row-height"]
|
|
4318
4869
|
}] } });
|
|
4319
4870
|
|
|
4320
4871
|
class TableMoreMenuPopupComponent extends DisposableComponent {
|
|
@@ -4435,8 +4986,10 @@ class TableFilterModel extends GarbageCollector {
|
|
|
4435
4986
|
this.useSearchText(options.searchText$);
|
|
4436
4987
|
this.useRowPredicate(options.predicate$);
|
|
4437
4988
|
const { chain } = Dsl.disposeWith(this);
|
|
4438
|
-
const textSearchRegex$ = chain(this._searchText$)
|
|
4439
|
-
|
|
4989
|
+
const textSearchRegex$ = chain(this._searchText$)
|
|
4990
|
+
.debounce(250)
|
|
4991
|
+
.map(text => {
|
|
4992
|
+
return isEmpty(text) ? undefined : new RegExp(escapeStringRegexp(text), "i");
|
|
4440
4993
|
}, { allowNil: true });
|
|
4441
4994
|
this._rowPredicate = chain(this._rowPredicate$)
|
|
4442
4995
|
.map(predicate => {
|
|
@@ -4644,31 +5197,30 @@ class TableComponent extends AbstractTableComponent {
|
|
|
4644
5197
|
#filterModel_accessor_storage = proxify((TableFilterModel));
|
|
4645
5198
|
get filterModel() { return this.#filterModel_accessor_storage; }
|
|
4646
5199
|
set filterModel(value) { this.#filterModel_accessor_storage = value; }
|
|
4647
|
-
|
|
4648
|
-
|
|
4649
|
-
|
|
4650
|
-
|
|
4651
|
-
|
|
4652
|
-
|
|
4653
|
-
|
|
4654
|
-
|
|
4655
|
-
|
|
4656
|
-
|
|
4657
|
-
|
|
4658
|
-
// }
|
|
4659
|
-
// }
|
|
5200
|
+
tableBody;
|
|
5201
|
+
#scrollMode$_accessor_storage = proxify((ValueModel));
|
|
5202
|
+
/**
|
|
5203
|
+
* 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
|
|
5204
|
+
* renders all rows but allows row heights to grow.
|
|
5205
|
+
*/
|
|
5206
|
+
get scrollMode$() { return this.#scrollMode$_accessor_storage; }
|
|
5207
|
+
set scrollMode$(value) { this.#scrollMode$_accessor_storage = value; }
|
|
5208
|
+
#scrollMode_accessor_storage;
|
|
5209
|
+
get scrollMode() { return this.#scrollMode_accessor_storage; }
|
|
5210
|
+
set scrollMode(value) { this.#scrollMode_accessor_storage = value; }
|
|
4660
5211
|
_footerContentAdded = false;
|
|
4661
5212
|
_filteredRows$ = this.registerDisposable(new DelegatingListModel());
|
|
4662
|
-
|
|
4663
|
-
pagedListModel;
|
|
5213
|
+
tableBodyScrollMode$;
|
|
4664
5214
|
constructor(injector) {
|
|
4665
5215
|
super(injector);
|
|
4666
|
-
const { when } = Dsl.disposeWith(this);
|
|
4667
|
-
this.
|
|
4668
|
-
|
|
5216
|
+
const { chain, when } = Dsl.disposeWith(this);
|
|
5217
|
+
this.tableBodyScrollMode$ = chain(this.enableScrolling$).map(enable => {
|
|
5218
|
+
return enable ? (this.scrollMode$.value ?? "virtual") : 'none';
|
|
5219
|
+
}, { dependsOn: this.scrollMode$ });
|
|
4669
5220
|
}
|
|
4670
5221
|
ngOnInit() {
|
|
4671
5222
|
super.ngOnInit();
|
|
5223
|
+
const { when } = Dsl.disposeWith(this);
|
|
4672
5224
|
if (CanProxy.hasTarget(this.filterModel)) {
|
|
4673
5225
|
this.registerDisposable(this.filterModel.bindToTable(this._dataSource$, this.getModel().textSearchPredicate$));
|
|
4674
5226
|
this.highlightText$.setDelegate(this.filterModel.highlightText$);
|
|
@@ -4677,50 +5229,27 @@ class TableComponent extends AbstractTableComponent {
|
|
|
4677
5229
|
else {
|
|
4678
5230
|
this._filteredRows$.setDelegate(this._dataSource$);
|
|
4679
5231
|
}
|
|
4680
|
-
this.
|
|
5232
|
+
this._visibleRows$.setDelegate(this._filteredRows$);
|
|
5233
|
+
// let users of the model know what the current visible and filtered rows are for selection models and what not
|
|
4681
5234
|
this.tableModel.bindToTable(this._filteredRows$, this._visibleRows$);
|
|
5235
|
+
when.anyOf(...this.tableModel.viewStateDependencies).changes(() => this.cdr.markForCheck());
|
|
5236
|
+
this.viewStateDependsOn(this._filteredRows$, this.tableModel.visibleColumns$);
|
|
4682
5237
|
}
|
|
4683
5238
|
getModel() {
|
|
4684
5239
|
return this.tableModel;
|
|
4685
5240
|
}
|
|
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
5241
|
footerContentChanged($event) {
|
|
4709
5242
|
// console.log($event);
|
|
4710
5243
|
this._footerContentAdded = true;
|
|
4711
5244
|
}
|
|
4712
|
-
//@Trace()
|
|
4713
|
-
updatePageSize(count) {
|
|
4714
|
-
this._pageSize.value = count;
|
|
4715
|
-
}
|
|
4716
5245
|
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",
|
|
5246
|
+
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
5247
|
{ provide: AbstractTableComponent, useExisting: TableComponent }
|
|
4719
|
-
], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"tableModel\"\n [
|
|
5248
|
+
], 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
5249
|
}
|
|
4721
5250
|
__decorate([
|
|
4722
5251
|
Proxify(),
|
|
4723
|
-
__metadata("design:type",
|
|
5252
|
+
__metadata("design:type", TableModel)
|
|
4724
5253
|
], TableComponent.prototype, "tableModel", null);
|
|
4725
5254
|
__decorate([
|
|
4726
5255
|
Proxify(),
|
|
@@ -4728,24 +5257,27 @@ __decorate([
|
|
|
4728
5257
|
], TableComponent.prototype, "filterModel", null);
|
|
4729
5258
|
__decorate([
|
|
4730
5259
|
Proxify(),
|
|
4731
|
-
__metadata("design:type",
|
|
4732
|
-
], TableComponent.prototype, "
|
|
5260
|
+
__metadata("design:type", ValueModel)
|
|
5261
|
+
], TableComponent.prototype, "scrollMode$", null);
|
|
4733
5262
|
__decorate([
|
|
4734
5263
|
StoreInValueModel(),
|
|
4735
5264
|
__metadata("design:type", Object)
|
|
4736
|
-
], TableComponent.prototype, "
|
|
5265
|
+
], TableComponent.prototype, "scrollMode", null);
|
|
4737
5266
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableComponent, decorators: [{
|
|
4738
5267
|
type: Component,
|
|
4739
5268
|
args: [{ selector: 'aup-table', providers: [
|
|
4740
5269
|
{ provide: AbstractTableComponent, useExisting: TableComponent }
|
|
4741
|
-
], template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"tableModel\"\n [
|
|
5270
|
+
], 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
5271
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { tableModel: [{
|
|
4743
5272
|
type: Input
|
|
4744
5273
|
}], filterModel: [{
|
|
4745
5274
|
type: Input
|
|
4746
|
-
}],
|
|
5275
|
+
}], tableBody: [{
|
|
5276
|
+
type: ViewChild,
|
|
5277
|
+
args: [TableBodyComponent]
|
|
5278
|
+
}], scrollMode$: [{
|
|
4747
5279
|
type: Input
|
|
4748
|
-
}],
|
|
5280
|
+
}], scrollMode: [{
|
|
4749
5281
|
type: Input
|
|
4750
5282
|
}] } });
|
|
4751
5283
|
|
|
@@ -4927,7 +5459,7 @@ var DecoratedTreeNode;
|
|
|
4927
5459
|
}
|
|
4928
5460
|
}
|
|
4929
5461
|
__decorate([
|
|
4930
|
-
|
|
5462
|
+
MemoizeGet(),
|
|
4931
5463
|
__metadata("design:type", Array),
|
|
4932
5464
|
__metadata("design:paramtypes", [])
|
|
4933
5465
|
], Decorator.prototype, "children", null);
|
|
@@ -4980,7 +5512,7 @@ var DecoratedTreeNode;
|
|
|
4980
5512
|
__metadata("design:returntype", Array)
|
|
4981
5513
|
], Decorator.prototype, "ancestors", null);
|
|
4982
5514
|
__decorate([
|
|
4983
|
-
|
|
5515
|
+
MemoizeGet(),
|
|
4984
5516
|
__metadata("design:type", Number),
|
|
4985
5517
|
__metadata("design:paramtypes", [])
|
|
4986
5518
|
], Decorator.prototype, "depth", null);
|
|
@@ -4991,8 +5523,8 @@ class TreeLabelColumnModel extends ColumnModel {
|
|
|
4991
5523
|
expansionModel;
|
|
4992
5524
|
labelFactory = () => undefined;
|
|
4993
5525
|
iconFactory;
|
|
4994
|
-
constructor(columnId, textPropertiesProvider, expansionModel) {
|
|
4995
|
-
super(columnId, textPropertiesProvider);
|
|
5526
|
+
constructor(columnId, order, textPropertiesProvider, expansionModel) {
|
|
5527
|
+
super(columnId, order, textPropertiesProvider);
|
|
4996
5528
|
this.expansionModel = expansionModel;
|
|
4997
5529
|
this.cellRenderer(TreeLabelCellRendererComponent);
|
|
4998
5530
|
}
|
|
@@ -5051,7 +5583,7 @@ class TreeTableModel extends AbstractTableModel {
|
|
|
5051
5583
|
get isExpandedPredicate$() {
|
|
5052
5584
|
return this._isExpandedPredicate$.readonly$;
|
|
5053
5585
|
}
|
|
5054
|
-
bindToTable(expansionModel, filteredRows$, visibleRows
|
|
5586
|
+
bindToTable(expansionModel, filteredRows$, visibleRows$, cdr) {
|
|
5055
5587
|
this.treeExpansionModel = expansionModel;
|
|
5056
5588
|
// TODO: Move all the expansion model stuff out of here and have things use the expansion model directly
|
|
5057
5589
|
this._isExpandedPredicate$.setDelegate(this.treeExpansionModel.isExpandedPredicate$);
|
|
@@ -5060,7 +5592,7 @@ class TreeTableModel extends AbstractTableModel {
|
|
|
5060
5592
|
}
|
|
5061
5593
|
treeControlColumn(builder) {
|
|
5062
5594
|
const columnId = 'tree-label';
|
|
5063
|
-
const column = new TreeLabelColumnModel(columnId, () => this.getColumnTextProperties(columnId), this);
|
|
5595
|
+
const column = new TreeLabelColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId), this);
|
|
5064
5596
|
builder(column);
|
|
5065
5597
|
this.addColumn(column);
|
|
5066
5598
|
}
|
|
@@ -5386,11 +5918,15 @@ class TreeTableComponent extends AbstractTableComponent {
|
|
|
5386
5918
|
#expansionModel_accessor_storage = proxify((TreeExpansionModel));
|
|
5387
5919
|
get expansionModel() { return this.#expansionModel_accessor_storage; }
|
|
5388
5920
|
set expansionModel(value) { this.#expansionModel_accessor_storage = value; }
|
|
5921
|
+
scrollMode$;
|
|
5389
5922
|
constructor(injector) {
|
|
5390
5923
|
super(injector);
|
|
5924
|
+
const { chain } = Dsl.disposeWith(this);
|
|
5925
|
+
this.scrollMode$ = chain(this.enableScrolling$).map(enabled => enabled ? "classic" : "none");
|
|
5391
5926
|
}
|
|
5392
5927
|
ngOnInit() {
|
|
5393
5928
|
super.ngOnInit();
|
|
5929
|
+
const { when } = Dsl.disposeWith(this);
|
|
5394
5930
|
// TODO: clean up all this tightly coupled shit, should the expansion model really be separate from the tree model?
|
|
5395
5931
|
if (!this.expansionModel) {
|
|
5396
5932
|
this.expansionModel = new TreeExpansionModel({ disposedWith: this });
|
|
@@ -5399,7 +5935,10 @@ class TreeTableComponent extends AbstractTableComponent {
|
|
|
5399
5935
|
const visibleRows$ = new FlattenedTreeListModel(this._dataSource$, row => this.treeTableModel.childExtractor(row), this.expansionModel);
|
|
5400
5936
|
this._visibleRows$.setDelegate(visibleRows$);
|
|
5401
5937
|
this.expansionModel.bindToTable(this._dataSource$, visibleRows$);
|
|
5402
|
-
this.treeTableModel.bindToTable(this.expansionModel, visibleRows$, this._visibleRows
|
|
5938
|
+
this.treeTableModel.bindToTable(this.expansionModel, visibleRows$, this._visibleRows$, this.cdr);
|
|
5939
|
+
this.viewStateDependsOn(this.treeTableModel.visibleRows$);
|
|
5940
|
+
this.viewStateDependsOn(this.treeTableModel.visibleRows$);
|
|
5941
|
+
when.anyOf(...this.treeTableModel.viewStateDependencies).changes(() => this.cdr.markForCheck());
|
|
5403
5942
|
}
|
|
5404
5943
|
getModel() {
|
|
5405
5944
|
return this.treeTableModel;
|
|
@@ -5407,7 +5946,7 @@ class TreeTableComponent extends AbstractTableComponent {
|
|
|
5407
5946
|
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
5947
|
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
5948
|
{ provide: AbstractTableComponent, useExisting: TreeTableComponent }
|
|
5410
|
-
], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"treeTableModel\"\n [showHeader$]=\"showHeader$\"\n [
|
|
5949
|
+
], 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
5950
|
}
|
|
5412
5951
|
__decorate([
|
|
5413
5952
|
Proxify(),
|
|
@@ -5421,7 +5960,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5421
5960
|
type: Component,
|
|
5422
5961
|
args: [{ selector: 'aup-tree-table', providers: [
|
|
5423
5962
|
{ provide: AbstractTableComponent, useExisting: TreeTableComponent }
|
|
5424
|
-
], template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"treeTableModel\"\n [showHeader$]=\"showHeader$\"\n [
|
|
5963
|
+
], 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
5964
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { treeTableModel: [{
|
|
5426
5965
|
type: Input
|
|
5427
5966
|
}], expansionModel: [{
|
|
@@ -5603,6 +6142,7 @@ class ComponentsModule {
|
|
|
5603
6142
|
FocusableComponent,
|
|
5604
6143
|
CardContainerComponent,
|
|
5605
6144
|
TableComponent,
|
|
6145
|
+
TableRowAttributesDirective,
|
|
5606
6146
|
EditRowControlsComponent,
|
|
5607
6147
|
ColumnTemplateDirective,
|
|
5608
6148
|
DefaultCellRendererComponent,
|
|
@@ -5636,7 +6176,9 @@ class ComponentsModule {
|
|
|
5636
6176
|
MarkdownComponent,
|
|
5637
6177
|
TableBodyComponent,
|
|
5638
6178
|
TableMoreMenuComponent,
|
|
5639
|
-
TableMoreMenuPopupComponent
|
|
6179
|
+
TableMoreMenuPopupComponent,
|
|
6180
|
+
SearchInputComponent,
|
|
6181
|
+
TableFooterRow], imports: [CommonModule,
|
|
5640
6182
|
BrowserAnimationsModule,
|
|
5641
6183
|
FormsModule,
|
|
5642
6184
|
MatInputModule,
|
|
@@ -5655,7 +6197,10 @@ class ComponentsModule {
|
|
|
5655
6197
|
MatMenuModule,
|
|
5656
6198
|
MatDividerModule,
|
|
5657
6199
|
MatProgressSpinnerModule,
|
|
5658
|
-
MatProgressBarModule
|
|
6200
|
+
MatProgressBarModule,
|
|
6201
|
+
ScrollingModule,
|
|
6202
|
+
TableVirtualScrollModule], exports: [TableFooterRow,
|
|
6203
|
+
NumberInputComponent,
|
|
5659
6204
|
StringInputComponent,
|
|
5660
6205
|
TextInputComponent,
|
|
5661
6206
|
PasswordInputComponent,
|
|
@@ -5693,7 +6238,8 @@ class ComponentsModule {
|
|
|
5693
6238
|
LoadingContainerComponent,
|
|
5694
6239
|
MarkdownComponent,
|
|
5695
6240
|
TableMoreMenuComponent,
|
|
5696
|
-
TableMoreMenuPopupComponent
|
|
6241
|
+
TableMoreMenuPopupComponent,
|
|
6242
|
+
SearchInputComponent] });
|
|
5697
6243
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ComponentsModule, providers: [
|
|
5698
6244
|
FocusBindingFactory,
|
|
5699
6245
|
MarkdownService
|
|
@@ -5716,7 +6262,9 @@ class ComponentsModule {
|
|
|
5716
6262
|
MatMenuModule,
|
|
5717
6263
|
MatDividerModule,
|
|
5718
6264
|
MatProgressSpinnerModule,
|
|
5719
|
-
MatProgressBarModule
|
|
6265
|
+
MatProgressBarModule,
|
|
6266
|
+
ScrollingModule,
|
|
6267
|
+
TableVirtualScrollModule] });
|
|
5720
6268
|
}
|
|
5721
6269
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ComponentsModule, decorators: [{
|
|
5722
6270
|
type: NgModule,
|
|
@@ -5741,7 +6289,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5741
6289
|
MatMenuModule,
|
|
5742
6290
|
MatDividerModule,
|
|
5743
6291
|
MatProgressSpinnerModule,
|
|
5744
|
-
MatProgressBarModule
|
|
6292
|
+
MatProgressBarModule,
|
|
6293
|
+
ScrollingModule,
|
|
6294
|
+
TableVirtualScrollModule
|
|
5745
6295
|
],
|
|
5746
6296
|
declarations: [
|
|
5747
6297
|
AbstractInputComponent,
|
|
@@ -5765,6 +6315,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5765
6315
|
FocusableComponent,
|
|
5766
6316
|
CardContainerComponent,
|
|
5767
6317
|
TableComponent,
|
|
6318
|
+
TableRowAttributesDirective,
|
|
5768
6319
|
EditRowControlsComponent,
|
|
5769
6320
|
ColumnTemplateDirective,
|
|
5770
6321
|
DefaultCellRendererComponent,
|
|
@@ -5799,8 +6350,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5799
6350
|
TableBodyComponent,
|
|
5800
6351
|
TableMoreMenuComponent,
|
|
5801
6352
|
TableMoreMenuPopupComponent,
|
|
6353
|
+
SearchInputComponent,
|
|
6354
|
+
TableFooterRow
|
|
5802
6355
|
],
|
|
5803
6356
|
exports: [
|
|
6357
|
+
TableFooterRow,
|
|
5804
6358
|
NumberInputComponent,
|
|
5805
6359
|
StringInputComponent,
|
|
5806
6360
|
TextInputComponent,
|
|
@@ -5840,6 +6394,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5840
6394
|
MarkdownComponent,
|
|
5841
6395
|
TableMoreMenuComponent,
|
|
5842
6396
|
TableMoreMenuPopupComponent,
|
|
6397
|
+
SearchInputComponent
|
|
5843
6398
|
],
|
|
5844
6399
|
providers: [
|
|
5845
6400
|
FocusBindingFactory,
|
|
@@ -5848,6 +6403,73 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5848
6403
|
}]
|
|
5849
6404
|
}] });
|
|
5850
6405
|
|
|
6406
|
+
class LoadableComponent extends DisposableComponent {
|
|
6407
|
+
#_loaded$ = new MutableValueModel();
|
|
6408
|
+
#asyncLoadables = [];
|
|
6409
|
+
#awaitedLoadables = [];
|
|
6410
|
+
get loaded$() {
|
|
6411
|
+
return this.#_loaded$.readonly$;
|
|
6412
|
+
}
|
|
6413
|
+
ngOnInit() {
|
|
6414
|
+
super.ngOnInit();
|
|
6415
|
+
this.#asyncLoadables.forEach(it => it.ensureLoaded());
|
|
6416
|
+
if (this.#awaitedLoadables.length > 0) {
|
|
6417
|
+
Promise.all(this.#awaitedLoadables.map(it => {
|
|
6418
|
+
return it.ensureLoaded(); //.then(() => console.log(`${it.constructor.name} loaded`));
|
|
6419
|
+
})).then(() => {
|
|
6420
|
+
this.#_loaded$.value = true;
|
|
6421
|
+
});
|
|
6422
|
+
}
|
|
6423
|
+
else {
|
|
6424
|
+
this.#_loaded$.value = true;
|
|
6425
|
+
}
|
|
6426
|
+
}
|
|
6427
|
+
injectLoadable(token, options) {
|
|
6428
|
+
return this.registerLoadable(inject(token, options), options);
|
|
6429
|
+
}
|
|
6430
|
+
registerLoadable(loadable, options) {
|
|
6431
|
+
if (this.loaded$.value) {
|
|
6432
|
+
loadable.ensureLoaded();
|
|
6433
|
+
}
|
|
6434
|
+
else {
|
|
6435
|
+
if (!options || options.wait === true) {
|
|
6436
|
+
this.#awaitedLoadables.push(loadable);
|
|
6437
|
+
}
|
|
6438
|
+
else {
|
|
6439
|
+
this.#asyncLoadables.push(loadable);
|
|
6440
|
+
}
|
|
6441
|
+
}
|
|
6442
|
+
return loadable;
|
|
6443
|
+
}
|
|
6444
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
6445
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: LoadableComponent, usesInheritance: true, ngImport: i0 });
|
|
6446
|
+
}
|
|
6447
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, decorators: [{
|
|
6448
|
+
type: Directive
|
|
6449
|
+
}] });
|
|
6450
|
+
|
|
6451
|
+
class TextSearchContext {
|
|
6452
|
+
row;
|
|
6453
|
+
searchText;
|
|
6454
|
+
searchRegex;
|
|
6455
|
+
constructor(row, searchText, searchRegex) {
|
|
6456
|
+
this.row = row;
|
|
6457
|
+
this.searchText = searchText;
|
|
6458
|
+
this.searchRegex = searchRegex;
|
|
6459
|
+
}
|
|
6460
|
+
getOrCreate(type, create) {
|
|
6461
|
+
}
|
|
6462
|
+
matchesText(text) {
|
|
6463
|
+
return this.searchRegex.test(text);
|
|
6464
|
+
}
|
|
6465
|
+
}
|
|
6466
|
+
|
|
6467
|
+
class AbstractCellRenderer extends LoadableComponent {
|
|
6468
|
+
constructor() {
|
|
6469
|
+
super();
|
|
6470
|
+
}
|
|
6471
|
+
}
|
|
6472
|
+
|
|
5851
6473
|
/**
|
|
5852
6474
|
* @file Automatically generated by barrelsby.
|
|
5853
6475
|
*/
|
|
@@ -5874,7 +6496,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5874
6496
|
* </aup-activity-actions>
|
|
5875
6497
|
*/
|
|
5876
6498
|
class ActivityActionsComponent extends DisposableComponent {
|
|
5877
|
-
cdr;
|
|
5878
6499
|
confirmCommandComponent;
|
|
5879
6500
|
cancelCommandComponent;
|
|
5880
6501
|
#confirmCommand_accessor_storage = proxify((Command));
|
|
@@ -5903,9 +6524,9 @@ class ActivityActionsComponent extends DisposableComponent {
|
|
|
5903
6524
|
}
|
|
5904
6525
|
layout = ActivityActionsComponent.Layout.BLOCK;
|
|
5905
6526
|
align = ActivityActionsComponent.Align.STRETCH;
|
|
5906
|
-
|
|
6527
|
+
alignContent = ActivityActionsComponent.AlignContent.CENTER;
|
|
6528
|
+
constructor() {
|
|
5907
6529
|
super();
|
|
5908
|
-
this.cdr = cdr;
|
|
5909
6530
|
}
|
|
5910
6531
|
hasConfirmFace() {
|
|
5911
6532
|
return !!this.confirmFace;
|
|
@@ -5924,8 +6545,8 @@ class ActivityActionsComponent extends DisposableComponent {
|
|
|
5924
6545
|
focusCancel() {
|
|
5925
6546
|
this.cancelCommandComponent.requestFocus();
|
|
5926
6547
|
}
|
|
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=\"
|
|
6548
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6549
|
+
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
6550
|
}
|
|
5930
6551
|
__decorate([
|
|
5931
6552
|
Proxify(),
|
|
@@ -5937,8 +6558,8 @@ __decorate([
|
|
|
5937
6558
|
], ActivityActionsComponent.prototype, "cancelCommand", null);
|
|
5938
6559
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, decorators: [{
|
|
5939
6560
|
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 [
|
|
6561
|
+
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"] }]
|
|
6562
|
+
}], ctorParameters: function () { return []; }, propDecorators: { confirmCommandComponent: [{
|
|
5942
6563
|
type: ViewChild,
|
|
5943
6564
|
args: ["confirmCommandComponent"]
|
|
5944
6565
|
}], cancelCommandComponent: [{
|
|
@@ -5966,6 +6587,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5966
6587
|
}, {
|
|
5967
6588
|
type: HostBinding,
|
|
5968
6589
|
args: ['attr.align']
|
|
6590
|
+
}], alignContent: [{
|
|
6591
|
+
type: Input
|
|
6592
|
+
}, {
|
|
6593
|
+
type: HostBinding,
|
|
6594
|
+
args: ['attr.align-content']
|
|
5969
6595
|
}] } });
|
|
5970
6596
|
(function (ActivityActionsComponent) {
|
|
5971
6597
|
ActivityActionsComponent.Layout = Enum({
|
|
@@ -5974,14 +6600,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5974
6600
|
});
|
|
5975
6601
|
ActivityActionsComponent.Align = Enum({
|
|
5976
6602
|
START: 'start',
|
|
5977
|
-
|
|
5978
|
-
|
|
6603
|
+
STRETCH: 'stretch',
|
|
6604
|
+
END: 'end'
|
|
6605
|
+
});
|
|
6606
|
+
ActivityActionsComponent.AlignContent = Enum({
|
|
6607
|
+
START: 'start',
|
|
6608
|
+
CENTER: 'center',
|
|
6609
|
+
END: 'end'
|
|
5979
6610
|
});
|
|
5980
6611
|
})(ActivityActionsComponent || (ActivityActionsComponent = {}));
|
|
5981
6612
|
|
|
5982
6613
|
const ACTIVITY_DATA = new InjectionToken("InteractionActivityData");
|
|
5983
6614
|
// eslint-disable-next-line @angular-eslint/component-class-suffix
|
|
5984
|
-
class Activity extends
|
|
6615
|
+
class Activity extends LoadableComponent {
|
|
5985
6616
|
activityData = inject(ACTIVITY_DATA);
|
|
5986
6617
|
activityReadyListeners = new EventListenerList();
|
|
5987
6618
|
_busy$ = this.registerDisposable(new DelegatingValueModel().withDefault(false));
|
|
@@ -6036,7 +6667,6 @@ class Activity extends DisposableComponent {
|
|
|
6036
6667
|
notifyActivityReady() {
|
|
6037
6668
|
this.activityReadyListeners.fire(l => l(this));
|
|
6038
6669
|
this._ready$.value = true;
|
|
6039
|
-
console.log("ready");
|
|
6040
6670
|
}
|
|
6041
6671
|
onActivityReady(callback) {
|
|
6042
6672
|
return this.activityReadyListeners.add(callback);
|
|
@@ -6156,7 +6786,7 @@ class AbstractDialogComponent extends Activity {
|
|
|
6156
6786
|
}
|
|
6157
6787
|
}
|
|
6158
6788
|
isDestructive() {
|
|
6159
|
-
return isFunction
|
|
6789
|
+
return isFunction(this.config['destructive']) && this.config["destructive"]();
|
|
6160
6790
|
}
|
|
6161
6791
|
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
6792
|
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 +6803,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
6173
6803
|
|
|
6174
6804
|
class AbstractConfirmDialogComponent extends AbstractDialogComponent {
|
|
6175
6805
|
cancelFace;
|
|
6806
|
+
confirmClass = "aup-confirm-activity";
|
|
6176
6807
|
constructor(config) {
|
|
6177
6808
|
super(config);
|
|
6178
6809
|
this.cancelFace = {
|
|
@@ -6183,7 +6814,7 @@ class AbstractConfirmDialogComponent extends AbstractDialogComponent {
|
|
|
6183
6814
|
});
|
|
6184
6815
|
}
|
|
6185
6816
|
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 });
|
|
6817
|
+
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
6818
|
}
|
|
6188
6819
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractConfirmDialogComponent, decorators: [{
|
|
6189
6820
|
type: Component,
|
|
@@ -6193,7 +6824,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
6193
6824
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
6194
6825
|
type: Inject,
|
|
6195
6826
|
args: [ALERT_CONFIG]
|
|
6196
|
-
}] }]; }
|
|
6827
|
+
}] }]; }, propDecorators: { confirmClass: [{
|
|
6828
|
+
type: HostBinding,
|
|
6829
|
+
args: ["class"]
|
|
6830
|
+
}] } });
|
|
6197
6831
|
|
|
6198
6832
|
class ActivityBodyComponent extends DisposableComponent {
|
|
6199
6833
|
fullWidth = false;
|
|
@@ -6732,7 +7366,7 @@ const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');
|
|
|
6732
7366
|
// return true;
|
|
6733
7367
|
// }
|
|
6734
7368
|
// }
|
|
6735
|
-
class PlaceComponent extends
|
|
7369
|
+
class PlaceComponent extends LoadableComponent {
|
|
6736
7370
|
_placeReadyCallbacks = [];
|
|
6737
7371
|
visitModel = new MutableValueModel();
|
|
6738
7372
|
_inVisitUpdate = new Guard();
|
|
@@ -6789,6 +7423,7 @@ class PlaceComponent extends DisposableComponent {
|
|
|
6789
7423
|
*/
|
|
6790
7424
|
installAndInitialiseBinding(initialVisit, parameterDef) {
|
|
6791
7425
|
const model = this[parameterDef.propertyName];
|
|
7426
|
+
assert.notNil(model);
|
|
6792
7427
|
DebugContext.tag(model, `${this.placeDefinition.component.name}.${parameterDef.propertyName}`);
|
|
6793
7428
|
const binding = this.registerDisposable(new Binding(this.visitModel, model, {
|
|
6794
7429
|
toRight(visit) {
|
|
@@ -6873,7 +7508,7 @@ class PlaceComponent extends DisposableComponent {
|
|
|
6873
7508
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: PlaceComponent, usesInheritance: true, ngImport: i0 });
|
|
6874
7509
|
}
|
|
6875
7510
|
__decorate([
|
|
6876
|
-
|
|
7511
|
+
MemoizeGet(),
|
|
6877
7512
|
__metadata("design:type", PlaceDefinition),
|
|
6878
7513
|
__metadata("design:paramtypes", [])
|
|
6879
7514
|
], PlaceComponent.prototype, "placeDefinition", null);
|
|
@@ -7063,7 +7698,7 @@ class Visit {
|
|
|
7063
7698
|
getRouterCommands() {
|
|
7064
7699
|
return this.segments.reduce((result, v) => {
|
|
7065
7700
|
const path = v.placeDefinition.path;
|
|
7066
|
-
return isEmpty
|
|
7701
|
+
return isEmpty(path) ?
|
|
7067
7702
|
[...result, path] : // Angular doesn't support route params on empty path segments
|
|
7068
7703
|
[...result, path, ...v.createRouterCommands()];
|
|
7069
7704
|
}, []);
|
|
@@ -7079,7 +7714,7 @@ class Visit {
|
|
|
7079
7714
|
}
|
|
7080
7715
|
}
|
|
7081
7716
|
__decorate([
|
|
7082
|
-
Memoize
|
|
7717
|
+
Memoize(),
|
|
7083
7718
|
__metadata("design:type", Function),
|
|
7084
7719
|
__metadata("design:paramtypes", [PlaceDefinition]),
|
|
7085
7720
|
__metadata("design:returntype", VisitSegment)
|
|
@@ -7460,10 +8095,7 @@ class SynchroniseInteractionContextIdsWithRoute extends NavigationSession {
|
|
|
7460
8095
|
return true;
|
|
7461
8096
|
}
|
|
7462
8097
|
notifyActive() {
|
|
7463
|
-
|
|
7464
|
-
setTimeout(() => {
|
|
7465
|
-
this.syncInteractionIdsWithRouter();
|
|
7466
|
-
});
|
|
8098
|
+
this.syncInteractionIdsWithRouter();
|
|
7467
8099
|
}
|
|
7468
8100
|
// @Trace()
|
|
7469
8101
|
onRouterEnd(event) {
|
|
@@ -8206,7 +8838,7 @@ class ConsolidatedParameterMap {
|
|
|
8206
8838
|
}
|
|
8207
8839
|
}
|
|
8208
8840
|
__decorate([
|
|
8209
|
-
|
|
8841
|
+
MemoizeGet(),
|
|
8210
8842
|
__metadata("design:type", Array),
|
|
8211
8843
|
__metadata("design:paramtypes", [])
|
|
8212
8844
|
], ConsolidatedParameterMap.prototype, "keys", null);
|
|
@@ -8284,7 +8916,7 @@ class UrlSnapshot {
|
|
|
8284
8916
|
return this.getPrimaryUrlSegments().find(s => s.path === placeDef.path);
|
|
8285
8917
|
}
|
|
8286
8918
|
isLastPlaceInUrl(placeDef) {
|
|
8287
|
-
return last
|
|
8919
|
+
return last(this.getPrimaryUrlSegments()).path === placeDef.path;
|
|
8288
8920
|
}
|
|
8289
8921
|
createVisitSegmentFor(placeDef) {
|
|
8290
8922
|
return new VisitSegment(placeDef, new ConsolidatedParameterMap(this.getPrimaryUrlSegments()));
|
|
@@ -8400,7 +9032,7 @@ class UrlService {
|
|
|
8400
9032
|
back() {
|
|
8401
9033
|
this.angularLocation.back();
|
|
8402
9034
|
}
|
|
8403
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: UrlService, deps: [{ token: i1$
|
|
9035
|
+
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
9036
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: UrlService, providedIn: 'root' });
|
|
8405
9037
|
}
|
|
8406
9038
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: UrlService, decorators: [{
|
|
@@ -8408,7 +9040,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
8408
9040
|
args: [{
|
|
8409
9041
|
providedIn: 'root'
|
|
8410
9042
|
}]
|
|
8411
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
9043
|
+
}], ctorParameters: function () { return [{ type: i1$5.Router }, { type: i1$1.Location }, { type: i1$5.UrlSerializer }]; } });
|
|
8412
9044
|
|
|
8413
9045
|
// function asArray<T>(item: T | T[]): T[] {
|
|
8414
9046
|
// return Array.isArray(item) ? item : [item];
|
|
@@ -8428,6 +9060,8 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8428
9060
|
routerInteractionAdapter;
|
|
8429
9061
|
sessionFinishedJobs = [];
|
|
8430
9062
|
authService = new PlaceAuthService();
|
|
9063
|
+
_ready$ = this.registerDisposable(new DelegatingValueModel().withDefault(true));
|
|
9064
|
+
ready$ = this._ready$.readonly$;
|
|
8431
9065
|
constructor(angularRouter, angularLocation, interactionService, urlService, placeHistory) {
|
|
8432
9066
|
super();
|
|
8433
9067
|
this.angularRouter = angularRouter;
|
|
@@ -8449,7 +9083,7 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8449
9083
|
});
|
|
8450
9084
|
const { chain } = Dsl.disposeWith(this);
|
|
8451
9085
|
this.navigationInProgress$ = chain(this.navigationSession$).isNotNil();
|
|
8452
|
-
this.interactionSyncInProgress$ = chain(this.navigationSession$).pluck("isInteractionSync");
|
|
9086
|
+
this.interactionSyncInProgress$ = chain(this.navigationSession$).pluck("isInteractionSync").otherwise(false);
|
|
8453
9087
|
const idleStateName = chain(this.interactionService.active).map(active => active ? "IdleDuringInteraction" : "Idle");
|
|
8454
9088
|
this.navigationSessionName$ = chain(this.navigationSession$)
|
|
8455
9089
|
.pluck("name")
|
|
@@ -8493,6 +9127,9 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8493
9127
|
// the back button was clicked.
|
|
8494
9128
|
angularLocation.onUrlChange(url => this.onUrlChanged(url));
|
|
8495
9129
|
}
|
|
9130
|
+
postponeRoutingUntil(condition$) {
|
|
9131
|
+
this._ready$.setDelegate(condition$);
|
|
9132
|
+
}
|
|
8496
9133
|
getAuthenticationFailureRedirect(activatedRoute, state) {
|
|
8497
9134
|
return this.authService.getAuthenticationFailureRedirect(activatedRoute, state);
|
|
8498
9135
|
}
|
|
@@ -8508,23 +9145,20 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8508
9145
|
isNavigating() {
|
|
8509
9146
|
return this.navigationInProgress$.value;
|
|
8510
9147
|
}
|
|
8511
|
-
|
|
8512
|
-
const {
|
|
8513
|
-
|
|
8514
|
-
|
|
8515
|
-
|
|
8516
|
-
|
|
8517
|
-
|
|
8518
|
-
|
|
9148
|
+
async waitUntilRouterReady() {
|
|
9149
|
+
const { waitUntil } = Dsl.disposeWith(this);
|
|
9150
|
+
await waitUntil(this.ready$).becomesTruthy();
|
|
9151
|
+
return this;
|
|
9152
|
+
}
|
|
9153
|
+
async waitUntilIdle() {
|
|
9154
|
+
const { waitUntil } = Dsl.disposeWith(this);
|
|
9155
|
+
await waitUntil(this.navigationInProgress$).becomesFalsey();
|
|
9156
|
+
return this;
|
|
8519
9157
|
}
|
|
8520
9158
|
async waitActivitiesSynchronised() {
|
|
8521
|
-
const {
|
|
8522
|
-
|
|
8523
|
-
|
|
8524
|
-
initialValue: "evaluate",
|
|
8525
|
-
once: true
|
|
8526
|
-
});
|
|
8527
|
-
});
|
|
9159
|
+
const { waitUntil } = Dsl.disposeWith(this);
|
|
9160
|
+
await waitUntil(this.interactionSyncInProgress$).becomesFalsey();
|
|
9161
|
+
return this;
|
|
8528
9162
|
}
|
|
8529
9163
|
// @Trace()
|
|
8530
9164
|
onPopState(event) {
|
|
@@ -8710,7 +9344,7 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8710
9344
|
return Visit.goto(visitOrPlaceComponent, params);
|
|
8711
9345
|
}
|
|
8712
9346
|
}
|
|
8713
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceRouter, deps: [{ token: i1$
|
|
9347
|
+
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
9348
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceRouter, providedIn: "root" });
|
|
8715
9349
|
}
|
|
8716
9350
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceRouter, decorators: [{
|
|
@@ -8718,7 +9352,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
8718
9352
|
args: [{
|
|
8719
9353
|
providedIn: "root"
|
|
8720
9354
|
}]
|
|
8721
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
9355
|
+
}], ctorParameters: function () { return [{ type: i1$5.Router }, { type: i1$1.Location }, { type: InteractionService }, { type: UrlService }, { type: PlaceHistory }]; } });
|
|
8722
9356
|
|
|
8723
9357
|
class ActivityTitleComponent extends DisposableComponent {
|
|
8724
9358
|
_color;
|
|
@@ -8740,11 +9374,11 @@ class ActivityTitleComponent extends DisposableComponent {
|
|
|
8740
9374
|
return this._color;
|
|
8741
9375
|
}
|
|
8742
9376
|
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:
|
|
9377
|
+
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
9378
|
}
|
|
8745
9379
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityTitleComponent, decorators: [{
|
|
8746
9380
|
type: Component,
|
|
8747
|
-
args: [{ selector: 'aup-activity-title', template: "<ng-content></ng-content>\n", styles: [":host{display:
|
|
9381
|
+
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
9382
|
}], propDecorators: { hasTransparentBackground: [{
|
|
8749
9383
|
type: Input
|
|
8750
9384
|
}, {
|
|
@@ -8765,7 +9399,7 @@ class AlertDialogComponent extends AbstractDialogComponent {
|
|
|
8765
9399
|
});
|
|
8766
9400
|
}
|
|
8767
9401
|
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"] }] });
|
|
9402
|
+
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
9403
|
}
|
|
8770
9404
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AlertDialogComponent, decorators: [{
|
|
8771
9405
|
type: Component,
|
|
@@ -8785,7 +9419,7 @@ class ConfirmThenDialogComponent extends AbstractConfirmDialogComponent {
|
|
|
8785
9419
|
});
|
|
8786
9420
|
}
|
|
8787
9421
|
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"] }] });
|
|
9422
|
+
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
9423
|
}
|
|
8790
9424
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ConfirmThenDialogComponent, decorators: [{
|
|
8791
9425
|
type: Component,
|
|
@@ -8809,7 +9443,7 @@ class ConfirmThenExecuteDialogComponent extends AbstractConfirmDialogComponent {
|
|
|
8809
9443
|
});
|
|
8810
9444
|
}
|
|
8811
9445
|
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"] }] });
|
|
9446
|
+
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
9447
|
}
|
|
8814
9448
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ConfirmThenExecuteDialogComponent, decorators: [{
|
|
8815
9449
|
type: Component,
|
|
@@ -8829,7 +9463,7 @@ class ConfirmationDialogComponent extends AbstractConfirmDialogComponent {
|
|
|
8829
9463
|
});
|
|
8830
9464
|
}
|
|
8831
9465
|
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"] }] });
|
|
9466
|
+
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
9467
|
}
|
|
8834
9468
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
|
|
8835
9469
|
type: Component,
|
|
@@ -9009,6 +9643,7 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9009
9643
|
tabs;
|
|
9010
9644
|
activityOutlets;
|
|
9011
9645
|
activityRefs = [];
|
|
9646
|
+
animationDuration = "500ms";
|
|
9012
9647
|
_identifier;
|
|
9013
9648
|
_deferredCleanUp;
|
|
9014
9649
|
interactionServiceApi;
|
|
@@ -9021,6 +9656,7 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9021
9656
|
busy = this.registerDisposable(new DelegatingValueModel().withDefault(false));
|
|
9022
9657
|
syncTabsJob = undefined;
|
|
9023
9658
|
stable$;
|
|
9659
|
+
wasActive = false;
|
|
9024
9660
|
constructor(placeRouter) {
|
|
9025
9661
|
super();
|
|
9026
9662
|
this.placeRouter = placeRouter;
|
|
@@ -9057,7 +9693,12 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9057
9693
|
* Returns true if an activity is currently running.
|
|
9058
9694
|
*/
|
|
9059
9695
|
isActive() {
|
|
9060
|
-
|
|
9696
|
+
const isActive = this.getActiveActivityCount() > 0;
|
|
9697
|
+
// if (this.wasActive !== isActive) {
|
|
9698
|
+
// console.log({was: this.wasActive, is: isActive});
|
|
9699
|
+
// }
|
|
9700
|
+
// this.wasActive = isActive
|
|
9701
|
+
return isActive;
|
|
9061
9702
|
}
|
|
9062
9703
|
registerDisposable(disposable) {
|
|
9063
9704
|
return this.garbage.registerDisposable(disposable);
|
|
@@ -9140,7 +9781,7 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9140
9781
|
// by activity index)
|
|
9141
9782
|
setTimeout(() => {
|
|
9142
9783
|
this.activityRefs = []; // we have to do it after the animation timeout or the activity disappears before the animatin finsihes
|
|
9143
|
-
}, this.
|
|
9784
|
+
}, this.getTabAnimationDurationInMillis());
|
|
9144
9785
|
const promise = this.interactionServiceApi.notifyFinished(this);
|
|
9145
9786
|
this._deferredCleanUp = promise
|
|
9146
9787
|
.finally(() => {
|
|
@@ -9166,7 +9807,6 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9166
9807
|
/**
|
|
9167
9808
|
* Synchronises the selected tab index.
|
|
9168
9809
|
*/
|
|
9169
|
-
// @Trace()
|
|
9170
9810
|
synchroniseSelectedTabIndex() {
|
|
9171
9811
|
assert.isTruthy(this.isActive());
|
|
9172
9812
|
const previousIndex = this.tabs.selectedIndex;
|
|
@@ -9178,10 +9818,10 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9178
9818
|
activityRef.setFocused(false);
|
|
9179
9819
|
this.busy.setDelegate(activityRef.activityBusy);
|
|
9180
9820
|
this.tabs.selectedIndex = newIndex;
|
|
9181
|
-
if (this.ready$.value) {
|
|
9182
|
-
|
|
9183
|
-
|
|
9184
|
-
}
|
|
9821
|
+
// if (this.ready$.value) {
|
|
9822
|
+
// // Note: We're not using the animation done event as it's firing almost immeadiately.
|
|
9823
|
+
// setTimeout(() => this.finaliseActivityStates(), animate ? this.getTabAnimationDurationInMillis() : 0);
|
|
9824
|
+
// }
|
|
9185
9825
|
}
|
|
9186
9826
|
}
|
|
9187
9827
|
finaliseActivityStates() {
|
|
@@ -9195,7 +9835,12 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9195
9835
|
return this.activityOutlets.toArray()[this.tabs.selectedIndex];
|
|
9196
9836
|
}
|
|
9197
9837
|
getTabAnimationDuration() {
|
|
9198
|
-
const
|
|
9838
|
+
// const s = this._started$.value ? this.animationDuration : "0";
|
|
9839
|
+
// return s
|
|
9840
|
+
return this.animationDuration;
|
|
9841
|
+
}
|
|
9842
|
+
getTabAnimationDurationInMillis() {
|
|
9843
|
+
const match = this.animationDuration.match(/(\d+)(.*)/);
|
|
9199
9844
|
const numericValue = parseFloat(match[1]);
|
|
9200
9845
|
switch (match[2].trim()) {
|
|
9201
9846
|
case "ms":
|
|
@@ -9221,12 +9866,16 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9221
9866
|
}
|
|
9222
9867
|
}, 75);
|
|
9223
9868
|
}
|
|
9869
|
+
onAnimationDone() {
|
|
9870
|
+
this._started$.value = true;
|
|
9871
|
+
this.finaliseActivityStates();
|
|
9872
|
+
}
|
|
9224
9873
|
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$
|
|
9874
|
+
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
9875
|
}
|
|
9227
9876
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityContainerComponent, decorators: [{
|
|
9228
9877
|
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"] }]
|
|
9878
|
+
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
9879
|
}], ctorParameters: function () { return [{ type: PlaceRouter }]; }, propDecorators: { dynamicHeight: [{
|
|
9231
9880
|
type: Input
|
|
9232
9881
|
}], tabs: [{
|
|
@@ -9235,6 +9884,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
9235
9884
|
}], activityOutlets: [{
|
|
9236
9885
|
type: ViewChildren,
|
|
9237
9886
|
args: [ActivityOutletComponent]
|
|
9887
|
+
}], animationDuration: [{
|
|
9888
|
+
type: Input
|
|
9238
9889
|
}] } });
|
|
9239
9890
|
|
|
9240
9891
|
class AbstractActivityTriggerComponent extends DisposableComponent {
|
|
@@ -9335,14 +9986,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
9335
9986
|
args: ['class.active']
|
|
9336
9987
|
}] } });
|
|
9337
9988
|
|
|
9338
|
-
const
|
|
9989
|
+
const INTERACTION_CONTEXT = new InjectionToken('interactionContext');
|
|
9990
|
+
|
|
9991
|
+
const cssDurationRegex$1 = /(\d+)(m?s)/;
|
|
9339
9992
|
/**
|
|
9340
9993
|
* @example
|
|
9341
9994
|
* <aup-in-place-interaction-context #inPlaceInteractionContext>
|
|
9342
9995
|
* </aup-in-place-interaction-context>
|
|
9343
9996
|
*
|
|
9344
9997
|
* in your component
|
|
9345
|
-
* @ViewChild(
|
|
9998
|
+
* @ViewChild(InPlaceInteractionContextComponent)
|
|
9346
9999
|
* interactionContext: InteractionContext;
|
|
9347
10000
|
*
|
|
9348
10001
|
*
|
|
@@ -9361,11 +10014,13 @@ class InPlaceInteractionContextComponent extends DisposableComponent {
|
|
|
9361
10014
|
* active interactions.
|
|
9362
10015
|
*/
|
|
9363
10016
|
syncWithRoutes = true;
|
|
10017
|
+
started = new EventEmitter();
|
|
10018
|
+
finished = new EventEmitter();
|
|
9364
10019
|
get animationDuration() {
|
|
9365
10020
|
return this.animateFirstActivity ? (this.tabConfig?.animationDuration || "500ms") : "0ms";
|
|
9366
10021
|
}
|
|
9367
10022
|
get animationDurationMillis() {
|
|
9368
|
-
const result = cssDurationRegex.exec(this.animationDuration);
|
|
10023
|
+
const result = cssDurationRegex$1.exec(this.animationDuration);
|
|
9369
10024
|
if (!result) {
|
|
9370
10025
|
lang.illegalState(`unsupported css duration: ${this.animationDuration}`);
|
|
9371
10026
|
}
|
|
@@ -9387,11 +10042,16 @@ class InPlaceInteractionContextComponent extends DisposableComponent {
|
|
|
9387
10042
|
this.interactionService.registerInplaceInteractionContext(this);
|
|
9388
10043
|
}
|
|
9389
10044
|
else {
|
|
10045
|
+
const self = this;
|
|
9390
10046
|
this.activityContainerComponent.initialise("dont-care", {
|
|
9391
10047
|
async notifyActive(interactionContext) {
|
|
10048
|
+
self.started.emit();
|
|
9392
10049
|
return undefined;
|
|
9393
10050
|
},
|
|
9394
10051
|
async notifyFinished(interactionContext) {
|
|
10052
|
+
// I've noticed some rendering fails when returning the the transcluded content we'll fire an event
|
|
10053
|
+
// so components can do stuff if they need to.
|
|
10054
|
+
self.started.emit();
|
|
9395
10055
|
return undefined;
|
|
9396
10056
|
}
|
|
9397
10057
|
});
|
|
@@ -9438,11 +10098,15 @@ class InPlaceInteractionContextComponent extends DisposableComponent {
|
|
|
9438
10098
|
}
|
|
9439
10099
|
}
|
|
9440
10100
|
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" },
|
|
10101
|
+
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: [
|
|
10102
|
+
{ provide: INTERACTION_CONTEXT, useExisting: InPlaceInteractionContextComponent }
|
|
10103
|
+
], 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
10104
|
}
|
|
9443
10105
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InPlaceInteractionContextComponent, decorators: [{
|
|
9444
10106
|
type: Component,
|
|
9445
|
-
args: [{ selector: "aup-in-place-interaction-context",
|
|
10107
|
+
args: [{ selector: "aup-in-place-interaction-context", providers: [
|
|
10108
|
+
{ provide: INTERACTION_CONTEXT, useExisting: InPlaceInteractionContextComponent }
|
|
10109
|
+
], 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
10110
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
9447
10111
|
type: Inject,
|
|
9448
10112
|
args: [MAT_TABS_CONFIG]
|
|
@@ -9455,6 +10119,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
9455
10119
|
type: Input
|
|
9456
10120
|
}], syncWithRoutes: [{
|
|
9457
10121
|
type: Input
|
|
10122
|
+
}], started: [{
|
|
10123
|
+
type: Output
|
|
10124
|
+
}], finished: [{
|
|
10125
|
+
type: Output
|
|
9458
10126
|
}], active: [{
|
|
9459
10127
|
type: HostBinding,
|
|
9460
10128
|
args: ["class.active"]
|
|
@@ -9469,7 +10137,7 @@ class InlineActivityTriggerComponent extends AbstractActivityTriggerComponent {
|
|
|
9469
10137
|
super();
|
|
9470
10138
|
}
|
|
9471
10139
|
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"] }] });
|
|
10140
|
+
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
10141
|
}
|
|
9474
10142
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InlineActivityTriggerComponent, decorators: [{
|
|
9475
10143
|
type: Component,
|
|
@@ -9593,7 +10261,7 @@ class PopupInteractionContextComponent extends DisposableComponent {
|
|
|
9593
10261
|
isActive() {
|
|
9594
10262
|
return this.interactionContext && this.interactionContext.isActive();
|
|
9595
10263
|
}
|
|
9596
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PopupInteractionContextComponent, deps: [{ token: i0.ElementRef }, { token: i1$
|
|
10264
|
+
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
10265
|
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
10266
|
}
|
|
9599
10267
|
__decorate([
|
|
@@ -9607,7 +10275,7 @@ __decorate([
|
|
|
9607
10275
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PopupInteractionContextComponent, decorators: [{
|
|
9608
10276
|
type: Component,
|
|
9609
10277
|
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$
|
|
10278
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$6.Overlay }, { type: i1$6.CdkScrollable, decorators: [{
|
|
9611
10279
|
type: Optional
|
|
9612
10280
|
}, {
|
|
9613
10281
|
type: SkipSelf
|
|
@@ -9692,7 +10360,7 @@ class AddCardActivityComponent extends AbstractActivityTriggerComponent {
|
|
|
9692
10360
|
return this.interactionStyle === 'inline';
|
|
9693
10361
|
}
|
|
9694
10362
|
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"] }] });
|
|
10363
|
+
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
10364
|
}
|
|
9697
10365
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AddCardActivityComponent, decorators: [{
|
|
9698
10366
|
type: Component,
|
|
@@ -9768,7 +10436,7 @@ class AddItemInteractionContextComponent extends DisposableComponent {
|
|
|
9768
10436
|
return this.interactionContext.startActivity(activityType, data);
|
|
9769
10437
|
}
|
|
9770
10438
|
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"] }] });
|
|
10439
|
+
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
10440
|
}
|
|
9773
10441
|
__decorate([
|
|
9774
10442
|
Proxify(),
|
|
@@ -9907,12 +10575,14 @@ class StringInputActivity extends InputActivity {
|
|
|
9907
10575
|
[label]="activityData.label"
|
|
9908
10576
|
[placeholder]="activityData.placeholder"
|
|
9909
10577
|
[command.enter]="confirmCommand"
|
|
9910
|
-
[command.escape]="cancelCommand"
|
|
10578
|
+
[command.escape]="cancelCommand"
|
|
10579
|
+
[dense]="true"
|
|
10580
|
+
></aup-string-input>
|
|
9911
10581
|
<aup-activity-actions [layout]="layout" align="end"
|
|
9912
10582
|
[confirmFace]="confirmFace"
|
|
9913
10583
|
[cancelFace]="cancelFace"
|
|
9914
10584
|
></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"] }] });
|
|
10585
|
+
`, 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
10586
|
}
|
|
9917
10587
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: StringInputActivity, decorators: [{
|
|
9918
10588
|
type: Component,
|
|
@@ -9923,7 +10593,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
9923
10593
|
[label]="activityData.label"
|
|
9924
10594
|
[placeholder]="activityData.placeholder"
|
|
9925
10595
|
[command.enter]="confirmCommand"
|
|
9926
|
-
[command.escape]="cancelCommand"
|
|
10596
|
+
[command.escape]="cancelCommand"
|
|
10597
|
+
[dense]="true"
|
|
10598
|
+
></aup-string-input>
|
|
9927
10599
|
<aup-activity-actions [layout]="layout" align="end"
|
|
9928
10600
|
[confirmFace]="confirmFace"
|
|
9929
10601
|
[cancelFace]="cancelFace"
|
|
@@ -10106,7 +10778,7 @@ class InlineStringEditorComponent extends DisposableComponent {
|
|
|
10106
10778
|
return !this.editingEnabled$.value;
|
|
10107
10779
|
}
|
|
10108
10780
|
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"] }] });
|
|
10781
|
+
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
10782
|
}
|
|
10111
10783
|
__decorate([
|
|
10112
10784
|
Proxify(),
|
|
@@ -10189,6 +10861,7 @@ class SelectInputActivity extends InputActivity {
|
|
|
10189
10861
|
[options]="options"
|
|
10190
10862
|
[optionLabelFormat]="optionLabelFormat"
|
|
10191
10863
|
[allowNil]="activityData.allowNil"
|
|
10864
|
+
[dense]="true"
|
|
10192
10865
|
>
|
|
10193
10866
|
<ng-template #nilOptionTemplate>{{activityData.nilLabel}}</ng-template>
|
|
10194
10867
|
</aup-select-input>
|
|
@@ -10196,7 +10869,7 @@ class SelectInputActivity extends InputActivity {
|
|
|
10196
10869
|
[confirmFace]="confirmFace"
|
|
10197
10870
|
[cancelFace]="cancelFace"
|
|
10198
10871
|
></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"] }] });
|
|
10872
|
+
`, 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
10873
|
}
|
|
10201
10874
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectInputActivity, decorators: [{
|
|
10202
10875
|
type: Component,
|
|
@@ -10211,6 +10884,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10211
10884
|
[options]="options"
|
|
10212
10885
|
[optionLabelFormat]="optionLabelFormat"
|
|
10213
10886
|
[allowNil]="activityData.allowNil"
|
|
10887
|
+
[dense]="true"
|
|
10214
10888
|
>
|
|
10215
10889
|
<ng-template #nilOptionTemplate>{{activityData.nilLabel}}</ng-template>
|
|
10216
10890
|
</aup-select-input>
|
|
@@ -10222,6 +10896,186 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10222
10896
|
}]
|
|
10223
10897
|
}] });
|
|
10224
10898
|
|
|
10899
|
+
const slideDownOnEnterDef = style({
|
|
10900
|
+
opacity: 0,
|
|
10901
|
+
'height': '0',
|
|
10902
|
+
'max-height': '0',
|
|
10903
|
+
paddingTop: '0',
|
|
10904
|
+
paddingBottom: '0'
|
|
10905
|
+
});
|
|
10906
|
+
// TODO: params aren't getting customised in the view. Need to figure out the correct approach.
|
|
10907
|
+
const slideDownOnEnterAnimation = trigger('slideDownOnEnter', [
|
|
10908
|
+
transition(':enter', [slideDownOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
|
|
10909
|
+
transition(':leave', [animate('{{duration}}', slideDownOnEnterDef)], { params: { duration: '100ms' } })
|
|
10910
|
+
]);
|
|
10911
|
+
const slideDownWhenOpenAnimation = trigger('slideDownWhenOpen', [
|
|
10912
|
+
transition('closed => open', [slideDownOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
|
|
10913
|
+
transition('open => closed', [animate('{{duration}}', slideDownOnEnterDef)], { params: { duration: '100ms' } })
|
|
10914
|
+
]);
|
|
10915
|
+
const slideLeftOnEnterDef = style({
|
|
10916
|
+
opacity: 0,
|
|
10917
|
+
'width': '0',
|
|
10918
|
+
paddingLeft: '0',
|
|
10919
|
+
paddingRight: '0'
|
|
10920
|
+
});
|
|
10921
|
+
const slideRightOnEnterAnimation = trigger('slideRightOnEnter', [
|
|
10922
|
+
transition(':enter', [slideLeftOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
|
|
10923
|
+
transition(':leave', [animate('{{duration}}', slideLeftOnEnterDef)], { params: { duration: '100ms' } })
|
|
10924
|
+
]);
|
|
10925
|
+
const ZERO_WIDTH = {
|
|
10926
|
+
opacity: 0,
|
|
10927
|
+
width: '0',
|
|
10928
|
+
paddingLeft: '0',
|
|
10929
|
+
paddingRight: '0',
|
|
10930
|
+
};
|
|
10931
|
+
const ZERO_HEIGHT = {
|
|
10932
|
+
opacity: 0,
|
|
10933
|
+
height: '0',
|
|
10934
|
+
paddingTop: '0',
|
|
10935
|
+
paddingBottom: '0',
|
|
10936
|
+
};
|
|
10937
|
+
const slideDownAndRightOnEnterAnimation = trigger('slideDownAndRightOnEnter', [
|
|
10938
|
+
transition(':enter', [
|
|
10939
|
+
style({ overflow: "hidden", whiteSpace: "nowrap", ...ZERO_WIDTH, ...ZERO_HEIGHT }),
|
|
10940
|
+
animate('{{duration}}')
|
|
10941
|
+
], { params: { duration: '100ms' } }),
|
|
10942
|
+
transition(':leave', [
|
|
10943
|
+
style({ overflow: "hidden", whiteSpace: "nowrap" }),
|
|
10944
|
+
group([
|
|
10945
|
+
animate('{{duration}}', style(ZERO_HEIGHT)),
|
|
10946
|
+
// Hack: 100ms is too quick as it animates from * - 0 as we only see it animate the width is greater than the parent.
|
|
10947
|
+
// Not sure how to animate from * to natural new width of parent. This hack won't work for text that's just a little
|
|
10948
|
+
// bit wider than the parent as it'll fall within the parent bounds very early in the animation cycle.
|
|
10949
|
+
animate('300ms', style(ZERO_WIDTH)),
|
|
10950
|
+
])
|
|
10951
|
+
], { params: { duration: '100ms' } })
|
|
10952
|
+
]);
|
|
10953
|
+
|
|
10954
|
+
const cssDurationRegex = /(\d+)(m?s)/;
|
|
10955
|
+
/**
|
|
10956
|
+
* This interaction context remains hidden (height: 0) until it is active.
|
|
10957
|
+
* @example
|
|
10958
|
+
* <aup-slide-down-interaction-context #inPlaceInteractionContext>
|
|
10959
|
+
* </aup-slide-down-interaction-context>
|
|
10960
|
+
*
|
|
10961
|
+
* in your component
|
|
10962
|
+
* @ViewChild(SlideDownInteractionContextComponent)
|
|
10963
|
+
* interactionContext: InteractionContext;
|
|
10964
|
+
*
|
|
10965
|
+
*
|
|
10966
|
+
*/
|
|
10967
|
+
class SlideDownInteractionContextComponent extends DisposableComponent {
|
|
10968
|
+
tabConfig;
|
|
10969
|
+
activityContainerComponent;
|
|
10970
|
+
// NOTE: disabling this as I'm using the initialise callback to release the hacky height clamp.
|
|
10971
|
+
// The whole registration thing is a bit naf so I should really clean that up at some point.
|
|
10972
|
+
// /**
|
|
10973
|
+
// * If true the activity will sync with the router to enable back button support. This is a work around for
|
|
10974
|
+
// * deeply nested activities that can't be linked with the root place interactionContext hook for cancelling
|
|
10975
|
+
// * active interactions.
|
|
10976
|
+
// */
|
|
10977
|
+
// @Input()
|
|
10978
|
+
// syncWithRoutes = true;
|
|
10979
|
+
dynamicHeight = true;
|
|
10980
|
+
get active() {
|
|
10981
|
+
return this.isActive();
|
|
10982
|
+
}
|
|
10983
|
+
// Horrible hack to stop the div and activity container bouncing back for a bit in after closing. No idea why it's doing that.
|
|
10984
|
+
clampShut = true;
|
|
10985
|
+
interactionService = this.inject(InteractionService);
|
|
10986
|
+
constructor(tabConfig) {
|
|
10987
|
+
super();
|
|
10988
|
+
this.tabConfig = tabConfig;
|
|
10989
|
+
}
|
|
10990
|
+
ngAfterViewInit() {
|
|
10991
|
+
// NOTE: this is a temp work around to detach inplace contexts from the router until AUP-88 is implemented.
|
|
10992
|
+
// https://coolon.atlassian.net/browse/AUP-88?atlOrigin=eyJpIjoiOTg5YjEzZGUzZjRmNDg0NmExOWU3ZGJmMzJiNTRmNGYiLCJwIjoiaiJ9
|
|
10993
|
+
const self = this;
|
|
10994
|
+
this.activityContainerComponent.initialise("dont-care", {
|
|
10995
|
+
async notifyActive(interactionContext) {
|
|
10996
|
+
self.clampShut = false;
|
|
10997
|
+
return undefined;
|
|
10998
|
+
},
|
|
10999
|
+
async notifyFinished(interactionContext) {
|
|
11000
|
+
return undefined;
|
|
11001
|
+
}
|
|
11002
|
+
});
|
|
11003
|
+
// if (this.syncWithRoutes) {
|
|
11004
|
+
// this.interactionService.registerInplaceInteractionContext(this);
|
|
11005
|
+
// }
|
|
11006
|
+
}
|
|
11007
|
+
getAnimationState() {
|
|
11008
|
+
return {
|
|
11009
|
+
value: this.isActive() ? "open" : "closed",
|
|
11010
|
+
params: { duration: "200ms" }
|
|
11011
|
+
};
|
|
11012
|
+
}
|
|
11013
|
+
// this is a regsitration callback from the interaction service
|
|
11014
|
+
// @Trace() // webstorm says no usages... but I'm not sure.
|
|
11015
|
+
onInplaceInteractionContextRegistered(id, api) {
|
|
11016
|
+
this.activityContainerComponent.initialise(id, api);
|
|
11017
|
+
}
|
|
11018
|
+
get identifier() {
|
|
11019
|
+
return this.activityContainerComponent.identifier;
|
|
11020
|
+
}
|
|
11021
|
+
alert(alert) {
|
|
11022
|
+
return this.activityContainerComponent.alert(alert);
|
|
11023
|
+
}
|
|
11024
|
+
cancelActiveActivity() {
|
|
11025
|
+
return this.activityContainerComponent.cancelActiveActivity();
|
|
11026
|
+
}
|
|
11027
|
+
confirm(confirm) {
|
|
11028
|
+
return this.activityContainerComponent.confirm(confirm);
|
|
11029
|
+
}
|
|
11030
|
+
confirmOrReject(confirm) {
|
|
11031
|
+
return this.activityContainerComponent.confirmOrReject(confirm);
|
|
11032
|
+
}
|
|
11033
|
+
confirmThen(confirm, activityType, data) {
|
|
11034
|
+
return this.activityContainerComponent.confirmThen(confirm, activityType);
|
|
11035
|
+
}
|
|
11036
|
+
confirmThenExecute(confirm, operation) {
|
|
11037
|
+
return this.activityContainerComponent.confirmThenExecute(confirm, operation);
|
|
11038
|
+
}
|
|
11039
|
+
isActive() {
|
|
11040
|
+
return this.activityContainerComponent.isActive();
|
|
11041
|
+
}
|
|
11042
|
+
startActivity(activityType, data, options) {
|
|
11043
|
+
return this.activityContainerComponent.startActivity(activityType, data, options);
|
|
11044
|
+
}
|
|
11045
|
+
onAnimationDone() {
|
|
11046
|
+
if (!this.isActive()) {
|
|
11047
|
+
this.clampShut = true;
|
|
11048
|
+
}
|
|
11049
|
+
}
|
|
11050
|
+
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 });
|
|
11051
|
+
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: [
|
|
11052
|
+
{ provide: INTERACTION_CONTEXT, useExisting: SlideDownInteractionContextComponent }
|
|
11053
|
+
], 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: [
|
|
11054
|
+
slideDownWhenOpenAnimation
|
|
11055
|
+
] });
|
|
11056
|
+
}
|
|
11057
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SlideDownInteractionContextComponent, decorators: [{
|
|
11058
|
+
type: Component,
|
|
11059
|
+
args: [{ selector: "aup-slide-down-interaction-context", providers: [
|
|
11060
|
+
{ provide: INTERACTION_CONTEXT, useExisting: SlideDownInteractionContextComponent }
|
|
11061
|
+
], animations: [
|
|
11062
|
+
slideDownWhenOpenAnimation
|
|
11063
|
+
], 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"] }]
|
|
11064
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
11065
|
+
type: Inject,
|
|
11066
|
+
args: [MAT_TABS_CONFIG]
|
|
11067
|
+
}, {
|
|
11068
|
+
type: Optional
|
|
11069
|
+
}] }]; }, propDecorators: { activityContainerComponent: [{
|
|
11070
|
+
type: ViewChild,
|
|
11071
|
+
args: ["activityContainer", { static: true }]
|
|
11072
|
+
}], dynamicHeight: [{
|
|
11073
|
+
type: Input
|
|
11074
|
+
}], active: [{
|
|
11075
|
+
type: HostBinding,
|
|
11076
|
+
args: ["class.active"]
|
|
11077
|
+
}] } });
|
|
11078
|
+
|
|
10225
11079
|
class InteractionContextTriggerForDirective extends GarbageCollector {
|
|
10226
11080
|
aupInteractionContextTriggerFor;
|
|
10227
11081
|
activityClass;
|
|
@@ -10304,6 +11158,7 @@ class InteractionModule {
|
|
|
10304
11158
|
AlertDialogComponent,
|
|
10305
11159
|
ActivityOutletComponent,
|
|
10306
11160
|
InPlaceInteractionContextComponent,
|
|
11161
|
+
SlideDownInteractionContextComponent,
|
|
10307
11162
|
AddItemInteractionContextComponent,
|
|
10308
11163
|
ActivityActionsComponent,
|
|
10309
11164
|
PopupInteractionContextComponent,
|
|
@@ -10330,8 +11185,6 @@ class InteractionModule {
|
|
|
10330
11185
|
RouterModule,
|
|
10331
11186
|
MatIconModule,
|
|
10332
11187
|
DirectivesModule,
|
|
10333
|
-
FlexModule,
|
|
10334
|
-
GridModule,
|
|
10335
11188
|
ComponentsModule,
|
|
10336
11189
|
FormsModule,
|
|
10337
11190
|
MatInputModule,
|
|
@@ -10351,7 +11204,8 @@ class InteractionModule {
|
|
|
10351
11204
|
InlineActivityTriggerComponent,
|
|
10352
11205
|
ModalActivityTriggerComponent,
|
|
10353
11206
|
AddCardActivityComponent,
|
|
10354
|
-
InlineStringEditorComponent
|
|
11207
|
+
InlineStringEditorComponent,
|
|
11208
|
+
SlideDownInteractionContextComponent] });
|
|
10355
11209
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InteractionModule, providers: [
|
|
10356
11210
|
InteractionService
|
|
10357
11211
|
// {
|
|
@@ -10365,8 +11219,6 @@ class InteractionModule {
|
|
|
10365
11219
|
RouterModule,
|
|
10366
11220
|
MatIconModule,
|
|
10367
11221
|
DirectivesModule,
|
|
10368
|
-
FlexModule,
|
|
10369
|
-
GridModule,
|
|
10370
11222
|
ComponentsModule,
|
|
10371
11223
|
FormsModule,
|
|
10372
11224
|
MatInputModule,
|
|
@@ -10385,8 +11237,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10385
11237
|
RouterModule,
|
|
10386
11238
|
MatIconModule,
|
|
10387
11239
|
DirectivesModule,
|
|
10388
|
-
FlexModule,
|
|
10389
|
-
GridModule,
|
|
10390
11240
|
ComponentsModule,
|
|
10391
11241
|
FormsModule,
|
|
10392
11242
|
MatInputModule,
|
|
@@ -10401,6 +11251,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10401
11251
|
AlertDialogComponent,
|
|
10402
11252
|
ActivityOutletComponent,
|
|
10403
11253
|
InPlaceInteractionContextComponent,
|
|
11254
|
+
SlideDownInteractionContextComponent,
|
|
10404
11255
|
AddItemInteractionContextComponent,
|
|
10405
11256
|
ActivityActionsComponent,
|
|
10406
11257
|
PopupInteractionContextComponent,
|
|
@@ -10438,6 +11289,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10438
11289
|
ModalActivityTriggerComponent,
|
|
10439
11290
|
AddCardActivityComponent,
|
|
10440
11291
|
InlineStringEditorComponent,
|
|
11292
|
+
SlideDownInteractionContextComponent,
|
|
10441
11293
|
],
|
|
10442
11294
|
providers: [
|
|
10443
11295
|
InteractionService
|
|
@@ -10508,7 +11360,6 @@ class PlaceOutletComponent extends DisposableComponent {
|
|
|
10508
11360
|
router;
|
|
10509
11361
|
placeRouter;
|
|
10510
11362
|
placeConfig;
|
|
10511
|
-
cdr;
|
|
10512
11363
|
#animate$_accessor_storage = proxify((ValueModel));
|
|
10513
11364
|
get animate$() { return this.#animate$_accessor_storage; }
|
|
10514
11365
|
set animate$(value) { this.#animate$_accessor_storage = value; }
|
|
@@ -10542,12 +11393,11 @@ class PlaceOutletComponent extends DisposableComponent {
|
|
|
10542
11393
|
animationEnabled;
|
|
10543
11394
|
authorised;
|
|
10544
11395
|
notAuthorisedNoticePortal;
|
|
10545
|
-
constructor(router, placeRouter, placeConfig, unauthorisedPlaceNotice, parentOutlet
|
|
11396
|
+
constructor(router, placeRouter, placeConfig, unauthorisedPlaceNotice, parentOutlet) {
|
|
10546
11397
|
super();
|
|
10547
11398
|
this.router = router;
|
|
10548
11399
|
this.placeRouter = placeRouter;
|
|
10549
11400
|
this.placeConfig = placeConfig;
|
|
10550
|
-
this.cdr = cdr;
|
|
10551
11401
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
10552
11402
|
this.parentOutletModel = new MutableValueModel(parentOutlet);
|
|
10553
11403
|
const defaultPlaceAnimationOrder = chain(this.parentOutletModel)
|
|
@@ -10559,7 +11409,7 @@ class PlaceOutletComponent extends DisposableComponent {
|
|
|
10559
11409
|
this.placesInAnimationOrder = chain(this.customPlaceAnimationOrder$)
|
|
10560
11410
|
.otherwise(defaultPlaceAnimationOrder);
|
|
10561
11411
|
this.activePlaceAnimationPosition = this.placesInAnimationOrder
|
|
10562
|
-
.
|
|
11412
|
+
.reduceAll((placesInOrder) => {
|
|
10563
11413
|
let placeIndex = 0;
|
|
10564
11414
|
if (activatePlaceType.value) {
|
|
10565
11415
|
placeIndex = placesInOrder.indexOf(activatePlaceType.value);
|
|
@@ -10713,8 +11563,8 @@ class PlaceOutletComponent extends DisposableComponent {
|
|
|
10713
11563
|
this.onAnimationFinishedJob = undefined;
|
|
10714
11564
|
}
|
|
10715
11565
|
}
|
|
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$
|
|
11566
|
+
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 });
|
|
11567
|
+
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
11568
|
}
|
|
10719
11569
|
__decorate([
|
|
10720
11570
|
Proxify(),
|
|
@@ -10735,7 +11585,7 @@ __decorate([
|
|
|
10735
11585
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceOutletComponent, decorators: [{
|
|
10736
11586
|
type: Component,
|
|
10737
11587
|
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$
|
|
11588
|
+
}], ctorParameters: function () { return [{ type: i1$5.Router }, { type: PlaceRouter }, { type: undefined, decorators: [{
|
|
10739
11589
|
type: Optional
|
|
10740
11590
|
}, {
|
|
10741
11591
|
type: Inject,
|
|
@@ -10749,7 +11599,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10749
11599
|
type: SkipSelf
|
|
10750
11600
|
}, {
|
|
10751
11601
|
type: Optional
|
|
10752
|
-
}] }
|
|
11602
|
+
}] }]; }, propDecorators: { animate$: [{
|
|
10753
11603
|
type: Input
|
|
10754
11604
|
}], animate: [{
|
|
10755
11605
|
type: Input
|
|
@@ -10882,7 +11732,7 @@ class ListPlaceNavComponent extends AbstractPlaceNavigationComponent {
|
|
|
10882
11732
|
super(router);
|
|
10883
11733
|
}
|
|
10884
11734
|
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: "
|
|
11735
|
+
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
11736
|
}
|
|
10887
11737
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ListPlaceNavComponent, decorators: [{
|
|
10888
11738
|
type: Component,
|
|
@@ -10957,7 +11807,7 @@ class SidePlaceNavigationComponent extends AbstractPlaceNavigationComponent {
|
|
|
10957
11807
|
this.expanded = !this.expanded;
|
|
10958
11808
|
}
|
|
10959
11809
|
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"] }] });
|
|
11810
|
+
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
11811
|
}
|
|
10962
11812
|
__decorate([
|
|
10963
11813
|
Proxify(),
|
|
@@ -10969,7 +11819,7 @@ __decorate([
|
|
|
10969
11819
|
], SidePlaceNavigationComponent.prototype, "expanded", null);
|
|
10970
11820
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SidePlaceNavigationComponent, decorators: [{
|
|
10971
11821
|
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"] }]
|
|
11822
|
+
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
11823
|
}], ctorParameters: function () { return [{ type: PlaceRouter }]; }, propDecorators: { expanded$: [{
|
|
10974
11824
|
type: Input
|
|
10975
11825
|
}], expanded: [{
|
|
@@ -10987,7 +11837,7 @@ class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationComponent {
|
|
|
10987
11837
|
super(router);
|
|
10988
11838
|
}
|
|
10989
11839
|
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$
|
|
11840
|
+
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
11841
|
}
|
|
10992
11842
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TabbedPlaceNavigationComponent, decorators: [{
|
|
10993
11843
|
type: Component,
|
|
@@ -11010,7 +11860,6 @@ class PlaceModule {
|
|
|
11010
11860
|
MatTooltipModule,
|
|
11011
11861
|
MatIconModule,
|
|
11012
11862
|
DirectivesModule,
|
|
11013
|
-
FlexModule,
|
|
11014
11863
|
ComponentsModule,
|
|
11015
11864
|
PortalModule,
|
|
11016
11865
|
MatCardModule], exports: [PlaceOutletComponent,
|
|
@@ -11027,7 +11876,6 @@ class PlaceModule {
|
|
|
11027
11876
|
MatTooltipModule,
|
|
11028
11877
|
MatIconModule,
|
|
11029
11878
|
DirectivesModule,
|
|
11030
|
-
FlexModule,
|
|
11031
11879
|
ComponentsModule,
|
|
11032
11880
|
PortalModule,
|
|
11033
11881
|
MatCardModule] });
|
|
@@ -11045,7 +11893,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
11045
11893
|
MatTooltipModule,
|
|
11046
11894
|
MatIconModule,
|
|
11047
11895
|
DirectivesModule,
|
|
11048
|
-
FlexModule,
|
|
11049
11896
|
ComponentsModule,
|
|
11050
11897
|
PortalModule,
|
|
11051
11898
|
MatCardModule
|
|
@@ -11135,60 +11982,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
11135
11982
|
}]
|
|
11136
11983
|
}] });
|
|
11137
11984
|
|
|
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
11985
|
/**
|
|
11189
11986
|
* @file Automatically generated by barrelsby.
|
|
11190
11987
|
*/
|
|
11191
11988
|
|
|
11989
|
+
class ResizeObserverDirective extends DisposableComponent {
|
|
11990
|
+
aupOnResize = new EventEmitter();
|
|
11991
|
+
elementRef = this.inject(ElementRef);
|
|
11992
|
+
ngZone = this.inject(NgZone);
|
|
11993
|
+
_bounds$ = new MutableValueModel();
|
|
11994
|
+
ngAfterViewInit() {
|
|
11995
|
+
const element = this.elementRef.nativeElement;
|
|
11996
|
+
const ro = new ResizeObserver((entries, observer) => {
|
|
11997
|
+
this.ngZone.run(() => this._updateBounds());
|
|
11998
|
+
});
|
|
11999
|
+
ro.observe(element);
|
|
12000
|
+
this.onDispose(() => ro.disconnect());
|
|
12001
|
+
setTimeout(() => this._updateBounds());
|
|
12002
|
+
}
|
|
12003
|
+
get bounds$() {
|
|
12004
|
+
return this._bounds$.readonly$;
|
|
12005
|
+
}
|
|
12006
|
+
_updateBounds() {
|
|
12007
|
+
this._bounds$.value = Bounds.ofElement(this.elementRef.nativeElement);
|
|
12008
|
+
this.aupOnResize.emit(this._bounds$.value);
|
|
12009
|
+
}
|
|
12010
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeObserverDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
12011
|
+
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 });
|
|
12012
|
+
}
|
|
12013
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeObserverDirective, decorators: [{
|
|
12014
|
+
type: Directive,
|
|
12015
|
+
args: [{
|
|
12016
|
+
selector: "[aupOnResize]",
|
|
12017
|
+
standalone: true
|
|
12018
|
+
}]
|
|
12019
|
+
}], propDecorators: { aupOnResize: [{
|
|
12020
|
+
type: Output
|
|
12021
|
+
}] } });
|
|
12022
|
+
|
|
11192
12023
|
/**
|
|
11193
12024
|
* @file Automatically generated by barrelsby.
|
|
11194
12025
|
*/
|
|
@@ -11279,7 +12110,7 @@ class DialogInteractionContextFactory extends ModalInteractionContextFactory {
|
|
|
11279
12110
|
};
|
|
11280
12111
|
return new DialogInteractionContext(identifier, api, this.dialogService, config);
|
|
11281
12112
|
}
|
|
11282
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DialogInteractionContextFactory, deps: [{ token: i1$
|
|
12113
|
+
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
12114
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DialogInteractionContextFactory, providedIn: 'root' });
|
|
11284
12115
|
}
|
|
11285
12116
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DialogInteractionContextFactory, decorators: [{
|
|
@@ -11287,12 +12118,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
11287
12118
|
args: [{
|
|
11288
12119
|
providedIn: 'root'
|
|
11289
12120
|
}]
|
|
11290
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
12121
|
+
}], ctorParameters: function () { return [{ type: i1$7.MatDialog }, { type: i1$7.MatDialogConfig, decorators: [{
|
|
11291
12122
|
type: Optional
|
|
11292
12123
|
}, {
|
|
11293
12124
|
type: Inject,
|
|
11294
12125
|
args: [DIALOG_INTERACTION_SERVICE_DEFAULTS]
|
|
11295
|
-
}] }, { type: i1$
|
|
12126
|
+
}] }, { type: i1$7.MatDialogConfig, decorators: [{
|
|
11296
12127
|
type: Optional
|
|
11297
12128
|
}, {
|
|
11298
12129
|
type: Inject,
|
|
@@ -11412,6 +12243,7 @@ class PlaceGuard {
|
|
|
11412
12243
|
}
|
|
11413
12244
|
// @Trace()
|
|
11414
12245
|
async canActivate(activatedRoute, state) {
|
|
12246
|
+
await this.placeRouter.waitUntilRouterReady();
|
|
11415
12247
|
if (PlaceComponent.isPlaceComponentConstructor(activatedRoute.component)) {
|
|
11416
12248
|
const placeDefinition = PlaceComponent.getDefinition(activatedRoute.component);
|
|
11417
12249
|
if (placeDefinition.authenticate) {
|
|
@@ -11524,13 +12356,13 @@ class PlaceGuard {
|
|
|
11524
12356
|
return next();
|
|
11525
12357
|
}
|
|
11526
12358
|
}
|
|
11527
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceGuard, deps: [{ token: i1$
|
|
12359
|
+
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
12360
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceGuard, providedIn: 'root' });
|
|
11529
12361
|
}
|
|
11530
12362
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceGuard, decorators: [{
|
|
11531
12363
|
type: Injectable,
|
|
11532
12364
|
args: [{ providedIn: 'root' }]
|
|
11533
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
12365
|
+
}], ctorParameters: function () { return [{ type: i1$5.Router }, { type: UrlService }, { type: PlaceRouter }, { type: PlaceHistory }, { type: InteractionService }, { type: i0.Injector }]; } });
|
|
11534
12366
|
|
|
11535
12367
|
var Formatter;
|
|
11536
12368
|
(function (Formatter) {
|
|
@@ -11564,69 +12396,74 @@ var Formatter;
|
|
|
11564
12396
|
Formatter.BOOLEAN = new BooleanType();
|
|
11565
12397
|
})(Formatter || (Formatter = {}));
|
|
11566
12398
|
|
|
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
|
-
}
|
|
12399
|
+
// function installMechanics<M extends HasValue<any>>(parameterDef: ParameterDefinition<any>, prototype: object, propertyKey: string | symbol, tagPrefix: string) {
|
|
12400
|
+
//
|
|
12401
|
+
// Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
|
|
12402
|
+
//
|
|
12403
|
+
// function getMechanics(instance: M, propertyName: string | symbol) {
|
|
12404
|
+
// const key = `__mechanics_${propertyName.toString()}`;
|
|
12405
|
+
// if (!instance[key]) {
|
|
12406
|
+
// const backingModel = parameterDef.createBackingModel();
|
|
12407
|
+
// instance[key] = {
|
|
12408
|
+
// backingModel: backingModel,
|
|
12409
|
+
// binding: null as Binding<any, any>
|
|
12410
|
+
// };
|
|
12411
|
+
// const tag = `${tagPrefix}(${prototype.constructor.name}.${propertyKey.toString()})`;
|
|
12412
|
+
// DebugContext.getOrCreate(instance[key].backingModel).tag(tag);
|
|
12413
|
+
// }
|
|
12414
|
+
// return instance[key];
|
|
12415
|
+
// }
|
|
12416
|
+
//
|
|
12417
|
+
// Object.defineProperty(prototype, propertyKey, {
|
|
12418
|
+
// get: function() {
|
|
12419
|
+
// return getMechanics(this, propertyKey).backingModel;
|
|
12420
|
+
// },
|
|
12421
|
+
// set: function(userModel: M) {
|
|
12422
|
+
// const mechanics = getMechanics(this, propertyKey);
|
|
12423
|
+
// // This handles the scenario where we want to push an existing value model (such as a form model)
|
|
12424
|
+
// // to and from the route.
|
|
12425
|
+
// if (mechanics.binding) {
|
|
12426
|
+
// mechanics.binding.dispose();
|
|
12427
|
+
// }
|
|
12428
|
+
// if (userModel) {
|
|
12429
|
+
// mechanics.binding = new Binding(mechanics.backingModel, userModel, {
|
|
12430
|
+
// toLeft: Functions.identity,
|
|
12431
|
+
// toRight: Functions.identity
|
|
12432
|
+
// });
|
|
12433
|
+
// if (parameterDef.isEmptyValue(userModel.value)) {
|
|
12434
|
+
// // console.log(`Push visit to model for ${tag}`, {value: mechanics.backingModel.value});
|
|
12435
|
+
// mechanics.binding.writeRight(); // push the visit into the user model;
|
|
12436
|
+
// } else {
|
|
12437
|
+
// if (!parameterDef.isEmptyValue(mechanics.backingModel.value)) {
|
|
12438
|
+
// console.warn('Assigning a visit model with an existing value to a visit parameter with an existing value. Visit parameter will be overridden');
|
|
12439
|
+
// }
|
|
12440
|
+
// mechanics.binding.writeLeft(); // push the user model into the visit
|
|
12441
|
+
// }
|
|
12442
|
+
// }
|
|
12443
|
+
// }
|
|
12444
|
+
// });
|
|
12445
|
+
// }
|
|
11612
12446
|
function RouteId(formatter, options) {
|
|
11613
12447
|
return (prototype, propertyKey) => {
|
|
11614
12448
|
const parameterDef = new ParameterDefinition.RouteId(propertyKey.toString(), options, formatter);
|
|
11615
|
-
installMechanics(parameterDef, prototype, propertyKey, '@RouteId');
|
|
12449
|
+
// installMechanics(parameterDef, prototype, propertyKey, '@RouteId');
|
|
12450
|
+
Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
|
|
11616
12451
|
};
|
|
11617
12452
|
}
|
|
11618
12453
|
function VisitParameter(options) {
|
|
11619
12454
|
const opts = Opts.get(options);
|
|
11620
12455
|
return (prototype, propertyKey) => {
|
|
11621
12456
|
const parameterDef = new ParameterDefinition.ValueParameter(propertyKey.toString(), options, opts.getOptional('storeInUrl', null));
|
|
11622
|
-
|
|
12457
|
+
Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
|
|
12458
|
+
// installMechanics(parameterDef, prototype, propertyKey, '@VisitParameter');
|
|
11623
12459
|
};
|
|
11624
12460
|
}
|
|
11625
12461
|
function VisitParameterList(options) {
|
|
11626
12462
|
const opts = Opts.get(options);
|
|
11627
12463
|
return (prototype, propertyKey) => {
|
|
11628
12464
|
const parameterDef = new ParameterDefinition.ArrayParameter(propertyKey.toString(), options, opts.getOptional('storeInUrl', null));
|
|
11629
|
-
|
|
12465
|
+
Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
|
|
12466
|
+
// installMechanics(parameterDef, prototype, propertyKey, '@VisitParameterList');
|
|
11630
12467
|
};
|
|
11631
12468
|
}
|
|
11632
12469
|
|
|
@@ -11720,5 +12557,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
11720
12557
|
* Generated bundle index. Do not edit.
|
|
11721
12558
|
*/
|
|
11722
12559
|
|
|
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,
|
|
12560
|
+
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, 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
12561
|
//# sourceMappingURL=coolon-angular-ui-powerups.mjs.map
|