@coolon/angular-ui-powerups 16.1.0-aplpha.11 → 16.1.0-aplpha.111
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 +33 -23
- 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 +20 -37
- package/esm2022/lib/components/exports.mjs +8 -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 +49 -10
- 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 +64 -25
- 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 +4 -2
- 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/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 +40 -62
- 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 +14 -7
- 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 +15 -4
- 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 +129 -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.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 +1311 -538
- 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 +12 -8
- package/lib/components/exports.d.ts +7 -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 +8 -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 +26 -7
- 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/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.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,
|
|
44
|
+
import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, Logger, proxify, ValueModel, Proxify, 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, DelegatingCommand, ComputedListModel, Deferred, ReducingValueModel, AndValueModel } from '@coolon/pectin';
|
|
43
45
|
import { __decorate, __param, __metadata } 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';
|
|
52
|
-
import
|
|
53
|
+
import { Memoize } from 'fast-typescript-memoize';
|
|
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;
|
|
@@ -213,11 +212,12 @@ var Track;
|
|
|
213
212
|
|
|
214
213
|
class DisposableComponent extends GarbageCollector {
|
|
215
214
|
trackById = Track.byId();
|
|
216
|
-
#_loaded$ = new MutableValueModel();
|
|
217
|
-
#asyncLoadables = [];
|
|
218
|
-
#awaitedLoadables = [];
|
|
215
|
+
// #_loaded$ = new MutableValueModel<boolean>();
|
|
216
|
+
// #asyncLoadables: Loadable[] = [];
|
|
217
|
+
// #awaitedLoadables: Loadable[] = [];
|
|
219
218
|
#initCallbacks = [];
|
|
220
219
|
#initialised = false;
|
|
220
|
+
cdr = this.inject(ChangeDetectorRef);
|
|
221
221
|
onInit(callback) {
|
|
222
222
|
if (this.#initialised) {
|
|
223
223
|
callback();
|
|
@@ -226,44 +226,26 @@ class DisposableComponent extends GarbageCollector {
|
|
|
226
226
|
this.#initCallbacks.push(callback);
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
|
-
get loaded$() {
|
|
230
|
-
return this.#_loaded$.readonly$;
|
|
231
|
-
}
|
|
232
229
|
ngOnInit() {
|
|
233
230
|
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
231
|
this.#initialised = true;
|
|
246
232
|
}
|
|
233
|
+
ngOnDestroy() {
|
|
234
|
+
this.dispose();
|
|
235
|
+
}
|
|
247
236
|
inject(token) {
|
|
248
237
|
return inject(token);
|
|
249
238
|
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
this.#asyncLoadables.push(loadable);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
return loadable;
|
|
264
|
-
}
|
|
265
|
-
ngOnDestroy() {
|
|
266
|
-
this.dispose();
|
|
239
|
+
/**
|
|
240
|
+
* Monitors the specified models for any change and triggers and angular change detect cycle. This is intended for use
|
|
241
|
+
* when the component uses the ON_PUSH change detection strategy or when it is contained within another component that
|
|
242
|
+
* does (e.g. aup-table, aup-tree-table)
|
|
243
|
+
* @param models
|
|
244
|
+
* @protected
|
|
245
|
+
*/
|
|
246
|
+
viewStateDependsOn(...models) {
|
|
247
|
+
const { when } = Dsl.disposeWith(this);
|
|
248
|
+
when.anyOf(...models).changes(() => this.cdr.markForCheck());
|
|
267
249
|
}
|
|
268
250
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DisposableComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
269
251
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: DisposableComponent, usesInheritance: true, ngImport: i0 });
|
|
@@ -736,42 +718,42 @@ var CommandFace;
|
|
|
736
718
|
}
|
|
737
719
|
}
|
|
738
720
|
__decorate([
|
|
739
|
-
|
|
721
|
+
MemoizeGet(),
|
|
740
722
|
__metadata("design:type", Object),
|
|
741
723
|
__metadata("design:paramtypes", [])
|
|
742
724
|
], Adapter.prototype, "text", null);
|
|
743
725
|
__decorate([
|
|
744
|
-
|
|
726
|
+
MemoizeGet(),
|
|
745
727
|
__metadata("design:type", Object),
|
|
746
728
|
__metadata("design:paramtypes", [])
|
|
747
729
|
], Adapter.prototype, "icon", null);
|
|
748
730
|
__decorate([
|
|
749
|
-
|
|
731
|
+
MemoizeGet(),
|
|
750
732
|
__metadata("design:type", Object),
|
|
751
733
|
__metadata("design:paramtypes", [])
|
|
752
734
|
], Adapter.prototype, "iconPosition", null);
|
|
753
735
|
__decorate([
|
|
754
|
-
|
|
736
|
+
MemoizeGet(),
|
|
755
737
|
__metadata("design:type", Object),
|
|
756
738
|
__metadata("design:paramtypes", [])
|
|
757
739
|
], Adapter.prototype, "tooltip", null);
|
|
758
740
|
__decorate([
|
|
759
|
-
|
|
741
|
+
MemoizeGet(),
|
|
760
742
|
__metadata("design:type", Boolean),
|
|
761
743
|
__metadata("design:paramtypes", [])
|
|
762
744
|
], Adapter.prototype, "iconPositionStart", null);
|
|
763
745
|
__decorate([
|
|
764
|
-
|
|
746
|
+
MemoizeGet(),
|
|
765
747
|
__metadata("design:type", Boolean),
|
|
766
748
|
__metadata("design:paramtypes", [])
|
|
767
749
|
], Adapter.prototype, "iconPositionEnd", null);
|
|
768
750
|
__decorate([
|
|
769
|
-
|
|
751
|
+
MemoizeGet(),
|
|
770
752
|
__metadata("design:type", String),
|
|
771
753
|
__metadata("design:paramtypes", [])
|
|
772
754
|
], Adapter.prototype, "color", null);
|
|
773
755
|
__decorate([
|
|
774
|
-
|
|
756
|
+
MemoizeGet(),
|
|
775
757
|
__metadata("design:type", String),
|
|
776
758
|
__metadata("design:paramtypes", [])
|
|
777
759
|
], Adapter.prototype, "style", null);
|
|
@@ -842,6 +824,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
842
824
|
args: ["class.disable-scroll"]
|
|
843
825
|
}] } });
|
|
844
826
|
|
|
827
|
+
/* eslint-disable @angular-eslint/no-host-metadata-property */
|
|
845
828
|
class IconComponent {
|
|
846
829
|
_icon;
|
|
847
830
|
prefix;
|
|
@@ -873,11 +856,13 @@ class IconComponent {
|
|
|
873
856
|
return `fa-${this.suffix}`;
|
|
874
857
|
}
|
|
875
858
|
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
|
|
859
|
+
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
860
|
}
|
|
878
861
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IconComponent, decorators: [{
|
|
879
862
|
type: Component,
|
|
880
|
-
args: [{ selector: 'aup-icon',
|
|
863
|
+
args: [{ selector: 'aup-icon', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
864
|
+
class: "mat-icon" // this ensures angular form styles that target mat icon also work with us
|
|
865
|
+
}, 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
866
|
}], propDecorators: { icon: [{
|
|
882
867
|
type: Input
|
|
883
868
|
}, {
|
|
@@ -908,6 +893,7 @@ class CommandFaceComponent extends DisposableComponent {
|
|
|
908
893
|
// tslint:disable-next-line:no-input-rename
|
|
909
894
|
get _rawFaces() { return this.#_rawFaces_accessor_storage; }
|
|
910
895
|
set _rawFaces(value) { this.#_rawFaces_accessor_storage = value; }
|
|
896
|
+
hasTextAndLeadingIcon$;
|
|
911
897
|
set face(face) {
|
|
912
898
|
this.faces$.value = [face];
|
|
913
899
|
}
|
|
@@ -927,6 +913,7 @@ class CommandFaceComponent extends DisposableComponent {
|
|
|
927
913
|
const activeFace = this.faceAdapters.first();
|
|
928
914
|
this.activeIcon = activeFace.pluck("icon");
|
|
929
915
|
this.activeColor = activeFace.pluck("color");
|
|
916
|
+
this.hasTextAndLeadingIcon$ = valueOf.all(this.activeIcon.isNotNil(), activeFace.pluckString('text').isNotBlank(), activeFace.pluck("iconPosition").doesNotEqual(CommandFace.Position.END)).areTruthy();
|
|
930
917
|
}
|
|
931
918
|
shouldIncludeIcon(face) {
|
|
932
919
|
return (!this.ignoreIcon && face.icon) || this.includeMissingIconInLayout;
|
|
@@ -940,8 +927,11 @@ class CommandFaceComponent extends DisposableComponent {
|
|
|
940
927
|
get color() {
|
|
941
928
|
return this.activeColor.value;
|
|
942
929
|
}
|
|
930
|
+
get hasTextAndIcon() {
|
|
931
|
+
return this.hasTextAndLeadingIcon$.value;
|
|
932
|
+
}
|
|
943
933
|
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 });
|
|
934
|
+
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
935
|
}
|
|
946
936
|
__decorate([
|
|
947
937
|
StoreInListModel("faces$"),
|
|
@@ -949,7 +939,7 @@ __decorate([
|
|
|
949
939
|
], CommandFaceComponent.prototype, "_rawFaces", null);
|
|
950
940
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CommandFaceComponent, decorators: [{
|
|
951
941
|
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"] }]
|
|
942
|
+
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
943
|
}], ctorParameters: function () { return []; }, propDecorators: { _rawFaces: [{
|
|
954
944
|
type: Input,
|
|
955
945
|
args: ['faces']
|
|
@@ -967,6 +957,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
967
957
|
}], color: [{
|
|
968
958
|
type: HostBinding,
|
|
969
959
|
args: ['attr.color']
|
|
960
|
+
}], hasTextAndIcon: [{
|
|
961
|
+
type: HostBinding,
|
|
962
|
+
args: ['class.has-text-and-leading-icon']
|
|
970
963
|
}] } });
|
|
971
964
|
|
|
972
965
|
/**
|
|
@@ -1070,11 +1063,11 @@ class CardContainerComponent extends AbstractCardContainerComponent {
|
|
|
1070
1063
|
}
|
|
1071
1064
|
}
|
|
1072
1065
|
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
|
|
1066
|
+
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
1067
|
}
|
|
1075
1068
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CardContainerComponent, decorators: [{
|
|
1076
1069
|
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
|
|
1070
|
+
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
1071
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { columnCount: [{
|
|
1079
1072
|
type: Input
|
|
1080
1073
|
}], enableScroll: [{
|
|
@@ -1150,14 +1143,24 @@ class CommandComponent extends PopupAwareComponent {
|
|
|
1150
1143
|
activeFace$;
|
|
1151
1144
|
iconOnly$;
|
|
1152
1145
|
tooltip$;
|
|
1146
|
+
visible$;
|
|
1153
1147
|
constructor(element, parent) {
|
|
1154
1148
|
super(element, parent);
|
|
1155
1149
|
const { chain, switchOn } = Dsl.disposeWith(this);
|
|
1156
|
-
this.faces$ = chain(this.command.busy$)
|
|
1150
|
+
this.faces$ = chain(this.command.busy$)
|
|
1151
|
+
.mapToList(busy => {
|
|
1157
1152
|
return busy ?
|
|
1158
|
-
[this.busyFace$.value, this.face$.value] :
|
|
1159
|
-
[this.face$.value, this.busyFace$.value];
|
|
1160
|
-
}, {
|
|
1153
|
+
[this.busyFace$.value ?? this.command.busyFace$.value, this.face$.value ?? this.command.defaultFace$.value] :
|
|
1154
|
+
[this.face$.value ?? this.command.defaultFace$.value, this.busyFace$.value ?? this.command.busyFace$.value];
|
|
1155
|
+
}, {
|
|
1156
|
+
allowNil: true,
|
|
1157
|
+
dependsOn: [
|
|
1158
|
+
this.face$,
|
|
1159
|
+
this.busyFace$,
|
|
1160
|
+
this.command.defaultFace$,
|
|
1161
|
+
this.command.busyFace$
|
|
1162
|
+
]
|
|
1163
|
+
})
|
|
1161
1164
|
.rejectNil();
|
|
1162
1165
|
this.activeFace$ = this.faces$.first();
|
|
1163
1166
|
this.buttonStyle$ = chain(this.activeFace$).map(f => CommandFace.getStyleOf(f));
|
|
@@ -1166,18 +1169,19 @@ class CommandComponent extends PopupAwareComponent {
|
|
|
1166
1169
|
this.iconOnly$ = this.faces$.select(face => {
|
|
1167
1170
|
return isEmpty(CommandFace.getTextOf(face)) && !isEmpty(CommandFace.getIconOf(face));
|
|
1168
1171
|
}).count().equals(this.faces$.count());
|
|
1172
|
+
this.visible$ = chain(this.command.visible$);
|
|
1173
|
+
}
|
|
1174
|
+
get cssDisplayProperty() {
|
|
1175
|
+
return this.visible$.value ? undefined : 'none';
|
|
1169
1176
|
}
|
|
1170
1177
|
isActive(face) {
|
|
1171
1178
|
return this.activeFace$.query().equals(face);
|
|
1172
1179
|
}
|
|
1173
|
-
getFace() {
|
|
1174
|
-
return this.face;
|
|
1175
|
-
}
|
|
1176
1180
|
requestFocus() {
|
|
1177
1181
|
this.button.focus();
|
|
1178
1182
|
}
|
|
1179
1183
|
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"] }] });
|
|
1184
|
+
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
1185
|
}
|
|
1182
1186
|
__decorate([
|
|
1183
1187
|
Proxify(),
|
|
@@ -1225,6 +1229,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1225
1229
|
}], button: [{
|
|
1226
1230
|
type: ViewChild,
|
|
1227
1231
|
args: [MatButton]
|
|
1232
|
+
}], cssDisplayProperty: [{
|
|
1233
|
+
type: HostBinding,
|
|
1234
|
+
args: ["style.display"]
|
|
1228
1235
|
}] } });
|
|
1229
1236
|
|
|
1230
1237
|
/**
|
|
@@ -1252,12 +1259,12 @@ class AbstractPopupMenuComponent extends PopupAwareComponent {
|
|
|
1252
1259
|
xPosition = 'after';
|
|
1253
1260
|
yPosition = 'below';
|
|
1254
1261
|
triggers;
|
|
1255
|
-
#enabled_accessor_storage;
|
|
1256
|
-
get enabled() { return this.#enabled_accessor_storage; }
|
|
1257
|
-
set enabled(value) { this.#enabled_accessor_storage = value; }
|
|
1258
1262
|
#enabled$_accessor_storage = proxify((ValueModel));
|
|
1259
1263
|
get enabled$() { return this.#enabled$_accessor_storage; }
|
|
1260
1264
|
set enabled$(value) { this.#enabled$_accessor_storage = value; }
|
|
1265
|
+
#enabled_accessor_storage = true;
|
|
1266
|
+
get enabled() { return this.#enabled_accessor_storage; }
|
|
1267
|
+
set enabled(value) { this.#enabled_accessor_storage = value; }
|
|
1261
1268
|
children;
|
|
1262
1269
|
faces$;
|
|
1263
1270
|
constructor(element, parent) {
|
|
@@ -1299,16 +1306,16 @@ class AbstractPopupMenuComponent extends PopupAwareComponent {
|
|
|
1299
1306
|
return this.faceAdapter.face;
|
|
1300
1307
|
}
|
|
1301
1308
|
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
|
|
1309
|
+
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
1310
|
}
|
|
1304
|
-
__decorate([
|
|
1305
|
-
StoreInValueModel(),
|
|
1306
|
-
__metadata("design:type", Boolean)
|
|
1307
|
-
], AbstractPopupMenuComponent.prototype, "enabled", null);
|
|
1308
1311
|
__decorate([
|
|
1309
1312
|
Proxify(),
|
|
1310
1313
|
__metadata("design:type", Object)
|
|
1311
1314
|
], AbstractPopupMenuComponent.prototype, "enabled$", null);
|
|
1315
|
+
__decorate([
|
|
1316
|
+
StoreInValueModel(),
|
|
1317
|
+
__metadata("design:type", Object)
|
|
1318
|
+
], AbstractPopupMenuComponent.prototype, "enabled", null);
|
|
1312
1319
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractPopupMenuComponent, decorators: [{
|
|
1313
1320
|
type: Component,
|
|
1314
1321
|
args: [{ selector: 'aup-abstract-popup-menu', template: '' }]
|
|
@@ -1322,10 +1329,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1322
1329
|
}], triggers: [{
|
|
1323
1330
|
type: ViewChildren,
|
|
1324
1331
|
args: [MatMenuTrigger]
|
|
1325
|
-
}], enabled: [{
|
|
1326
|
-
type: Input
|
|
1327
1332
|
}], enabled$: [{
|
|
1328
1333
|
type: Input
|
|
1334
|
+
}], enabled: [{
|
|
1335
|
+
type: Input
|
|
1329
1336
|
}] } });
|
|
1330
1337
|
|
|
1331
1338
|
class CommandContainer extends GarbageCollector {
|
|
@@ -1358,13 +1365,15 @@ class ToolBarComponent extends CommandContainer {
|
|
|
1358
1365
|
get orientation() {
|
|
1359
1366
|
return CommandContainer.Orientation.HORIZONTAL;
|
|
1360
1367
|
}
|
|
1361
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ToolBarComponent, deps: [{ token: CommandContainer }], target: i0.ɵɵFactoryTarget.Component });
|
|
1368
|
+
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
1369
|
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
1370
|
}
|
|
1364
1371
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ToolBarComponent, decorators: [{
|
|
1365
1372
|
type: Component,
|
|
1366
1373
|
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
|
|
1374
|
+
}], ctorParameters: function () { return [{ type: CommandContainer, decorators: [{
|
|
1375
|
+
type: Optional
|
|
1376
|
+
}] }]; } });
|
|
1368
1377
|
|
|
1369
1378
|
/**
|
|
1370
1379
|
*
|
|
@@ -1675,7 +1684,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1675
1684
|
args: ['blur']
|
|
1676
1685
|
}] } });
|
|
1677
1686
|
|
|
1678
|
-
/* tslint:disable:no-input-rename */
|
|
1679
1687
|
const INPUT_TOKEN_HACK = new InjectionToken("INPUT_TOKEN_HACK");
|
|
1680
1688
|
class AbstractInputComponent extends DisposableComponent {
|
|
1681
1689
|
onValueEditedListeners = new EventListenerList();
|
|
@@ -1690,11 +1698,16 @@ class AbstractInputComponent extends DisposableComponent {
|
|
|
1690
1698
|
* gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).
|
|
1691
1699
|
*/
|
|
1692
1700
|
formValue$;
|
|
1693
|
-
|
|
1694
|
-
|
|
1701
|
+
#i18n$_accessor_storage = proxify((MutableValueModel));
|
|
1702
|
+
get i18n$() { return this.#i18n$_accessor_storage; }
|
|
1703
|
+
set i18n$(value) { this.#i18n$_accessor_storage = value; }
|
|
1704
|
+
#i18n_accessor_storage;
|
|
1705
|
+
get i18n() { return this.#i18n_accessor_storage; }
|
|
1706
|
+
set i18n(value) { this.#i18n_accessor_storage = value; }
|
|
1707
|
+
_label;
|
|
1695
1708
|
userFloatLabel = 'always'; // TODO: make this an injectable default
|
|
1696
|
-
|
|
1697
|
-
|
|
1709
|
+
_hint;
|
|
1710
|
+
_placeholder;
|
|
1698
1711
|
dense = false;
|
|
1699
1712
|
_enabled$ = this.registerDisposable(new DelegatingValueModel());
|
|
1700
1713
|
set enabled$(condition$) {
|
|
@@ -1761,6 +1774,9 @@ class AbstractInputComponent extends DisposableComponent {
|
|
|
1761
1774
|
isEnabled() {
|
|
1762
1775
|
return this.enabled$.value;
|
|
1763
1776
|
}
|
|
1777
|
+
get disabled() {
|
|
1778
|
+
return !this.isEnabled();
|
|
1779
|
+
}
|
|
1764
1780
|
hasErrors() {
|
|
1765
1781
|
return !this.errorList$.query().isEmpty();
|
|
1766
1782
|
}
|
|
@@ -1773,6 +1789,15 @@ class AbstractInputComponent extends DisposableComponent {
|
|
|
1773
1789
|
get focusContext() {
|
|
1774
1790
|
return this.formValue$.focusContext;
|
|
1775
1791
|
}
|
|
1792
|
+
get label() {
|
|
1793
|
+
return this._label ?? this.i18n?.label();
|
|
1794
|
+
}
|
|
1795
|
+
get hint() {
|
|
1796
|
+
return this._hint ?? this.hackyGetI18n("hint");
|
|
1797
|
+
}
|
|
1798
|
+
get placeholder() {
|
|
1799
|
+
return this._placeholder ?? this.hackyGetI18n("placeholder");
|
|
1800
|
+
}
|
|
1776
1801
|
get floatLabel() {
|
|
1777
1802
|
// return this.dense ? 'never' : this.userFloatLabel;
|
|
1778
1803
|
return this.userFloatLabel;
|
|
@@ -1787,24 +1812,45 @@ class AbstractInputComponent extends DisposableComponent {
|
|
|
1787
1812
|
onValueEdited(callback) {
|
|
1788
1813
|
return this.onValueEditedListeners.add(callback);
|
|
1789
1814
|
}
|
|
1815
|
+
hackyGetI18n(key) {
|
|
1816
|
+
// TODO: update I18n to make it possible to get an optional value with return the missing key message.
|
|
1817
|
+
const i18nFn = this.i18n ? this.i18n[key] : undefined;
|
|
1818
|
+
const i18nValue = i18nFn && i18nFn();
|
|
1819
|
+
return i18nValue?.startsWith("missing key") ? undefined : i18nValue;
|
|
1820
|
+
}
|
|
1790
1821
|
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: {
|
|
1822
|
+
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
1823
|
}
|
|
1824
|
+
__decorate([
|
|
1825
|
+
Proxify(),
|
|
1826
|
+
__metadata("design:type", Object)
|
|
1827
|
+
], AbstractInputComponent.prototype, "i18n$", null);
|
|
1828
|
+
__decorate([
|
|
1829
|
+
StoreInValueModel(),
|
|
1830
|
+
__metadata("design:type", Object)
|
|
1831
|
+
], AbstractInputComponent.prototype, "i18n", null);
|
|
1793
1832
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractInputComponent, decorators: [{
|
|
1794
1833
|
type: Component,
|
|
1795
1834
|
args: [{ template: '' }]
|
|
1796
1835
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
1797
1836
|
type: Inject,
|
|
1798
1837
|
args: [INPUT_TOKEN_HACK]
|
|
1799
|
-
}] }]; }, propDecorators: {
|
|
1838
|
+
}] }]; }, propDecorators: { i18n$: [{
|
|
1839
|
+
type: Input
|
|
1840
|
+
}], i18n: [{
|
|
1800
1841
|
type: Input
|
|
1842
|
+
}], _label: [{
|
|
1843
|
+
type: Input,
|
|
1844
|
+
args: ["label"]
|
|
1801
1845
|
}], userFloatLabel: [{
|
|
1802
1846
|
type: Input,
|
|
1803
1847
|
args: ['floatLabel']
|
|
1804
|
-
}],
|
|
1805
|
-
type: Input
|
|
1806
|
-
|
|
1807
|
-
|
|
1848
|
+
}], _hint: [{
|
|
1849
|
+
type: Input,
|
|
1850
|
+
args: ['hint']
|
|
1851
|
+
}], _placeholder: [{
|
|
1852
|
+
type: Input,
|
|
1853
|
+
args: ['placeholder']
|
|
1808
1854
|
}], dense: [{
|
|
1809
1855
|
type: HostBinding,
|
|
1810
1856
|
args: ['class.dense']
|
|
@@ -1847,6 +1893,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1847
1893
|
}], notifyFocusOut: [{
|
|
1848
1894
|
type: HostListener,
|
|
1849
1895
|
args: ['focusout']
|
|
1896
|
+
}], disabled: [{
|
|
1897
|
+
type: HostBinding,
|
|
1898
|
+
args: ["class.disabled"]
|
|
1850
1899
|
}] } });
|
|
1851
1900
|
|
|
1852
1901
|
class AbstractListInputComponent extends AbstractInputComponent {
|
|
@@ -2084,12 +2133,15 @@ class CheckboxInputComponent extends AbstractValueInputComponent {
|
|
|
2084
2133
|
constructor() {
|
|
2085
2134
|
super();
|
|
2086
2135
|
}
|
|
2136
|
+
select($event) {
|
|
2137
|
+
this.componentValue$.value = $event.checked;
|
|
2138
|
+
}
|
|
2087
2139
|
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 [
|
|
2140
|
+
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
2141
|
}
|
|
2090
2142
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CheckboxInputComponent, decorators: [{
|
|
2091
2143
|
type: Component,
|
|
2092
|
-
args: [{ selector: 'aup-checkbox-input', template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [
|
|
2144
|
+
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
2145
|
}], ctorParameters: function () { return []; }, propDecorators: { color: [{
|
|
2094
2146
|
type: Input
|
|
2095
2147
|
}], labelPosition: [{
|
|
@@ -2128,7 +2180,7 @@ class MultipleSelectInputComponent extends AbstractListInputComponent {
|
|
|
2128
2180
|
const self = this;
|
|
2129
2181
|
this.registerDisposable(new Binding(this.componentList$, this.ids$, {
|
|
2130
2182
|
toLeft(selectedItems, currentLeftValue) {
|
|
2131
|
-
const newValues = selectedItems.map(it => lookup.get(it)).filter(it =>
|
|
2183
|
+
const newValues = selectedItems.map(it => lookup.get(it)).filter(it => !!it);
|
|
2132
2184
|
// 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
2185
|
return newValues.length < 1 && selectedItems.length > 0 ? currentLeftValue : newValues;
|
|
2134
2186
|
},
|
|
@@ -2139,7 +2191,7 @@ class MultipleSelectInputComponent extends AbstractListInputComponent {
|
|
|
2139
2191
|
})).writeRight();
|
|
2140
2192
|
}
|
|
2141
2193
|
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$
|
|
2194
|
+
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
2195
|
}
|
|
2144
2196
|
__decorate([
|
|
2145
2197
|
Proxify(),
|
|
@@ -2167,48 +2219,142 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
2167
2219
|
|
|
2168
2220
|
class NumberInputComponent extends AbstractValueInputComponent {
|
|
2169
2221
|
autocomplete;
|
|
2170
|
-
min =
|
|
2171
|
-
|
|
2172
|
-
|
|
2222
|
+
#min$_accessor_storage = proxify((ValueModel));
|
|
2223
|
+
get min$() { return this.#min$_accessor_storage; }
|
|
2224
|
+
set min$(value) { this.#min$_accessor_storage = value; }
|
|
2225
|
+
#min_accessor_storage = Number.MIN_SAFE_INTEGER;
|
|
2226
|
+
get min() { return this.#min_accessor_storage; }
|
|
2227
|
+
set min(value) { this.#min_accessor_storage = value; }
|
|
2228
|
+
#max$_accessor_storage = proxify((ValueModel));
|
|
2229
|
+
get max$() { return this.#max$_accessor_storage; }
|
|
2230
|
+
set max$(value) { this.#max$_accessor_storage = value; }
|
|
2231
|
+
#max_accessor_storage = Number.MAX_SAFE_INTEGER;
|
|
2232
|
+
get max() { return this.#max_accessor_storage; }
|
|
2233
|
+
set max(value) { this.#max_accessor_storage = value; }
|
|
2234
|
+
incrementCommand;
|
|
2235
|
+
decrementCommand;
|
|
2173
2236
|
constructor() {
|
|
2174
2237
|
super();
|
|
2238
|
+
const { chain } = Dsl.disposeWith(this);
|
|
2239
|
+
const normalisedValue$ = chain(this.value$).otherwise(0);
|
|
2240
|
+
this.incrementCommand = Command.create(() => {
|
|
2241
|
+
this.value$.value = normalisedValue$.value + 1;
|
|
2242
|
+
}).enableWhile(chain.numericValue(normalisedValue$).isLessThan(this.max$).and(this.enabled$));
|
|
2243
|
+
this.decrementCommand = Command.create(() => {
|
|
2244
|
+
this.value$.value = normalisedValue$.value - 1;
|
|
2245
|
+
}).enableWhile(chain.numericValue(normalisedValue$).isGreaterThan(this.min$).and(this.enabled$));
|
|
2175
2246
|
}
|
|
2176
2247
|
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
|
|
2248
|
+
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" }, 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)]=\"componentValue$.value\"\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 <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
2249
|
}
|
|
2250
|
+
__decorate([
|
|
2251
|
+
Proxify(),
|
|
2252
|
+
__metadata("design:type", ValueModel)
|
|
2253
|
+
], NumberInputComponent.prototype, "min$", null);
|
|
2254
|
+
__decorate([
|
|
2255
|
+
StoreInValueModel(),
|
|
2256
|
+
__metadata("design:type", Object)
|
|
2257
|
+
], NumberInputComponent.prototype, "min", null);
|
|
2258
|
+
__decorate([
|
|
2259
|
+
Proxify(),
|
|
2260
|
+
__metadata("design:type", ValueModel)
|
|
2261
|
+
], NumberInputComponent.prototype, "max$", null);
|
|
2262
|
+
__decorate([
|
|
2263
|
+
StoreInValueModel(),
|
|
2264
|
+
__metadata("design:type", Object)
|
|
2265
|
+
], NumberInputComponent.prototype, "max", null);
|
|
2179
2266
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NumberInputComponent, decorators: [{
|
|
2180
2267
|
type: Component,
|
|
2181
|
-
args: [{ selector: 'aup-number-input', template: "<mat-form-field
|
|
2268
|
+
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)]=\"componentValue$.value\"\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 <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
2269
|
}], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
|
|
2183
2270
|
type: Input
|
|
2271
|
+
}], min$: [{
|
|
2272
|
+
type: Input
|
|
2184
2273
|
}], min: [{
|
|
2185
2274
|
type: Input
|
|
2186
|
-
}], max
|
|
2275
|
+
}], max$: [{
|
|
2187
2276
|
type: Input
|
|
2188
|
-
}],
|
|
2277
|
+
}], max: [{
|
|
2189
2278
|
type: Input
|
|
2190
2279
|
}] } });
|
|
2191
2280
|
|
|
2192
2281
|
class PasswordInputComponent extends AbstractValueInputComponent {
|
|
2193
2282
|
autocomplete;
|
|
2283
|
+
#enableShowPassword$_accessor_storage = proxify((ValueModel));
|
|
2284
|
+
get enableShowPassword$() { return this.#enableShowPassword$_accessor_storage; }
|
|
2285
|
+
set enableShowPassword$(value) { this.#enableShowPassword$_accessor_storage = value; }
|
|
2286
|
+
#enableShowPassword_accessor_storage = false;
|
|
2287
|
+
get enableShowPassword() { return this.#enableShowPassword_accessor_storage; }
|
|
2288
|
+
set enableShowPassword(value) { this.#enableShowPassword_accessor_storage = value; }
|
|
2289
|
+
showPassword$ = new MutableValueModel(false);
|
|
2290
|
+
toggleShowPasswordCommand;
|
|
2194
2291
|
constructor() {
|
|
2195
2292
|
super();
|
|
2293
|
+
const { chain, valueOf } = Dsl.disposeWith(this);
|
|
2294
|
+
const face$ = chain(this.showPassword$).map(show => {
|
|
2295
|
+
return {
|
|
2296
|
+
icon: () => show ? "mat:visibility_off" : "mat:visibility"
|
|
2297
|
+
};
|
|
2298
|
+
});
|
|
2299
|
+
this.toggleShowPasswordCommand = Command.create(() => {
|
|
2300
|
+
this.showPassword$.value = !this.showPassword$.value;
|
|
2301
|
+
})
|
|
2302
|
+
.withFace(face$)
|
|
2303
|
+
.enableWhile(chain.stringValue(this.componentValue$).isNotBlank());
|
|
2304
|
+
}
|
|
2305
|
+
get fieldType() {
|
|
2306
|
+
return this.showPassword$.value ? "text" : "password";
|
|
2196
2307
|
}
|
|
2197
2308
|
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=\"
|
|
2309
|
+
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
2310
|
}
|
|
2311
|
+
__decorate([
|
|
2312
|
+
Proxify(),
|
|
2313
|
+
__metadata("design:type", Object)
|
|
2314
|
+
], PasswordInputComponent.prototype, "enableShowPassword$", null);
|
|
2315
|
+
__decorate([
|
|
2316
|
+
StoreInValueModel(),
|
|
2317
|
+
__metadata("design:type", Object)
|
|
2318
|
+
], PasswordInputComponent.prototype, "enableShowPassword", null);
|
|
2200
2319
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PasswordInputComponent, decorators: [{
|
|
2201
2320
|
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=\"
|
|
2321
|
+
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" }]
|
|
2322
|
+
}], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
|
|
2323
|
+
type: Input
|
|
2324
|
+
}], enableShowPassword$: [{
|
|
2325
|
+
type: Input
|
|
2326
|
+
}], enableShowPassword: [{
|
|
2327
|
+
type: Input
|
|
2328
|
+
}] } });
|
|
2329
|
+
|
|
2330
|
+
class SearchInputComponent extends AbstractValueInputComponent {
|
|
2331
|
+
autocomplete;
|
|
2332
|
+
clearCommand;
|
|
2333
|
+
constructor() {
|
|
2334
|
+
super();
|
|
2335
|
+
this.dense = true;
|
|
2336
|
+
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
2337
|
+
this.clearCommand = Command.create(() => {
|
|
2338
|
+
this.componentValue$.value = "";
|
|
2339
|
+
});
|
|
2340
|
+
this.clearCommand.disableWhile(chain.stringValue(this.componentValue$).isBlank());
|
|
2341
|
+
}
|
|
2342
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SearchInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2343
|
+
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"] }] });
|
|
2344
|
+
}
|
|
2345
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SearchInputComponent, decorators: [{
|
|
2346
|
+
type: Component,
|
|
2347
|
+
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
2348
|
}], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
|
|
2204
2349
|
type: Input
|
|
2205
2350
|
}] } });
|
|
2206
2351
|
|
|
2207
2352
|
/**
|
|
2208
2353
|
* Using templates:
|
|
2209
|
-
* <aup-select-input [
|
|
2354
|
+
* <aup-select-input [value$]="myModel" [options]="myOptions">
|
|
2210
2355
|
* <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
|
|
2211
|
-
* <ng-template #
|
|
2356
|
+
* <ng-template #selectedOptionTemplate let-option>{{option.thePropertyYouWant}} note, not used for nils (the placeholder is used)</ng-template>
|
|
2357
|
+
* <ng-template #nilOptionTemplate>Uses the placeholder by default but you can customise it</ng-template>
|
|
2212
2358
|
* </aup-select_input>
|
|
2213
2359
|
*/
|
|
2214
2360
|
class SelectInputComponent extends AbstractValueInputComponent {
|
|
@@ -2233,7 +2379,7 @@ class SelectInputComponent extends AbstractValueInputComponent {
|
|
|
2233
2379
|
super();
|
|
2234
2380
|
const { chain } = Dsl.disposeWith(this);
|
|
2235
2381
|
this.cookedOptions$ = chain(this.options$)
|
|
2236
|
-
.
|
|
2382
|
+
.mapAll(options => {
|
|
2237
2383
|
return options.length < 1 && !isNil(this.componentValue$.value) ? [this.componentValue$.value] : options;
|
|
2238
2384
|
}, {
|
|
2239
2385
|
dependsOn: this.componentValue$
|
|
@@ -2272,21 +2418,21 @@ class SelectInputComponent extends AbstractValueInputComponent {
|
|
|
2272
2418
|
id: this.delegatedIdentityOf(value)
|
|
2273
2419
|
});
|
|
2274
2420
|
let lastIdSnapshot = snapshotValueAndId(this.componentValue$.value);
|
|
2275
|
-
console.log(lastIdSnapshot)
|
|
2421
|
+
// console.log(lastIdSnapshot)
|
|
2276
2422
|
before(this.options$).changes(() => {
|
|
2277
2423
|
lastIdSnapshot = snapshotValueAndId(this.componentValue$.value);
|
|
2278
|
-
console.log(lastIdSnapshot)
|
|
2424
|
+
// console.log(lastIdSnapshot)
|
|
2279
2425
|
});
|
|
2280
2426
|
when(this.options$).changes((is, was) => {
|
|
2281
2427
|
const newIdSnapshot = snapshotValueAndId(lastIdSnapshot.value);
|
|
2282
|
-
console.log(lastIdSnapshot, newIdSnapshot)
|
|
2428
|
+
// console.log(lastIdSnapshot, newIdSnapshot)
|
|
2283
2429
|
if (newIdSnapshot !== lastIdSnapshot.id) {
|
|
2284
2430
|
this.id$.value = this.delegatedIdentityOf(this.componentValue$.value);
|
|
2285
2431
|
}
|
|
2286
2432
|
});
|
|
2287
2433
|
}
|
|
2288
2434
|
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$
|
|
2435
|
+
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
2436
|
}
|
|
2291
2437
|
__decorate([
|
|
2292
2438
|
Proxify(),
|
|
@@ -2298,7 +2444,7 @@ __decorate([
|
|
|
2298
2444
|
], SelectInputComponent.prototype, "options", null);
|
|
2299
2445
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectInputComponent, decorators: [{
|
|
2300
2446
|
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"] }]
|
|
2447
|
+
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
2448
|
}], ctorParameters: function () { return []; }, propDecorators: { options$: [{
|
|
2303
2449
|
type: Input
|
|
2304
2450
|
}], options: [{
|
|
@@ -2329,17 +2475,24 @@ class StringInputComponent extends AbstractValueInputComponent {
|
|
|
2329
2475
|
get enableClear() { return this.#enableClear_accessor_storage; }
|
|
2330
2476
|
set enableClear(value) { this.#enableClear_accessor_storage = value; }
|
|
2331
2477
|
iconPrefix;
|
|
2478
|
+
#suffixCommand_accessor_storage = proxify(Command);
|
|
2479
|
+
get suffixCommand() { return this.#suffixCommand_accessor_storage; }
|
|
2480
|
+
set suffixCommand(value) { this.#suffixCommand_accessor_storage = value; }
|
|
2332
2481
|
clearCommand;
|
|
2333
2482
|
constructor() {
|
|
2334
2483
|
super();
|
|
2335
2484
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
2336
2485
|
this.clearCommand = Command.create(() => {
|
|
2337
2486
|
this.componentValue$.value = "";
|
|
2338
|
-
})
|
|
2339
|
-
|
|
2487
|
+
})
|
|
2488
|
+
.withFace({ icon: () => "mat:clear" })
|
|
2489
|
+
.enableWhile(chain.stringValue(this.componentValue$).isNotBlank());
|
|
2490
|
+
}
|
|
2491
|
+
get hasSuffixCommand() {
|
|
2492
|
+
return Proxify.hasTarget(this.suffixCommand);
|
|
2340
2493
|
}
|
|
2341
2494
|
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 <
|
|
2495
|
+
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
2496
|
}
|
|
2344
2497
|
__decorate([
|
|
2345
2498
|
Proxify(),
|
|
@@ -2349,9 +2502,13 @@ __decorate([
|
|
|
2349
2502
|
StoreInValueModel(),
|
|
2350
2503
|
__metadata("design:type", Object)
|
|
2351
2504
|
], StringInputComponent.prototype, "enableClear", null);
|
|
2505
|
+
__decorate([
|
|
2506
|
+
Proxify(),
|
|
2507
|
+
__metadata("design:type", Command)
|
|
2508
|
+
], StringInputComponent.prototype, "suffixCommand", null);
|
|
2352
2509
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: StringInputComponent, decorators: [{
|
|
2353
2510
|
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 <
|
|
2511
|
+
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
2512
|
}], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
|
|
2356
2513
|
type: Input
|
|
2357
2514
|
}], enableClear$: [{
|
|
@@ -2360,6 +2517,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
2360
2517
|
type: Input
|
|
2361
2518
|
}], iconPrefix: [{
|
|
2362
2519
|
type: Input
|
|
2520
|
+
}], suffixCommand: [{
|
|
2521
|
+
type: Input
|
|
2363
2522
|
}] } });
|
|
2364
2523
|
|
|
2365
2524
|
class TextInputComponent extends AbstractValueInputComponent {
|
|
@@ -2547,7 +2706,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
2547
2706
|
* </aup-switch-case>
|
|
2548
2707
|
*/
|
|
2549
2708
|
class SwitchCaseComponent extends DisposableComponent {
|
|
2550
|
-
cdr;
|
|
2551
2709
|
#switch$_accessor_storage = proxify((ValueModel));
|
|
2552
2710
|
get switch$() { return this.#switch$_accessor_storage; }
|
|
2553
2711
|
set switch$(value) { this.#switch$_accessor_storage = value; }
|
|
@@ -2556,9 +2714,8 @@ class SwitchCaseComponent extends DisposableComponent {
|
|
|
2556
2714
|
set switch(value) { this.#switch_accessor_storage = value; }
|
|
2557
2715
|
switchCaseOptions;
|
|
2558
2716
|
selectedIndex = 0;
|
|
2559
|
-
constructor(
|
|
2717
|
+
constructor() {
|
|
2560
2718
|
super();
|
|
2561
|
-
this.cdr = cdr;
|
|
2562
2719
|
}
|
|
2563
2720
|
ngAfterContentInit() {
|
|
2564
2721
|
const subscription = this.switchCaseOptions.changes.subscribe(change => this.updateSelection());
|
|
@@ -2595,8 +2752,8 @@ class SwitchCaseComponent extends DisposableComponent {
|
|
|
2595
2752
|
this.selectedIndex = -1;
|
|
2596
2753
|
}
|
|
2597
2754
|
}
|
|
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$
|
|
2755
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SwitchCaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2756
|
+
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
2757
|
}
|
|
2601
2758
|
__decorate([
|
|
2602
2759
|
Proxify(),
|
|
@@ -2609,7 +2766,7 @@ __decorate([
|
|
|
2609
2766
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SwitchCaseComponent, decorators: [{
|
|
2610
2767
|
type: Component,
|
|
2611
2768
|
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 [
|
|
2769
|
+
}], ctorParameters: function () { return []; }, propDecorators: { switch$: [{
|
|
2613
2770
|
type: Input
|
|
2614
2771
|
}], switch: [{
|
|
2615
2772
|
type: Input
|
|
@@ -2619,6 +2776,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
2619
2776
|
}] } });
|
|
2620
2777
|
|
|
2621
2778
|
const HEADER_CELL_RENDERER_PORTAL = Symbol('aup-cell-header-renderer-component-ref');
|
|
2779
|
+
const FOOTER_CELL_RENDERER_PORTAL = Symbol('aup-cell-footer-renderer-component-ref');
|
|
2622
2780
|
const CELL_RENDERER_PORTAL = Symbol('aup-cell-renderer-component-ref');
|
|
2623
2781
|
const CELL_EDITOR_PORTAL = Symbol('aup-cell-editor-component-ref');
|
|
2624
2782
|
const PORTAL_RENDERER_COMPONENT = Symbol('aup-cell-renderer-portal-component');
|
|
@@ -2716,6 +2874,23 @@ class TemplateCellRendererPortalRef extends CellRendererPortalRef {
|
|
|
2716
2874
|
return new TemplatePortal(this.templateRef, this.viewContainer, { ...(data), $implicit: data.row });
|
|
2717
2875
|
}
|
|
2718
2876
|
}
|
|
2877
|
+
class CellFooterPortalRef extends CellPortalRef {
|
|
2878
|
+
componentType;
|
|
2879
|
+
initialiseHeader;
|
|
2880
|
+
constructor(componentType, initialiseHeader) {
|
|
2881
|
+
super();
|
|
2882
|
+
this.componentType = componentType;
|
|
2883
|
+
this.initialiseHeader = initialiseHeader;
|
|
2884
|
+
}
|
|
2885
|
+
initialiseHost(host, columnModel) {
|
|
2886
|
+
assert$1.isTruthy(host);
|
|
2887
|
+
host[HEADER_CELL_RENDERER_PORTAL] = new ComponentPortal(this.componentType);
|
|
2888
|
+
}
|
|
2889
|
+
// @Trace()
|
|
2890
|
+
onPortalAttached(host, portalComponent) {
|
|
2891
|
+
this.initialiseHeader(portalComponent, host.column);
|
|
2892
|
+
}
|
|
2893
|
+
}
|
|
2719
2894
|
|
|
2720
2895
|
class ColumnTextSearchFormatter {
|
|
2721
2896
|
}
|
|
@@ -2806,6 +2981,7 @@ class ColumnTextSearchWrapper extends ColumnTextSearchFormatter.Delegate {
|
|
|
2806
2981
|
}
|
|
2807
2982
|
class ColumnModel extends GarbageCollector {
|
|
2808
2983
|
columnId;
|
|
2984
|
+
order;
|
|
2809
2985
|
textPropertiesProvider;
|
|
2810
2986
|
_columnTextProperties;
|
|
2811
2987
|
_columnHeaderPortalRef;
|
|
@@ -2819,9 +2995,10 @@ class ColumnModel extends GarbageCollector {
|
|
|
2819
2995
|
dasherisedColumnId;
|
|
2820
2996
|
textSearchDelegate = new ColumnTextSearchWrapper();
|
|
2821
2997
|
visible$;
|
|
2822
|
-
constructor(columnId, textPropertiesProvider) {
|
|
2998
|
+
constructor(columnId, order, textPropertiesProvider) {
|
|
2823
2999
|
super();
|
|
2824
3000
|
this.columnId = columnId;
|
|
3001
|
+
this.order = order;
|
|
2825
3002
|
this.textPropertiesProvider = textPropertiesProvider;
|
|
2826
3003
|
const { valueOf } = Dsl.disposeWith(this);
|
|
2827
3004
|
this.installHeaderRenderer();
|
|
@@ -2866,6 +3043,14 @@ class ColumnModel extends GarbageCollector {
|
|
|
2866
3043
|
this._columnTextProperties = columnTextProperties;
|
|
2867
3044
|
return this;
|
|
2868
3045
|
}
|
|
3046
|
+
positionAfter(column) {
|
|
3047
|
+
this.order.position(this, { after: column });
|
|
3048
|
+
return this;
|
|
3049
|
+
}
|
|
3050
|
+
positionBefore(column) {
|
|
3051
|
+
this.order.position(this, { before: column });
|
|
3052
|
+
return this;
|
|
3053
|
+
}
|
|
2869
3054
|
getSearchTextFor(row) {
|
|
2870
3055
|
return this.textSearchDelegate.format(row);
|
|
2871
3056
|
}
|
|
@@ -2967,8 +3152,8 @@ __decorate([
|
|
|
2967
3152
|
|
|
2968
3153
|
class CustomTemplateColumnModel extends ColumnModel {
|
|
2969
3154
|
config = new TemplateCellRendererPortalRef();
|
|
2970
|
-
constructor(columnId, defaults) {
|
|
2971
|
-
super(columnId, defaults);
|
|
3155
|
+
constructor(columnId, order, defaults) {
|
|
3156
|
+
super(columnId, order, defaults);
|
|
2972
3157
|
this.configureCellRenderer(this.config);
|
|
2973
3158
|
}
|
|
2974
3159
|
setTemplate(templateRef, viewContainer, fillCell, padChild) {
|
|
@@ -3046,12 +3231,17 @@ class AbstractTableComponent extends DisposableComponent {
|
|
|
3046
3231
|
#showHeader_accessor_storage = true;
|
|
3047
3232
|
get showHeader() { return this.#showHeader_accessor_storage; }
|
|
3048
3233
|
set showHeader(value) { this.#showHeader_accessor_storage = value; }
|
|
3234
|
+
#enableScrolling$_accessor_storage = proxify((ValueModel));
|
|
3049
3235
|
/**
|
|
3050
3236
|
* Set to true to enable scrolling. Once enabled the table will have 0 implicit height. You will either
|
|
3051
3237
|
* need to set it explicitly e.g. height: 400px; or by using flex or grid layout to make it fill it's
|
|
3052
3238
|
* containment area.
|
|
3053
3239
|
*/
|
|
3054
|
-
enableScrolling
|
|
3240
|
+
get enableScrolling$() { return this.#enableScrolling$_accessor_storage; }
|
|
3241
|
+
set enableScrolling$(value) { this.#enableScrolling$_accessor_storage = value; }
|
|
3242
|
+
#enableScrolling_accessor_storage = false;
|
|
3243
|
+
get enableScrolling() { return this.#enableScrolling_accessor_storage; }
|
|
3244
|
+
set enableScrolling(value) { this.#enableScrolling_accessor_storage = value; }
|
|
3055
3245
|
columns;
|
|
3056
3246
|
columnIds;
|
|
3057
3247
|
columnsById;
|
|
@@ -3070,7 +3260,6 @@ class AbstractTableComponent extends DisposableComponent {
|
|
|
3070
3260
|
super();
|
|
3071
3261
|
this.injector = injector;
|
|
3072
3262
|
const { chain, when } = Dsl.disposeWith(this);
|
|
3073
|
-
this._visibleRows$.setDelegate(this._dataSource$);
|
|
3074
3263
|
when(chain(this._dataSource$).first()).becomesTruthy(it => {
|
|
3075
3264
|
if (it === this.identityOf(it)) {
|
|
3076
3265
|
console.warn("Table model identity function is using reference equality. This can cause lots of table re-rendering", {
|
|
@@ -3089,7 +3278,7 @@ class AbstractTableComponent extends DisposableComponent {
|
|
|
3089
3278
|
if (!model) {
|
|
3090
3279
|
lang$1.illegalState("aup-table tableModel is nil");
|
|
3091
3280
|
}
|
|
3092
|
-
this.columnsById = chain(model.columns).indexBy('columnId');
|
|
3281
|
+
this.columnsById = chain(model.columns$).indexBy('columnId');
|
|
3093
3282
|
this._dataSource$.setDelegate(model.dataSource$);
|
|
3094
3283
|
model.initialise(this.injector, (row) => this.identityOf(row));
|
|
3095
3284
|
}
|
|
@@ -3106,7 +3295,7 @@ class AbstractTableComponent extends DisposableComponent {
|
|
|
3106
3295
|
}
|
|
3107
3296
|
}
|
|
3108
3297
|
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 });
|
|
3298
|
+
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
3299
|
}
|
|
3111
3300
|
__decorate([
|
|
3112
3301
|
Proxify(),
|
|
@@ -3116,6 +3305,14 @@ __decorate([
|
|
|
3116
3305
|
StoreInValueModel(),
|
|
3117
3306
|
__metadata("design:type", Object)
|
|
3118
3307
|
], AbstractTableComponent.prototype, "showHeader", null);
|
|
3308
|
+
__decorate([
|
|
3309
|
+
Proxify(),
|
|
3310
|
+
__metadata("design:type", ValueModel)
|
|
3311
|
+
], AbstractTableComponent.prototype, "enableScrolling$", null);
|
|
3312
|
+
__decorate([
|
|
3313
|
+
StoreInValueModel(),
|
|
3314
|
+
__metadata("design:type", Boolean)
|
|
3315
|
+
], AbstractTableComponent.prototype, "enableScrolling", null);
|
|
3119
3316
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractTableComponent, decorators: [{
|
|
3120
3317
|
type: Component,
|
|
3121
3318
|
args: [{
|
|
@@ -3126,6 +3323,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
3126
3323
|
type: Input
|
|
3127
3324
|
}], showHeader: [{
|
|
3128
3325
|
type: Input
|
|
3326
|
+
}], enableScrolling$: [{
|
|
3327
|
+
type: Input
|
|
3129
3328
|
}], enableScrolling: [{
|
|
3130
3329
|
type: Input
|
|
3131
3330
|
}], baseCssClass: [{
|
|
@@ -3186,6 +3385,8 @@ class EditSession extends GarbageCollector {
|
|
|
3186
3385
|
// console.warn()
|
|
3187
3386
|
// }
|
|
3188
3387
|
this._liveRowValue$.value = produce(this._liveRowValue$.value, draft => {
|
|
3388
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
3389
|
+
// @ts-ignore
|
|
3189
3390
|
this.form.writeDirtyStateTo(draft);
|
|
3190
3391
|
});
|
|
3191
3392
|
});
|
|
@@ -3288,11 +3489,11 @@ class DefaultCellRendererComponent {
|
|
|
3288
3489
|
return this._value;
|
|
3289
3490
|
}
|
|
3290
3491
|
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" }] });
|
|
3492
|
+
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
3493
|
}
|
|
3293
3494
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DefaultCellRendererComponent, decorators: [{
|
|
3294
3495
|
type: Component,
|
|
3295
|
-
args: [{ selector: "aup-default-cell-renderer", template: "<span [innerHTML]=\"value| aupHighlight\"></span>\n" }]
|
|
3496
|
+
args: [{ selector: "aup-default-cell-renderer", template: "<span [innerHTML]=\"value?.toString()| aupHighlight\"></span>\n" }]
|
|
3296
3497
|
}], propDecorators: { value: [{
|
|
3297
3498
|
type: Input
|
|
3298
3499
|
}] } });
|
|
@@ -3308,7 +3509,8 @@ class SelectionHeaderCellComponent extends DisposableComponent {
|
|
|
3308
3509
|
super();
|
|
3309
3510
|
this.selectCommand = Command.create(() => {
|
|
3310
3511
|
this.selectionModel.toggleAllCommand.execute();
|
|
3311
|
-
})
|
|
3512
|
+
}).visibleWhile(this.selectionModel.toggleAllCommand.visible$)
|
|
3513
|
+
.enableWhile(this.selectionModel.toggleAllCommand.enabled$);
|
|
3312
3514
|
}
|
|
3313
3515
|
isSelected() {
|
|
3314
3516
|
return this.ifMultiSelectionModel(m => m.allSelected$.value, false);
|
|
@@ -3336,7 +3538,7 @@ class SelectionHeaderCellComponent extends DisposableComponent {
|
|
|
3336
3538
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectionHeaderCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3337
3539
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SelectionHeaderCellComponent, selector: "aup-selection-header-cell", providers: [
|
|
3338
3540
|
{ 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:
|
|
3541
|
+
], 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
3542
|
}
|
|
3341
3543
|
__decorate([
|
|
3342
3544
|
Proxify(),
|
|
@@ -3369,7 +3571,7 @@ class SelectionCellComponent extends DisposableComponent {
|
|
|
3369
3571
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectionCellComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3370
3572
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SelectionCellComponent, selector: "aup-selection-cell", inputs: { row: "row" }, providers: [
|
|
3371
3573
|
{ 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:
|
|
3574
|
+
], 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
3575
|
}
|
|
3374
3576
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectionCellComponent, decorators: [{
|
|
3375
3577
|
type: Component,
|
|
@@ -3430,25 +3632,14 @@ class Bounds extends Dimension {
|
|
|
3430
3632
|
})(Bounds || (Bounds = {}));
|
|
3431
3633
|
|
|
3432
3634
|
class ResizeAwareComponent extends DisposableComponent {
|
|
3433
|
-
elementRef;
|
|
3434
|
-
ngZone;
|
|
3435
|
-
|
|
3436
|
-
constructor(elementRef, ngZone) {
|
|
3437
|
-
super();
|
|
3438
|
-
this.elementRef = elementRef;
|
|
3439
|
-
this.ngZone = ngZone;
|
|
3440
|
-
}
|
|
3635
|
+
elementRef = this.inject(ElementRef);
|
|
3636
|
+
ngZone = this.inject(NgZone);
|
|
3637
|
+
boundsTracker = new ResizeAwareComponent.ResizeTracker(this.elementRef, this.ngZone);
|
|
3441
3638
|
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());
|
|
3639
|
+
this.boundsTracker.notifyViewReady();
|
|
3449
3640
|
}
|
|
3450
3641
|
get bounds$() {
|
|
3451
|
-
return this.
|
|
3642
|
+
return this.boundsTracker.bounds$;
|
|
3452
3643
|
}
|
|
3453
3644
|
get nativeElement() {
|
|
3454
3645
|
return this.elementRef.nativeElement;
|
|
@@ -3458,57 +3649,160 @@ class ResizeAwareComponent extends DisposableComponent {
|
|
|
3458
3649
|
return this.bounds.relativePositionOf(point);
|
|
3459
3650
|
}
|
|
3460
3651
|
get bounds() {
|
|
3461
|
-
return this.
|
|
3462
|
-
}
|
|
3463
|
-
_updateBounds() {
|
|
3464
|
-
this._bounds$.value = Bounds.ofElement(this.nativeElement);
|
|
3652
|
+
return this.bounds$.value;
|
|
3465
3653
|
}
|
|
3466
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeAwareComponent, deps:
|
|
3654
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeAwareComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
3467
3655
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: ResizeAwareComponent, usesInheritance: true, ngImport: i0 });
|
|
3468
3656
|
}
|
|
3469
3657
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeAwareComponent, decorators: [{
|
|
3470
3658
|
type: Directive
|
|
3471
|
-
}]
|
|
3659
|
+
}] });
|
|
3660
|
+
(function (ResizeAwareComponent) {
|
|
3661
|
+
class ResizeTracker extends GarbageCollector {
|
|
3662
|
+
elementRef;
|
|
3663
|
+
ngZone;
|
|
3664
|
+
_bounds$ = new MutableValueModel(new Bounds(0, 0, 0, 0));
|
|
3665
|
+
width$;
|
|
3666
|
+
height$;
|
|
3667
|
+
top$;
|
|
3668
|
+
left$;
|
|
3669
|
+
bottom$;
|
|
3670
|
+
right$;
|
|
3671
|
+
constructor(elementRef, ngZone) {
|
|
3672
|
+
super();
|
|
3673
|
+
this.elementRef = elementRef;
|
|
3674
|
+
this.ngZone = ngZone;
|
|
3675
|
+
const { chain } = Dsl.disposeWith(this);
|
|
3676
|
+
this.width$ = chain(this.bounds$).pluck("width");
|
|
3677
|
+
this.height$ = chain(this.bounds$).pluck("height");
|
|
3678
|
+
this.top$ = chain(this.bounds$).pluck("top");
|
|
3679
|
+
this.left$ = chain(this.bounds$).pluck("left");
|
|
3680
|
+
this.bottom$ = chain.numericValue(this.top$).add(this.height$);
|
|
3681
|
+
this.right$ = chain.numericValue(this.left$).add(this.width$);
|
|
3682
|
+
}
|
|
3683
|
+
notifyViewReady() {
|
|
3684
|
+
const element = this.elementRef.nativeElement;
|
|
3685
|
+
const ro = new ResizeObserver((entries, observer) => {
|
|
3686
|
+
this.ngZone.run(() => this._updateBounds());
|
|
3687
|
+
});
|
|
3688
|
+
ro.observe(element);
|
|
3689
|
+
this.onDispose(() => ro.disconnect());
|
|
3690
|
+
setTimeout(() => this._updateBounds());
|
|
3691
|
+
}
|
|
3692
|
+
get bounds$() {
|
|
3693
|
+
return this._bounds$.readonly$;
|
|
3694
|
+
}
|
|
3695
|
+
get nativeElement() {
|
|
3696
|
+
return this.elementRef.nativeElement;
|
|
3697
|
+
}
|
|
3698
|
+
// TODO: Make this handle body scroll
|
|
3699
|
+
relativePositionOf(point) {
|
|
3700
|
+
return this.bounds.relativePositionOf(point);
|
|
3701
|
+
}
|
|
3702
|
+
get bounds() {
|
|
3703
|
+
return this._bounds$.value;
|
|
3704
|
+
}
|
|
3705
|
+
_updateBounds() {
|
|
3706
|
+
this._bounds$.value = Bounds.ofElement(this.nativeElement);
|
|
3707
|
+
}
|
|
3708
|
+
}
|
|
3709
|
+
ResizeAwareComponent.ResizeTracker = ResizeTracker;
|
|
3710
|
+
})(ResizeAwareComponent || (ResizeAwareComponent = {}));
|
|
3472
3711
|
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3712
|
+
var ColumnOrderManager;
|
|
3713
|
+
(function (ColumnOrderManager) {
|
|
3714
|
+
function processPosition(position, callback) {
|
|
3715
|
+
if (position) {
|
|
3716
|
+
const keys = Object.keys(position);
|
|
3717
|
+
if (keys.includes("before")) {
|
|
3718
|
+
return position["before"] ? callback.before(position["before"]) : callback.first();
|
|
3719
|
+
}
|
|
3720
|
+
else {
|
|
3721
|
+
return position["after"] ? callback.after(position["after"]) : callback.last();
|
|
3722
|
+
}
|
|
3723
|
+
}
|
|
3724
|
+
else {
|
|
3725
|
+
return callback.last();
|
|
3726
|
+
}
|
|
3727
|
+
}
|
|
3728
|
+
ColumnOrderManager.processPosition = processPosition;
|
|
3729
|
+
})(ColumnOrderManager || (ColumnOrderManager = {}));
|
|
3730
|
+
|
|
3731
|
+
class ColumnRef {
|
|
3732
|
+
column;
|
|
3733
|
+
position;
|
|
3734
|
+
constructor(column, position) {
|
|
3735
|
+
this.column = column;
|
|
3736
|
+
this.position = position;
|
|
3737
|
+
}
|
|
3738
|
+
}
|
|
3739
|
+
class ColumnManager extends GarbageCollector {
|
|
3740
|
+
_columnRefs$ = new MutableListModel();
|
|
3741
|
+
orderedColumnRefs$;
|
|
3742
|
+
_columnsById$;
|
|
3743
|
+
allColumns$;
|
|
3744
|
+
columnVisibilities$ = new WatchList();
|
|
3745
|
+
visibleColumns$;
|
|
3476
3746
|
constructor() {
|
|
3477
3747
|
super();
|
|
3478
3748
|
const { chain } = Dsl.disposeWith(this);
|
|
3479
|
-
this.
|
|
3749
|
+
this.orderedColumnRefs$ = chain(this._columnRefs$).orderBy("position", "asc");
|
|
3750
|
+
this.allColumns$ = this.orderedColumnRefs$.pluck("column");
|
|
3751
|
+
this._columnsById$ = chain(this.allColumns$).indexBy('columnId');
|
|
3752
|
+
this.visibleColumns$ = chain(this.allColumns$).select(it => it.visible$.value, {
|
|
3753
|
+
dependsOn: this.columnVisibilities$
|
|
3754
|
+
});
|
|
3480
3755
|
}
|
|
3481
|
-
|
|
3482
|
-
|
|
3756
|
+
position(column, newPosition) {
|
|
3757
|
+
const target = this._columnRefs$.query().findMatching(it => it.column === column);
|
|
3758
|
+
const position = this.computePosition(newPosition);
|
|
3759
|
+
this._columnRefs$.replace(target, { with: new ColumnRef(target.column, position) });
|
|
3483
3760
|
}
|
|
3484
3761
|
getColumn(id) {
|
|
3485
|
-
return this.
|
|
3762
|
+
return this._columnsById$.get(id);
|
|
3486
3763
|
}
|
|
3487
3764
|
hasColumn(id) {
|
|
3488
|
-
return !!this.
|
|
3765
|
+
return !!this._columnsById$.get(id);
|
|
3489
3766
|
}
|
|
3490
3767
|
hasMatchingColumn(row, regex) {
|
|
3491
3768
|
// only search the visible columns
|
|
3492
|
-
return !!this.value.find(c => regex.test(c.getSearchTextFor(row)));
|
|
3769
|
+
return !!this.visibleColumns$.value.find(c => regex.test(c.getSearchTextFor(row)));
|
|
3493
3770
|
}
|
|
3494
|
-
addColumn(column,
|
|
3771
|
+
addColumn(column, position) {
|
|
3495
3772
|
if (this.hasColumn(column.columnId)) {
|
|
3496
3773
|
lang.illegalState(`Column with id=${column.columnId} already exists`);
|
|
3497
3774
|
}
|
|
3498
3775
|
this.registerDisposable(column);
|
|
3499
|
-
this.
|
|
3500
|
-
|
|
3501
|
-
|
|
3502
|
-
|
|
3503
|
-
|
|
3504
|
-
|
|
3776
|
+
this._columnRefs$.push(new ColumnRef(column, this.computePosition(position)));
|
|
3777
|
+
this.columnVisibilities$.add(column.visible$);
|
|
3778
|
+
return column;
|
|
3779
|
+
}
|
|
3780
|
+
computePosition(position) {
|
|
3781
|
+
const q = this.orderedColumnRefs$.query();
|
|
3782
|
+
return ColumnOrderManager.processPosition(position, {
|
|
3783
|
+
before(col) {
|
|
3784
|
+
const index = q.findIndex(ref => ref.column === col);
|
|
3785
|
+
const beforeCol = q.value[index];
|
|
3786
|
+
const afterCol = index - 1 >= 0 ? q.value[index - 1] : undefined;
|
|
3787
|
+
return generateKeyBetween(afterCol?.position, beforeCol.position);
|
|
3788
|
+
},
|
|
3789
|
+
after(col) {
|
|
3790
|
+
const index = q.findIndex(ref => ref.column === col);
|
|
3791
|
+
const afterCol = q.value[index];
|
|
3792
|
+
const beforeCol = index + 1 < q.length ? q.value[index + 1] : undefined;
|
|
3793
|
+
return generateKeyBetween(afterCol.position, beforeCol?.position);
|
|
3794
|
+
},
|
|
3795
|
+
first() {
|
|
3796
|
+
return generateKeyBetween(null, q.first()?.position);
|
|
3797
|
+
},
|
|
3798
|
+
last() {
|
|
3799
|
+
// add it to the end of the list
|
|
3800
|
+
return generateKeyBetween(q.last()?.position, null);
|
|
3505
3801
|
}
|
|
3506
|
-
this.registerDisposable(this.trackSource(column.visible$));
|
|
3507
3802
|
});
|
|
3508
|
-
return column;
|
|
3509
3803
|
}
|
|
3510
3804
|
doComputeValue() {
|
|
3511
|
-
return this.
|
|
3805
|
+
return this.allColumns$.value.filter(c => c.visible$.value);
|
|
3512
3806
|
}
|
|
3513
3807
|
}
|
|
3514
3808
|
|
|
@@ -3542,8 +3836,8 @@ function EnableCellTextSearch(options) {
|
|
|
3542
3836
|
|
|
3543
3837
|
class CustomValueColumnModel extends ColumnModel {
|
|
3544
3838
|
getValue;
|
|
3545
|
-
constructor(columnId, defaults, getValue) {
|
|
3546
|
-
super(columnId, defaults);
|
|
3839
|
+
constructor(columnId, order, defaults, getValue) {
|
|
3840
|
+
super(columnId, order, defaults);
|
|
3547
3841
|
this.getValue = getValue;
|
|
3548
3842
|
this.cellRenderer(DefaultCellRendererComponent);
|
|
3549
3843
|
}
|
|
@@ -3551,17 +3845,17 @@ class CustomValueColumnModel extends ColumnModel {
|
|
|
3551
3845
|
this.configureColumnTextSearch(EnableCellTextSearch.getFormatter(componentType, () => new ColumnTextSearchFormatter.Null()), row => this.getValue(row));
|
|
3552
3846
|
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
|
|
3553
3847
|
if (firstTime) {
|
|
3554
|
-
if (isFunction
|
|
3848
|
+
if (isFunction(onComponentInitOrOptions)) {
|
|
3555
3849
|
onComponentInitOrOptions(component);
|
|
3556
3850
|
}
|
|
3557
3851
|
else {
|
|
3558
|
-
if (isFunction
|
|
3852
|
+
if (isFunction(onComponentInitOrOptions?.onComponentInit)) {
|
|
3559
3853
|
onComponentInitOrOptions.onComponentInit(component);
|
|
3560
3854
|
}
|
|
3561
3855
|
}
|
|
3562
3856
|
}
|
|
3563
3857
|
component.value = this.getValue(rowData.row);
|
|
3564
|
-
if (!isFunction
|
|
3858
|
+
if (!isFunction(onComponentInitOrOptions) && isFunction(onComponentInitOrOptions?.onRowUpdate)) {
|
|
3565
3859
|
onComponentInitOrOptions.onRowUpdate(component, rowData.row);
|
|
3566
3860
|
}
|
|
3567
3861
|
}));
|
|
@@ -3573,8 +3867,8 @@ class CustomValueColumnModel extends ColumnModel {
|
|
|
3573
3867
|
}
|
|
3574
3868
|
|
|
3575
3869
|
class EditorControlColumnModel extends ColumnModel {
|
|
3576
|
-
constructor(columnId, saveCommandFactory, defaults) {
|
|
3577
|
-
super(columnId, defaults);
|
|
3870
|
+
constructor(columnId, order, saveCommandFactory, defaults) {
|
|
3871
|
+
super(columnId, order, defaults);
|
|
3578
3872
|
this.cellRenderer(EditRowControlsComponent);
|
|
3579
3873
|
}
|
|
3580
3874
|
cellRenderer(componentType) {
|
|
@@ -3599,8 +3893,8 @@ class ListPropertyColumnModel extends ColumnModel {
|
|
|
3599
3893
|
intermediate.map(v => v?.toString()).join(", ") :
|
|
3600
3894
|
intermediate?.toString();
|
|
3601
3895
|
};
|
|
3602
|
-
constructor(id, property, defaults) {
|
|
3603
|
-
super(id, defaults);
|
|
3896
|
+
constructor(id, order, property, defaults) {
|
|
3897
|
+
super(id, order, defaults);
|
|
3604
3898
|
this.property = property;
|
|
3605
3899
|
this.cellRenderer(DefaultCellRendererComponent);
|
|
3606
3900
|
}
|
|
@@ -3616,7 +3910,7 @@ class ListPropertyColumnModel extends ColumnModel {
|
|
|
3616
3910
|
}
|
|
3617
3911
|
cellEditor(editor, validatorsOrInitialiser, initialiseComponent) {
|
|
3618
3912
|
const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
|
|
3619
|
-
const initialiser = isFunction
|
|
3913
|
+
const initialiser = isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
|
|
3620
3914
|
this.configureCellEditor(new CellEditorPortalRef(editor, (component, editSession) => {
|
|
3621
3915
|
const formListModel = editSession.form.pluckList(this.property);
|
|
3622
3916
|
if (validators) {
|
|
@@ -3645,8 +3939,8 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3645
3939
|
_defaultSearchTextFormatter = (value) => {
|
|
3646
3940
|
return (this._userFormat ?? Functions.identity)(value)?.toString();
|
|
3647
3941
|
};
|
|
3648
|
-
constructor(id, property, defaults) {
|
|
3649
|
-
super(id, defaults);
|
|
3942
|
+
constructor(id, order, property, defaults) {
|
|
3943
|
+
super(id, order, defaults);
|
|
3650
3944
|
this.property = property;
|
|
3651
3945
|
this.cellRenderer(DefaultCellRendererComponent);
|
|
3652
3946
|
}
|
|
@@ -3654,11 +3948,11 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3654
3948
|
this.configureColumnTextSearch(EnableCellTextSearch.getFormatter(componentType, () => ColumnTextSearchFormatter.forFormatter(this._defaultSearchTextFormatter)), row => row[this.property]);
|
|
3655
3949
|
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
|
|
3656
3950
|
if (firstTime) {
|
|
3657
|
-
if (isFunction
|
|
3951
|
+
if (isFunction(onComponentInitOrOptions)) {
|
|
3658
3952
|
onComponentInitOrOptions(component);
|
|
3659
3953
|
}
|
|
3660
3954
|
else {
|
|
3661
|
-
if (isFunction
|
|
3955
|
+
if (isFunction(onComponentInitOrOptions?.onComponentInit)) {
|
|
3662
3956
|
onComponentInitOrOptions.onComponentInit(component);
|
|
3663
3957
|
}
|
|
3664
3958
|
}
|
|
@@ -3683,7 +3977,7 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3683
3977
|
component[ColumnModel.CELL_RENDERER_COMPONENT_ROW_CACHE] = rowData.row;
|
|
3684
3978
|
let disableEditCallback = false;
|
|
3685
3979
|
if (firstTime) {
|
|
3686
|
-
if (isFunction
|
|
3980
|
+
if (isFunction(options?.onComponentInit)) {
|
|
3687
3981
|
options.onComponentInit(component);
|
|
3688
3982
|
}
|
|
3689
3983
|
// install our edit callback
|
|
@@ -3698,7 +3992,7 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3698
3992
|
disableEditCallback = true;
|
|
3699
3993
|
component.value = rowData.row[this.property];
|
|
3700
3994
|
disableEditCallback = false;
|
|
3701
|
-
if (!isFunction
|
|
3995
|
+
if (!isFunction(options) && isFunction(options?.onRowUpdate)) {
|
|
3702
3996
|
options.onRowUpdate(component, rowData.row);
|
|
3703
3997
|
}
|
|
3704
3998
|
}));
|
|
@@ -3706,7 +4000,7 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3706
4000
|
}
|
|
3707
4001
|
cellEditor(editor, validatorsOrInitialiser, onComponentInit) {
|
|
3708
4002
|
const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
|
|
3709
|
-
const initialiser = isFunction
|
|
4003
|
+
const initialiser = isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
|
|
3710
4004
|
this.configureCellEditor(new CellEditorPortalRef(editor, (component, editSession) => {
|
|
3711
4005
|
const formValueModel = editSession.form.pluck(this.property);
|
|
3712
4006
|
if (validators) {
|
|
@@ -3733,8 +4027,8 @@ class SelectionColumnModel extends ColumnModel {
|
|
|
3733
4027
|
selectionModel;
|
|
3734
4028
|
_enableHeaderControls = true;
|
|
3735
4029
|
_color = "accent";
|
|
3736
|
-
constructor(columnId, defaults, selectionModel) {
|
|
3737
|
-
super(columnId, defaults);
|
|
4030
|
+
constructor(columnId, order, defaults, selectionModel) {
|
|
4031
|
+
super(columnId, order, defaults);
|
|
3738
4032
|
this.selectionModel = selectionModel;
|
|
3739
4033
|
const { chain } = Dsl.disposeWith(this);
|
|
3740
4034
|
this._selectRowOnClick(false);
|
|
@@ -3775,6 +4069,42 @@ class SelectionColumnModel extends ColumnModel {
|
|
|
3775
4069
|
}
|
|
3776
4070
|
}
|
|
3777
4071
|
|
|
4072
|
+
let RowClass$1 = class RowClass {
|
|
4073
|
+
className;
|
|
4074
|
+
matches;
|
|
4075
|
+
constructor(className, matches) {
|
|
4076
|
+
this.className = className;
|
|
4077
|
+
this.matches = matches;
|
|
4078
|
+
}
|
|
4079
|
+
};
|
|
4080
|
+
class FooterRowModel {
|
|
4081
|
+
_rowClasses = [];
|
|
4082
|
+
noPadding() {
|
|
4083
|
+
this.addClass("no-padding");
|
|
4084
|
+
}
|
|
4085
|
+
addClass(className, condition) {
|
|
4086
|
+
this._rowClasses.push(new RowClass$1(className, condition ?? (() => true)));
|
|
4087
|
+
}
|
|
4088
|
+
}
|
|
4089
|
+
(function (FooterRowModel) {
|
|
4090
|
+
class Impl extends FooterRowModel {
|
|
4091
|
+
component;
|
|
4092
|
+
onInit;
|
|
4093
|
+
portal;
|
|
4094
|
+
constructor(component, onInit) {
|
|
4095
|
+
super();
|
|
4096
|
+
this.component = component;
|
|
4097
|
+
this.onInit = onInit;
|
|
4098
|
+
this.portal = new ComponentPortal(component);
|
|
4099
|
+
}
|
|
4100
|
+
getActiveRowClasses() {
|
|
4101
|
+
return this._rowClasses.filter(c => c.matches()).map(c => c.className).join(" ");
|
|
4102
|
+
}
|
|
4103
|
+
}
|
|
4104
|
+
FooterRowModel.Impl = Impl;
|
|
4105
|
+
})(FooterRowModel || (FooterRowModel = {}));
|
|
4106
|
+
ProxyRegistry.registerOneTimeBinding(FooterRowModel);
|
|
4107
|
+
|
|
3778
4108
|
class TableMoreMenuComponent extends DisposableComponent {
|
|
3779
4109
|
value$ = new MutableValueModel();
|
|
3780
4110
|
#value_accessor_storage;
|
|
@@ -3784,13 +4114,15 @@ class TableMoreMenuComponent extends DisposableComponent {
|
|
|
3784
4114
|
popupType$ = new MutableValueModel();
|
|
3785
4115
|
popupComponentPortal$;
|
|
3786
4116
|
_visible$ = this.registerDisposable(new DelegatingValueModel());
|
|
4117
|
+
initialiseCallback;
|
|
3787
4118
|
constructor() {
|
|
3788
4119
|
super();
|
|
3789
4120
|
const { chain } = Dsl.disposeWith(this);
|
|
3790
4121
|
this.popupComponentPortal$ = chain(this.popupType$).map(type => new ComponentPortal(type));
|
|
3791
4122
|
}
|
|
3792
|
-
configurePopupComponentType(popupComponentType) {
|
|
4123
|
+
configurePopupComponentType(popupComponentType, configureCallback) {
|
|
3793
4124
|
this.popupType$.value = popupComponentType;
|
|
4125
|
+
this.initialiseCallback = configureCallback;
|
|
3794
4126
|
}
|
|
3795
4127
|
// Stops tree selection when clicking the menu button
|
|
3796
4128
|
preventDefault($event) {
|
|
@@ -3801,12 +4133,15 @@ class TableMoreMenuComponent extends DisposableComponent {
|
|
|
3801
4133
|
const component = $event.instance;
|
|
3802
4134
|
component.initialise(this.value$, Command.create(() => this.matMenuTrigger.closeMenu()));
|
|
3803
4135
|
this._visible$.setDelegate(component.visible$);
|
|
4136
|
+
if (this.initialiseCallback) {
|
|
4137
|
+
this.initialiseCallback(component);
|
|
4138
|
+
}
|
|
3804
4139
|
}
|
|
3805
4140
|
get visible$() {
|
|
3806
4141
|
return this._visible$.readonly$;
|
|
3807
4142
|
}
|
|
3808
4143
|
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:
|
|
4144
|
+
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
4145
|
}
|
|
3811
4146
|
__decorate([
|
|
3812
4147
|
StoreInValueModel(),
|
|
@@ -3835,16 +4170,25 @@ class RowClass {
|
|
|
3835
4170
|
this.matches = matches;
|
|
3836
4171
|
}
|
|
3837
4172
|
}
|
|
4173
|
+
class RowAttribute {
|
|
4174
|
+
attributeName;
|
|
4175
|
+
getValue;
|
|
4176
|
+
constructor(attributeName, getValue) {
|
|
4177
|
+
this.attributeName = attributeName;
|
|
4178
|
+
this.getValue = getValue;
|
|
4179
|
+
}
|
|
4180
|
+
}
|
|
3838
4181
|
class AbstractTableModel extends GarbageCollector {
|
|
3839
4182
|
_dataSource$ = this.registerDisposable(new DelegatingListModel());
|
|
3840
4183
|
_filteredRows$ = this.registerDisposable(new DelegatingListModel());
|
|
3841
4184
|
_visibleRows$ = this.registerDisposable(new DelegatingListModel());
|
|
3842
|
-
|
|
4185
|
+
columnManager = this.registerDisposable(new ColumnManager());
|
|
3843
4186
|
_editorSessions = new MutableListModel();
|
|
3844
4187
|
_rowsBeingEdited$;
|
|
3845
4188
|
saveCommandFactory;
|
|
3846
4189
|
_editorSessionByRowId;
|
|
3847
4190
|
rowClassNamePredicates = [];
|
|
4191
|
+
rowAttributeGenerators = [];
|
|
3848
4192
|
_columnTextPropertiesLookup;
|
|
3849
4193
|
editing$;
|
|
3850
4194
|
firstEditableColumn$;
|
|
@@ -3861,6 +4205,8 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3861
4205
|
selectedItems$;
|
|
3862
4206
|
leadSelection$;
|
|
3863
4207
|
hasSelection$;
|
|
4208
|
+
footerRowModel;
|
|
4209
|
+
_viewDependencies = [];
|
|
3864
4210
|
constructor() {
|
|
3865
4211
|
super();
|
|
3866
4212
|
const { chain } = Dsl.disposeWith(this);
|
|
@@ -3869,15 +4215,15 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3869
4215
|
});
|
|
3870
4216
|
this._editorSessionByRowId = chain(this._editorSessions).indexBy("rowId");
|
|
3871
4217
|
this.editing$ = chain(this._editorSessions).count().isGreaterThan(0);
|
|
3872
|
-
this.textSearchPredicate$ = chain(this.visibleColumns).
|
|
4218
|
+
this.textSearchPredicate$ = chain(this.visibleColumns$).reduceAll(columns => {
|
|
3873
4219
|
return (row, regex) => {
|
|
3874
4220
|
return (!regex || !!columns.find(c => regex.test(c.getSearchTextFor(row))));
|
|
3875
4221
|
};
|
|
3876
4222
|
});
|
|
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.
|
|
4223
|
+
this.firstEditableColumn$ = chain(this.columns$).select(c => c.hasEditorPortal()).first();
|
|
4224
|
+
this.firstVisibleColumn$ = chain(this.visibleColumns$).first();
|
|
4225
|
+
this.lastVisibleColumn$ = chain(this.visibleColumns$).last();
|
|
4226
|
+
this.rowSelectionDisabledOnAllColumns$ = chain(this.columnManager.visibleColumns$).select(column => column.isRowSelectionEnabled()).count().equals(0);
|
|
3881
4227
|
this.dataSourceEmpty$ = chain(this.dataSource$).isEmpty();
|
|
3882
4228
|
this.selectedItems$ = this.selectionModelProxy.selectedItems$;
|
|
3883
4229
|
this.leadSelection$ = this.selectionModelProxy.leadSelection$;
|
|
@@ -3901,9 +4247,23 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3901
4247
|
],
|
|
3902
4248
|
parent: injector
|
|
3903
4249
|
});
|
|
3904
|
-
this.columns
|
|
4250
|
+
this.columns$.value.forEach(c => c.initialise(customInjector));
|
|
3905
4251
|
this.identityOf = identityOf;
|
|
3906
4252
|
}
|
|
4253
|
+
/**
|
|
4254
|
+
* Adds additional models that will trigger a table repaint. This is required if the table
|
|
4255
|
+
* needs to be redrawn outside of changes to the rows of filters. i.e. some eternal state is used
|
|
4256
|
+
* to assign row classes etc.
|
|
4257
|
+
*
|
|
4258
|
+
* Note: This function must be called before the table is bound to the model.
|
|
4259
|
+
* @param hasValues
|
|
4260
|
+
*/
|
|
4261
|
+
viewStateDependsOn(...hasValues) {
|
|
4262
|
+
this._viewDependencies.push(...hasValues);
|
|
4263
|
+
}
|
|
4264
|
+
get viewStateDependencies() {
|
|
4265
|
+
return this._viewDependencies;
|
|
4266
|
+
}
|
|
3907
4267
|
get dataSource$() {
|
|
3908
4268
|
return this._dataSource$.readonly$;
|
|
3909
4269
|
}
|
|
@@ -3954,19 +4314,19 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3954
4314
|
});
|
|
3955
4315
|
});
|
|
3956
4316
|
}
|
|
3957
|
-
get columns() {
|
|
3958
|
-
return this.
|
|
4317
|
+
get columns$() {
|
|
4318
|
+
return this.columnManager.allColumns$;
|
|
3959
4319
|
}
|
|
3960
|
-
get visibleColumns() {
|
|
3961
|
-
return this.
|
|
4320
|
+
get visibleColumns$() {
|
|
4321
|
+
return this.columnManager.visibleColumns$;
|
|
3962
4322
|
}
|
|
3963
4323
|
pluck(property, options) {
|
|
3964
4324
|
const columnId = options?.columnId || property.toString();
|
|
3965
|
-
return this.addColumn(new PropertyColumnModel(columnId, property, () => this.getColumnTextProperties(columnId)));
|
|
4325
|
+
return this.addColumn(new PropertyColumnModel(columnId, this.columnManager, property, () => this.getColumnTextProperties(columnId)));
|
|
3966
4326
|
}
|
|
3967
4327
|
pluckList(property, options) {
|
|
3968
4328
|
const columnId = options?.columnId || property.toString();
|
|
3969
|
-
return this.addColumn(new ListPropertyColumnModel(columnId, property, () => this.getColumnTextProperties(columnId)));
|
|
4329
|
+
return this.addColumn(new ListPropertyColumnModel(columnId, this.columnManager, property, () => this.getColumnTextProperties(columnId)));
|
|
3970
4330
|
}
|
|
3971
4331
|
// TODO: clean this up and assign the selection model on teh table directly.
|
|
3972
4332
|
// tableModel.useSelectionModel(model) and have the seleciton column automatically
|
|
@@ -3975,44 +4335,52 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3975
4335
|
_addSelectionColumn(selectionModel, visible) {
|
|
3976
4336
|
assert.isNil(this.selectionColumnModel);
|
|
3977
4337
|
const columnId = "selection-column";
|
|
3978
|
-
this.selectionColumnModel = new SelectionColumnModel(columnId, () => this.getColumnTextProperties(columnId), this.selectionModelProxy);
|
|
4338
|
+
this.selectionColumnModel = new SelectionColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId), this.selectionModelProxy);
|
|
3979
4339
|
this.selectionColumnModel.useSelectionModel(selectionModel);
|
|
3980
4340
|
this.addRowClass("aup-row-selected", row => this.selectionColumnModel.isSelected(row));
|
|
3981
|
-
const selectionColumnModel = this.addColumn(this.selectionColumnModel,
|
|
3982
|
-
if (!isNil
|
|
4341
|
+
const selectionColumnModel = this.addColumn(this.selectionColumnModel, { before: null }); // first column
|
|
4342
|
+
if (!isNil(visible)) {
|
|
3983
4343
|
selectionColumnModel.visibleWhile(visible instanceof ValueModel ? visible : ValueModel.constant(visible));
|
|
3984
4344
|
}
|
|
3985
4345
|
return selectionColumnModel;
|
|
3986
4346
|
}
|
|
3987
4347
|
addEditControls(saveCommandFactory, formFactory) {
|
|
3988
4348
|
this.saveCommandFactory = saveCommandFactory;
|
|
3989
|
-
if (isFunction
|
|
4349
|
+
if (isFunction(formFactory)) {
|
|
3990
4350
|
this._createForm = formFactory;
|
|
3991
4351
|
}
|
|
3992
4352
|
const columnId = "editControls";
|
|
3993
|
-
return this.addColumn(new EditorControlColumnModel(columnId, saveCommandFactory, () => this.getColumnTextProperties(columnId)));
|
|
4353
|
+
return this.addColumn(new EditorControlColumnModel(columnId, this.columnManager, saveCommandFactory, () => this.getColumnTextProperties(columnId)));
|
|
3994
4354
|
}
|
|
3995
4355
|
addCustomColumn(columnId, dataAccessor) {
|
|
3996
|
-
return this.addColumn(new CustomValueColumnModel(columnId, () => this.getColumnTextProperties(columnId), dataAccessor));
|
|
4356
|
+
return this.addColumn(new CustomValueColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId), dataAccessor));
|
|
3997
4357
|
}
|
|
3998
4358
|
addComponentColumn(columnId, component, onComponentInitOrOptions) {
|
|
3999
|
-
return this.addColumn(new CustomValueColumnModel(columnId, () => this.getColumnTextProperties(columnId), row => row)).cellRenderer(component, onComponentInitOrOptions);
|
|
4359
|
+
return this.addColumn(new CustomValueColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId), row => row)).cellRenderer(component, onComponentInitOrOptions);
|
|
4000
4360
|
}
|
|
4001
|
-
addMoreMenu(componentClass) {
|
|
4361
|
+
addMoreMenu(componentClass, initialiseCallback) {
|
|
4002
4362
|
return this.addComponentColumn("more-menu", TableMoreMenuComponent, (component) => {
|
|
4003
|
-
component.configurePopupComponentType(componentClass);
|
|
4363
|
+
component.configurePopupComponentType(componentClass, initialiseCallback);
|
|
4004
4364
|
}).columnTextProperties({
|
|
4005
4365
|
headerText() {
|
|
4006
4366
|
return "";
|
|
4007
4367
|
}
|
|
4008
4368
|
});
|
|
4009
4369
|
}
|
|
4370
|
+
addFooterRow(component, initialiseCallback) {
|
|
4371
|
+
assert.isNil(this.footerRowModel);
|
|
4372
|
+
this.footerRowModel = new FooterRowModel.Impl(component, initialiseCallback);
|
|
4373
|
+
return this.footerRowModel;
|
|
4374
|
+
}
|
|
4010
4375
|
addTemplateColumn(columnId) {
|
|
4011
|
-
return this.addColumn(new CustomTemplateColumnModel(columnId, () => this.getColumnTextProperties(columnId)));
|
|
4376
|
+
return this.addColumn(new CustomTemplateColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId)));
|
|
4012
4377
|
}
|
|
4013
4378
|
addRowClass(className, predicate) {
|
|
4014
4379
|
this.rowClassNamePredicates.push(new RowClass(className, predicate));
|
|
4015
4380
|
}
|
|
4381
|
+
addRowAttribute(attributeName, getValue) {
|
|
4382
|
+
this.rowAttributeGenerators.push(new RowAttribute(attributeName, getValue));
|
|
4383
|
+
}
|
|
4016
4384
|
getRowClasses(row) {
|
|
4017
4385
|
const classNames = [];
|
|
4018
4386
|
this.rowClassNamePredicates.forEach(i => {
|
|
@@ -4022,8 +4390,13 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
4022
4390
|
});
|
|
4023
4391
|
return classNames;
|
|
4024
4392
|
}
|
|
4025
|
-
|
|
4026
|
-
return this.
|
|
4393
|
+
getRowAttributes(row) {
|
|
4394
|
+
return this.rowAttributeGenerators.reduce((result, generator) => {
|
|
4395
|
+
return { ...result, [generator.attributeName]: generator.getValue(row) };
|
|
4396
|
+
}, {});
|
|
4397
|
+
}
|
|
4398
|
+
addColumn(column, position) {
|
|
4399
|
+
return this.columnManager.addColumn(column, position);
|
|
4027
4400
|
}
|
|
4028
4401
|
columnTextProperties(columnTextProperties) {
|
|
4029
4402
|
this._columnTextPropertiesLookup = columnTextProperties;
|
|
@@ -4140,7 +4513,7 @@ class TableCellComponent extends DisposableComponent {
|
|
|
4140
4513
|
};
|
|
4141
4514
|
}
|
|
4142
4515
|
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:
|
|
4516
|
+
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
4517
|
}
|
|
4145
4518
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableCellComponent, decorators: [{
|
|
4146
4519
|
type: Component,
|
|
@@ -4179,7 +4552,7 @@ class TableHeaderCellComponent {
|
|
|
4179
4552
|
return this[HEADER_CELL_RENDERER_PORTAL];
|
|
4180
4553
|
}
|
|
4181
4554
|
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:
|
|
4555
|
+
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
4556
|
}
|
|
4184
4557
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableHeaderCellComponent, decorators: [{
|
|
4185
4558
|
type: Component,
|
|
@@ -4191,61 +4564,132 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
4191
4564
|
args: ['class']
|
|
4192
4565
|
}] } });
|
|
4193
4566
|
|
|
4567
|
+
// eslint-disable-next-line @angular-eslint/component-class-suffix
|
|
4568
|
+
class TableFooterRow {
|
|
4569
|
+
row;
|
|
4570
|
+
defaultClassNames = 'aup-footer-row-renderer';
|
|
4571
|
+
get rowClasses() {
|
|
4572
|
+
return this.row.getActiveRowClasses();
|
|
4573
|
+
}
|
|
4574
|
+
initialise($event) {
|
|
4575
|
+
this.row.onInit && this.row.onInit($event.instance);
|
|
4576
|
+
}
|
|
4577
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableFooterRow, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4578
|
+
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"] }] });
|
|
4579
|
+
}
|
|
4580
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableFooterRow, decorators: [{
|
|
4581
|
+
type: Component,
|
|
4582
|
+
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"] }]
|
|
4583
|
+
}], propDecorators: { row: [{
|
|
4584
|
+
type: Input
|
|
4585
|
+
}], defaultClassNames: [{
|
|
4586
|
+
type: HostBinding,
|
|
4587
|
+
args: ['class']
|
|
4588
|
+
}], rowClasses: [{
|
|
4589
|
+
type: HostBinding,
|
|
4590
|
+
args: ['class']
|
|
4591
|
+
}] } });
|
|
4592
|
+
|
|
4593
|
+
const AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER = new InjectionToken("AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER");
|
|
4594
|
+
class TableRowAttributesDirective {
|
|
4595
|
+
elementRef;
|
|
4596
|
+
aupTableRowAttributes;
|
|
4597
|
+
constructor(elementRef) {
|
|
4598
|
+
this.elementRef = elementRef;
|
|
4599
|
+
}
|
|
4600
|
+
ngOnInit() {
|
|
4601
|
+
for (const attr in this.aupTableRowAttributes) {
|
|
4602
|
+
this.elementRef.nativeElement.setAttribute(attr, this.aupTableRowAttributes[attr]);
|
|
4603
|
+
}
|
|
4604
|
+
}
|
|
4605
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableRowAttributesDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4606
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: TableRowAttributesDirective, selector: "[aupTableRowAttributes]", inputs: { aupTableRowAttributes: "aupTableRowAttributes" }, ngImport: i0 });
|
|
4607
|
+
}
|
|
4608
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableRowAttributesDirective, decorators: [{
|
|
4609
|
+
type: Directive,
|
|
4610
|
+
args: [{
|
|
4611
|
+
selector: "[aupTableRowAttributes]",
|
|
4612
|
+
}]
|
|
4613
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { aupTableRowAttributes: [{
|
|
4614
|
+
type: Input
|
|
4615
|
+
}] } });
|
|
4194
4616
|
class TableBodyComponent extends ResizeAwareComponent {
|
|
4617
|
+
bufferMultiplier;
|
|
4195
4618
|
#data$_accessor_storage = proxify((ListModel));
|
|
4196
4619
|
get data$() { return this.#data$_accessor_storage; }
|
|
4197
4620
|
set data$(value) { this.#data$_accessor_storage = value; }
|
|
4198
4621
|
#tableModel_accessor_storage = proxify((AbstractTableModel));
|
|
4199
4622
|
get tableModel() { return this.#tableModel_accessor_storage; }
|
|
4200
4623
|
set tableModel(value) { this.#tableModel_accessor_storage = value; }
|
|
4624
|
+
#footerRow_accessor_storage = proxify((FooterRowModel.Impl));
|
|
4625
|
+
get footerRow() { return this.#footerRow_accessor_storage; }
|
|
4626
|
+
set footerRow(value) { this.#footerRow_accessor_storage = value; }
|
|
4201
4627
|
#showHeader$_accessor_storage = proxify((ValueModel));
|
|
4202
4628
|
get showHeader$() { return this.#showHeader$_accessor_storage; }
|
|
4203
4629
|
set showHeader$(value) { this.#showHeader$_accessor_storage = value; }
|
|
4204
4630
|
#showHeader_accessor_storage = true;
|
|
4205
4631
|
get showHeader() { return this.#showHeader_accessor_storage; }
|
|
4206
4632
|
set showHeader(value) { this.#showHeader_accessor_storage = value; }
|
|
4207
|
-
visibleRowCount = new EventEmitter();
|
|
4208
4633
|
trackBy;
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4634
|
+
#scrollMode$_accessor_storage = proxify((ValueModel));
|
|
4635
|
+
get scrollMode$() { return this.#scrollMode$_accessor_storage; }
|
|
4636
|
+
set scrollMode$(value) { this.#scrollMode$_accessor_storage = value; }
|
|
4637
|
+
#scrollMode_accessor_storage = "none";
|
|
4638
|
+
get scrollMode() { return this.#scrollMode_accessor_storage; }
|
|
4639
|
+
set scrollMode(value) { this.#scrollMode_accessor_storage = value; }
|
|
4640
|
+
scrollViewport;
|
|
4215
4641
|
columns$;
|
|
4216
4642
|
columnIds$;
|
|
4217
4643
|
columnsById$;
|
|
4218
|
-
_visibleRowCount$;
|
|
4219
4644
|
// TODO: support user defined header and row heights via css vars.
|
|
4220
|
-
headerHeight$ = new MutableValueModel(
|
|
4221
|
-
rowHeight$ = new MutableValueModel(
|
|
4645
|
+
headerHeight$ = new MutableValueModel(48);
|
|
4646
|
+
rowHeight$ = new MutableValueModel(44);
|
|
4222
4647
|
baseCssClass = "aup-table-component";
|
|
4223
|
-
|
|
4224
|
-
|
|
4225
|
-
|
|
4648
|
+
virtualScrollDataSource = new TableVirtualScrollDataSource();
|
|
4649
|
+
virtualScrollActive$ = new MutableValueModel(false);
|
|
4650
|
+
scrollTimeout;
|
|
4651
|
+
constructor(bufferMultiplier = 1) {
|
|
4652
|
+
super();
|
|
4653
|
+
this.bufferMultiplier = bufferMultiplier;
|
|
4654
|
+
const { chain, when, observe } = Dsl.disposeWith(this);
|
|
4226
4655
|
const actualHeaderHeight$ = chain(this.showHeader$).map(show => {
|
|
4227
4656
|
return show ? this.headerHeight$.value : 0;
|
|
4228
4657
|
}, { 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" });
|
|
4658
|
+
// performance is terrible if the data changes while we're scrolling, so we postpone updates until
|
|
4659
|
+
// scrolling stops.
|
|
4660
|
+
const delayedDatea$ = chain(this.data$).postponeWhile(this.virtualScrollActive$);
|
|
4661
|
+
when(delayedDatea$).changes(delatedData => {
|
|
4662
|
+
this.virtualScrollDataSource.data = delatedData;
|
|
4663
|
+
this.scheduleTableHeightCheck();
|
|
4664
|
+
}, { initialValue: "evaluate" });
|
|
4240
4665
|
this.onInit(() => {
|
|
4241
|
-
this.columns$ = chain(this.tableModel.
|
|
4666
|
+
this.columns$ = chain(this.tableModel.visibleColumns$);
|
|
4242
4667
|
this.columnIds$ = chain(this.columns$).pluck("columnId");
|
|
4243
4668
|
this.columnsById$ = chain(this.columns$).indexBy('columnId');
|
|
4244
4669
|
});
|
|
4670
|
+
// const txo = new TransactionObserver({verbose: false}).onEvent(e => console.log(e.name, e.payload));
|
|
4671
|
+
// txo.observe('this.virtualScrollRowRange$', this.virtualScrollRowRange$);
|
|
4672
|
+
// txo.observe('this.virtualScrollSpacerSize$', this.virtualScrollSpacerSize$);
|
|
4673
|
+
// txo.observe('this.virtualRows$', this.virtualRows$);
|
|
4674
|
+
// txo.observe('this.tableBodyHeight$', this.tableBodyHeight$);
|
|
4675
|
+
// txo.observe('this.virtualScrollActive$', this.virtualScrollActive$);
|
|
4676
|
+
}
|
|
4677
|
+
ngAfterViewInit() {
|
|
4678
|
+
super.ngAfterViewInit();
|
|
4679
|
+
if (this.scrollViewport) {
|
|
4680
|
+
const { observe } = Dsl.disposeWith(this);
|
|
4681
|
+
this.scrollViewport.elementScrolled().subscribe(() => this.notifyScrolled());
|
|
4682
|
+
}
|
|
4245
4683
|
}
|
|
4246
4684
|
get hideHeader() {
|
|
4247
4685
|
return !this.showHeader;
|
|
4248
4686
|
}
|
|
4687
|
+
get headerHeightCssVar() {
|
|
4688
|
+
return `${this.headerHeight$.value}px`;
|
|
4689
|
+
}
|
|
4690
|
+
get rowHeightCssVar() {
|
|
4691
|
+
return `${this.rowHeight$.value}px`;
|
|
4692
|
+
}
|
|
4249
4693
|
isEditing(row) {
|
|
4250
4694
|
return !!this.tableModel.getEditSessionFor(row);
|
|
4251
4695
|
}
|
|
@@ -4270,51 +4714,110 @@ class TableBodyComponent extends ResizeAwareComponent {
|
|
|
4270
4714
|
}
|
|
4271
4715
|
return classes;
|
|
4272
4716
|
}
|
|
4273
|
-
|
|
4274
|
-
|
|
4717
|
+
scheduleTableHeightCheck(waitMillis = 50) {
|
|
4718
|
+
setTimeout(() => {
|
|
4719
|
+
const tbody = this.elementRef.nativeElement.querySelector("tbody");
|
|
4720
|
+
const bodyHeight = tbody.offsetHeight;
|
|
4721
|
+
if (this.data$.length > 0 && bodyHeight < this.rowHeight$.value) {
|
|
4722
|
+
// Hacks to get our virtual scroll to repaint
|
|
4723
|
+
// Logger.get(this).log(`rowCount=${this.data$.length}, bodyHeight=${bodyHeight} -> virtual table not rendering, triggering resize to force repaint`)
|
|
4724
|
+
window.dispatchEvent(new Event('resize'));
|
|
4725
|
+
if (waitMillis < 500) {
|
|
4726
|
+
this.scheduleTableHeightCheck(waitMillis + 50);
|
|
4727
|
+
}
|
|
4728
|
+
}
|
|
4729
|
+
}, waitMillis);
|
|
4730
|
+
}
|
|
4731
|
+
notifyScrolled() {
|
|
4732
|
+
this.virtualScrollActive$.value = true;
|
|
4733
|
+
this.clearScrollTimeout();
|
|
4734
|
+
this.scrollTimeout = setTimeout(() => {
|
|
4735
|
+
return this.virtualScrollActive$.value = false;
|
|
4736
|
+
}, 200);
|
|
4737
|
+
}
|
|
4738
|
+
clearScrollTimeout() {
|
|
4739
|
+
if (this.scrollTimeout) {
|
|
4740
|
+
clearTimeout(this.scrollTimeout);
|
|
4741
|
+
}
|
|
4742
|
+
}
|
|
4743
|
+
initialiseFooter($event) {
|
|
4744
|
+
const portalRef = $event;
|
|
4745
|
+
this.footerRow.onInit(portalRef.instance);
|
|
4746
|
+
}
|
|
4747
|
+
Proxify = Proxify;
|
|
4748
|
+
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 });
|
|
4749
|
+
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
4750
|
}
|
|
4276
4751
|
__decorate([
|
|
4277
4752
|
Proxify(),
|
|
4278
|
-
__metadata("design:type",
|
|
4753
|
+
__metadata("design:type", ListModel)
|
|
4279
4754
|
], TableBodyComponent.prototype, "data$", null);
|
|
4280
4755
|
__decorate([
|
|
4281
4756
|
Proxify(),
|
|
4282
|
-
__metadata("design:type",
|
|
4757
|
+
__metadata("design:type", AbstractTableModel)
|
|
4283
4758
|
], TableBodyComponent.prototype, "tableModel", null);
|
|
4284
4759
|
__decorate([
|
|
4285
4760
|
Proxify(),
|
|
4286
|
-
__metadata("design:type",
|
|
4761
|
+
__metadata("design:type", FooterRowModel.Impl)
|
|
4762
|
+
], TableBodyComponent.prototype, "footerRow", null);
|
|
4763
|
+
__decorate([
|
|
4764
|
+
Proxify(),
|
|
4765
|
+
__metadata("design:type", ValueModel)
|
|
4287
4766
|
], TableBodyComponent.prototype, "showHeader$", null);
|
|
4288
4767
|
__decorate([
|
|
4289
4768
|
StoreInValueModel(),
|
|
4290
4769
|
__metadata("design:type", Object)
|
|
4291
4770
|
], TableBodyComponent.prototype, "showHeader", null);
|
|
4771
|
+
__decorate([
|
|
4772
|
+
Proxify(),
|
|
4773
|
+
__metadata("design:type", ValueModel)
|
|
4774
|
+
], TableBodyComponent.prototype, "scrollMode$", null);
|
|
4775
|
+
__decorate([
|
|
4776
|
+
StoreInValueModel(),
|
|
4777
|
+
__metadata("design:type", String)
|
|
4778
|
+
], TableBodyComponent.prototype, "scrollMode", null);
|
|
4292
4779
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableBodyComponent, decorators: [{
|
|
4293
4780
|
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:
|
|
4781
|
+
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"] }]
|
|
4782
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
4783
|
+
type: Inject,
|
|
4784
|
+
args: [AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER]
|
|
4785
|
+
}, {
|
|
4786
|
+
type: Optional
|
|
4787
|
+
}] }]; }, propDecorators: { data$: [{
|
|
4296
4788
|
type: Input
|
|
4297
4789
|
}], tableModel: [{
|
|
4298
4790
|
type: Input
|
|
4791
|
+
}], footerRow: [{
|
|
4792
|
+
type: Input
|
|
4299
4793
|
}], showHeader$: [{
|
|
4300
4794
|
type: Input
|
|
4301
4795
|
}], showHeader: [{
|
|
4302
4796
|
type: Input
|
|
4303
|
-
}], visibleRowCount: [{
|
|
4304
|
-
type: Output
|
|
4305
4797
|
}], trackBy: [{
|
|
4306
4798
|
type: Input
|
|
4307
|
-
}],
|
|
4799
|
+
}], scrollMode$: [{
|
|
4800
|
+
type: Input
|
|
4801
|
+
}], scrollMode: [{
|
|
4308
4802
|
type: Input
|
|
4309
4803
|
}, {
|
|
4310
4804
|
type: HostBinding,
|
|
4311
|
-
args: ["
|
|
4805
|
+
args: ["attr.scrollMode"]
|
|
4806
|
+
}], scrollViewport: [{
|
|
4807
|
+
type: ViewChild,
|
|
4808
|
+
args: [CdkVirtualScrollViewport]
|
|
4312
4809
|
}], baseCssClass: [{
|
|
4313
4810
|
type: HostBinding,
|
|
4314
4811
|
args: ["class"]
|
|
4315
4812
|
}], hideHeader: [{
|
|
4316
4813
|
type: HostBinding,
|
|
4317
4814
|
args: ["class.hide-header"]
|
|
4815
|
+
}], headerHeightCssVar: [{
|
|
4816
|
+
type: HostBinding,
|
|
4817
|
+
args: ["style.--aup-table-header-height"]
|
|
4818
|
+
}], rowHeightCssVar: [{
|
|
4819
|
+
type: HostBinding,
|
|
4820
|
+
args: ["style.--aup-table-row-height"]
|
|
4318
4821
|
}] } });
|
|
4319
4822
|
|
|
4320
4823
|
class TableMoreMenuPopupComponent extends DisposableComponent {
|
|
@@ -4435,8 +4938,10 @@ class TableFilterModel extends GarbageCollector {
|
|
|
4435
4938
|
this.useSearchText(options.searchText$);
|
|
4436
4939
|
this.useRowPredicate(options.predicate$);
|
|
4437
4940
|
const { chain } = Dsl.disposeWith(this);
|
|
4438
|
-
const textSearchRegex$ = chain(this._searchText$)
|
|
4439
|
-
|
|
4941
|
+
const textSearchRegex$ = chain(this._searchText$)
|
|
4942
|
+
.debounce(250)
|
|
4943
|
+
.map(text => {
|
|
4944
|
+
return isEmpty(text) ? undefined : new RegExp(escapeStringRegexp(text), "i");
|
|
4440
4945
|
}, { allowNil: true });
|
|
4441
4946
|
this._rowPredicate = chain(this._rowPredicate$)
|
|
4442
4947
|
.map(predicate => {
|
|
@@ -4644,31 +5149,30 @@ class TableComponent extends AbstractTableComponent {
|
|
|
4644
5149
|
#filterModel_accessor_storage = proxify((TableFilterModel));
|
|
4645
5150
|
get filterModel() { return this.#filterModel_accessor_storage; }
|
|
4646
5151
|
set filterModel(value) { this.#filterModel_accessor_storage = value; }
|
|
4647
|
-
|
|
4648
|
-
|
|
4649
|
-
|
|
4650
|
-
|
|
4651
|
-
|
|
4652
|
-
|
|
4653
|
-
|
|
4654
|
-
|
|
4655
|
-
|
|
4656
|
-
|
|
4657
|
-
|
|
4658
|
-
// }
|
|
4659
|
-
// }
|
|
5152
|
+
tableBody;
|
|
5153
|
+
#scrollMode$_accessor_storage = proxify((ValueModel));
|
|
5154
|
+
/**
|
|
5155
|
+
* 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
|
|
5156
|
+
* renders all rows but allows row heights to grow.
|
|
5157
|
+
*/
|
|
5158
|
+
get scrollMode$() { return this.#scrollMode$_accessor_storage; }
|
|
5159
|
+
set scrollMode$(value) { this.#scrollMode$_accessor_storage = value; }
|
|
5160
|
+
#scrollMode_accessor_storage;
|
|
5161
|
+
get scrollMode() { return this.#scrollMode_accessor_storage; }
|
|
5162
|
+
set scrollMode(value) { this.#scrollMode_accessor_storage = value; }
|
|
4660
5163
|
_footerContentAdded = false;
|
|
4661
5164
|
_filteredRows$ = this.registerDisposable(new DelegatingListModel());
|
|
4662
|
-
|
|
4663
|
-
pagedListModel;
|
|
5165
|
+
tableBodyScrollMode$;
|
|
4664
5166
|
constructor(injector) {
|
|
4665
5167
|
super(injector);
|
|
4666
|
-
const { when } = Dsl.disposeWith(this);
|
|
4667
|
-
this.
|
|
4668
|
-
|
|
5168
|
+
const { chain, when } = Dsl.disposeWith(this);
|
|
5169
|
+
this.tableBodyScrollMode$ = chain(this.enableScrolling$).map(enable => {
|
|
5170
|
+
return enable ? (this.scrollMode$.value ?? "virtual") : 'none';
|
|
5171
|
+
}, { dependsOn: this.scrollMode$ });
|
|
4669
5172
|
}
|
|
4670
5173
|
ngOnInit() {
|
|
4671
5174
|
super.ngOnInit();
|
|
5175
|
+
const { when } = Dsl.disposeWith(this);
|
|
4672
5176
|
if (CanProxy.hasTarget(this.filterModel)) {
|
|
4673
5177
|
this.registerDisposable(this.filterModel.bindToTable(this._dataSource$, this.getModel().textSearchPredicate$));
|
|
4674
5178
|
this.highlightText$.setDelegate(this.filterModel.highlightText$);
|
|
@@ -4677,50 +5181,27 @@ class TableComponent extends AbstractTableComponent {
|
|
|
4677
5181
|
else {
|
|
4678
5182
|
this._filteredRows$.setDelegate(this._dataSource$);
|
|
4679
5183
|
}
|
|
4680
|
-
this.
|
|
5184
|
+
this._visibleRows$.setDelegate(this._filteredRows$);
|
|
5185
|
+
// let users of the model know what the current visible and filtered rows are for selection models and what not
|
|
4681
5186
|
this.tableModel.bindToTable(this._filteredRows$, this._visibleRows$);
|
|
5187
|
+
when.anyOf(...this.tableModel.viewStateDependencies).changes(() => this.cdr.markForCheck());
|
|
5188
|
+
this.viewStateDependsOn(this._filteredRows$, this.tableModel.visibleColumns$);
|
|
4682
5189
|
}
|
|
4683
5190
|
getModel() {
|
|
4684
5191
|
return this.tableModel;
|
|
4685
5192
|
}
|
|
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
5193
|
footerContentChanged($event) {
|
|
4709
5194
|
// console.log($event);
|
|
4710
5195
|
this._footerContentAdded = true;
|
|
4711
5196
|
}
|
|
4712
|
-
//@Trace()
|
|
4713
|
-
updatePageSize(count) {
|
|
4714
|
-
this._pageSize.value = count;
|
|
4715
|
-
}
|
|
4716
5197
|
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",
|
|
5198
|
+
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
5199
|
{ provide: AbstractTableComponent, useExisting: TableComponent }
|
|
4719
|
-
], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"tableModel\"\n [
|
|
5200
|
+
], 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4720
5201
|
}
|
|
4721
5202
|
__decorate([
|
|
4722
5203
|
Proxify(),
|
|
4723
|
-
__metadata("design:type",
|
|
5204
|
+
__metadata("design:type", TableModel)
|
|
4724
5205
|
], TableComponent.prototype, "tableModel", null);
|
|
4725
5206
|
__decorate([
|
|
4726
5207
|
Proxify(),
|
|
@@ -4728,24 +5209,27 @@ __decorate([
|
|
|
4728
5209
|
], TableComponent.prototype, "filterModel", null);
|
|
4729
5210
|
__decorate([
|
|
4730
5211
|
Proxify(),
|
|
4731
|
-
__metadata("design:type",
|
|
4732
|
-
], TableComponent.prototype, "
|
|
5212
|
+
__metadata("design:type", ValueModel)
|
|
5213
|
+
], TableComponent.prototype, "scrollMode$", null);
|
|
4733
5214
|
__decorate([
|
|
4734
5215
|
StoreInValueModel(),
|
|
4735
5216
|
__metadata("design:type", Object)
|
|
4736
|
-
], TableComponent.prototype, "
|
|
5217
|
+
], TableComponent.prototype, "scrollMode", null);
|
|
4737
5218
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableComponent, decorators: [{
|
|
4738
5219
|
type: Component,
|
|
4739
|
-
args: [{ selector: 'aup-table', providers: [
|
|
5220
|
+
args: [{ selector: 'aup-table', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
4740
5221
|
{ provide: AbstractTableComponent, useExisting: TableComponent }
|
|
4741
|
-
], template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"tableModel\"\n [
|
|
5222
|
+
], 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
5223
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { tableModel: [{
|
|
4743
5224
|
type: Input
|
|
4744
5225
|
}], filterModel: [{
|
|
4745
5226
|
type: Input
|
|
4746
|
-
}],
|
|
5227
|
+
}], tableBody: [{
|
|
5228
|
+
type: ViewChild,
|
|
5229
|
+
args: [TableBodyComponent]
|
|
5230
|
+
}], scrollMode$: [{
|
|
4747
5231
|
type: Input
|
|
4748
|
-
}],
|
|
5232
|
+
}], scrollMode: [{
|
|
4749
5233
|
type: Input
|
|
4750
5234
|
}] } });
|
|
4751
5235
|
|
|
@@ -4927,7 +5411,7 @@ var DecoratedTreeNode;
|
|
|
4927
5411
|
}
|
|
4928
5412
|
}
|
|
4929
5413
|
__decorate([
|
|
4930
|
-
|
|
5414
|
+
MemoizeGet(),
|
|
4931
5415
|
__metadata("design:type", Array),
|
|
4932
5416
|
__metadata("design:paramtypes", [])
|
|
4933
5417
|
], Decorator.prototype, "children", null);
|
|
@@ -4980,7 +5464,7 @@ var DecoratedTreeNode;
|
|
|
4980
5464
|
__metadata("design:returntype", Array)
|
|
4981
5465
|
], Decorator.prototype, "ancestors", null);
|
|
4982
5466
|
__decorate([
|
|
4983
|
-
|
|
5467
|
+
MemoizeGet(),
|
|
4984
5468
|
__metadata("design:type", Number),
|
|
4985
5469
|
__metadata("design:paramtypes", [])
|
|
4986
5470
|
], Decorator.prototype, "depth", null);
|
|
@@ -4991,8 +5475,8 @@ class TreeLabelColumnModel extends ColumnModel {
|
|
|
4991
5475
|
expansionModel;
|
|
4992
5476
|
labelFactory = () => undefined;
|
|
4993
5477
|
iconFactory;
|
|
4994
|
-
constructor(columnId, textPropertiesProvider, expansionModel) {
|
|
4995
|
-
super(columnId, textPropertiesProvider);
|
|
5478
|
+
constructor(columnId, order, textPropertiesProvider, expansionModel) {
|
|
5479
|
+
super(columnId, order, textPropertiesProvider);
|
|
4996
5480
|
this.expansionModel = expansionModel;
|
|
4997
5481
|
this.cellRenderer(TreeLabelCellRendererComponent);
|
|
4998
5482
|
}
|
|
@@ -5051,7 +5535,7 @@ class TreeTableModel extends AbstractTableModel {
|
|
|
5051
5535
|
get isExpandedPredicate$() {
|
|
5052
5536
|
return this._isExpandedPredicate$.readonly$;
|
|
5053
5537
|
}
|
|
5054
|
-
bindToTable(expansionModel, filteredRows$, visibleRows
|
|
5538
|
+
bindToTable(expansionModel, filteredRows$, visibleRows$, cdr) {
|
|
5055
5539
|
this.treeExpansionModel = expansionModel;
|
|
5056
5540
|
// TODO: Move all the expansion model stuff out of here and have things use the expansion model directly
|
|
5057
5541
|
this._isExpandedPredicate$.setDelegate(this.treeExpansionModel.isExpandedPredicate$);
|
|
@@ -5060,7 +5544,7 @@ class TreeTableModel extends AbstractTableModel {
|
|
|
5060
5544
|
}
|
|
5061
5545
|
treeControlColumn(builder) {
|
|
5062
5546
|
const columnId = 'tree-label';
|
|
5063
|
-
const column = new TreeLabelColumnModel(columnId, () => this.getColumnTextProperties(columnId), this);
|
|
5547
|
+
const column = new TreeLabelColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId), this);
|
|
5064
5548
|
builder(column);
|
|
5065
5549
|
this.addColumn(column);
|
|
5066
5550
|
}
|
|
@@ -5386,11 +5870,15 @@ class TreeTableComponent extends AbstractTableComponent {
|
|
|
5386
5870
|
#expansionModel_accessor_storage = proxify((TreeExpansionModel));
|
|
5387
5871
|
get expansionModel() { return this.#expansionModel_accessor_storage; }
|
|
5388
5872
|
set expansionModel(value) { this.#expansionModel_accessor_storage = value; }
|
|
5873
|
+
scrollMode$;
|
|
5389
5874
|
constructor(injector) {
|
|
5390
5875
|
super(injector);
|
|
5876
|
+
const { chain } = Dsl.disposeWith(this);
|
|
5877
|
+
this.scrollMode$ = chain(this.enableScrolling$).map(enabled => enabled ? "classic" : "none");
|
|
5391
5878
|
}
|
|
5392
5879
|
ngOnInit() {
|
|
5393
5880
|
super.ngOnInit();
|
|
5881
|
+
const { when } = Dsl.disposeWith(this);
|
|
5394
5882
|
// TODO: clean up all this tightly coupled shit, should the expansion model really be separate from the tree model?
|
|
5395
5883
|
if (!this.expansionModel) {
|
|
5396
5884
|
this.expansionModel = new TreeExpansionModel({ disposedWith: this });
|
|
@@ -5399,7 +5887,10 @@ class TreeTableComponent extends AbstractTableComponent {
|
|
|
5399
5887
|
const visibleRows$ = new FlattenedTreeListModel(this._dataSource$, row => this.treeTableModel.childExtractor(row), this.expansionModel);
|
|
5400
5888
|
this._visibleRows$.setDelegate(visibleRows$);
|
|
5401
5889
|
this.expansionModel.bindToTable(this._dataSource$, visibleRows$);
|
|
5402
|
-
this.treeTableModel.bindToTable(this.expansionModel, visibleRows$, this._visibleRows
|
|
5890
|
+
this.treeTableModel.bindToTable(this.expansionModel, visibleRows$, this._visibleRows$, this.cdr);
|
|
5891
|
+
this.viewStateDependsOn(this.treeTableModel.visibleRows$);
|
|
5892
|
+
this.viewStateDependsOn(this.treeTableModel.visibleRows$);
|
|
5893
|
+
when.anyOf(...this.treeTableModel.viewStateDependencies).changes(() => this.cdr.markForCheck());
|
|
5403
5894
|
}
|
|
5404
5895
|
getModel() {
|
|
5405
5896
|
return this.treeTableModel;
|
|
@@ -5407,7 +5898,7 @@ class TreeTableComponent extends AbstractTableComponent {
|
|
|
5407
5898
|
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
5899
|
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
5900
|
{ provide: AbstractTableComponent, useExisting: TreeTableComponent }
|
|
5410
|
-
], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"treeTableModel\"\n [showHeader$]=\"showHeader$\"\n [
|
|
5901
|
+
], 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5411
5902
|
}
|
|
5412
5903
|
__decorate([
|
|
5413
5904
|
Proxify(),
|
|
@@ -5419,9 +5910,9 @@ __decorate([
|
|
|
5419
5910
|
], TreeTableComponent.prototype, "expansionModel", null);
|
|
5420
5911
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TreeTableComponent, decorators: [{
|
|
5421
5912
|
type: Component,
|
|
5422
|
-
args: [{ selector: 'aup-tree-table', providers: [
|
|
5913
|
+
args: [{ selector: 'aup-tree-table', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
5423
5914
|
{ provide: AbstractTableComponent, useExisting: TreeTableComponent }
|
|
5424
|
-
], template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"treeTableModel\"\n [showHeader$]=\"showHeader$\"\n [
|
|
5915
|
+
], 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
5916
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { treeTableModel: [{
|
|
5426
5917
|
type: Input
|
|
5427
5918
|
}], expansionModel: [{
|
|
@@ -5603,6 +6094,7 @@ class ComponentsModule {
|
|
|
5603
6094
|
FocusableComponent,
|
|
5604
6095
|
CardContainerComponent,
|
|
5605
6096
|
TableComponent,
|
|
6097
|
+
TableRowAttributesDirective,
|
|
5606
6098
|
EditRowControlsComponent,
|
|
5607
6099
|
ColumnTemplateDirective,
|
|
5608
6100
|
DefaultCellRendererComponent,
|
|
@@ -5636,7 +6128,9 @@ class ComponentsModule {
|
|
|
5636
6128
|
MarkdownComponent,
|
|
5637
6129
|
TableBodyComponent,
|
|
5638
6130
|
TableMoreMenuComponent,
|
|
5639
|
-
TableMoreMenuPopupComponent
|
|
6131
|
+
TableMoreMenuPopupComponent,
|
|
6132
|
+
SearchInputComponent,
|
|
6133
|
+
TableFooterRow], imports: [CommonModule,
|
|
5640
6134
|
BrowserAnimationsModule,
|
|
5641
6135
|
FormsModule,
|
|
5642
6136
|
MatInputModule,
|
|
@@ -5655,7 +6149,10 @@ class ComponentsModule {
|
|
|
5655
6149
|
MatMenuModule,
|
|
5656
6150
|
MatDividerModule,
|
|
5657
6151
|
MatProgressSpinnerModule,
|
|
5658
|
-
MatProgressBarModule
|
|
6152
|
+
MatProgressBarModule,
|
|
6153
|
+
ScrollingModule,
|
|
6154
|
+
TableVirtualScrollModule], exports: [TableFooterRow,
|
|
6155
|
+
NumberInputComponent,
|
|
5659
6156
|
StringInputComponent,
|
|
5660
6157
|
TextInputComponent,
|
|
5661
6158
|
PasswordInputComponent,
|
|
@@ -5693,7 +6190,8 @@ class ComponentsModule {
|
|
|
5693
6190
|
LoadingContainerComponent,
|
|
5694
6191
|
MarkdownComponent,
|
|
5695
6192
|
TableMoreMenuComponent,
|
|
5696
|
-
TableMoreMenuPopupComponent
|
|
6193
|
+
TableMoreMenuPopupComponent,
|
|
6194
|
+
SearchInputComponent] });
|
|
5697
6195
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ComponentsModule, providers: [
|
|
5698
6196
|
FocusBindingFactory,
|
|
5699
6197
|
MarkdownService
|
|
@@ -5716,7 +6214,9 @@ class ComponentsModule {
|
|
|
5716
6214
|
MatMenuModule,
|
|
5717
6215
|
MatDividerModule,
|
|
5718
6216
|
MatProgressSpinnerModule,
|
|
5719
|
-
MatProgressBarModule
|
|
6217
|
+
MatProgressBarModule,
|
|
6218
|
+
ScrollingModule,
|
|
6219
|
+
TableVirtualScrollModule] });
|
|
5720
6220
|
}
|
|
5721
6221
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ComponentsModule, decorators: [{
|
|
5722
6222
|
type: NgModule,
|
|
@@ -5741,7 +6241,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5741
6241
|
MatMenuModule,
|
|
5742
6242
|
MatDividerModule,
|
|
5743
6243
|
MatProgressSpinnerModule,
|
|
5744
|
-
MatProgressBarModule
|
|
6244
|
+
MatProgressBarModule,
|
|
6245
|
+
ScrollingModule,
|
|
6246
|
+
TableVirtualScrollModule
|
|
5745
6247
|
],
|
|
5746
6248
|
declarations: [
|
|
5747
6249
|
AbstractInputComponent,
|
|
@@ -5765,6 +6267,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5765
6267
|
FocusableComponent,
|
|
5766
6268
|
CardContainerComponent,
|
|
5767
6269
|
TableComponent,
|
|
6270
|
+
TableRowAttributesDirective,
|
|
5768
6271
|
EditRowControlsComponent,
|
|
5769
6272
|
ColumnTemplateDirective,
|
|
5770
6273
|
DefaultCellRendererComponent,
|
|
@@ -5799,8 +6302,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5799
6302
|
TableBodyComponent,
|
|
5800
6303
|
TableMoreMenuComponent,
|
|
5801
6304
|
TableMoreMenuPopupComponent,
|
|
6305
|
+
SearchInputComponent,
|
|
6306
|
+
TableFooterRow
|
|
5802
6307
|
],
|
|
5803
6308
|
exports: [
|
|
6309
|
+
TableFooterRow,
|
|
5804
6310
|
NumberInputComponent,
|
|
5805
6311
|
StringInputComponent,
|
|
5806
6312
|
TextInputComponent,
|
|
@@ -5840,6 +6346,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5840
6346
|
MarkdownComponent,
|
|
5841
6347
|
TableMoreMenuComponent,
|
|
5842
6348
|
TableMoreMenuPopupComponent,
|
|
6349
|
+
SearchInputComponent
|
|
5843
6350
|
],
|
|
5844
6351
|
providers: [
|
|
5845
6352
|
FocusBindingFactory,
|
|
@@ -5848,6 +6355,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5848
6355
|
}]
|
|
5849
6356
|
}] });
|
|
5850
6357
|
|
|
6358
|
+
class LoadableComponent extends DisposableComponent {
|
|
6359
|
+
#_loaded$ = new MutableValueModel();
|
|
6360
|
+
#asyncLoadables = [];
|
|
6361
|
+
#awaitedLoadables = [];
|
|
6362
|
+
get loaded$() {
|
|
6363
|
+
return this.#_loaded$.readonly$;
|
|
6364
|
+
}
|
|
6365
|
+
ngOnInit() {
|
|
6366
|
+
super.ngOnInit();
|
|
6367
|
+
this.#asyncLoadables.forEach(it => it.ensureLoaded());
|
|
6368
|
+
if (this.#awaitedLoadables.length > 0) {
|
|
6369
|
+
Promise.all(this.#awaitedLoadables.map(it => {
|
|
6370
|
+
return it.ensureLoaded(); //.then(() => console.log(`${it.constructor.name} loaded`));
|
|
6371
|
+
})).then(() => {
|
|
6372
|
+
this.#_loaded$.value = true;
|
|
6373
|
+
});
|
|
6374
|
+
}
|
|
6375
|
+
else {
|
|
6376
|
+
this.#_loaded$.value = true;
|
|
6377
|
+
}
|
|
6378
|
+
}
|
|
6379
|
+
injectLoadable(token, options) {
|
|
6380
|
+
return this.registerLoadable(inject(token), options);
|
|
6381
|
+
}
|
|
6382
|
+
registerLoadable(loadable, options) {
|
|
6383
|
+
if (this.loaded$.value) {
|
|
6384
|
+
loadable.ensureLoaded();
|
|
6385
|
+
}
|
|
6386
|
+
else {
|
|
6387
|
+
if (!options || options.wait === true) {
|
|
6388
|
+
this.#awaitedLoadables.push(loadable);
|
|
6389
|
+
}
|
|
6390
|
+
else {
|
|
6391
|
+
this.#asyncLoadables.push(loadable);
|
|
6392
|
+
}
|
|
6393
|
+
}
|
|
6394
|
+
return loadable;
|
|
6395
|
+
}
|
|
6396
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
6397
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: LoadableComponent, usesInheritance: true, ngImport: i0 });
|
|
6398
|
+
}
|
|
6399
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, decorators: [{
|
|
6400
|
+
type: Directive
|
|
6401
|
+
}] });
|
|
6402
|
+
|
|
6403
|
+
class TextSearchContext {
|
|
6404
|
+
row;
|
|
6405
|
+
searchText;
|
|
6406
|
+
searchRegex;
|
|
6407
|
+
constructor(row, searchText, searchRegex) {
|
|
6408
|
+
this.row = row;
|
|
6409
|
+
this.searchText = searchText;
|
|
6410
|
+
this.searchRegex = searchRegex;
|
|
6411
|
+
}
|
|
6412
|
+
getOrCreate(type, create) {
|
|
6413
|
+
}
|
|
6414
|
+
matchesText(text) {
|
|
6415
|
+
return this.searchRegex.test(text);
|
|
6416
|
+
}
|
|
6417
|
+
}
|
|
6418
|
+
|
|
5851
6419
|
/**
|
|
5852
6420
|
* @file Automatically generated by barrelsby.
|
|
5853
6421
|
*/
|
|
@@ -5874,7 +6442,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5874
6442
|
* </aup-activity-actions>
|
|
5875
6443
|
*/
|
|
5876
6444
|
class ActivityActionsComponent extends DisposableComponent {
|
|
5877
|
-
cdr;
|
|
5878
6445
|
confirmCommandComponent;
|
|
5879
6446
|
cancelCommandComponent;
|
|
5880
6447
|
#confirmCommand_accessor_storage = proxify((Command));
|
|
@@ -5903,9 +6470,9 @@ class ActivityActionsComponent extends DisposableComponent {
|
|
|
5903
6470
|
}
|
|
5904
6471
|
layout = ActivityActionsComponent.Layout.BLOCK;
|
|
5905
6472
|
align = ActivityActionsComponent.Align.STRETCH;
|
|
5906
|
-
|
|
6473
|
+
alignContent = ActivityActionsComponent.AlignContent.CENTER;
|
|
6474
|
+
constructor() {
|
|
5907
6475
|
super();
|
|
5908
|
-
this.cdr = cdr;
|
|
5909
6476
|
}
|
|
5910
6477
|
hasConfirmFace() {
|
|
5911
6478
|
return !!this.confirmFace;
|
|
@@ -5924,8 +6491,8 @@ class ActivityActionsComponent extends DisposableComponent {
|
|
|
5924
6491
|
focusCancel() {
|
|
5925
6492
|
this.cancelCommandComponent.requestFocus();
|
|
5926
6493
|
}
|
|
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=\"
|
|
6494
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6495
|
+
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
6496
|
}
|
|
5930
6497
|
__decorate([
|
|
5931
6498
|
Proxify(),
|
|
@@ -5937,8 +6504,8 @@ __decorate([
|
|
|
5937
6504
|
], ActivityActionsComponent.prototype, "cancelCommand", null);
|
|
5938
6505
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, decorators: [{
|
|
5939
6506
|
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 [
|
|
6507
|
+
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"] }]
|
|
6508
|
+
}], ctorParameters: function () { return []; }, propDecorators: { confirmCommandComponent: [{
|
|
5942
6509
|
type: ViewChild,
|
|
5943
6510
|
args: ["confirmCommandComponent"]
|
|
5944
6511
|
}], cancelCommandComponent: [{
|
|
@@ -5966,6 +6533,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5966
6533
|
}, {
|
|
5967
6534
|
type: HostBinding,
|
|
5968
6535
|
args: ['attr.align']
|
|
6536
|
+
}], alignContent: [{
|
|
6537
|
+
type: Input
|
|
6538
|
+
}, {
|
|
6539
|
+
type: HostBinding,
|
|
6540
|
+
args: ['attr.align-content']
|
|
5969
6541
|
}] } });
|
|
5970
6542
|
(function (ActivityActionsComponent) {
|
|
5971
6543
|
ActivityActionsComponent.Layout = Enum({
|
|
@@ -5974,14 +6546,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5974
6546
|
});
|
|
5975
6547
|
ActivityActionsComponent.Align = Enum({
|
|
5976
6548
|
START: 'start',
|
|
5977
|
-
|
|
5978
|
-
|
|
6549
|
+
STRETCH: 'stretch',
|
|
6550
|
+
END: 'end'
|
|
6551
|
+
});
|
|
6552
|
+
ActivityActionsComponent.AlignContent = Enum({
|
|
6553
|
+
START: 'start',
|
|
6554
|
+
CENTER: 'center',
|
|
6555
|
+
END: 'end'
|
|
5979
6556
|
});
|
|
5980
6557
|
})(ActivityActionsComponent || (ActivityActionsComponent = {}));
|
|
5981
6558
|
|
|
5982
6559
|
const ACTIVITY_DATA = new InjectionToken("InteractionActivityData");
|
|
5983
6560
|
// eslint-disable-next-line @angular-eslint/component-class-suffix
|
|
5984
|
-
class Activity extends
|
|
6561
|
+
class Activity extends LoadableComponent {
|
|
5985
6562
|
activityData = inject(ACTIVITY_DATA);
|
|
5986
6563
|
activityReadyListeners = new EventListenerList();
|
|
5987
6564
|
_busy$ = this.registerDisposable(new DelegatingValueModel().withDefault(false));
|
|
@@ -6036,7 +6613,6 @@ class Activity extends DisposableComponent {
|
|
|
6036
6613
|
notifyActivityReady() {
|
|
6037
6614
|
this.activityReadyListeners.fire(l => l(this));
|
|
6038
6615
|
this._ready$.value = true;
|
|
6039
|
-
console.log("ready");
|
|
6040
6616
|
}
|
|
6041
6617
|
onActivityReady(callback) {
|
|
6042
6618
|
return this.activityReadyListeners.add(callback);
|
|
@@ -6156,7 +6732,7 @@ class AbstractDialogComponent extends Activity {
|
|
|
6156
6732
|
}
|
|
6157
6733
|
}
|
|
6158
6734
|
isDestructive() {
|
|
6159
|
-
return isFunction
|
|
6735
|
+
return isFunction(this.config['destructive']) && this.config["destructive"]();
|
|
6160
6736
|
}
|
|
6161
6737
|
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
6738
|
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 +6749,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
6173
6749
|
|
|
6174
6750
|
class AbstractConfirmDialogComponent extends AbstractDialogComponent {
|
|
6175
6751
|
cancelFace;
|
|
6752
|
+
confirmClass = "aup-confirm-activity";
|
|
6176
6753
|
constructor(config) {
|
|
6177
6754
|
super(config);
|
|
6178
6755
|
this.cancelFace = {
|
|
@@ -6183,7 +6760,7 @@ class AbstractConfirmDialogComponent extends AbstractDialogComponent {
|
|
|
6183
6760
|
});
|
|
6184
6761
|
}
|
|
6185
6762
|
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 });
|
|
6763
|
+
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
6764
|
}
|
|
6188
6765
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractConfirmDialogComponent, decorators: [{
|
|
6189
6766
|
type: Component,
|
|
@@ -6193,7 +6770,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
6193
6770
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
6194
6771
|
type: Inject,
|
|
6195
6772
|
args: [ALERT_CONFIG]
|
|
6196
|
-
}] }]; }
|
|
6773
|
+
}] }]; }, propDecorators: { confirmClass: [{
|
|
6774
|
+
type: HostBinding,
|
|
6775
|
+
args: ["class"]
|
|
6776
|
+
}] } });
|
|
6197
6777
|
|
|
6198
6778
|
class ActivityBodyComponent extends DisposableComponent {
|
|
6199
6779
|
fullWidth = false;
|
|
@@ -6732,7 +7312,7 @@ const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');
|
|
|
6732
7312
|
// return true;
|
|
6733
7313
|
// }
|
|
6734
7314
|
// }
|
|
6735
|
-
class PlaceComponent extends
|
|
7315
|
+
class PlaceComponent extends LoadableComponent {
|
|
6736
7316
|
_placeReadyCallbacks = [];
|
|
6737
7317
|
visitModel = new MutableValueModel();
|
|
6738
7318
|
_inVisitUpdate = new Guard();
|
|
@@ -6789,6 +7369,7 @@ class PlaceComponent extends DisposableComponent {
|
|
|
6789
7369
|
*/
|
|
6790
7370
|
installAndInitialiseBinding(initialVisit, parameterDef) {
|
|
6791
7371
|
const model = this[parameterDef.propertyName];
|
|
7372
|
+
assert.notNil(model);
|
|
6792
7373
|
DebugContext.tag(model, `${this.placeDefinition.component.name}.${parameterDef.propertyName}`);
|
|
6793
7374
|
const binding = this.registerDisposable(new Binding(this.visitModel, model, {
|
|
6794
7375
|
toRight(visit) {
|
|
@@ -6873,7 +7454,7 @@ class PlaceComponent extends DisposableComponent {
|
|
|
6873
7454
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: PlaceComponent, usesInheritance: true, ngImport: i0 });
|
|
6874
7455
|
}
|
|
6875
7456
|
__decorate([
|
|
6876
|
-
|
|
7457
|
+
MemoizeGet(),
|
|
6877
7458
|
__metadata("design:type", PlaceDefinition),
|
|
6878
7459
|
__metadata("design:paramtypes", [])
|
|
6879
7460
|
], PlaceComponent.prototype, "placeDefinition", null);
|
|
@@ -7063,7 +7644,7 @@ class Visit {
|
|
|
7063
7644
|
getRouterCommands() {
|
|
7064
7645
|
return this.segments.reduce((result, v) => {
|
|
7065
7646
|
const path = v.placeDefinition.path;
|
|
7066
|
-
return isEmpty
|
|
7647
|
+
return isEmpty(path) ?
|
|
7067
7648
|
[...result, path] : // Angular doesn't support route params on empty path segments
|
|
7068
7649
|
[...result, path, ...v.createRouterCommands()];
|
|
7069
7650
|
}, []);
|
|
@@ -7079,7 +7660,7 @@ class Visit {
|
|
|
7079
7660
|
}
|
|
7080
7661
|
}
|
|
7081
7662
|
__decorate([
|
|
7082
|
-
Memoize
|
|
7663
|
+
Memoize(),
|
|
7083
7664
|
__metadata("design:type", Function),
|
|
7084
7665
|
__metadata("design:paramtypes", [PlaceDefinition]),
|
|
7085
7666
|
__metadata("design:returntype", VisitSegment)
|
|
@@ -7460,10 +8041,7 @@ class SynchroniseInteractionContextIdsWithRoute extends NavigationSession {
|
|
|
7460
8041
|
return true;
|
|
7461
8042
|
}
|
|
7462
8043
|
notifyActive() {
|
|
7463
|
-
|
|
7464
|
-
setTimeout(() => {
|
|
7465
|
-
this.syncInteractionIdsWithRouter();
|
|
7466
|
-
});
|
|
8044
|
+
this.syncInteractionIdsWithRouter();
|
|
7467
8045
|
}
|
|
7468
8046
|
// @Trace()
|
|
7469
8047
|
onRouterEnd(event) {
|
|
@@ -8206,7 +8784,7 @@ class ConsolidatedParameterMap {
|
|
|
8206
8784
|
}
|
|
8207
8785
|
}
|
|
8208
8786
|
__decorate([
|
|
8209
|
-
|
|
8787
|
+
MemoizeGet(),
|
|
8210
8788
|
__metadata("design:type", Array),
|
|
8211
8789
|
__metadata("design:paramtypes", [])
|
|
8212
8790
|
], ConsolidatedParameterMap.prototype, "keys", null);
|
|
@@ -8284,7 +8862,7 @@ class UrlSnapshot {
|
|
|
8284
8862
|
return this.getPrimaryUrlSegments().find(s => s.path === placeDef.path);
|
|
8285
8863
|
}
|
|
8286
8864
|
isLastPlaceInUrl(placeDef) {
|
|
8287
|
-
return last
|
|
8865
|
+
return last(this.getPrimaryUrlSegments()).path === placeDef.path;
|
|
8288
8866
|
}
|
|
8289
8867
|
createVisitSegmentFor(placeDef) {
|
|
8290
8868
|
return new VisitSegment(placeDef, new ConsolidatedParameterMap(this.getPrimaryUrlSegments()));
|
|
@@ -8400,7 +8978,7 @@ class UrlService {
|
|
|
8400
8978
|
back() {
|
|
8401
8979
|
this.angularLocation.back();
|
|
8402
8980
|
}
|
|
8403
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: UrlService, deps: [{ token: i1$
|
|
8981
|
+
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
8982
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: UrlService, providedIn: 'root' });
|
|
8405
8983
|
}
|
|
8406
8984
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: UrlService, decorators: [{
|
|
@@ -8408,7 +8986,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
8408
8986
|
args: [{
|
|
8409
8987
|
providedIn: 'root'
|
|
8410
8988
|
}]
|
|
8411
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
8989
|
+
}], ctorParameters: function () { return [{ type: i1$5.Router }, { type: i1$1.Location }, { type: i1$5.UrlSerializer }]; } });
|
|
8412
8990
|
|
|
8413
8991
|
// function asArray<T>(item: T | T[]): T[] {
|
|
8414
8992
|
// return Array.isArray(item) ? item : [item];
|
|
@@ -8428,6 +9006,8 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8428
9006
|
routerInteractionAdapter;
|
|
8429
9007
|
sessionFinishedJobs = [];
|
|
8430
9008
|
authService = new PlaceAuthService();
|
|
9009
|
+
_ready$ = this.registerDisposable(new DelegatingValueModel().withDefault(true));
|
|
9010
|
+
ready$ = this._ready$.readonly$;
|
|
8431
9011
|
constructor(angularRouter, angularLocation, interactionService, urlService, placeHistory) {
|
|
8432
9012
|
super();
|
|
8433
9013
|
this.angularRouter = angularRouter;
|
|
@@ -8449,7 +9029,7 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8449
9029
|
});
|
|
8450
9030
|
const { chain } = Dsl.disposeWith(this);
|
|
8451
9031
|
this.navigationInProgress$ = chain(this.navigationSession$).isNotNil();
|
|
8452
|
-
this.interactionSyncInProgress$ = chain(this.navigationSession$).pluck("isInteractionSync");
|
|
9032
|
+
this.interactionSyncInProgress$ = chain(this.navigationSession$).pluck("isInteractionSync").otherwise(false);
|
|
8453
9033
|
const idleStateName = chain(this.interactionService.active).map(active => active ? "IdleDuringInteraction" : "Idle");
|
|
8454
9034
|
this.navigationSessionName$ = chain(this.navigationSession$)
|
|
8455
9035
|
.pluck("name")
|
|
@@ -8493,6 +9073,9 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8493
9073
|
// the back button was clicked.
|
|
8494
9074
|
angularLocation.onUrlChange(url => this.onUrlChanged(url));
|
|
8495
9075
|
}
|
|
9076
|
+
postponeRoutingUntil(condition$) {
|
|
9077
|
+
this._ready$.setDelegate(condition$);
|
|
9078
|
+
}
|
|
8496
9079
|
getAuthenticationFailureRedirect(activatedRoute, state) {
|
|
8497
9080
|
return this.authService.getAuthenticationFailureRedirect(activatedRoute, state);
|
|
8498
9081
|
}
|
|
@@ -8508,23 +9091,20 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8508
9091
|
isNavigating() {
|
|
8509
9092
|
return this.navigationInProgress$.value;
|
|
8510
9093
|
}
|
|
8511
|
-
|
|
8512
|
-
const {
|
|
8513
|
-
|
|
8514
|
-
|
|
8515
|
-
|
|
8516
|
-
|
|
8517
|
-
|
|
8518
|
-
|
|
9094
|
+
async waitUntilRouterReady() {
|
|
9095
|
+
const { waitUntil } = Dsl.disposeWith(this);
|
|
9096
|
+
await waitUntil(this.ready$).becomesTruthy();
|
|
9097
|
+
return this;
|
|
9098
|
+
}
|
|
9099
|
+
async waitUntilIdle() {
|
|
9100
|
+
const { waitUntil } = Dsl.disposeWith(this);
|
|
9101
|
+
await waitUntil(this.navigationInProgress$).becomesFalsey();
|
|
9102
|
+
return this;
|
|
8519
9103
|
}
|
|
8520
9104
|
async waitActivitiesSynchronised() {
|
|
8521
|
-
const {
|
|
8522
|
-
|
|
8523
|
-
|
|
8524
|
-
initialValue: "evaluate",
|
|
8525
|
-
once: true
|
|
8526
|
-
});
|
|
8527
|
-
});
|
|
9105
|
+
const { waitUntil } = Dsl.disposeWith(this);
|
|
9106
|
+
await waitUntil(this.interactionSyncInProgress$).becomesFalsey();
|
|
9107
|
+
return this;
|
|
8528
9108
|
}
|
|
8529
9109
|
// @Trace()
|
|
8530
9110
|
onPopState(event) {
|
|
@@ -8710,7 +9290,7 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8710
9290
|
return Visit.goto(visitOrPlaceComponent, params);
|
|
8711
9291
|
}
|
|
8712
9292
|
}
|
|
8713
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceRouter, deps: [{ token: i1$
|
|
9293
|
+
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
9294
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceRouter, providedIn: "root" });
|
|
8715
9295
|
}
|
|
8716
9296
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceRouter, decorators: [{
|
|
@@ -8718,7 +9298,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
8718
9298
|
args: [{
|
|
8719
9299
|
providedIn: "root"
|
|
8720
9300
|
}]
|
|
8721
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
9301
|
+
}], ctorParameters: function () { return [{ type: i1$5.Router }, { type: i1$1.Location }, { type: InteractionService }, { type: UrlService }, { type: PlaceHistory }]; } });
|
|
8722
9302
|
|
|
8723
9303
|
class ActivityTitleComponent extends DisposableComponent {
|
|
8724
9304
|
_color;
|
|
@@ -8740,11 +9320,11 @@ class ActivityTitleComponent extends DisposableComponent {
|
|
|
8740
9320
|
return this._color;
|
|
8741
9321
|
}
|
|
8742
9322
|
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:
|
|
9323
|
+
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
9324
|
}
|
|
8745
9325
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityTitleComponent, decorators: [{
|
|
8746
9326
|
type: Component,
|
|
8747
|
-
args: [{ selector: 'aup-activity-title', template: "<ng-content></ng-content>\n", styles: [":host{display:
|
|
9327
|
+
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
9328
|
}], propDecorators: { hasTransparentBackground: [{
|
|
8749
9329
|
type: Input
|
|
8750
9330
|
}, {
|
|
@@ -8765,7 +9345,7 @@ class AlertDialogComponent extends AbstractDialogComponent {
|
|
|
8765
9345
|
});
|
|
8766
9346
|
}
|
|
8767
9347
|
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"] }] });
|
|
9348
|
+
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
9349
|
}
|
|
8770
9350
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AlertDialogComponent, decorators: [{
|
|
8771
9351
|
type: Component,
|
|
@@ -8785,7 +9365,7 @@ class ConfirmThenDialogComponent extends AbstractConfirmDialogComponent {
|
|
|
8785
9365
|
});
|
|
8786
9366
|
}
|
|
8787
9367
|
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"] }] });
|
|
9368
|
+
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
9369
|
}
|
|
8790
9370
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ConfirmThenDialogComponent, decorators: [{
|
|
8791
9371
|
type: Component,
|
|
@@ -8809,7 +9389,7 @@ class ConfirmThenExecuteDialogComponent extends AbstractConfirmDialogComponent {
|
|
|
8809
9389
|
});
|
|
8810
9390
|
}
|
|
8811
9391
|
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"] }] });
|
|
9392
|
+
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
9393
|
}
|
|
8814
9394
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ConfirmThenExecuteDialogComponent, decorators: [{
|
|
8815
9395
|
type: Component,
|
|
@@ -8829,7 +9409,7 @@ class ConfirmationDialogComponent extends AbstractConfirmDialogComponent {
|
|
|
8829
9409
|
});
|
|
8830
9410
|
}
|
|
8831
9411
|
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"] }] });
|
|
9412
|
+
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
9413
|
}
|
|
8834
9414
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
|
|
8835
9415
|
type: Component,
|
|
@@ -9009,6 +9589,7 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9009
9589
|
tabs;
|
|
9010
9590
|
activityOutlets;
|
|
9011
9591
|
activityRefs = [];
|
|
9592
|
+
animationDuration = "500ms";
|
|
9012
9593
|
_identifier;
|
|
9013
9594
|
_deferredCleanUp;
|
|
9014
9595
|
interactionServiceApi;
|
|
@@ -9021,6 +9602,7 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9021
9602
|
busy = this.registerDisposable(new DelegatingValueModel().withDefault(false));
|
|
9022
9603
|
syncTabsJob = undefined;
|
|
9023
9604
|
stable$;
|
|
9605
|
+
wasActive = false;
|
|
9024
9606
|
constructor(placeRouter) {
|
|
9025
9607
|
super();
|
|
9026
9608
|
this.placeRouter = placeRouter;
|
|
@@ -9057,7 +9639,12 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9057
9639
|
* Returns true if an activity is currently running.
|
|
9058
9640
|
*/
|
|
9059
9641
|
isActive() {
|
|
9060
|
-
|
|
9642
|
+
const isActive = this.getActiveActivityCount() > 0;
|
|
9643
|
+
// if (this.wasActive !== isActive) {
|
|
9644
|
+
// console.log({was: this.wasActive, is: isActive});
|
|
9645
|
+
// }
|
|
9646
|
+
// this.wasActive = isActive
|
|
9647
|
+
return isActive;
|
|
9061
9648
|
}
|
|
9062
9649
|
registerDisposable(disposable) {
|
|
9063
9650
|
return this.garbage.registerDisposable(disposable);
|
|
@@ -9140,7 +9727,7 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9140
9727
|
// by activity index)
|
|
9141
9728
|
setTimeout(() => {
|
|
9142
9729
|
this.activityRefs = []; // we have to do it after the animation timeout or the activity disappears before the animatin finsihes
|
|
9143
|
-
}, this.
|
|
9730
|
+
}, this.getTabAnimationDurationInMillis());
|
|
9144
9731
|
const promise = this.interactionServiceApi.notifyFinished(this);
|
|
9145
9732
|
this._deferredCleanUp = promise
|
|
9146
9733
|
.finally(() => {
|
|
@@ -9166,7 +9753,6 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9166
9753
|
/**
|
|
9167
9754
|
* Synchronises the selected tab index.
|
|
9168
9755
|
*/
|
|
9169
|
-
// @Trace()
|
|
9170
9756
|
synchroniseSelectedTabIndex() {
|
|
9171
9757
|
assert.isTruthy(this.isActive());
|
|
9172
9758
|
const previousIndex = this.tabs.selectedIndex;
|
|
@@ -9178,10 +9764,10 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9178
9764
|
activityRef.setFocused(false);
|
|
9179
9765
|
this.busy.setDelegate(activityRef.activityBusy);
|
|
9180
9766
|
this.tabs.selectedIndex = newIndex;
|
|
9181
|
-
if (this.ready$.value) {
|
|
9182
|
-
|
|
9183
|
-
|
|
9184
|
-
}
|
|
9767
|
+
// if (this.ready$.value) {
|
|
9768
|
+
// // Note: We're not using the animation done event as it's firing almost immeadiately.
|
|
9769
|
+
// setTimeout(() => this.finaliseActivityStates(), animate ? this.getTabAnimationDurationInMillis() : 0);
|
|
9770
|
+
// }
|
|
9185
9771
|
}
|
|
9186
9772
|
}
|
|
9187
9773
|
finaliseActivityStates() {
|
|
@@ -9195,7 +9781,12 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9195
9781
|
return this.activityOutlets.toArray()[this.tabs.selectedIndex];
|
|
9196
9782
|
}
|
|
9197
9783
|
getTabAnimationDuration() {
|
|
9198
|
-
const
|
|
9784
|
+
// const s = this._started$.value ? this.animationDuration : "0";
|
|
9785
|
+
// return s
|
|
9786
|
+
return this.animationDuration;
|
|
9787
|
+
}
|
|
9788
|
+
getTabAnimationDurationInMillis() {
|
|
9789
|
+
const match = this.animationDuration.match(/(\d+)(.*)/);
|
|
9199
9790
|
const numericValue = parseFloat(match[1]);
|
|
9200
9791
|
switch (match[2].trim()) {
|
|
9201
9792
|
case "ms":
|
|
@@ -9221,12 +9812,16 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9221
9812
|
}
|
|
9222
9813
|
}, 75);
|
|
9223
9814
|
}
|
|
9815
|
+
onAnimationDone() {
|
|
9816
|
+
this._started$.value = true;
|
|
9817
|
+
this.finaliseActivityStates();
|
|
9818
|
+
}
|
|
9224
9819
|
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$
|
|
9820
|
+
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
9821
|
}
|
|
9227
9822
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityContainerComponent, decorators: [{
|
|
9228
9823
|
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"] }]
|
|
9824
|
+
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
9825
|
}], ctorParameters: function () { return [{ type: PlaceRouter }]; }, propDecorators: { dynamicHeight: [{
|
|
9231
9826
|
type: Input
|
|
9232
9827
|
}], tabs: [{
|
|
@@ -9235,6 +9830,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
9235
9830
|
}], activityOutlets: [{
|
|
9236
9831
|
type: ViewChildren,
|
|
9237
9832
|
args: [ActivityOutletComponent]
|
|
9833
|
+
}], animationDuration: [{
|
|
9834
|
+
type: Input
|
|
9238
9835
|
}] } });
|
|
9239
9836
|
|
|
9240
9837
|
class AbstractActivityTriggerComponent extends DisposableComponent {
|
|
@@ -9335,14 +9932,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
9335
9932
|
args: ['class.active']
|
|
9336
9933
|
}] } });
|
|
9337
9934
|
|
|
9338
|
-
const cssDurationRegex = /(\d+)(m?s)/;
|
|
9935
|
+
const cssDurationRegex$1 = /(\d+)(m?s)/;
|
|
9339
9936
|
/**
|
|
9340
9937
|
* @example
|
|
9341
9938
|
* <aup-in-place-interaction-context #inPlaceInteractionContext>
|
|
9342
9939
|
* </aup-in-place-interaction-context>
|
|
9343
9940
|
*
|
|
9344
9941
|
* in your component
|
|
9345
|
-
* @ViewChild(
|
|
9942
|
+
* @ViewChild(InPlaceInteractionContextComponent)
|
|
9346
9943
|
* interactionContext: InteractionContext;
|
|
9347
9944
|
*
|
|
9348
9945
|
*
|
|
@@ -9361,11 +9958,13 @@ class InPlaceInteractionContextComponent extends DisposableComponent {
|
|
|
9361
9958
|
* active interactions.
|
|
9362
9959
|
*/
|
|
9363
9960
|
syncWithRoutes = true;
|
|
9961
|
+
started = new EventEmitter();
|
|
9962
|
+
finished = new EventEmitter();
|
|
9364
9963
|
get animationDuration() {
|
|
9365
9964
|
return this.animateFirstActivity ? (this.tabConfig?.animationDuration || "500ms") : "0ms";
|
|
9366
9965
|
}
|
|
9367
9966
|
get animationDurationMillis() {
|
|
9368
|
-
const result = cssDurationRegex.exec(this.animationDuration);
|
|
9967
|
+
const result = cssDurationRegex$1.exec(this.animationDuration);
|
|
9369
9968
|
if (!result) {
|
|
9370
9969
|
lang.illegalState(`unsupported css duration: ${this.animationDuration}`);
|
|
9371
9970
|
}
|
|
@@ -9387,11 +9986,16 @@ class InPlaceInteractionContextComponent extends DisposableComponent {
|
|
|
9387
9986
|
this.interactionService.registerInplaceInteractionContext(this);
|
|
9388
9987
|
}
|
|
9389
9988
|
else {
|
|
9989
|
+
const self = this;
|
|
9390
9990
|
this.activityContainerComponent.initialise("dont-care", {
|
|
9391
9991
|
async notifyActive(interactionContext) {
|
|
9992
|
+
self.started.emit();
|
|
9392
9993
|
return undefined;
|
|
9393
9994
|
},
|
|
9394
9995
|
async notifyFinished(interactionContext) {
|
|
9996
|
+
// I've noticed some rendering fails when returning the the transcluded content we'll fire an event
|
|
9997
|
+
// so components can do stuff if they need to.
|
|
9998
|
+
self.started.emit();
|
|
9395
9999
|
return undefined;
|
|
9396
10000
|
}
|
|
9397
10001
|
});
|
|
@@ -9438,7 +10042,7 @@ class InPlaceInteractionContextComponent extends DisposableComponent {
|
|
|
9438
10042
|
}
|
|
9439
10043
|
}
|
|
9440
10044
|
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" }, host: { properties: { "class.active": "this.active" } }, 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$
|
|
10045
|
+
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" } }, 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
10046
|
}
|
|
9443
10047
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InPlaceInteractionContextComponent, decorators: [{
|
|
9444
10048
|
type: Component,
|
|
@@ -9455,6 +10059,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
9455
10059
|
type: Input
|
|
9456
10060
|
}], syncWithRoutes: [{
|
|
9457
10061
|
type: Input
|
|
10062
|
+
}], started: [{
|
|
10063
|
+
type: Output
|
|
10064
|
+
}], finished: [{
|
|
10065
|
+
type: Output
|
|
9458
10066
|
}], active: [{
|
|
9459
10067
|
type: HostBinding,
|
|
9460
10068
|
args: ["class.active"]
|
|
@@ -9469,7 +10077,7 @@ class InlineActivityTriggerComponent extends AbstractActivityTriggerComponent {
|
|
|
9469
10077
|
super();
|
|
9470
10078
|
}
|
|
9471
10079
|
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"] }] });
|
|
10080
|
+
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
10081
|
}
|
|
9474
10082
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InlineActivityTriggerComponent, decorators: [{
|
|
9475
10083
|
type: Component,
|
|
@@ -9593,7 +10201,7 @@ class PopupInteractionContextComponent extends DisposableComponent {
|
|
|
9593
10201
|
isActive() {
|
|
9594
10202
|
return this.interactionContext && this.interactionContext.isActive();
|
|
9595
10203
|
}
|
|
9596
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PopupInteractionContextComponent, deps: [{ token: i0.ElementRef }, { token: i1$
|
|
10204
|
+
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
10205
|
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
10206
|
}
|
|
9599
10207
|
__decorate([
|
|
@@ -9607,7 +10215,7 @@ __decorate([
|
|
|
9607
10215
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PopupInteractionContextComponent, decorators: [{
|
|
9608
10216
|
type: Component,
|
|
9609
10217
|
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$
|
|
10218
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$6.Overlay }, { type: i1$6.CdkScrollable, decorators: [{
|
|
9611
10219
|
type: Optional
|
|
9612
10220
|
}, {
|
|
9613
10221
|
type: SkipSelf
|
|
@@ -9692,7 +10300,7 @@ class AddCardActivityComponent extends AbstractActivityTriggerComponent {
|
|
|
9692
10300
|
return this.interactionStyle === 'inline';
|
|
9693
10301
|
}
|
|
9694
10302
|
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"] }] });
|
|
10303
|
+
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
10304
|
}
|
|
9697
10305
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AddCardActivityComponent, decorators: [{
|
|
9698
10306
|
type: Component,
|
|
@@ -9768,7 +10376,7 @@ class AddItemInteractionContextComponent extends DisposableComponent {
|
|
|
9768
10376
|
return this.interactionContext.startActivity(activityType, data);
|
|
9769
10377
|
}
|
|
9770
10378
|
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"] }] });
|
|
10379
|
+
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
10380
|
}
|
|
9773
10381
|
__decorate([
|
|
9774
10382
|
Proxify(),
|
|
@@ -9907,12 +10515,14 @@ class StringInputActivity extends InputActivity {
|
|
|
9907
10515
|
[label]="activityData.label"
|
|
9908
10516
|
[placeholder]="activityData.placeholder"
|
|
9909
10517
|
[command.enter]="confirmCommand"
|
|
9910
|
-
[command.escape]="cancelCommand"
|
|
10518
|
+
[command.escape]="cancelCommand"
|
|
10519
|
+
[dense]="true"
|
|
10520
|
+
></aup-string-input>
|
|
9911
10521
|
<aup-activity-actions [layout]="layout" align="end"
|
|
9912
10522
|
[confirmFace]="confirmFace"
|
|
9913
10523
|
[cancelFace]="cancelFace"
|
|
9914
10524
|
></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"] }] });
|
|
10525
|
+
`, 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
10526
|
}
|
|
9917
10527
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: StringInputActivity, decorators: [{
|
|
9918
10528
|
type: Component,
|
|
@@ -9923,7 +10533,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
9923
10533
|
[label]="activityData.label"
|
|
9924
10534
|
[placeholder]="activityData.placeholder"
|
|
9925
10535
|
[command.enter]="confirmCommand"
|
|
9926
|
-
[command.escape]="cancelCommand"
|
|
10536
|
+
[command.escape]="cancelCommand"
|
|
10537
|
+
[dense]="true"
|
|
10538
|
+
></aup-string-input>
|
|
9927
10539
|
<aup-activity-actions [layout]="layout" align="end"
|
|
9928
10540
|
[confirmFace]="confirmFace"
|
|
9929
10541
|
[cancelFace]="cancelFace"
|
|
@@ -10106,7 +10718,7 @@ class InlineStringEditorComponent extends DisposableComponent {
|
|
|
10106
10718
|
return !this.editingEnabled$.value;
|
|
10107
10719
|
}
|
|
10108
10720
|
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"] }] });
|
|
10721
|
+
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
10722
|
}
|
|
10111
10723
|
__decorate([
|
|
10112
10724
|
Proxify(),
|
|
@@ -10189,6 +10801,7 @@ class SelectInputActivity extends InputActivity {
|
|
|
10189
10801
|
[options]="options"
|
|
10190
10802
|
[optionLabelFormat]="optionLabelFormat"
|
|
10191
10803
|
[allowNil]="activityData.allowNil"
|
|
10804
|
+
[dense]="true"
|
|
10192
10805
|
>
|
|
10193
10806
|
<ng-template #nilOptionTemplate>{{activityData.nilLabel}}</ng-template>
|
|
10194
10807
|
</aup-select-input>
|
|
@@ -10196,7 +10809,7 @@ class SelectInputActivity extends InputActivity {
|
|
|
10196
10809
|
[confirmFace]="confirmFace"
|
|
10197
10810
|
[cancelFace]="cancelFace"
|
|
10198
10811
|
></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"] }] });
|
|
10812
|
+
`, 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
10813
|
}
|
|
10201
10814
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectInputActivity, decorators: [{
|
|
10202
10815
|
type: Component,
|
|
@@ -10211,6 +10824,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10211
10824
|
[options]="options"
|
|
10212
10825
|
[optionLabelFormat]="optionLabelFormat"
|
|
10213
10826
|
[allowNil]="activityData.allowNil"
|
|
10827
|
+
[dense]="true"
|
|
10214
10828
|
>
|
|
10215
10829
|
<ng-template #nilOptionTemplate>{{activityData.nilLabel}}</ng-template>
|
|
10216
10830
|
</aup-select-input>
|
|
@@ -10222,6 +10836,182 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10222
10836
|
}]
|
|
10223
10837
|
}] });
|
|
10224
10838
|
|
|
10839
|
+
const slideDownOnEnterDef = style({
|
|
10840
|
+
opacity: 0,
|
|
10841
|
+
'height': '0',
|
|
10842
|
+
'max-height': '0',
|
|
10843
|
+
paddingTop: '0',
|
|
10844
|
+
paddingBottom: '0'
|
|
10845
|
+
});
|
|
10846
|
+
// TODO: params aren't getting customised in the view. Need to figure out the correct approach.
|
|
10847
|
+
const slideDownOnEnterAnimation = trigger('slideDownOnEnter', [
|
|
10848
|
+
transition(':enter', [slideDownOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
|
|
10849
|
+
transition(':leave', [animate('{{duration}}', slideDownOnEnterDef)], { params: { duration: '100ms' } })
|
|
10850
|
+
]);
|
|
10851
|
+
const slideDownWhenOpenAnimation = trigger('slideDownWhenOpen', [
|
|
10852
|
+
transition('closed => open', [slideDownOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
|
|
10853
|
+
transition('open => closed', [animate('{{duration}}', slideDownOnEnterDef)], { params: { duration: '100ms' } })
|
|
10854
|
+
]);
|
|
10855
|
+
const slideLeftOnEnterDef = style({
|
|
10856
|
+
opacity: 0,
|
|
10857
|
+
'width': '0',
|
|
10858
|
+
paddingLeft: '0',
|
|
10859
|
+
paddingRight: '0'
|
|
10860
|
+
});
|
|
10861
|
+
const slideRightOnEnterAnimation = trigger('slideRightOnEnter', [
|
|
10862
|
+
transition(':enter', [slideLeftOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
|
|
10863
|
+
transition(':leave', [animate('{{duration}}', slideLeftOnEnterDef)], { params: { duration: '100ms' } })
|
|
10864
|
+
]);
|
|
10865
|
+
const ZERO_WIDTH = {
|
|
10866
|
+
opacity: 0,
|
|
10867
|
+
width: '0',
|
|
10868
|
+
paddingLeft: '0',
|
|
10869
|
+
paddingRight: '0',
|
|
10870
|
+
};
|
|
10871
|
+
const ZERO_HEIGHT = {
|
|
10872
|
+
opacity: 0,
|
|
10873
|
+
height: '0',
|
|
10874
|
+
paddingTop: '0',
|
|
10875
|
+
paddingBottom: '0',
|
|
10876
|
+
};
|
|
10877
|
+
const slideDownAndRightOnEnterAnimation = trigger('slideDownAndRightOnEnter', [
|
|
10878
|
+
transition(':enter', [
|
|
10879
|
+
style({ overflow: "hidden", whiteSpace: "nowrap", ...ZERO_WIDTH, ...ZERO_HEIGHT }),
|
|
10880
|
+
animate('{{duration}}')
|
|
10881
|
+
], { params: { duration: '100ms' } }),
|
|
10882
|
+
transition(':leave', [
|
|
10883
|
+
style({ overflow: "hidden", whiteSpace: "nowrap" }),
|
|
10884
|
+
group([
|
|
10885
|
+
animate('{{duration}}', style(ZERO_HEIGHT)),
|
|
10886
|
+
// Hack: 100ms is too quick as it animates from * - 0 as we only see it animate the width is greater than the parent.
|
|
10887
|
+
// Not sure how to animate from * to natural new width of parent. This hack won't work for text that's just a little
|
|
10888
|
+
// bit wider than the parent as it'll fall within the parent bounds very early in the animation cycle.
|
|
10889
|
+
animate('300ms', style(ZERO_WIDTH)),
|
|
10890
|
+
])
|
|
10891
|
+
], { params: { duration: '100ms' } })
|
|
10892
|
+
]);
|
|
10893
|
+
|
|
10894
|
+
const cssDurationRegex = /(\d+)(m?s)/;
|
|
10895
|
+
/**
|
|
10896
|
+
* This interaction context remains hidden (height: 0) until it is active.
|
|
10897
|
+
* @example
|
|
10898
|
+
* <aup-slide-down-interaction-context #inPlaceInteractionContext>
|
|
10899
|
+
* </aup-slide-down-interaction-context>
|
|
10900
|
+
*
|
|
10901
|
+
* in your component
|
|
10902
|
+
* @ViewChild(SlideDownInteractionContextComponent)
|
|
10903
|
+
* interactionContext: InteractionContext;
|
|
10904
|
+
*
|
|
10905
|
+
*
|
|
10906
|
+
*/
|
|
10907
|
+
class SlideDownInteractionContextComponent extends DisposableComponent {
|
|
10908
|
+
tabConfig;
|
|
10909
|
+
activityContainerComponent;
|
|
10910
|
+
// NOTE: disabling this as I'm using the initialise callback to release the hacky height clamp.
|
|
10911
|
+
// The whole registration thing is a bit naf so I should really clean that up at some point.
|
|
10912
|
+
// /**
|
|
10913
|
+
// * If true the activity will sync with the router to enable back button support. This is a work around for
|
|
10914
|
+
// * deeply nested activities that can't be linked with the root place interactionContext hook for cancelling
|
|
10915
|
+
// * active interactions.
|
|
10916
|
+
// */
|
|
10917
|
+
// @Input()
|
|
10918
|
+
// syncWithRoutes = true;
|
|
10919
|
+
dynamicHeight = true;
|
|
10920
|
+
get active() {
|
|
10921
|
+
return this.isActive();
|
|
10922
|
+
}
|
|
10923
|
+
// Horrible hack to stop the div and activity container bouncing back for a bit in after closing. No idea why it's doing that.
|
|
10924
|
+
clampShut = true;
|
|
10925
|
+
interactionService = this.inject(InteractionService);
|
|
10926
|
+
constructor(tabConfig) {
|
|
10927
|
+
super();
|
|
10928
|
+
this.tabConfig = tabConfig;
|
|
10929
|
+
}
|
|
10930
|
+
ngAfterViewInit() {
|
|
10931
|
+
// NOTE: this is a temp work around to detach inplace contexts from the router until AUP-88 is implemented.
|
|
10932
|
+
// https://coolon.atlassian.net/browse/AUP-88?atlOrigin=eyJpIjoiOTg5YjEzZGUzZjRmNDg0NmExOWU3ZGJmMzJiNTRmNGYiLCJwIjoiaiJ9
|
|
10933
|
+
const self = this;
|
|
10934
|
+
this.activityContainerComponent.initialise("dont-care", {
|
|
10935
|
+
async notifyActive(interactionContext) {
|
|
10936
|
+
self.clampShut = false;
|
|
10937
|
+
return undefined;
|
|
10938
|
+
},
|
|
10939
|
+
async notifyFinished(interactionContext) {
|
|
10940
|
+
return undefined;
|
|
10941
|
+
}
|
|
10942
|
+
});
|
|
10943
|
+
// if (this.syncWithRoutes) {
|
|
10944
|
+
// this.interactionService.registerInplaceInteractionContext(this);
|
|
10945
|
+
// }
|
|
10946
|
+
}
|
|
10947
|
+
getAnimationState() {
|
|
10948
|
+
return {
|
|
10949
|
+
value: this.isActive() ? "open" : "closed",
|
|
10950
|
+
params: { duration: "200ms" }
|
|
10951
|
+
};
|
|
10952
|
+
}
|
|
10953
|
+
// this is a regsitration callback from the interaction service
|
|
10954
|
+
// @Trace() // webstorm says no usages... but I'm not sure.
|
|
10955
|
+
onInplaceInteractionContextRegistered(id, api) {
|
|
10956
|
+
this.activityContainerComponent.initialise(id, api);
|
|
10957
|
+
}
|
|
10958
|
+
get identifier() {
|
|
10959
|
+
return this.activityContainerComponent.identifier;
|
|
10960
|
+
}
|
|
10961
|
+
alert(alert) {
|
|
10962
|
+
return this.activityContainerComponent.alert(alert);
|
|
10963
|
+
}
|
|
10964
|
+
cancelActiveActivity() {
|
|
10965
|
+
return this.activityContainerComponent.cancelActiveActivity();
|
|
10966
|
+
}
|
|
10967
|
+
confirm(confirm) {
|
|
10968
|
+
return this.activityContainerComponent.confirm(confirm);
|
|
10969
|
+
}
|
|
10970
|
+
confirmOrReject(confirm) {
|
|
10971
|
+
return this.activityContainerComponent.confirmOrReject(confirm);
|
|
10972
|
+
}
|
|
10973
|
+
confirmThen(confirm, activityType, data) {
|
|
10974
|
+
return this.activityContainerComponent.confirmThen(confirm, activityType);
|
|
10975
|
+
}
|
|
10976
|
+
confirmThenExecute(confirm, operation) {
|
|
10977
|
+
return this.activityContainerComponent.confirmThenExecute(confirm, operation);
|
|
10978
|
+
}
|
|
10979
|
+
isActive() {
|
|
10980
|
+
return this.activityContainerComponent.isActive();
|
|
10981
|
+
}
|
|
10982
|
+
startActivity(activityType, data, options) {
|
|
10983
|
+
return this.activityContainerComponent.startActivity(activityType, data, options);
|
|
10984
|
+
}
|
|
10985
|
+
onAnimationDone() {
|
|
10986
|
+
if (!this.isActive()) {
|
|
10987
|
+
this.clampShut = true;
|
|
10988
|
+
}
|
|
10989
|
+
}
|
|
10990
|
+
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 });
|
|
10991
|
+
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" } }, 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: [
|
|
10992
|
+
slideDownWhenOpenAnimation
|
|
10993
|
+
] });
|
|
10994
|
+
}
|
|
10995
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SlideDownInteractionContextComponent, decorators: [{
|
|
10996
|
+
type: Component,
|
|
10997
|
+
args: [{ selector: "aup-slide-down-interaction-context", animations: [
|
|
10998
|
+
slideDownWhenOpenAnimation
|
|
10999
|
+
], 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"] }]
|
|
11000
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
11001
|
+
type: Inject,
|
|
11002
|
+
args: [MAT_TABS_CONFIG]
|
|
11003
|
+
}, {
|
|
11004
|
+
type: Optional
|
|
11005
|
+
}] }]; }, propDecorators: { activityContainerComponent: [{
|
|
11006
|
+
type: ViewChild,
|
|
11007
|
+
args: ["activityContainer", { static: true }]
|
|
11008
|
+
}], dynamicHeight: [{
|
|
11009
|
+
type: Input
|
|
11010
|
+
}], active: [{
|
|
11011
|
+
type: HostBinding,
|
|
11012
|
+
args: ["class.active"]
|
|
11013
|
+
}] } });
|
|
11014
|
+
|
|
10225
11015
|
class InteractionContextTriggerForDirective extends GarbageCollector {
|
|
10226
11016
|
aupInteractionContextTriggerFor;
|
|
10227
11017
|
activityClass;
|
|
@@ -10304,6 +11094,7 @@ class InteractionModule {
|
|
|
10304
11094
|
AlertDialogComponent,
|
|
10305
11095
|
ActivityOutletComponent,
|
|
10306
11096
|
InPlaceInteractionContextComponent,
|
|
11097
|
+
SlideDownInteractionContextComponent,
|
|
10307
11098
|
AddItemInteractionContextComponent,
|
|
10308
11099
|
ActivityActionsComponent,
|
|
10309
11100
|
PopupInteractionContextComponent,
|
|
@@ -10330,8 +11121,6 @@ class InteractionModule {
|
|
|
10330
11121
|
RouterModule,
|
|
10331
11122
|
MatIconModule,
|
|
10332
11123
|
DirectivesModule,
|
|
10333
|
-
FlexModule,
|
|
10334
|
-
GridModule,
|
|
10335
11124
|
ComponentsModule,
|
|
10336
11125
|
FormsModule,
|
|
10337
11126
|
MatInputModule,
|
|
@@ -10351,7 +11140,8 @@ class InteractionModule {
|
|
|
10351
11140
|
InlineActivityTriggerComponent,
|
|
10352
11141
|
ModalActivityTriggerComponent,
|
|
10353
11142
|
AddCardActivityComponent,
|
|
10354
|
-
InlineStringEditorComponent
|
|
11143
|
+
InlineStringEditorComponent,
|
|
11144
|
+
SlideDownInteractionContextComponent] });
|
|
10355
11145
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InteractionModule, providers: [
|
|
10356
11146
|
InteractionService
|
|
10357
11147
|
// {
|
|
@@ -10365,8 +11155,6 @@ class InteractionModule {
|
|
|
10365
11155
|
RouterModule,
|
|
10366
11156
|
MatIconModule,
|
|
10367
11157
|
DirectivesModule,
|
|
10368
|
-
FlexModule,
|
|
10369
|
-
GridModule,
|
|
10370
11158
|
ComponentsModule,
|
|
10371
11159
|
FormsModule,
|
|
10372
11160
|
MatInputModule,
|
|
@@ -10385,8 +11173,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10385
11173
|
RouterModule,
|
|
10386
11174
|
MatIconModule,
|
|
10387
11175
|
DirectivesModule,
|
|
10388
|
-
FlexModule,
|
|
10389
|
-
GridModule,
|
|
10390
11176
|
ComponentsModule,
|
|
10391
11177
|
FormsModule,
|
|
10392
11178
|
MatInputModule,
|
|
@@ -10401,6 +11187,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10401
11187
|
AlertDialogComponent,
|
|
10402
11188
|
ActivityOutletComponent,
|
|
10403
11189
|
InPlaceInteractionContextComponent,
|
|
11190
|
+
SlideDownInteractionContextComponent,
|
|
10404
11191
|
AddItemInteractionContextComponent,
|
|
10405
11192
|
ActivityActionsComponent,
|
|
10406
11193
|
PopupInteractionContextComponent,
|
|
@@ -10438,6 +11225,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10438
11225
|
ModalActivityTriggerComponent,
|
|
10439
11226
|
AddCardActivityComponent,
|
|
10440
11227
|
InlineStringEditorComponent,
|
|
11228
|
+
SlideDownInteractionContextComponent,
|
|
10441
11229
|
],
|
|
10442
11230
|
providers: [
|
|
10443
11231
|
InteractionService
|
|
@@ -10508,7 +11296,6 @@ class PlaceOutletComponent extends DisposableComponent {
|
|
|
10508
11296
|
router;
|
|
10509
11297
|
placeRouter;
|
|
10510
11298
|
placeConfig;
|
|
10511
|
-
cdr;
|
|
10512
11299
|
#animate$_accessor_storage = proxify((ValueModel));
|
|
10513
11300
|
get animate$() { return this.#animate$_accessor_storage; }
|
|
10514
11301
|
set animate$(value) { this.#animate$_accessor_storage = value; }
|
|
@@ -10542,12 +11329,11 @@ class PlaceOutletComponent extends DisposableComponent {
|
|
|
10542
11329
|
animationEnabled;
|
|
10543
11330
|
authorised;
|
|
10544
11331
|
notAuthorisedNoticePortal;
|
|
10545
|
-
constructor(router, placeRouter, placeConfig, unauthorisedPlaceNotice, parentOutlet
|
|
11332
|
+
constructor(router, placeRouter, placeConfig, unauthorisedPlaceNotice, parentOutlet) {
|
|
10546
11333
|
super();
|
|
10547
11334
|
this.router = router;
|
|
10548
11335
|
this.placeRouter = placeRouter;
|
|
10549
11336
|
this.placeConfig = placeConfig;
|
|
10550
|
-
this.cdr = cdr;
|
|
10551
11337
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
10552
11338
|
this.parentOutletModel = new MutableValueModel(parentOutlet);
|
|
10553
11339
|
const defaultPlaceAnimationOrder = chain(this.parentOutletModel)
|
|
@@ -10559,7 +11345,7 @@ class PlaceOutletComponent extends DisposableComponent {
|
|
|
10559
11345
|
this.placesInAnimationOrder = chain(this.customPlaceAnimationOrder$)
|
|
10560
11346
|
.otherwise(defaultPlaceAnimationOrder);
|
|
10561
11347
|
this.activePlaceAnimationPosition = this.placesInAnimationOrder
|
|
10562
|
-
.
|
|
11348
|
+
.reduceAll((placesInOrder) => {
|
|
10563
11349
|
let placeIndex = 0;
|
|
10564
11350
|
if (activatePlaceType.value) {
|
|
10565
11351
|
placeIndex = placesInOrder.indexOf(activatePlaceType.value);
|
|
@@ -10713,8 +11499,8 @@ class PlaceOutletComponent extends DisposableComponent {
|
|
|
10713
11499
|
this.onAnimationFinishedJob = undefined;
|
|
10714
11500
|
}
|
|
10715
11501
|
}
|
|
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$
|
|
11502
|
+
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 });
|
|
11503
|
+
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
11504
|
}
|
|
10719
11505
|
__decorate([
|
|
10720
11506
|
Proxify(),
|
|
@@ -10735,7 +11521,7 @@ __decorate([
|
|
|
10735
11521
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceOutletComponent, decorators: [{
|
|
10736
11522
|
type: Component,
|
|
10737
11523
|
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$
|
|
11524
|
+
}], ctorParameters: function () { return [{ type: i1$5.Router }, { type: PlaceRouter }, { type: undefined, decorators: [{
|
|
10739
11525
|
type: Optional
|
|
10740
11526
|
}, {
|
|
10741
11527
|
type: Inject,
|
|
@@ -10749,7 +11535,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10749
11535
|
type: SkipSelf
|
|
10750
11536
|
}, {
|
|
10751
11537
|
type: Optional
|
|
10752
|
-
}] }
|
|
11538
|
+
}] }]; }, propDecorators: { animate$: [{
|
|
10753
11539
|
type: Input
|
|
10754
11540
|
}], animate: [{
|
|
10755
11541
|
type: Input
|
|
@@ -10882,7 +11668,7 @@ class ListPlaceNavComponent extends AbstractPlaceNavigationComponent {
|
|
|
10882
11668
|
super(router);
|
|
10883
11669
|
}
|
|
10884
11670
|
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: "
|
|
11671
|
+
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
11672
|
}
|
|
10887
11673
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ListPlaceNavComponent, decorators: [{
|
|
10888
11674
|
type: Component,
|
|
@@ -10957,7 +11743,7 @@ class SidePlaceNavigationComponent extends AbstractPlaceNavigationComponent {
|
|
|
10957
11743
|
this.expanded = !this.expanded;
|
|
10958
11744
|
}
|
|
10959
11745
|
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"] }] });
|
|
11746
|
+
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
11747
|
}
|
|
10962
11748
|
__decorate([
|
|
10963
11749
|
Proxify(),
|
|
@@ -10969,7 +11755,7 @@ __decorate([
|
|
|
10969
11755
|
], SidePlaceNavigationComponent.prototype, "expanded", null);
|
|
10970
11756
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SidePlaceNavigationComponent, decorators: [{
|
|
10971
11757
|
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"] }]
|
|
11758
|
+
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
11759
|
}], ctorParameters: function () { return [{ type: PlaceRouter }]; }, propDecorators: { expanded$: [{
|
|
10974
11760
|
type: Input
|
|
10975
11761
|
}], expanded: [{
|
|
@@ -10987,7 +11773,7 @@ class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationComponent {
|
|
|
10987
11773
|
super(router);
|
|
10988
11774
|
}
|
|
10989
11775
|
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$
|
|
11776
|
+
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
11777
|
}
|
|
10992
11778
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TabbedPlaceNavigationComponent, decorators: [{
|
|
10993
11779
|
type: Component,
|
|
@@ -11010,7 +11796,6 @@ class PlaceModule {
|
|
|
11010
11796
|
MatTooltipModule,
|
|
11011
11797
|
MatIconModule,
|
|
11012
11798
|
DirectivesModule,
|
|
11013
|
-
FlexModule,
|
|
11014
11799
|
ComponentsModule,
|
|
11015
11800
|
PortalModule,
|
|
11016
11801
|
MatCardModule], exports: [PlaceOutletComponent,
|
|
@@ -11027,7 +11812,6 @@ class PlaceModule {
|
|
|
11027
11812
|
MatTooltipModule,
|
|
11028
11813
|
MatIconModule,
|
|
11029
11814
|
DirectivesModule,
|
|
11030
|
-
FlexModule,
|
|
11031
11815
|
ComponentsModule,
|
|
11032
11816
|
PortalModule,
|
|
11033
11817
|
MatCardModule] });
|
|
@@ -11045,7 +11829,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
11045
11829
|
MatTooltipModule,
|
|
11046
11830
|
MatIconModule,
|
|
11047
11831
|
DirectivesModule,
|
|
11048
|
-
FlexModule,
|
|
11049
11832
|
ComponentsModule,
|
|
11050
11833
|
PortalModule,
|
|
11051
11834
|
MatCardModule
|
|
@@ -11135,60 +11918,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
11135
11918
|
}]
|
|
11136
11919
|
}] });
|
|
11137
11920
|
|
|
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
11921
|
/**
|
|
11189
11922
|
* @file Automatically generated by barrelsby.
|
|
11190
11923
|
*/
|
|
11191
11924
|
|
|
11925
|
+
class ResizeObserverDirective extends DisposableComponent {
|
|
11926
|
+
aupOnResize = new EventEmitter();
|
|
11927
|
+
elementRef = this.inject(ElementRef);
|
|
11928
|
+
ngZone = this.inject(NgZone);
|
|
11929
|
+
_bounds$ = new MutableValueModel();
|
|
11930
|
+
ngAfterViewInit() {
|
|
11931
|
+
const element = this.elementRef.nativeElement;
|
|
11932
|
+
const ro = new ResizeObserver((entries, observer) => {
|
|
11933
|
+
this.ngZone.run(() => this._updateBounds());
|
|
11934
|
+
});
|
|
11935
|
+
ro.observe(element);
|
|
11936
|
+
this.onDispose(() => ro.disconnect());
|
|
11937
|
+
setTimeout(() => this._updateBounds());
|
|
11938
|
+
}
|
|
11939
|
+
get bounds$() {
|
|
11940
|
+
return this._bounds$.readonly$;
|
|
11941
|
+
}
|
|
11942
|
+
_updateBounds() {
|
|
11943
|
+
this._bounds$.value = Bounds.ofElement(this.elementRef.nativeElement);
|
|
11944
|
+
this.aupOnResize.emit(this._bounds$.value);
|
|
11945
|
+
}
|
|
11946
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeObserverDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
11947
|
+
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 });
|
|
11948
|
+
}
|
|
11949
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeObserverDirective, decorators: [{
|
|
11950
|
+
type: Directive,
|
|
11951
|
+
args: [{
|
|
11952
|
+
selector: "[aupOnResize]",
|
|
11953
|
+
standalone: true
|
|
11954
|
+
}]
|
|
11955
|
+
}], propDecorators: { aupOnResize: [{
|
|
11956
|
+
type: Output
|
|
11957
|
+
}] } });
|
|
11958
|
+
|
|
11192
11959
|
/**
|
|
11193
11960
|
* @file Automatically generated by barrelsby.
|
|
11194
11961
|
*/
|
|
@@ -11279,7 +12046,7 @@ class DialogInteractionContextFactory extends ModalInteractionContextFactory {
|
|
|
11279
12046
|
};
|
|
11280
12047
|
return new DialogInteractionContext(identifier, api, this.dialogService, config);
|
|
11281
12048
|
}
|
|
11282
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DialogInteractionContextFactory, deps: [{ token: i1$
|
|
12049
|
+
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
12050
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DialogInteractionContextFactory, providedIn: 'root' });
|
|
11284
12051
|
}
|
|
11285
12052
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DialogInteractionContextFactory, decorators: [{
|
|
@@ -11287,12 +12054,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
11287
12054
|
args: [{
|
|
11288
12055
|
providedIn: 'root'
|
|
11289
12056
|
}]
|
|
11290
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
12057
|
+
}], ctorParameters: function () { return [{ type: i1$7.MatDialog }, { type: i1$7.MatDialogConfig, decorators: [{
|
|
11291
12058
|
type: Optional
|
|
11292
12059
|
}, {
|
|
11293
12060
|
type: Inject,
|
|
11294
12061
|
args: [DIALOG_INTERACTION_SERVICE_DEFAULTS]
|
|
11295
|
-
}] }, { type: i1$
|
|
12062
|
+
}] }, { type: i1$7.MatDialogConfig, decorators: [{
|
|
11296
12063
|
type: Optional
|
|
11297
12064
|
}, {
|
|
11298
12065
|
type: Inject,
|
|
@@ -11412,6 +12179,7 @@ class PlaceGuard {
|
|
|
11412
12179
|
}
|
|
11413
12180
|
// @Trace()
|
|
11414
12181
|
async canActivate(activatedRoute, state) {
|
|
12182
|
+
await this.placeRouter.waitUntilRouterReady();
|
|
11415
12183
|
if (PlaceComponent.isPlaceComponentConstructor(activatedRoute.component)) {
|
|
11416
12184
|
const placeDefinition = PlaceComponent.getDefinition(activatedRoute.component);
|
|
11417
12185
|
if (placeDefinition.authenticate) {
|
|
@@ -11524,13 +12292,13 @@ class PlaceGuard {
|
|
|
11524
12292
|
return next();
|
|
11525
12293
|
}
|
|
11526
12294
|
}
|
|
11527
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceGuard, deps: [{ token: i1$
|
|
12295
|
+
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
12296
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceGuard, providedIn: 'root' });
|
|
11529
12297
|
}
|
|
11530
12298
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceGuard, decorators: [{
|
|
11531
12299
|
type: Injectable,
|
|
11532
12300
|
args: [{ providedIn: 'root' }]
|
|
11533
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
12301
|
+
}], ctorParameters: function () { return [{ type: i1$5.Router }, { type: UrlService }, { type: PlaceRouter }, { type: PlaceHistory }, { type: InteractionService }, { type: i0.Injector }]; } });
|
|
11534
12302
|
|
|
11535
12303
|
var Formatter;
|
|
11536
12304
|
(function (Formatter) {
|
|
@@ -11564,69 +12332,74 @@ var Formatter;
|
|
|
11564
12332
|
Formatter.BOOLEAN = new BooleanType();
|
|
11565
12333
|
})(Formatter || (Formatter = {}));
|
|
11566
12334
|
|
|
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
|
-
}
|
|
12335
|
+
// function installMechanics<M extends HasValue<any>>(parameterDef: ParameterDefinition<any>, prototype: object, propertyKey: string | symbol, tagPrefix: string) {
|
|
12336
|
+
//
|
|
12337
|
+
// Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
|
|
12338
|
+
//
|
|
12339
|
+
// function getMechanics(instance: M, propertyName: string | symbol) {
|
|
12340
|
+
// const key = `__mechanics_${propertyName.toString()}`;
|
|
12341
|
+
// if (!instance[key]) {
|
|
12342
|
+
// const backingModel = parameterDef.createBackingModel();
|
|
12343
|
+
// instance[key] = {
|
|
12344
|
+
// backingModel: backingModel,
|
|
12345
|
+
// binding: null as Binding<any, any>
|
|
12346
|
+
// };
|
|
12347
|
+
// const tag = `${tagPrefix}(${prototype.constructor.name}.${propertyKey.toString()})`;
|
|
12348
|
+
// DebugContext.getOrCreate(instance[key].backingModel).tag(tag);
|
|
12349
|
+
// }
|
|
12350
|
+
// return instance[key];
|
|
12351
|
+
// }
|
|
12352
|
+
//
|
|
12353
|
+
// Object.defineProperty(prototype, propertyKey, {
|
|
12354
|
+
// get: function() {
|
|
12355
|
+
// return getMechanics(this, propertyKey).backingModel;
|
|
12356
|
+
// },
|
|
12357
|
+
// set: function(userModel: M) {
|
|
12358
|
+
// const mechanics = getMechanics(this, propertyKey);
|
|
12359
|
+
// // This handles the scenario where we want to push an existing value model (such as a form model)
|
|
12360
|
+
// // to and from the route.
|
|
12361
|
+
// if (mechanics.binding) {
|
|
12362
|
+
// mechanics.binding.dispose();
|
|
12363
|
+
// }
|
|
12364
|
+
// if (userModel) {
|
|
12365
|
+
// mechanics.binding = new Binding(mechanics.backingModel, userModel, {
|
|
12366
|
+
// toLeft: Functions.identity,
|
|
12367
|
+
// toRight: Functions.identity
|
|
12368
|
+
// });
|
|
12369
|
+
// if (parameterDef.isEmptyValue(userModel.value)) {
|
|
12370
|
+
// // console.log(`Push visit to model for ${tag}`, {value: mechanics.backingModel.value});
|
|
12371
|
+
// mechanics.binding.writeRight(); // push the visit into the user model;
|
|
12372
|
+
// } else {
|
|
12373
|
+
// if (!parameterDef.isEmptyValue(mechanics.backingModel.value)) {
|
|
12374
|
+
// console.warn('Assigning a visit model with an existing value to a visit parameter with an existing value. Visit parameter will be overridden');
|
|
12375
|
+
// }
|
|
12376
|
+
// mechanics.binding.writeLeft(); // push the user model into the visit
|
|
12377
|
+
// }
|
|
12378
|
+
// }
|
|
12379
|
+
// }
|
|
12380
|
+
// });
|
|
12381
|
+
// }
|
|
11612
12382
|
function RouteId(formatter, options) {
|
|
11613
12383
|
return (prototype, propertyKey) => {
|
|
11614
12384
|
const parameterDef = new ParameterDefinition.RouteId(propertyKey.toString(), options, formatter);
|
|
11615
|
-
installMechanics(parameterDef, prototype, propertyKey, '@RouteId');
|
|
12385
|
+
// installMechanics(parameterDef, prototype, propertyKey, '@RouteId');
|
|
12386
|
+
Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
|
|
11616
12387
|
};
|
|
11617
12388
|
}
|
|
11618
12389
|
function VisitParameter(options) {
|
|
11619
12390
|
const opts = Opts.get(options);
|
|
11620
12391
|
return (prototype, propertyKey) => {
|
|
11621
12392
|
const parameterDef = new ParameterDefinition.ValueParameter(propertyKey.toString(), options, opts.getOptional('storeInUrl', null));
|
|
11622
|
-
|
|
12393
|
+
Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
|
|
12394
|
+
// installMechanics(parameterDef, prototype, propertyKey, '@VisitParameter');
|
|
11623
12395
|
};
|
|
11624
12396
|
}
|
|
11625
12397
|
function VisitParameterList(options) {
|
|
11626
12398
|
const opts = Opts.get(options);
|
|
11627
12399
|
return (prototype, propertyKey) => {
|
|
11628
12400
|
const parameterDef = new ParameterDefinition.ArrayParameter(propertyKey.toString(), options, opts.getOptional('storeInUrl', null));
|
|
11629
|
-
|
|
12401
|
+
Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
|
|
12402
|
+
// installMechanics(parameterDef, prototype, propertyKey, '@VisitParameterList');
|
|
11630
12403
|
};
|
|
11631
12404
|
}
|
|
11632
12405
|
|
|
@@ -11720,5 +12493,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
11720
12493
|
* Generated bundle index. Do not edit.
|
|
11721
12494
|
*/
|
|
11722
12495
|
|
|
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,
|
|
12496
|
+
export { ACTIVITY_DATA, ALERT_CONFIG, AUP_PLACE_CONFIG, AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER, 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, 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, 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
12497
|
//# sourceMappingURL=coolon-angular-ui-powerups.mjs.map
|