@coolon/angular-ui-powerups 16.1.0-aplpha.12 → 16.1.0-aplpha.120
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/activities/input-activities.scss +14 -6
- package/assets/form.scss +74 -27
- package/assets/icons.scss +1 -0
- package/assets/table.scss +47 -27
- package/assets/tabs.scss +2 -6
- package/esm2022/lib/animations/slide-animations.mjs +6 -1
- package/esm2022/lib/components/cards/card-container/card-container.component.mjs +4 -4
- package/esm2022/lib/components/commands/command/command.component.mjs +24 -10
- package/esm2022/lib/components/commands/command-face/command-face.component.mjs +11 -3
- package/esm2022/lib/components/commands/command-face.mjs +11 -11
- package/esm2022/lib/components/commands/group/popup-menu/abstract-popup-menu.component.mjs +11 -11
- package/esm2022/lib/components/commands/group/tool-bar/tool-bar.component.mjs +6 -4
- package/esm2022/lib/components/components.module.mjs +27 -8
- package/esm2022/lib/components/disposable-component.mjs +33 -40
- package/esm2022/lib/components/exports.mjs +9 -2
- package/esm2022/lib/components/forms/abstract-input.component.mjs +55 -12
- package/esm2022/lib/components/forms/autocomplete-input/autocomplete-input.component.mjs +2 -2
- package/esm2022/lib/components/forms/checkbox-input/checkbox-input.component.mjs +8 -6
- package/esm2022/lib/components/forms/form-field.mjs +2 -0
- package/esm2022/lib/components/forms/multiple-select-input/multiple-select-input.component.mjs +2 -2
- package/esm2022/lib/components/forms/number-input/number-input.component.mjs +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 +69 -27
- package/esm2022/lib/components/tables/abstract-table.component.mjs +19 -5
- package/esm2022/lib/components/tables/column/column-manager.mjs +81 -0
- package/esm2022/lib/components/tables/column/column-model.mjs +13 -3
- package/esm2022/lib/components/tables/column/column-order-manager.mjs +19 -0
- package/esm2022/lib/components/tables/column/custom-template-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/column/custom-value-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/column/editor-controls-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/column/list-propery-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/column/property-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/column/selection-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.mjs +1 -1
- package/esm2022/lib/components/tables/editor/edit-session.mjs +3 -1
- package/esm2022/lib/components/tables/filter/table-filter-model.mjs +4 -2
- package/esm2022/lib/components/tables/filter/text-search-predicate.mjs +16 -2
- package/esm2022/lib/components/tables/footer/footer-row-model.mjs +38 -0
- package/esm2022/lib/components/tables/renderer/abstract-cell-renderer.mjs +7 -0
- package/esm2022/lib/components/tables/renderer/cell-portal-ref.mjs +19 -1
- package/esm2022/lib/components/tables/renderer/default-cell-renderer/default-cell-renderer.component.mjs +3 -3
- package/esm2022/lib/components/tables/renderer/select-header-cell/selection-header-cell.component.mjs +3 -2
- package/esm2022/lib/components/tables/renderer/table-body/table-body.component.mjs +150 -40
- package/esm2022/lib/components/tables/renderer/table-cell/table-cell.component.mjs +1 -1
- package/esm2022/lib/components/tables/renderer/table-footer-row/table-footer-row.component.mjs +30 -0
- package/esm2022/lib/components/tables/renderer/table-more-menu/table-more-menu.component.mjs +7 -2
- package/esm2022/lib/components/tables/table/table-model.mjs +1 -1
- package/esm2022/lib/components/tables/table/table.component.mjs +39 -61
- package/esm2022/lib/components/tables/tree-table/decorated-tree-node.mjs +5 -4
- package/esm2022/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.mjs +1 -1
- package/esm2022/lib/components/tables/tree-table/tree-label-column-model.mjs +3 -3
- package/esm2022/lib/components/tables/tree-table/tree-table-component.mjs +12 -5
- package/esm2022/lib/components/tables/tree-table/tree-table-model.mjs +4 -4
- package/esm2022/lib/components/text/markdown/markdown.component.mjs +2 -2
- package/esm2022/lib/directives/directives.module.mjs +1 -1
- package/esm2022/lib/directives/exports.mjs +2 -1
- package/esm2022/lib/directives/highlight.pipe.mjs +2 -2
- package/esm2022/lib/directives/resize-observer.directive.mjs +40 -0
- package/esm2022/lib/interaction/activity.mjs +3 -4
- package/esm2022/lib/interaction/alert.mjs +2 -2
- package/esm2022/lib/interaction/components/abstract-confirm-dialog.component.mjs +8 -4
- package/esm2022/lib/interaction/components/activity-actions/activity-actions.component.mjs +20 -11
- package/esm2022/lib/interaction/components/activity-container/activity-container.component.mjs +28 -11
- package/esm2022/lib/interaction/components/activity-title/activity-title.component.mjs +4 -4
- package/esm2022/lib/interaction/components/activity-triggers/inline-activity-trigger/inline-activity-trigger.component.mjs +1 -1
- package/esm2022/lib/interaction/components/add-card-activity/add-card-activity.component.mjs +1 -1
- package/esm2022/lib/interaction/components/add-item-interaction-context/add-item-interaction-context.component.mjs +1 -1
- package/esm2022/lib/interaction/components/alert-dialog/alert-dialog.component.mjs +1 -1
- package/esm2022/lib/interaction/components/confirm-then-dialog/confirm-then-dialog.component.mjs +1 -1
- package/esm2022/lib/interaction/components/confirm-then-execute-dialog/confirm-then-execute-dialog.component.mjs +1 -1
- package/esm2022/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.mjs +1 -1
- package/esm2022/lib/interaction/components/editors/edit-context.mjs +1 -1
- package/esm2022/lib/interaction/components/editors/inline-string-editor/inline-string-editor.component.mjs +3 -3
- package/esm2022/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.mjs +21 -5
- package/esm2022/lib/interaction/components/input-activities/input-activity.mjs +2 -2
- package/esm2022/lib/interaction/components/input-activities/select-input-activity.mjs +4 -2
- package/esm2022/lib/interaction/components/input-activities/string-input-activity.mjs +8 -4
- package/esm2022/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.mjs +134 -0
- package/esm2022/lib/interaction/directives/interaction-context-trigger-for.directive.mjs +2 -2
- package/esm2022/lib/interaction/exports.mjs +2 -1
- package/esm2022/lib/interaction/interaction-context.mjs +3 -2
- package/esm2022/lib/interaction/interaction.module.mjs +7 -9
- package/esm2022/lib/place/components/list-place-nav/list-place-nav.component.mjs +3 -4
- package/esm2022/lib/place/components/place-outlet/place-outlet.component.mjs +7 -9
- package/esm2022/lib/place/components/side-place-navigation/side-place-navigation.component.mjs +2 -2
- package/esm2022/lib/place/guards/consolidated-param-map.mjs +4 -4
- package/esm2022/lib/place/guards/place.guard.mjs +2 -1
- package/esm2022/lib/place/navigation/place-component-deactivation-handler.mjs +2 -2
- package/esm2022/lib/place/navigation/session/interactions/synchronise-interaction-context-ids-with-route.mjs +3 -6
- package/esm2022/lib/place/place-component.mjs +7 -7
- package/esm2022/lib/place/place-definition.mjs +3 -3
- package/esm2022/lib/place/place-history.mjs +2 -2
- package/esm2022/lib/place/place-router.mjs +20 -18
- package/esm2022/lib/place/place.decorator.mjs +2 -2
- package/esm2022/lib/place/place.module.mjs +1 -5
- package/esm2022/lib/place/route/formatter.mjs +2 -2
- package/esm2022/lib/place/route/parameter-decorators.mjs +54 -50
- package/esm2022/lib/place/route/parameter-definition.mjs +2 -2
- package/esm2022/lib/place/url-snapshot.mjs +3 -3
- package/esm2022/lib/place/visit-segment.mjs +2 -2
- package/esm2022/lib/place/visit.mjs +2 -2
- package/fesm2022/coolon-angular-ui-powerups.mjs +1368 -567
- package/fesm2022/coolon-angular-ui-powerups.mjs.map +1 -1
- package/lib/animations/slide-animations.d.ts +1 -0
- package/lib/components/cards/card-container/card-container.component.d.ts +1 -1
- package/lib/components/commands/command/command.component.d.ts +2 -1
- package/lib/components/commands/command-face/command-face.component.d.ts +2 -0
- package/lib/components/commands/command-face.d.ts +5 -7
- package/lib/components/commands/group/popup-menu/abstract-popup-menu.component.d.ts +2 -2
- package/lib/components/commands/group/tool-bar/tool-bar.component.d.ts +1 -1
- package/lib/components/components.module.d.ts +56 -53
- package/lib/components/disposable-component.d.ts +15 -8
- package/lib/components/exports.d.ts +8 -1
- package/lib/components/forms/abstract-input.component.d.ts +13 -5
- package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +2 -0
- package/lib/components/forms/form-field.d.ts +5 -0
- package/lib/components/forms/number-input/number-input.component.d.ts +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 +27 -8
- package/lib/components/tables/abstract-table.component.d.ts +4 -3
- package/lib/components/tables/column/column-manager.d.ts +19 -0
- package/lib/components/tables/column/column-model.d.ts +7 -3
- package/lib/components/tables/column/column-order-manager.d.ts +20 -0
- package/lib/components/tables/column/custom-template-column-model.d.ts +3 -2
- package/lib/components/tables/column/custom-value-column-model.d.ts +3 -2
- package/lib/components/tables/column/editor-controls-column-model.d.ts +3 -2
- package/lib/components/tables/column/list-propery-column-model.d.ts +3 -2
- package/lib/components/tables/column/property-column-model.d.ts +3 -2
- package/lib/components/tables/column/selection-column-model.d.ts +3 -2
- package/lib/components/tables/editor/edit-row-controls/edit-row-controls.component.d.ts +1 -1
- package/lib/components/tables/editor/edit-session.d.ts +1 -1
- package/lib/components/tables/filter/text-search-predicate.d.ts +9 -0
- package/lib/components/tables/footer/footer-row-model.d.ts +22 -0
- package/lib/components/tables/renderer/abstract-cell-renderer.d.ts +6 -0
- package/lib/components/tables/renderer/cell-portal-ref.d.ts +14 -6
- package/lib/components/tables/renderer/table-body/table-body.component.d.ts +40 -16
- package/lib/components/tables/renderer/table-cell/table-cell.component.d.ts +1 -1
- package/lib/components/tables/renderer/table-footer-row/table-footer-row.component.d.ts +11 -0
- package/lib/components/tables/renderer/table-more-menu/table-more-menu.component.d.ts +2 -1
- package/lib/components/tables/table/table-model.d.ts +1 -1
- package/lib/components/tables/table/table.component.d.ts +14 -10
- package/lib/components/tables/tree-table/tree-label-cell-renderer/tree-label-cell-renderer.component.d.ts +1 -1
- package/lib/components/tables/tree-table/tree-label-column-model.d.ts +3 -2
- package/lib/components/tables/tree-table/tree-table-component.d.ts +3 -0
- package/lib/components/tables/tree-table/tree-table-model.d.ts +3 -2
- package/lib/directives/exports.d.ts +1 -0
- package/lib/directives/resize-observer.directive.d.ts +16 -0
- package/lib/interaction/activity.d.ts +2 -2
- package/lib/interaction/components/abstract-confirm-dialog.component.d.ts +1 -0
- package/lib/interaction/components/activity-actions/activity-actions.component.d.ts +10 -5
- package/lib/interaction/components/activity-container/activity-container.component.d.ts +7 -3
- package/lib/interaction/components/activity-title/activity-title.component.d.ts +1 -1
- package/lib/interaction/components/editors/edit-context.d.ts +1 -1
- package/lib/interaction/components/inplace-interaction-context/in-place-interaction-context.component.d.ts +5 -3
- package/lib/interaction/components/slide-down-interaction-context/slide-down-interaction-context.component.d.ts +53 -0
- package/lib/interaction/exports.d.ts +1 -0
- package/lib/interaction/interaction-context.d.ts +2 -0
- package/lib/interaction/interaction.module.d.ts +28 -28
- package/lib/place/components/place-outlet/place-outlet.component.d.ts +3 -4
- package/lib/place/place-component.d.ts +4 -4
- package/lib/place/place-router.d.ts +4 -0
- package/lib/place/place.module.d.ts +4 -5
- package/package.json +6 -4
- package/esm2022/lib/components/tables/column/column-list-model.mjs +0 -44
- package/lib/components/tables/column/column-list-model.d.ts +0 -13
|
@@ -2,27 +2,27 @@ import { ObserversModule } from '@angular/cdk/observers';
|
|
|
2
2
|
import * as i1$1 from '@angular/common';
|
|
3
3
|
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { ElementRef, Directive, Inject, Host, Optional, Input, HostListener, inject, NgZone, Injectable, Pipe, NgModule, Component, ContentChild, HostBinding, ViewEncapsulation, InjectionToken, ViewChild, ViewChildren, EventEmitter, Output, SkipSelf, Self, ContentChildren, ComponentRef, Injector, PLATFORM_ID } from '@angular/core';
|
|
5
|
+
import { ElementRef, Directive, Inject, Host, Optional, Input, HostListener, ChangeDetectorRef, inject, NgZone, Injectable, Pipe, NgModule, Component, ContentChild, HostBinding, ChangeDetectionStrategy, ViewEncapsulation, InjectionToken, ViewChild, ViewChildren, EventEmitter, Output, SkipSelf, Self, ContentChildren, ComponentRef, Injector, PLATFORM_ID } from '@angular/core';
|
|
6
6
|
import * as i2$4 from '@angular/forms';
|
|
7
7
|
import { FormsModule } from '@angular/forms';
|
|
8
8
|
import * as i4$2 from '@angular/material/form-field';
|
|
9
9
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
10
10
|
import * as i3 from '@angular/material/input';
|
|
11
11
|
import { MatInputModule, MatInput } from '@angular/material/input';
|
|
12
|
-
import * as i4$
|
|
12
|
+
import * as i4$3 from '@angular/material/select';
|
|
13
13
|
import { MatSelectModule } from '@angular/material/select';
|
|
14
|
-
import * as i3$
|
|
14
|
+
import * as i3$2 from '@angular/material/tabs';
|
|
15
15
|
import { MatTabsModule, MAT_TABS_CONFIG } from '@angular/material/tabs';
|
|
16
16
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
17
|
-
import * as
|
|
17
|
+
import * as i1$4 from '@angular/cdk/portal';
|
|
18
18
|
import { ComponentPortal, TemplatePortal, PortalModule } from '@angular/cdk/portal';
|
|
19
19
|
import * as i1$2 from '@angular/cdk/scrolling';
|
|
20
|
-
import { CdkScrollableModule } from '@angular/cdk/scrolling';
|
|
20
|
+
import { CdkVirtualScrollViewport, CdkScrollableModule, ScrollingModule } from '@angular/cdk/scrolling';
|
|
21
21
|
import * as i7 from '@angular/material/autocomplete';
|
|
22
22
|
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
23
23
|
import * as i2 from '@angular/material/button';
|
|
24
24
|
import { MatButton, MatButtonModule } from '@angular/material/button';
|
|
25
|
-
import * as
|
|
25
|
+
import * as i3$1 from '@angular/material/checkbox';
|
|
26
26
|
import { MAT_CHECKBOX_DEFAULT_OPTIONS, MatCheckboxModule } from '@angular/material/checkbox';
|
|
27
27
|
import * as i2$3 from '@angular/material/divider';
|
|
28
28
|
import { MatDividerModule } from '@angular/material/divider';
|
|
@@ -38,35 +38,34 @@ import * as i2$6 from '@angular/material/table';
|
|
|
38
38
|
import { MatTableModule } from '@angular/material/table';
|
|
39
39
|
import * as i4$1 from '@angular/material/tooltip';
|
|
40
40
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
41
|
+
import * as i4$4 from 'ng-table-virtual-scroll';
|
|
42
|
+
import { TableVirtualScrollDataSource, TableVirtualScrollModule } from 'ng-table-virtual-scroll';
|
|
41
43
|
import * as i1$3 from '@coolon/pectin';
|
|
42
|
-
import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl,
|
|
43
|
-
import { __decorate,
|
|
44
|
+
import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, proxify, ValueModel, Proxify, Logger, StoreInValueModel, Command, MutableListModel, StoreInListModel, Disposable, DelegatingListModel, MutableValueModel, DelegateToValueModel, FocusManager, EventListenerList, Guard, DelegatingFormListModel, Binding, DebugContext, DelegateToListModel, DelegatingFormValueModel, ListModel, Functions, PageController, SelectionModel, CanProxy, MultipleSelectionModel, WatchList, ProxyRegistry, DirtyTrackingForm, DependsOnOptions, DelegatingCommand, ComputedListModel, Deferred, ReducingValueModel, AndValueModel } from '@coolon/pectin';
|
|
45
|
+
import { __decorate, __metadata, __param } from 'tslib';
|
|
44
46
|
import * as i1 from '@angular/platform-browser';
|
|
45
47
|
import escapeStringRegexp from 'escape-string-regexp';
|
|
46
|
-
import { isEmpty, isString, isFunction, isNil, isInteger, isObject, isEqual, join, first, uniq,
|
|
48
|
+
import { isEmpty, isString, isFunction, isNil, isInteger, isObject, isEqual, join, last, first, uniq, findLast, isNumber, isNaN as isNaN$1 } from 'lodash-es';
|
|
47
49
|
import { marked } from 'marked';
|
|
48
|
-
import {
|
|
50
|
+
import { MemoizeGet, lang as lang$1, assert as assert$1, Stringy, Klass, Opts } from '@coolon/typescript-utilities';
|
|
49
51
|
import { Enum } from 'typescript-string-enums';
|
|
50
|
-
import { lang as lang$1, assert as assert$1, Stringy, Klass, Opts } from '@coolon/typescript-utilities';
|
|
51
52
|
import * as i5 from '@angular/material/core';
|
|
53
|
+
import { Memoize } from 'fast-typescript-memoize';
|
|
52
54
|
import { produce } from 'immer';
|
|
53
55
|
import ResizeObserver from 'resize-observer-polyfill';
|
|
54
|
-
import {
|
|
56
|
+
import { generateKeyBetween } from 'fractional-indexing';
|
|
55
57
|
import * as i5$1 from '@angular/cdk/a11y';
|
|
56
58
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
57
|
-
import * as
|
|
58
|
-
import { FlexModule, GridModule } from '@angular/flex-layout';
|
|
59
|
-
import * as i1$6 from '@angular/material/dialog';
|
|
59
|
+
import * as i1$7 from '@angular/material/dialog';
|
|
60
60
|
import { MatDialogModule, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';
|
|
61
|
-
import * as i1$
|
|
61
|
+
import * as i1$5 from '@angular/router';
|
|
62
62
|
import { ActivatedRouteSnapshot, UrlSegment, NavigationStart, NavigationEnd, NavigationError, NavigationCancel, RouterModule } from '@angular/router';
|
|
63
|
-
import { Memoize as Memoize$1 } from 'typescript-memoize';
|
|
64
63
|
import 'reflect-metadata';
|
|
65
|
-
import * as i1$
|
|
64
|
+
import * as i1$6 from '@angular/cdk/overlay';
|
|
65
|
+
import { style, trigger, transition, animate, group, query } from '@angular/animations';
|
|
66
66
|
import { MatCardModule } from '@angular/material/card';
|
|
67
67
|
import * as i3$3 from '@angular/material/list';
|
|
68
68
|
import { MatListModule } from '@angular/material/list';
|
|
69
|
-
import { style, query, group, animate, trigger, transition } from '@angular/animations';
|
|
70
69
|
|
|
71
70
|
class CommandDirective extends GarbageCollector {
|
|
72
71
|
elementRef;
|
|
@@ -187,6 +186,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
187
186
|
args: ['click', ['$event']]
|
|
188
187
|
}] } });
|
|
189
188
|
|
|
189
|
+
class HighlightTextModelDirective extends GarbageCollector {
|
|
190
|
+
#aupHighlightTextModel_accessor_storage = proxify((ValueModel));
|
|
191
|
+
get aupHighlightTextModel() { return this.#aupHighlightTextModel_accessor_storage; }
|
|
192
|
+
set aupHighlightTextModel(value) { this.#aupHighlightTextModel_accessor_storage = value; }
|
|
193
|
+
constructor() {
|
|
194
|
+
super();
|
|
195
|
+
}
|
|
196
|
+
ngOnDestroy() {
|
|
197
|
+
this.dispose();
|
|
198
|
+
}
|
|
199
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: HighlightTextModelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
200
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: HighlightTextModelDirective, selector: "[aupHighlightTextModel]", inputs: { aupHighlightTextModel: "aupHighlightTextModel" }, usesInheritance: true, ngImport: i0 });
|
|
201
|
+
}
|
|
202
|
+
__decorate([
|
|
203
|
+
Proxify(),
|
|
204
|
+
__metadata("design:type", Object)
|
|
205
|
+
], HighlightTextModelDirective.prototype, "aupHighlightTextModel", null);
|
|
206
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: HighlightTextModelDirective, decorators: [{
|
|
207
|
+
type: Directive,
|
|
208
|
+
args: [{
|
|
209
|
+
selector: '[aupHighlightTextModel]'
|
|
210
|
+
}]
|
|
211
|
+
}], ctorParameters: function () { return []; }, propDecorators: { aupHighlightTextModel: [{
|
|
212
|
+
type: Input
|
|
213
|
+
}] } });
|
|
214
|
+
|
|
190
215
|
var Track;
|
|
191
216
|
(function (Track) {
|
|
192
217
|
Track.byIndex = (index, item) => index;
|
|
@@ -213,11 +238,21 @@ var Track;
|
|
|
213
238
|
|
|
214
239
|
class DisposableComponent extends GarbageCollector {
|
|
215
240
|
trackById = Track.byId();
|
|
216
|
-
#_loaded$ = new MutableValueModel();
|
|
217
|
-
#asyncLoadables = [];
|
|
218
|
-
#awaitedLoadables = [];
|
|
241
|
+
// #_loaded$ = new MutableValueModel<boolean>();
|
|
242
|
+
// #asyncLoadables: Loadable[] = [];
|
|
243
|
+
// #awaitedLoadables: Loadable[] = [];
|
|
219
244
|
#initCallbacks = [];
|
|
220
245
|
#initialised = false;
|
|
246
|
+
cdr = this.inject(ChangeDetectorRef);
|
|
247
|
+
highlightContext = this.inject(HighlightTextModelDirective, {
|
|
248
|
+
optional: true
|
|
249
|
+
});
|
|
250
|
+
constructor() {
|
|
251
|
+
super();
|
|
252
|
+
if (this.highlightContext) { // the component might be rendered outside a table
|
|
253
|
+
this.viewStateDependsOn(this.highlightContext.aupHighlightTextModel);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
221
256
|
onInit(callback) {
|
|
222
257
|
if (this.#initialised) {
|
|
223
258
|
callback();
|
|
@@ -226,51 +261,33 @@ class DisposableComponent extends GarbageCollector {
|
|
|
226
261
|
this.#initCallbacks.push(callback);
|
|
227
262
|
}
|
|
228
263
|
}
|
|
229
|
-
get loaded$() {
|
|
230
|
-
return this.#_loaded$.readonly$;
|
|
231
|
-
}
|
|
232
264
|
ngOnInit() {
|
|
233
265
|
this.#initCallbacks.forEach(it => it());
|
|
234
|
-
this.#asyncLoadables.forEach(it => it.ensureLoaded());
|
|
235
|
-
if (this.#awaitedLoadables.length > 0) {
|
|
236
|
-
Promise.all(this.#awaitedLoadables.map(it => {
|
|
237
|
-
return it.ensureLoaded(); //.then(() => console.log(`${it.constructor.name} loaded`));
|
|
238
|
-
})).then(() => {
|
|
239
|
-
this.#_loaded$.value = true;
|
|
240
|
-
});
|
|
241
|
-
}
|
|
242
|
-
else {
|
|
243
|
-
this.#_loaded$.value = true;
|
|
244
|
-
}
|
|
245
266
|
this.#initialised = true;
|
|
246
267
|
}
|
|
247
|
-
inject(token) {
|
|
248
|
-
return inject(token);
|
|
249
|
-
}
|
|
250
|
-
injectLoadable(token, options) {
|
|
251
|
-
const loadable = inject(token);
|
|
252
|
-
if (this.loaded$.value) {
|
|
253
|
-
loadable.ensureLoaded();
|
|
254
|
-
}
|
|
255
|
-
else {
|
|
256
|
-
if (!options || options.wait === true) {
|
|
257
|
-
this.#awaitedLoadables.push(loadable);
|
|
258
|
-
}
|
|
259
|
-
else {
|
|
260
|
-
this.#asyncLoadables.push(loadable);
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
|
-
return loadable;
|
|
264
|
-
}
|
|
265
268
|
ngOnDestroy() {
|
|
266
269
|
this.dispose();
|
|
267
270
|
}
|
|
268
|
-
|
|
271
|
+
inject(token, options) {
|
|
272
|
+
return inject(token, options);
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Monitors the specified models for any change and triggers and angular change detect cycle. This is intended for use
|
|
276
|
+
* when the component uses the ON_PUSH change detection strategy or when it is contained within another component that
|
|
277
|
+
* does (e.g. aup-table, aup-tree-table)
|
|
278
|
+
* @param models
|
|
279
|
+
* @protected
|
|
280
|
+
*/
|
|
281
|
+
viewStateDependsOn(...models) {
|
|
282
|
+
const { when } = Dsl.disposeWith(this);
|
|
283
|
+
when.anyOf(...models).changes(() => this.cdr.markForCheck());
|
|
284
|
+
}
|
|
285
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DisposableComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
269
286
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: DisposableComponent, usesInheritance: true, ngImport: i0 });
|
|
270
287
|
}
|
|
271
288
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DisposableComponent, decorators: [{
|
|
272
289
|
type: Directive
|
|
273
|
-
}] });
|
|
290
|
+
}], ctorParameters: function () { return []; } });
|
|
274
291
|
|
|
275
292
|
let FocusBinding = class FocusBinding extends GarbageCollector {
|
|
276
293
|
focusTargetElement;
|
|
@@ -466,32 +483,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
466
483
|
}]
|
|
467
484
|
}], ctorParameters: function () { return []; } });
|
|
468
485
|
|
|
469
|
-
class HighlightTextModelDirective extends GarbageCollector {
|
|
470
|
-
#aupHighlightTextModel_accessor_storage = proxify((ValueModel));
|
|
471
|
-
get aupHighlightTextModel() { return this.#aupHighlightTextModel_accessor_storage; }
|
|
472
|
-
set aupHighlightTextModel(value) { this.#aupHighlightTextModel_accessor_storage = value; }
|
|
473
|
-
constructor() {
|
|
474
|
-
super();
|
|
475
|
-
}
|
|
476
|
-
ngOnDestroy() {
|
|
477
|
-
this.dispose();
|
|
478
|
-
}
|
|
479
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: HighlightTextModelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
480
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: HighlightTextModelDirective, selector: "[aupHighlightTextModel]", inputs: { aupHighlightTextModel: "aupHighlightTextModel" }, usesInheritance: true, ngImport: i0 });
|
|
481
|
-
}
|
|
482
|
-
__decorate([
|
|
483
|
-
Proxify(),
|
|
484
|
-
__metadata("design:type", Object)
|
|
485
|
-
], HighlightTextModelDirective.prototype, "aupHighlightTextModel", null);
|
|
486
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: HighlightTextModelDirective, decorators: [{
|
|
487
|
-
type: Directive,
|
|
488
|
-
args: [{
|
|
489
|
-
selector: '[aupHighlightTextModel]'
|
|
490
|
-
}]
|
|
491
|
-
}], ctorParameters: function () { return []; }, propDecorators: { aupHighlightTextModel: [{
|
|
492
|
-
type: Input
|
|
493
|
-
}] } });
|
|
494
|
-
|
|
495
486
|
class HighlightPipe extends GarbageCollector {
|
|
496
487
|
sanitizer;
|
|
497
488
|
highlightContext;
|
|
@@ -736,42 +727,42 @@ var CommandFace;
|
|
|
736
727
|
}
|
|
737
728
|
}
|
|
738
729
|
__decorate([
|
|
739
|
-
|
|
730
|
+
MemoizeGet(),
|
|
740
731
|
__metadata("design:type", Object),
|
|
741
732
|
__metadata("design:paramtypes", [])
|
|
742
733
|
], Adapter.prototype, "text", null);
|
|
743
734
|
__decorate([
|
|
744
|
-
|
|
735
|
+
MemoizeGet(),
|
|
745
736
|
__metadata("design:type", Object),
|
|
746
737
|
__metadata("design:paramtypes", [])
|
|
747
738
|
], Adapter.prototype, "icon", null);
|
|
748
739
|
__decorate([
|
|
749
|
-
|
|
740
|
+
MemoizeGet(),
|
|
750
741
|
__metadata("design:type", Object),
|
|
751
742
|
__metadata("design:paramtypes", [])
|
|
752
743
|
], Adapter.prototype, "iconPosition", null);
|
|
753
744
|
__decorate([
|
|
754
|
-
|
|
745
|
+
MemoizeGet(),
|
|
755
746
|
__metadata("design:type", Object),
|
|
756
747
|
__metadata("design:paramtypes", [])
|
|
757
748
|
], Adapter.prototype, "tooltip", null);
|
|
758
749
|
__decorate([
|
|
759
|
-
|
|
750
|
+
MemoizeGet(),
|
|
760
751
|
__metadata("design:type", Boolean),
|
|
761
752
|
__metadata("design:paramtypes", [])
|
|
762
753
|
], Adapter.prototype, "iconPositionStart", null);
|
|
763
754
|
__decorate([
|
|
764
|
-
|
|
755
|
+
MemoizeGet(),
|
|
765
756
|
__metadata("design:type", Boolean),
|
|
766
757
|
__metadata("design:paramtypes", [])
|
|
767
758
|
], Adapter.prototype, "iconPositionEnd", null);
|
|
768
759
|
__decorate([
|
|
769
|
-
|
|
760
|
+
MemoizeGet(),
|
|
770
761
|
__metadata("design:type", String),
|
|
771
762
|
__metadata("design:paramtypes", [])
|
|
772
763
|
], Adapter.prototype, "color", null);
|
|
773
764
|
__decorate([
|
|
774
|
-
|
|
765
|
+
MemoizeGet(),
|
|
775
766
|
__metadata("design:type", String),
|
|
776
767
|
__metadata("design:paramtypes", [])
|
|
777
768
|
], Adapter.prototype, "style", null);
|
|
@@ -842,6 +833,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
842
833
|
args: ["class.disable-scroll"]
|
|
843
834
|
}] } });
|
|
844
835
|
|
|
836
|
+
/* eslint-disable @angular-eslint/no-host-metadata-property */
|
|
845
837
|
class IconComponent {
|
|
846
838
|
_icon;
|
|
847
839
|
prefix;
|
|
@@ -873,11 +865,13 @@ class IconComponent {
|
|
|
873
865
|
return `fa-${this.suffix}`;
|
|
874
866
|
}
|
|
875
867
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
876
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: IconComponent, selector: "aup-icon", inputs: { icon: "icon" }, host: { properties: { "attr.icon": "this.icon" } }, ngImport: i0, template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"iconPrefix.SVG\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"iconPrefix.MATERIAL\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"iconPrefix.FONT_AWESOME\" class=\"faIconWrapper\">\n <i class=\"fa-solid\" [class]=\"faIcon\"></i>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n", styles: [":host{display:inline-flex;--resolved-size: var(--aup-icon-size, 24px);width:var(--resolved-size) fa-icon
|
|
868
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: IconComponent, selector: "aup-icon", inputs: { icon: "icon" }, host: { properties: { "attr.icon": "this.icon" }, classAttribute: "mat-icon" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"iconPrefix.SVG\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"iconPrefix.MATERIAL\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"iconPrefix.FONT_AWESOME\" class=\"faIconWrapper\">\n <i class=\"fa-solid\" [class]=\"faIcon\"></i>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n", styles: [":host{display:inline-flex;--resolved-size: var(--aup-icon-size, 24px);width:var(--resolved-size)!important;min-width:var(--resolved-size)!important;height:var(--resolved-size)!important;min-height:var(--resolved-size)!important}:host fa-icon{vertical-align:middle}:host .faIconWrapper{display:flex;flex-direction:row;align-items:center;justify-content:center;width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host .svgIcon{width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host :host(.mat-chip-remove){--aup-icon-size: 18px}:host mat-icon{font-size:var(--resolved-size)!important;width:var(--resolved-size)!important;height:var(--resolved-size)!important;margin-right:0!important}\n"], dependencies: [{ kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2$2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
877
869
|
}
|
|
878
870
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: IconComponent, decorators: [{
|
|
879
871
|
type: Component,
|
|
880
|
-
args: [{ selector: 'aup-icon',
|
|
872
|
+
args: [{ selector: 'aup-icon', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
873
|
+
class: "mat-icon" // this ensures angular form styles that target mat icon also work with us
|
|
874
|
+
}, template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"iconPrefix.SVG\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"iconPrefix.MATERIAL\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"iconPrefix.FONT_AWESOME\" class=\"faIconWrapper\">\n <i class=\"fa-solid\" [class]=\"faIcon\"></i>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n", styles: [":host{display:inline-flex;--resolved-size: var(--aup-icon-size, 24px);width:var(--resolved-size)!important;min-width:var(--resolved-size)!important;height:var(--resolved-size)!important;min-height:var(--resolved-size)!important}:host fa-icon{vertical-align:middle}:host .faIconWrapper{display:flex;flex-direction:row;align-items:center;justify-content:center;width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host .svgIcon{width:var(--resolved-size)!important;height:var(--resolved-size)!important}:host :host(.mat-chip-remove){--aup-icon-size: 18px}:host mat-icon{font-size:var(--resolved-size)!important;width:var(--resolved-size)!important;height:var(--resolved-size)!important;margin-right:0!important}\n"] }]
|
|
881
875
|
}], propDecorators: { icon: [{
|
|
882
876
|
type: Input
|
|
883
877
|
}, {
|
|
@@ -908,6 +902,7 @@ class CommandFaceComponent extends DisposableComponent {
|
|
|
908
902
|
// tslint:disable-next-line:no-input-rename
|
|
909
903
|
get _rawFaces() { return this.#_rawFaces_accessor_storage; }
|
|
910
904
|
set _rawFaces(value) { this.#_rawFaces_accessor_storage = value; }
|
|
905
|
+
hasTextAndLeadingIcon$;
|
|
911
906
|
set face(face) {
|
|
912
907
|
this.faces$.value = [face];
|
|
913
908
|
}
|
|
@@ -927,6 +922,7 @@ class CommandFaceComponent extends DisposableComponent {
|
|
|
927
922
|
const activeFace = this.faceAdapters.first();
|
|
928
923
|
this.activeIcon = activeFace.pluck("icon");
|
|
929
924
|
this.activeColor = activeFace.pluck("color");
|
|
925
|
+
this.hasTextAndLeadingIcon$ = valueOf.all(this.activeIcon.isNotNil(), activeFace.pluckString('text').isNotBlank(), activeFace.pluck("iconPosition").doesNotEqual(CommandFace.Position.END)).areTruthy();
|
|
930
926
|
}
|
|
931
927
|
shouldIncludeIcon(face) {
|
|
932
928
|
return (!this.ignoreIcon && face.icon) || this.includeMissingIconInLayout;
|
|
@@ -940,8 +936,11 @@ class CommandFaceComponent extends DisposableComponent {
|
|
|
940
936
|
get color() {
|
|
941
937
|
return this.activeColor.value;
|
|
942
938
|
}
|
|
939
|
+
get hasTextAndIcon() {
|
|
940
|
+
return this.hasTextAndLeadingIcon$.value;
|
|
941
|
+
}
|
|
943
942
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CommandFaceComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
944
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CommandFaceComponent, selector: "aup-command-face", inputs: { _rawFaces: ["faces", "_rawFaces"], face: "face", ignoreIcon: "ignoreIcon", ignoreText: "ignoreText", includeMissingIconInLayout: "includeMissingIconInLayout" }, host: { properties: { "class.hide-icon": "this.requiresMissingIconInLayout", "attr.color": "this.color" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"face-container\" *ngFor=\"let face of faceAdapters.value\">\n <aup-icon *ngIf=\"hasIconStart(face)\" [icon]=\"face.icon\"></aup-icon>\n <span *ngIf=\"face.text\">{{face.text}}</span>\n <aup-icon *ngIf=\"hasIconEnd(face)\" [icon]=\"face.icon\"></aup-icon>\n</div>\n", styles: ["aup-command-face{--icon-gap: var(--aup-command-face-icon-gap);display:inline-grid}aup-command-face>.face-container{grid-column:1;grid-row:1;display:inline-flex;flex-direction:row;align-items:center}aup-command-face>.face-container:not(:first-child){visibility:hidden}aup-command-face>.face-container *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}aup-command-face.centered{justify-items:center}aup-command-face.start{justify-items:self-start}aup-command-face.end{justify-items:self-end}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "aup-icon", inputs: ["icon"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
943
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CommandFaceComponent, selector: "aup-command-face", inputs: { _rawFaces: ["faces", "_rawFaces"], face: "face", ignoreIcon: "ignoreIcon", ignoreText: "ignoreText", includeMissingIconInLayout: "includeMissingIconInLayout" }, host: { properties: { "class.hide-icon": "this.requiresMissingIconInLayout", "attr.color": "this.color", "class.has-text-and-leading-icon": "this.hasTextAndIcon" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"face-container\" *ngFor=\"let face of faceAdapters.value\">\n <aup-icon *ngIf=\"hasIconStart(face)\" [icon]=\"face.icon\"></aup-icon>\n <span *ngIf=\"face.text\">{{face.text}}</span>\n <aup-icon *ngIf=\"hasIconEnd(face)\" [icon]=\"face.icon\"></aup-icon>\n</div>\n", styles: ["aup-command-face{--icon-gap: var(--aup-command-face-icon-gap);display:inline-grid}aup-command-face>.face-container{grid-column:1;grid-row:1;display:inline-flex;flex-direction:row;align-items:center}aup-command-face>.face-container>span{white-space:nowrap}aup-command-face>.face-container:not(:first-child){visibility:hidden}aup-command-face>.face-container *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}aup-command-face.centered{justify-items:center}aup-command-face.start{justify-items:self-start}aup-command-face.end{justify-items:self-end}aup-command-face.has-text-and-leading-icon{margin-top:4px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "aup-icon", inputs: ["icon"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
945
944
|
}
|
|
946
945
|
__decorate([
|
|
947
946
|
StoreInListModel("faces$"),
|
|
@@ -949,7 +948,7 @@ __decorate([
|
|
|
949
948
|
], CommandFaceComponent.prototype, "_rawFaces", null);
|
|
950
949
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CommandFaceComponent, decorators: [{
|
|
951
950
|
type: Component,
|
|
952
|
-
args: [{ selector: 'aup-command-face', encapsulation: ViewEncapsulation.None, template: "<div class=\"face-container\" *ngFor=\"let face of faceAdapters.value\">\n <aup-icon *ngIf=\"hasIconStart(face)\" [icon]=\"face.icon\"></aup-icon>\n <span *ngIf=\"face.text\">{{face.text}}</span>\n <aup-icon *ngIf=\"hasIconEnd(face)\" [icon]=\"face.icon\"></aup-icon>\n</div>\n", styles: ["aup-command-face{--icon-gap: var(--aup-command-face-icon-gap);display:inline-grid}aup-command-face>.face-container{grid-column:1;grid-row:1;display:inline-flex;flex-direction:row;align-items:center}aup-command-face>.face-container:not(:first-child){visibility:hidden}aup-command-face>.face-container *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}aup-command-face.centered{justify-items:center}aup-command-face.start{justify-items:self-start}aup-command-face.end{justify-items:self-end}\n"] }]
|
|
951
|
+
args: [{ selector: 'aup-command-face', encapsulation: ViewEncapsulation.None, template: "<div class=\"face-container\" *ngFor=\"let face of faceAdapters.value\">\n <aup-icon *ngIf=\"hasIconStart(face)\" [icon]=\"face.icon\"></aup-icon>\n <span *ngIf=\"face.text\">{{face.text}}</span>\n <aup-icon *ngIf=\"hasIconEnd(face)\" [icon]=\"face.icon\"></aup-icon>\n</div>\n", styles: ["aup-command-face{--icon-gap: var(--aup-command-face-icon-gap);display:inline-grid}aup-command-face>.face-container{grid-column:1;grid-row:1;display:inline-flex;flex-direction:row;align-items:center}aup-command-face>.face-container>span{white-space:nowrap}aup-command-face>.face-container:not(:first-child){visibility:hidden}aup-command-face>.face-container *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}aup-command-face.centered{justify-items:center}aup-command-face.start{justify-items:self-start}aup-command-face.end{justify-items:self-end}aup-command-face.has-text-and-leading-icon{margin-top:4px}\n"] }]
|
|
953
952
|
}], ctorParameters: function () { return []; }, propDecorators: { _rawFaces: [{
|
|
954
953
|
type: Input,
|
|
955
954
|
args: ['faces']
|
|
@@ -967,6 +966,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
967
966
|
}], color: [{
|
|
968
967
|
type: HostBinding,
|
|
969
968
|
args: ['attr.color']
|
|
969
|
+
}], hasTextAndIcon: [{
|
|
970
|
+
type: HostBinding,
|
|
971
|
+
args: ['class.has-text-and-leading-icon']
|
|
970
972
|
}] } });
|
|
971
973
|
|
|
972
974
|
/**
|
|
@@ -1070,11 +1072,11 @@ class CardContainerComponent extends AbstractCardContainerComponent {
|
|
|
1070
1072
|
}
|
|
1071
1073
|
}
|
|
1072
1074
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CardContainerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1073
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CardContainerComponent, selector: "aup-card-container", inputs: { columnCount: "columnCount", enableScroll: "enableScroll" }, host: { properties: { "class.auto-columns": "this.isAutoColumns", "class.single-column": "this.isSingleColumn" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"header-container\">\n <ng-content select=\"[card-container-header]\"></ng-content>\n</div>\n\n<ng-template #content>\n <div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled$.value\" [pectinCommand]=\"addCardCommand\">\n <aup-command-face *ngIf=\"addCardFace\" [faces]=\"[addCardFace]\"></aup-command-face>\n <aup-icon *ngIf=\"!addCardFace\" icon=\"mat:add\"></aup-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n </div>\n</ng-template>\n\n<div class=\"no-scroll-container\" *ngIf=\"!enableScroll\">\n
|
|
1075
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CardContainerComponent, selector: "aup-card-container", inputs: { columnCount: "columnCount", enableScroll: "enableScroll" }, host: { properties: { "class.auto-columns": "this.isAutoColumns", "class.single-column": "this.isSingleColumn" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"header-container\">\n <ng-content select=\"[card-container-header], [slot=header]\"></ng-content>\n</div>\n\n<ng-template #content>\n <div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled$.value\" [pectinCommand]=\"addCardCommand\">\n <aup-command-face *ngIf=\"addCardFace\" [faces]=\"[addCardFace]\"></aup-command-face>\n <aup-icon *ngIf=\"!addCardFace\" icon=\"mat:add\"></aup-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n </div>\n</ng-template>\n\n<div class=\"no-scroll-container\" *ngIf=\"!enableScroll\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n\n<aup-scroll-container *ngIf=\"enableScroll\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</aup-scroll-container>\n\n<div class=\"footer-container\">\n <ng-content select=\"[card-container-footer], [slot=footer]\"></ng-content>\n</div>\n\n", styles: [":host{--resolved-card-gap: var(--card-gap, 16px);--resolved-card-width: var(--card-width, 300px);--resolved-card-min-width: var(--card-min-width, var(--card-width, var(--card-max-width)));--resolved-card-max-width: var(--card-max-width, var(--card-width, var(--card-min-width)));--resolved-card-height: var(--card-height, auto);--resolved-card-min-height: var(--card-min-height, auto);--resolved-card-background: var(--card-background, var(--aup-card-container-default-background-color));flex:1;display:flex;flex-direction:column;align-items:stretch;background:var(--resolved-card-background)}:host.auto-columns>*>.card-container{grid-template-columns:repeat(auto-fill,minmax(var(--resolved-card-min-width),var(--resolved-card-max-width)))}:host:not(.auto-columns)>*>.card-container{grid-template-columns:repeat(var(--aup-card-container-column-count),1fr)}.card-container{display:grid;box-sizing:border-box;padding:var(--resolved-card-gap);min-height:calc(var(--resolved-card-height) + 2 * var(--resolved-card-gap));max-width:100%;grid-auto-rows:minmax(var(--resolved-card-min-height),var(--resolved-card-height));grid-gap:var(--resolved-card-gap)}aup-scroll-container,.no-scroll-container{flex:1}.add-card-container{height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:#0000008a;background-color:#fffc}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.add-card-container:hover{border-color:transparent;background-color:#fff;color:#0000008a}.add-card-template-container{height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:stretch;justify-content:stretch}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "component", type: ScrollContainerComponent, selector: "aup-scroll-container", inputs: ["disableScroll$", "disableScroll"] }, { kind: "component", type: IconComponent, selector: "aup-icon", inputs: ["icon"] }, { kind: "component", type: CommandFaceComponent, selector: "aup-command-face", inputs: ["faces", "face", "ignoreIcon", "ignoreText", "includeMissingIconInLayout"] }] });
|
|
1074
1076
|
}
|
|
1075
1077
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CardContainerComponent, decorators: [{
|
|
1076
1078
|
type: Component,
|
|
1077
|
-
args: [{ selector: 'aup-card-container', template: "<div class=\"header-container\">\n <ng-content select=\"[card-container-header]\"></ng-content>\n</div>\n\n<ng-template #content>\n <div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled$.value\" [pectinCommand]=\"addCardCommand\">\n <aup-command-face *ngIf=\"addCardFace\" [faces]=\"[addCardFace]\"></aup-command-face>\n <aup-icon *ngIf=\"!addCardFace\" icon=\"mat:add\"></aup-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n </div>\n</ng-template>\n\n<div class=\"no-scroll-container\" *ngIf=\"!enableScroll\">\n
|
|
1079
|
+
args: [{ selector: 'aup-card-container', template: "<div class=\"header-container\">\n <ng-content select=\"[card-container-header], [slot=header]\"></ng-content>\n</div>\n\n<ng-template #content>\n <div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled$.value\" [pectinCommand]=\"addCardCommand\">\n <aup-command-face *ngIf=\"addCardFace\" [faces]=\"[addCardFace]\"></aup-command-face>\n <aup-icon *ngIf=\"!addCardFace\" icon=\"mat:add\"></aup-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n </div>\n</ng-template>\n\n<div class=\"no-scroll-container\" *ngIf=\"!enableScroll\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n\n<aup-scroll-container *ngIf=\"enableScroll\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</aup-scroll-container>\n\n<div class=\"footer-container\">\n <ng-content select=\"[card-container-footer], [slot=footer]\"></ng-content>\n</div>\n\n", styles: [":host{--resolved-card-gap: var(--card-gap, 16px);--resolved-card-width: var(--card-width, 300px);--resolved-card-min-width: var(--card-min-width, var(--card-width, var(--card-max-width)));--resolved-card-max-width: var(--card-max-width, var(--card-width, var(--card-min-width)));--resolved-card-height: var(--card-height, auto);--resolved-card-min-height: var(--card-min-height, auto);--resolved-card-background: var(--card-background, var(--aup-card-container-default-background-color));flex:1;display:flex;flex-direction:column;align-items:stretch;background:var(--resolved-card-background)}:host.auto-columns>*>.card-container{grid-template-columns:repeat(auto-fill,minmax(var(--resolved-card-min-width),var(--resolved-card-max-width)))}:host:not(.auto-columns)>*>.card-container{grid-template-columns:repeat(var(--aup-card-container-column-count),1fr)}.card-container{display:grid;box-sizing:border-box;padding:var(--resolved-card-gap);min-height:calc(var(--resolved-card-height) + 2 * var(--resolved-card-gap));max-width:100%;grid-auto-rows:minmax(var(--resolved-card-min-height),var(--resolved-card-height));grid-gap:var(--resolved-card-gap)}aup-scroll-container,.no-scroll-container{flex:1}.add-card-container{height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:center;justify-content:center;transition:box-shadow .28s cubic-bezier(.4,0,.2,1);box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:#0000008a;background-color:#fffc}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f}.add-card-container:hover{border-color:transparent;background-color:#fff;color:#0000008a}.add-card-template-container{height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:stretch;justify-content:stretch}\n"] }]
|
|
1078
1080
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { columnCount: [{
|
|
1079
1081
|
type: Input
|
|
1080
1082
|
}], enableScroll: [{
|
|
@@ -1150,14 +1152,24 @@ class CommandComponent extends PopupAwareComponent {
|
|
|
1150
1152
|
activeFace$;
|
|
1151
1153
|
iconOnly$;
|
|
1152
1154
|
tooltip$;
|
|
1155
|
+
visible$;
|
|
1153
1156
|
constructor(element, parent) {
|
|
1154
1157
|
super(element, parent);
|
|
1155
1158
|
const { chain, switchOn } = Dsl.disposeWith(this);
|
|
1156
|
-
this.faces$ = chain(this.command.busy$)
|
|
1159
|
+
this.faces$ = chain(this.command.busy$)
|
|
1160
|
+
.mapToList(busy => {
|
|
1157
1161
|
return busy ?
|
|
1158
|
-
[this.busyFace$.value, this.face$.value] :
|
|
1159
|
-
[this.face$.value, this.busyFace$.value];
|
|
1160
|
-
}, {
|
|
1162
|
+
[this.busyFace$.value ?? this.command.busyFace$.value, this.face$.value ?? this.command.defaultFace$.value] :
|
|
1163
|
+
[this.face$.value ?? this.command.defaultFace$.value, this.busyFace$.value ?? this.command.busyFace$.value];
|
|
1164
|
+
}, {
|
|
1165
|
+
allowNil: true,
|
|
1166
|
+
dependsOn: [
|
|
1167
|
+
this.face$,
|
|
1168
|
+
this.busyFace$,
|
|
1169
|
+
this.command.defaultFace$,
|
|
1170
|
+
this.command.busyFace$
|
|
1171
|
+
]
|
|
1172
|
+
})
|
|
1161
1173
|
.rejectNil();
|
|
1162
1174
|
this.activeFace$ = this.faces$.first();
|
|
1163
1175
|
this.buttonStyle$ = chain(this.activeFace$).map(f => CommandFace.getStyleOf(f));
|
|
@@ -1166,18 +1178,19 @@ class CommandComponent extends PopupAwareComponent {
|
|
|
1166
1178
|
this.iconOnly$ = this.faces$.select(face => {
|
|
1167
1179
|
return isEmpty(CommandFace.getTextOf(face)) && !isEmpty(CommandFace.getIconOf(face));
|
|
1168
1180
|
}).count().equals(this.faces$.count());
|
|
1181
|
+
this.visible$ = chain(this.command.visible$);
|
|
1182
|
+
}
|
|
1183
|
+
get cssDisplayProperty() {
|
|
1184
|
+
return this.visible$.value ? undefined : 'none';
|
|
1169
1185
|
}
|
|
1170
1186
|
isActive(face) {
|
|
1171
1187
|
return this.activeFace$.query().equals(face);
|
|
1172
1188
|
}
|
|
1173
|
-
getFace() {
|
|
1174
|
-
return this.face;
|
|
1175
|
-
}
|
|
1176
1189
|
requestFocus() {
|
|
1177
1190
|
this.button.focus();
|
|
1178
1191
|
}
|
|
1179
1192
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CommandComponent, deps: [{ token: i0.ElementRef }, { token: POPUP_CONTAINER, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
1180
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CommandComponent, selector: "aup-command", inputs: { command: "command", face$: "face$", face: "face", busyFace$: "busyFace$", busyFace: "busyFace", alignFace: "alignFace" }, host: { properties: { "class": "this.alignFace" } }, viewQueries: [{ propertyName: "button", first: true, predicate: MatButton, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"iconOnly$.value\">\n <button mat-icon-button [pectinCommand]=\"command\" [color]=\"color$.value\" [class.busy]=\"command.busy$.value\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n</ng-container>\n<ng-container *ngIf=\"!iconOnly$.value\">\n <ng-container [ngSwitch]=\"buttonStyle$.value\">\n <ng-container *ngSwitchCase=\"CommandFace.Style.STROKED\">\n <button mat-stroked-button [pectinCommand]=\"command\" [color]=\"color$.value\" [class.busy]=\"command.busy$.value\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"CommandFace.Style.RAISED\">\n <button mat-raised-button [pectinCommand]=\"command\" [color]=\"color$.value\" [class.busy]=\"command.busy$.value\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button mat-button [pectinCommand]=\"command\" [color]=\"color$.value\" [class.busy]=\"command.busy$.value\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n </ng-container>\n</ng-container>\n", styles: [":host{display:inline-flex;flex-direction:row;justify-content:stretch}:host.centered button{text-align:center}:host.start button{text-align:start}:host.end button{text-align:end}button{flex:1}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: CommandFaceComponent, selector: "aup-command-face", inputs: ["faces", "face", "ignoreIcon", "ignoreText", "includeMissingIconInLayout"] }] });
|
|
1193
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CommandComponent, selector: "aup-command", inputs: { command: "command", face$: "face$", face: "face", busyFace$: "busyFace$", busyFace: "busyFace", alignFace: "alignFace" }, host: { properties: { "class": "this.alignFace", "style.display": "this.cssDisplayProperty" } }, viewQueries: [{ propertyName: "button", first: true, predicate: MatButton, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"iconOnly$.value\">\n <button mat-icon-button [pectinCommand]=\"command\" [color]=\"color$.value\" [class.busy]=\"command.busy$.value\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n</ng-container>\n<ng-container *ngIf=\"!iconOnly$.value\">\n <ng-container [ngSwitch]=\"buttonStyle$.value\">\n <ng-container *ngSwitchCase=\"CommandFace.Style.STROKED\">\n <button mat-stroked-button [pectinCommand]=\"command\" [color]=\"color$.value\" [class.busy]=\"command.busy$.value\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchCase=\"CommandFace.Style.RAISED\">\n <button mat-raised-button [pectinCommand]=\"command\" [color]=\"color$.value\" [class.busy]=\"command.busy$.value\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <button mat-button [pectinCommand]=\"command\" [color]=\"color$.value\" [class.busy]=\"command.busy$.value\"\n [matTooltip]=\"tooltip$.value\">\n <aup-command-face [class]=\"alignFace\" [faces]=\"faces$.value\"></aup-command-face>\n </button>\n </ng-container>\n </ng-container>\n</ng-container>\n", styles: [":host{display:inline-flex;flex-direction:row;justify-content:stretch}:host.centered button{text-align:center}:host.start button{text-align:start}:host.end button{text-align:end}button{flex:1}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: CommandDirective, selector: "[pectinCommand]", inputs: ["pectinCommand", "commandParameter"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4$1.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: CommandFaceComponent, selector: "aup-command-face", inputs: ["faces", "face", "ignoreIcon", "ignoreText", "includeMissingIconInLayout"] }] });
|
|
1181
1194
|
}
|
|
1182
1195
|
__decorate([
|
|
1183
1196
|
Proxify(),
|
|
@@ -1225,6 +1238,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1225
1238
|
}], button: [{
|
|
1226
1239
|
type: ViewChild,
|
|
1227
1240
|
args: [MatButton]
|
|
1241
|
+
}], cssDisplayProperty: [{
|
|
1242
|
+
type: HostBinding,
|
|
1243
|
+
args: ["style.display"]
|
|
1228
1244
|
}] } });
|
|
1229
1245
|
|
|
1230
1246
|
/**
|
|
@@ -1252,12 +1268,12 @@ class AbstractPopupMenuComponent extends PopupAwareComponent {
|
|
|
1252
1268
|
xPosition = 'after';
|
|
1253
1269
|
yPosition = 'below';
|
|
1254
1270
|
triggers;
|
|
1255
|
-
#enabled_accessor_storage;
|
|
1256
|
-
get enabled() { return this.#enabled_accessor_storage; }
|
|
1257
|
-
set enabled(value) { this.#enabled_accessor_storage = value; }
|
|
1258
1271
|
#enabled$_accessor_storage = proxify((ValueModel));
|
|
1259
1272
|
get enabled$() { return this.#enabled$_accessor_storage; }
|
|
1260
1273
|
set enabled$(value) { this.#enabled$_accessor_storage = value; }
|
|
1274
|
+
#enabled_accessor_storage = true;
|
|
1275
|
+
get enabled() { return this.#enabled_accessor_storage; }
|
|
1276
|
+
set enabled(value) { this.#enabled_accessor_storage = value; }
|
|
1261
1277
|
children;
|
|
1262
1278
|
faces$;
|
|
1263
1279
|
constructor(element, parent) {
|
|
@@ -1299,16 +1315,16 @@ class AbstractPopupMenuComponent extends PopupAwareComponent {
|
|
|
1299
1315
|
return this.faceAdapter.face;
|
|
1300
1316
|
}
|
|
1301
1317
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractPopupMenuComponent, deps: [{ token: i0.ElementRef }, { token: POPUP_CONTAINER }], target: i0.ɵɵFactoryTarget.Component });
|
|
1302
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractPopupMenuComponent, selector: "aup-abstract-popup-menu", inputs: { xPosition: "xPosition", yPosition: "yPosition", enabled
|
|
1318
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractPopupMenuComponent, selector: "aup-abstract-popup-menu", inputs: { xPosition: "xPosition", yPosition: "yPosition", enabled$: "enabled$", enabled: "enabled" }, viewQueries: [{ propertyName: "triggers", predicate: MatMenuTrigger, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
1303
1319
|
}
|
|
1304
|
-
__decorate([
|
|
1305
|
-
StoreInValueModel(),
|
|
1306
|
-
__metadata("design:type", Boolean)
|
|
1307
|
-
], AbstractPopupMenuComponent.prototype, "enabled", null);
|
|
1308
1320
|
__decorate([
|
|
1309
1321
|
Proxify(),
|
|
1310
1322
|
__metadata("design:type", Object)
|
|
1311
1323
|
], AbstractPopupMenuComponent.prototype, "enabled$", null);
|
|
1324
|
+
__decorate([
|
|
1325
|
+
StoreInValueModel(),
|
|
1326
|
+
__metadata("design:type", Object)
|
|
1327
|
+
], AbstractPopupMenuComponent.prototype, "enabled", null);
|
|
1312
1328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractPopupMenuComponent, decorators: [{
|
|
1313
1329
|
type: Component,
|
|
1314
1330
|
args: [{ selector: 'aup-abstract-popup-menu', template: '' }]
|
|
@@ -1322,10 +1338,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1322
1338
|
}], triggers: [{
|
|
1323
1339
|
type: ViewChildren,
|
|
1324
1340
|
args: [MatMenuTrigger]
|
|
1325
|
-
}], enabled: [{
|
|
1326
|
-
type: Input
|
|
1327
1341
|
}], enabled$: [{
|
|
1328
1342
|
type: Input
|
|
1343
|
+
}], enabled: [{
|
|
1344
|
+
type: Input
|
|
1329
1345
|
}] } });
|
|
1330
1346
|
|
|
1331
1347
|
class CommandContainer extends GarbageCollector {
|
|
@@ -1358,13 +1374,15 @@ class ToolBarComponent extends CommandContainer {
|
|
|
1358
1374
|
get orientation() {
|
|
1359
1375
|
return CommandContainer.Orientation.HORIZONTAL;
|
|
1360
1376
|
}
|
|
1361
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ToolBarComponent, deps: [{ token: CommandContainer }], target: i0.ɵɵFactoryTarget.Component });
|
|
1377
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ToolBarComponent, deps: [{ token: CommandContainer, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
1362
1378
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ToolBarComponent, selector: "aup-tool-bar", usesInheritance: true, ngImport: i0, template: '<div class="toolbar-content"><ng-content></ng-content></div>', isInline: true, styles: [":host{display:inline-block}.toolbar-content{display:inline-flex;flex-direction:row;align-items:center}.toolbar-content>aup-separator{align-self:stretch;margin:4px 0 4px 8px}.toolbar-content>aup-flex{flex:1}.toolbar-content>*+*{margin-left:8px}\n"], encapsulation: i0.ViewEncapsulation.None });
|
|
1363
1379
|
}
|
|
1364
1380
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ToolBarComponent, decorators: [{
|
|
1365
1381
|
type: Component,
|
|
1366
1382
|
args: [{ selector: 'aup-tool-bar', template: '<div class="toolbar-content"><ng-content></ng-content></div>', encapsulation: ViewEncapsulation.None, styles: [":host{display:inline-block}.toolbar-content{display:inline-flex;flex-direction:row;align-items:center}.toolbar-content>aup-separator{align-self:stretch;margin:4px 0 4px 8px}.toolbar-content>aup-flex{flex:1}.toolbar-content>*+*{margin-left:8px}\n"] }]
|
|
1367
|
-
}], ctorParameters: function () { return [{ type: CommandContainer
|
|
1383
|
+
}], ctorParameters: function () { return [{ type: CommandContainer, decorators: [{
|
|
1384
|
+
type: Optional
|
|
1385
|
+
}] }]; } });
|
|
1368
1386
|
|
|
1369
1387
|
/**
|
|
1370
1388
|
*
|
|
@@ -1675,7 +1693,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1675
1693
|
args: ['blur']
|
|
1676
1694
|
}] } });
|
|
1677
1695
|
|
|
1678
|
-
/* tslint:disable:no-input-rename */
|
|
1679
1696
|
const INPUT_TOKEN_HACK = new InjectionToken("INPUT_TOKEN_HACK");
|
|
1680
1697
|
class AbstractInputComponent extends DisposableComponent {
|
|
1681
1698
|
onValueEditedListeners = new EventListenerList();
|
|
@@ -1690,11 +1707,16 @@ class AbstractInputComponent extends DisposableComponent {
|
|
|
1690
1707
|
* gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).
|
|
1691
1708
|
*/
|
|
1692
1709
|
formValue$;
|
|
1693
|
-
|
|
1694
|
-
|
|
1710
|
+
#i18n$_accessor_storage = proxify((MutableValueModel));
|
|
1711
|
+
get i18n$() { return this.#i18n$_accessor_storage; }
|
|
1712
|
+
set i18n$(value) { this.#i18n$_accessor_storage = value; }
|
|
1713
|
+
#i18n_accessor_storage;
|
|
1714
|
+
get i18n() { return this.#i18n_accessor_storage; }
|
|
1715
|
+
set i18n(value) { this.#i18n_accessor_storage = value; }
|
|
1716
|
+
_label;
|
|
1695
1717
|
userFloatLabel = 'always'; // TODO: make this an injectable default
|
|
1696
|
-
|
|
1697
|
-
|
|
1718
|
+
_hint;
|
|
1719
|
+
_placeholder;
|
|
1698
1720
|
dense = false;
|
|
1699
1721
|
_enabled$ = this.registerDisposable(new DelegatingValueModel());
|
|
1700
1722
|
set enabled$(condition$) {
|
|
@@ -1761,6 +1783,9 @@ class AbstractInputComponent extends DisposableComponent {
|
|
|
1761
1783
|
isEnabled() {
|
|
1762
1784
|
return this.enabled$.value;
|
|
1763
1785
|
}
|
|
1786
|
+
get disabled() {
|
|
1787
|
+
return !this.isEnabled();
|
|
1788
|
+
}
|
|
1764
1789
|
hasErrors() {
|
|
1765
1790
|
return !this.errorList$.query().isEmpty();
|
|
1766
1791
|
}
|
|
@@ -1773,6 +1798,15 @@ class AbstractInputComponent extends DisposableComponent {
|
|
|
1773
1798
|
get focusContext() {
|
|
1774
1799
|
return this.formValue$.focusContext;
|
|
1775
1800
|
}
|
|
1801
|
+
get label() {
|
|
1802
|
+
return this._label ?? this.i18n?.label();
|
|
1803
|
+
}
|
|
1804
|
+
get hint() {
|
|
1805
|
+
return this._hint ?? this.hackyGetI18n("hint");
|
|
1806
|
+
}
|
|
1807
|
+
get placeholder() {
|
|
1808
|
+
return this._placeholder ?? this.hackyGetI18n("placeholder");
|
|
1809
|
+
}
|
|
1776
1810
|
get floatLabel() {
|
|
1777
1811
|
// return this.dense ? 'never' : this.userFloatLabel;
|
|
1778
1812
|
return this.userFloatLabel;
|
|
@@ -1787,24 +1821,45 @@ class AbstractInputComponent extends DisposableComponent {
|
|
|
1787
1821
|
onValueEdited(callback) {
|
|
1788
1822
|
return this.onValueEditedListeners.add(callback);
|
|
1789
1823
|
}
|
|
1824
|
+
hackyGetI18n(key) {
|
|
1825
|
+
// TODO: update I18n to make it possible to get an optional value with return the missing key message.
|
|
1826
|
+
const i18nFn = this.i18n ? this.i18n[key] : undefined;
|
|
1827
|
+
const i18nValue = i18nFn && i18nFn();
|
|
1828
|
+
return i18nValue?.startsWith("missing key") ? undefined : i18nValue;
|
|
1829
|
+
}
|
|
1790
1830
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractInputComponent, deps: [{ token: INPUT_TOKEN_HACK }], target: i0.ɵɵFactoryTarget.Component });
|
|
1791
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractInputComponent, selector: "ng-component", inputs: {
|
|
1831
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: AbstractInputComponent, selector: "ng-component", inputs: { i18n$: "i18n$", i18n: "i18n", _label: ["label", "_label"], userFloatLabel: ["floatLabel", "userFloatLabel"], _hint: ["hint", "_hint"], _placeholder: ["placeholder", "_placeholder"], dense: "dense", enabled$: "enabled$", focusCommand: ["command.focus", "focusCommand"], blurCommand: ["command.blur", "blurCommand"], enterCommand: ["command.enter", "enterCommand"], escapeCommand: ["command.escape", "escapeCommand"], clickCommand: ["command.click", "clickCommand"] }, outputs: { focus: "focus", blur: "blur", enterKey: "enterKey", escapeKey: "escapeKey" }, host: { listeners: { "click": "notifyClick()", "focusin": "notifyFocusIn()", "focusout": "notifyFocusOut()" }, properties: { "class.dense": "this.dense", "class": "this.baseClassName", "class.disabled": "this.disabled" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
1792
1832
|
}
|
|
1833
|
+
__decorate([
|
|
1834
|
+
Proxify(),
|
|
1835
|
+
__metadata("design:type", Object)
|
|
1836
|
+
], AbstractInputComponent.prototype, "i18n$", null);
|
|
1837
|
+
__decorate([
|
|
1838
|
+
StoreInValueModel(),
|
|
1839
|
+
__metadata("design:type", Object)
|
|
1840
|
+
], AbstractInputComponent.prototype, "i18n", null);
|
|
1793
1841
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractInputComponent, decorators: [{
|
|
1794
1842
|
type: Component,
|
|
1795
1843
|
args: [{ template: '' }]
|
|
1796
1844
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
1797
1845
|
type: Inject,
|
|
1798
1846
|
args: [INPUT_TOKEN_HACK]
|
|
1799
|
-
}] }]; }, propDecorators: {
|
|
1847
|
+
}] }]; }, propDecorators: { i18n$: [{
|
|
1848
|
+
type: Input
|
|
1849
|
+
}], i18n: [{
|
|
1800
1850
|
type: Input
|
|
1851
|
+
}], _label: [{
|
|
1852
|
+
type: Input,
|
|
1853
|
+
args: ["label"]
|
|
1801
1854
|
}], userFloatLabel: [{
|
|
1802
1855
|
type: Input,
|
|
1803
1856
|
args: ['floatLabel']
|
|
1804
|
-
}],
|
|
1805
|
-
type: Input
|
|
1806
|
-
|
|
1807
|
-
|
|
1857
|
+
}], _hint: [{
|
|
1858
|
+
type: Input,
|
|
1859
|
+
args: ['hint']
|
|
1860
|
+
}], _placeholder: [{
|
|
1861
|
+
type: Input,
|
|
1862
|
+
args: ['placeholder']
|
|
1808
1863
|
}], dense: [{
|
|
1809
1864
|
type: HostBinding,
|
|
1810
1865
|
args: ['class.dense']
|
|
@@ -1847,6 +1902,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
1847
1902
|
}], notifyFocusOut: [{
|
|
1848
1903
|
type: HostListener,
|
|
1849
1904
|
args: ['focusout']
|
|
1905
|
+
}], disabled: [{
|
|
1906
|
+
type: HostBinding,
|
|
1907
|
+
args: ["class.disabled"]
|
|
1850
1908
|
}] } });
|
|
1851
1909
|
|
|
1852
1910
|
class AbstractListInputComponent extends AbstractInputComponent {
|
|
@@ -2084,12 +2142,15 @@ class CheckboxInputComponent extends AbstractValueInputComponent {
|
|
|
2084
2142
|
constructor() {
|
|
2085
2143
|
super();
|
|
2086
2144
|
}
|
|
2145
|
+
select($event) {
|
|
2146
|
+
this.componentValue$.value = $event.checked;
|
|
2147
|
+
}
|
|
2087
2148
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CheckboxInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2088
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CheckboxInputComponent, selector: "aup-checkbox-input", inputs: { color: "color", labelPosition: "labelPosition" }, usesInheritance: true, ngImport: i0, template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [
|
|
2149
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: CheckboxInputComponent, selector: "aup-checkbox-input", inputs: { color: "color", labelPosition: "labelPosition" }, usesInheritance: true, ngImport: i0, template: "<!-- TODO: add focus binding -->\n<!-- NOTE: using [(ngModel)] affects how material renders the component and makes it harder to test so we're using [checked] and (change) -->\n<mat-checkbox\n [checked]=\"componentValue$.value\"\n (change)=\"select($event)\"\n [color]=\"color\"\n [labelPosition]=\"labelPosition\"\n [disabled]=\"!isEnabled()\"\n>{{ label }}\n</mat-checkbox>\n<ng-container *ngIf=\"!dense\">\n <mat-hint *ngIf=\"showHint\">{{ hint }}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{ firstError }}</mat-error>\n</ng-container>\n", styles: [":host{display:inline-flex;flex-direction:column;padding:10px 0 0}:host.dense{padding:4px 0 2px}mat-hint,mat-error{margin-top:4px;margin-left:24px;font-size:12px;font-weight:400;line-height:13.5px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i3$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }] });
|
|
2089
2150
|
}
|
|
2090
2151
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: CheckboxInputComponent, decorators: [{
|
|
2091
2152
|
type: Component,
|
|
2092
|
-
args: [{ selector: 'aup-checkbox-input', template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [
|
|
2153
|
+
args: [{ selector: 'aup-checkbox-input', template: "<!-- TODO: add focus binding -->\n<!-- NOTE: using [(ngModel)] affects how material renders the component and makes it harder to test so we're using [checked] and (change) -->\n<mat-checkbox\n [checked]=\"componentValue$.value\"\n (change)=\"select($event)\"\n [color]=\"color\"\n [labelPosition]=\"labelPosition\"\n [disabled]=\"!isEnabled()\"\n>{{ label }}\n</mat-checkbox>\n<ng-container *ngIf=\"!dense\">\n <mat-hint *ngIf=\"showHint\">{{ hint }}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{ firstError }}</mat-error>\n</ng-container>\n", styles: [":host{display:inline-flex;flex-direction:column;padding:10px 0 0}:host.dense{padding:4px 0 2px}mat-hint,mat-error{margin-top:4px;margin-left:24px;font-size:12px;font-weight:400;line-height:13.5px}\n"] }]
|
|
2093
2154
|
}], ctorParameters: function () { return []; }, propDecorators: { color: [{
|
|
2094
2155
|
type: Input
|
|
2095
2156
|
}], labelPosition: [{
|
|
@@ -2128,7 +2189,7 @@ class MultipleSelectInputComponent extends AbstractListInputComponent {
|
|
|
2128
2189
|
const self = this;
|
|
2129
2190
|
this.registerDisposable(new Binding(this.componentList$, this.ids$, {
|
|
2130
2191
|
toLeft(selectedItems, currentLeftValue) {
|
|
2131
|
-
const newValues = selectedItems.map(it => lookup.get(it)).filter(it =>
|
|
2192
|
+
const newValues = selectedItems.map(it => lookup.get(it)).filter(it => !!it);
|
|
2132
2193
|
// if our lookup didn't find anything then we return the previous values so we don't clobber selections when the options go empty
|
|
2133
2194
|
return newValues.length < 1 && selectedItems.length > 0 ? currentLeftValue : newValues;
|
|
2134
2195
|
},
|
|
@@ -2139,7 +2200,7 @@ class MultipleSelectInputComponent extends AbstractListInputComponent {
|
|
|
2139
2200
|
})).writeRight();
|
|
2140
2201
|
}
|
|
2141
2202
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: MultipleSelectInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2142
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: MultipleSelectInputComponent, selector: "aup-multiple-select-input", inputs: { options$: "options$", options: "options", optionLabel: "optionLabel", optionLabelFormat: "optionLabelFormat" }, queries: [{ propertyName: "optionTemplateRef", first: true, predicate: ["optionTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n multiple\n [ngModel]=\"componentList$.value\"\n (ngModelChange)=\"selectAll($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngFor=\"let option of options$.value; let i = index\" [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n<div class=\"width-strut\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <div>{{placeholder}}</div>\n <div class=\"item\" *ngFor=\"let item of options\">{{optionLabelFormat(item)}}</div>\n</div>\n", styles: [":host{display:inline-block}mat-form-field{width:100%}.width-strut{display:block;height:0;max-height:0;width:auto;visibility:hidden;overflow:hidden;padding-right:35px}.width-strut mat-label{font-size:75%}.width-strut>.item{font-size:16px;padding-left:30px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$
|
|
2203
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: MultipleSelectInputComponent, selector: "aup-multiple-select-input", inputs: { options$: "options$", options: "options", optionLabel: "optionLabel", optionLabelFormat: "optionLabelFormat" }, queries: [{ propertyName: "optionTemplateRef", first: true, predicate: ["optionTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n multiple\n [ngModel]=\"componentList$.value\"\n (ngModelChange)=\"selectAll($event)\"\n [disabled]=\"!enabled$.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngFor=\"let option of options$.value; let i = index\" [value]=\"option\">\n <ng-container *ngIf=\"!optionTemplateRef\">{{optionLabelFormat(option)}}</ng-container>\n <ng-container *ngIf=\"optionTemplateRef\"\n [ngTemplateOutlet]=\"optionTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: option, index: i }\"\n >\n </ng-container>\n </mat-option>\n </mat-select>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n<div class=\"width-strut\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <div>{{placeholder}}</div>\n <div class=\"item\" *ngFor=\"let item of options\">{{optionLabelFormat(item)}}</div>\n</div>\n", styles: [":host{display:inline-block}mat-form-field{width:100%}.width-strut{display:block;height:0;max-height:0;width:auto;visibility:hidden;overflow:hidden;padding-right:35px}.width-strut mat-label{font-size:75%}.width-strut>.item{font-size:16px;padding-left:30px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4$3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: FocusBindingDirective, selector: "[pectinFocusBinding]", inputs: ["pectinFocusBinding", "focusBindingTarget"] }] });
|
|
2143
2204
|
}
|
|
2144
2205
|
__decorate([
|
|
2145
2206
|
Proxify(),
|
|
@@ -2167,48 +2228,142 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
2167
2228
|
|
|
2168
2229
|
class NumberInputComponent extends AbstractValueInputComponent {
|
|
2169
2230
|
autocomplete;
|
|
2170
|
-
min =
|
|
2171
|
-
|
|
2172
|
-
|
|
2231
|
+
#min$_accessor_storage = proxify((ValueModel));
|
|
2232
|
+
get min$() { return this.#min$_accessor_storage; }
|
|
2233
|
+
set min$(value) { this.#min$_accessor_storage = value; }
|
|
2234
|
+
#min_accessor_storage = Number.MIN_SAFE_INTEGER;
|
|
2235
|
+
get min() { return this.#min_accessor_storage; }
|
|
2236
|
+
set min(value) { this.#min_accessor_storage = value; }
|
|
2237
|
+
#max$_accessor_storage = proxify((ValueModel));
|
|
2238
|
+
get max$() { return this.#max$_accessor_storage; }
|
|
2239
|
+
set max$(value) { this.#max$_accessor_storage = value; }
|
|
2240
|
+
#max_accessor_storage = Number.MAX_SAFE_INTEGER;
|
|
2241
|
+
get max() { return this.#max_accessor_storage; }
|
|
2242
|
+
set max(value) { this.#max_accessor_storage = value; }
|
|
2243
|
+
incrementCommand;
|
|
2244
|
+
decrementCommand;
|
|
2173
2245
|
constructor() {
|
|
2174
2246
|
super();
|
|
2247
|
+
const { chain } = Dsl.disposeWith(this);
|
|
2248
|
+
const normalisedValue$ = chain(this.value$).otherwise(0);
|
|
2249
|
+
this.incrementCommand = Command.create(() => {
|
|
2250
|
+
this.value$.value = normalisedValue$.value + 1;
|
|
2251
|
+
}).enableWhile(chain.numericValue(normalisedValue$).isLessThan(this.max$).and(this.enabled$));
|
|
2252
|
+
this.decrementCommand = Command.create(() => {
|
|
2253
|
+
this.value$.value = normalisedValue$.value - 1;
|
|
2254
|
+
}).enableWhile(chain.numericValue(normalisedValue$).isGreaterThan(this.min$).and(this.enabled$));
|
|
2175
2255
|
}
|
|
2176
2256
|
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
|
|
2257
|
+
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
2258
|
}
|
|
2259
|
+
__decorate([
|
|
2260
|
+
Proxify(),
|
|
2261
|
+
__metadata("design:type", ValueModel)
|
|
2262
|
+
], NumberInputComponent.prototype, "min$", null);
|
|
2263
|
+
__decorate([
|
|
2264
|
+
StoreInValueModel(),
|
|
2265
|
+
__metadata("design:type", Object)
|
|
2266
|
+
], NumberInputComponent.prototype, "min", null);
|
|
2267
|
+
__decorate([
|
|
2268
|
+
Proxify(),
|
|
2269
|
+
__metadata("design:type", ValueModel)
|
|
2270
|
+
], NumberInputComponent.prototype, "max$", null);
|
|
2271
|
+
__decorate([
|
|
2272
|
+
StoreInValueModel(),
|
|
2273
|
+
__metadata("design:type", Object)
|
|
2274
|
+
], NumberInputComponent.prototype, "max", null);
|
|
2179
2275
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: NumberInputComponent, decorators: [{
|
|
2180
2276
|
type: Component,
|
|
2181
|
-
args: [{ selector: 'aup-number-input', template: "<mat-form-field
|
|
2277
|
+
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
2278
|
}], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
|
|
2183
2279
|
type: Input
|
|
2280
|
+
}], min$: [{
|
|
2281
|
+
type: Input
|
|
2184
2282
|
}], min: [{
|
|
2185
2283
|
type: Input
|
|
2186
|
-
}], max
|
|
2284
|
+
}], max$: [{
|
|
2187
2285
|
type: Input
|
|
2188
|
-
}],
|
|
2286
|
+
}], max: [{
|
|
2189
2287
|
type: Input
|
|
2190
2288
|
}] } });
|
|
2191
2289
|
|
|
2192
2290
|
class PasswordInputComponent extends AbstractValueInputComponent {
|
|
2193
2291
|
autocomplete;
|
|
2292
|
+
#enableShowPassword$_accessor_storage = proxify((ValueModel));
|
|
2293
|
+
get enableShowPassword$() { return this.#enableShowPassword$_accessor_storage; }
|
|
2294
|
+
set enableShowPassword$(value) { this.#enableShowPassword$_accessor_storage = value; }
|
|
2295
|
+
#enableShowPassword_accessor_storage = false;
|
|
2296
|
+
get enableShowPassword() { return this.#enableShowPassword_accessor_storage; }
|
|
2297
|
+
set enableShowPassword(value) { this.#enableShowPassword_accessor_storage = value; }
|
|
2298
|
+
showPassword$ = new MutableValueModel(false);
|
|
2299
|
+
toggleShowPasswordCommand;
|
|
2194
2300
|
constructor() {
|
|
2195
2301
|
super();
|
|
2302
|
+
const { chain, valueOf } = Dsl.disposeWith(this);
|
|
2303
|
+
const face$ = chain(this.showPassword$).map(show => {
|
|
2304
|
+
return {
|
|
2305
|
+
icon: () => show ? "mat:visibility_off" : "mat:visibility"
|
|
2306
|
+
};
|
|
2307
|
+
});
|
|
2308
|
+
this.toggleShowPasswordCommand = Command.create(() => {
|
|
2309
|
+
this.showPassword$.value = !this.showPassword$.value;
|
|
2310
|
+
})
|
|
2311
|
+
.withFace(face$)
|
|
2312
|
+
.enableWhile(chain.stringValue(this.componentValue$).isNotBlank());
|
|
2313
|
+
}
|
|
2314
|
+
get fieldType() {
|
|
2315
|
+
return this.showPassword$.value ? "text" : "password";
|
|
2196
2316
|
}
|
|
2197
2317
|
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=\"
|
|
2318
|
+
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
2319
|
}
|
|
2320
|
+
__decorate([
|
|
2321
|
+
Proxify(),
|
|
2322
|
+
__metadata("design:type", Object)
|
|
2323
|
+
], PasswordInputComponent.prototype, "enableShowPassword$", null);
|
|
2324
|
+
__decorate([
|
|
2325
|
+
StoreInValueModel(),
|
|
2326
|
+
__metadata("design:type", Object)
|
|
2327
|
+
], PasswordInputComponent.prototype, "enableShowPassword", null);
|
|
2200
2328
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PasswordInputComponent, decorators: [{
|
|
2201
2329
|
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=\"
|
|
2330
|
+
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" }]
|
|
2331
|
+
}], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
|
|
2332
|
+
type: Input
|
|
2333
|
+
}], enableShowPassword$: [{
|
|
2334
|
+
type: Input
|
|
2335
|
+
}], enableShowPassword: [{
|
|
2336
|
+
type: Input
|
|
2337
|
+
}] } });
|
|
2338
|
+
|
|
2339
|
+
class SearchInputComponent extends AbstractValueInputComponent {
|
|
2340
|
+
autocomplete;
|
|
2341
|
+
clearCommand;
|
|
2342
|
+
constructor() {
|
|
2343
|
+
super();
|
|
2344
|
+
this.dense = true;
|
|
2345
|
+
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
2346
|
+
this.clearCommand = Command.create(() => {
|
|
2347
|
+
this.componentValue$.value = "";
|
|
2348
|
+
});
|
|
2349
|
+
this.clearCommand.disableWhile(chain.stringValue(this.componentValue$).isBlank());
|
|
2350
|
+
}
|
|
2351
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SearchInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2352
|
+
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"] }] });
|
|
2353
|
+
}
|
|
2354
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SearchInputComponent, decorators: [{
|
|
2355
|
+
type: Component,
|
|
2356
|
+
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
2357
|
}], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
|
|
2204
2358
|
type: Input
|
|
2205
2359
|
}] } });
|
|
2206
2360
|
|
|
2207
2361
|
/**
|
|
2208
2362
|
* Using templates:
|
|
2209
|
-
* <aup-select-input [
|
|
2363
|
+
* <aup-select-input [value$]="myModel" [options]="myOptions">
|
|
2210
2364
|
* <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
|
|
2211
|
-
* <ng-template #
|
|
2365
|
+
* <ng-template #selectedOptionTemplate let-option>{{option.thePropertyYouWant}} note, not used for nils (the placeholder is used)</ng-template>
|
|
2366
|
+
* <ng-template #nilOptionTemplate>Uses the placeholder by default but you can customise it</ng-template>
|
|
2212
2367
|
* </aup-select_input>
|
|
2213
2368
|
*/
|
|
2214
2369
|
class SelectInputComponent extends AbstractValueInputComponent {
|
|
@@ -2233,7 +2388,7 @@ class SelectInputComponent extends AbstractValueInputComponent {
|
|
|
2233
2388
|
super();
|
|
2234
2389
|
const { chain } = Dsl.disposeWith(this);
|
|
2235
2390
|
this.cookedOptions$ = chain(this.options$)
|
|
2236
|
-
.
|
|
2391
|
+
.mapAll(options => {
|
|
2237
2392
|
return options.length < 1 && !isNil(this.componentValue$.value) ? [this.componentValue$.value] : options;
|
|
2238
2393
|
}, {
|
|
2239
2394
|
dependsOn: this.componentValue$
|
|
@@ -2272,21 +2427,21 @@ class SelectInputComponent extends AbstractValueInputComponent {
|
|
|
2272
2427
|
id: this.delegatedIdentityOf(value)
|
|
2273
2428
|
});
|
|
2274
2429
|
let lastIdSnapshot = snapshotValueAndId(this.componentValue$.value);
|
|
2275
|
-
console.log(lastIdSnapshot)
|
|
2430
|
+
// console.log(lastIdSnapshot)
|
|
2276
2431
|
before(this.options$).changes(() => {
|
|
2277
2432
|
lastIdSnapshot = snapshotValueAndId(this.componentValue$.value);
|
|
2278
|
-
console.log(lastIdSnapshot)
|
|
2433
|
+
// console.log(lastIdSnapshot)
|
|
2279
2434
|
});
|
|
2280
2435
|
when(this.options$).changes((is, was) => {
|
|
2281
2436
|
const newIdSnapshot = snapshotValueAndId(lastIdSnapshot.value);
|
|
2282
|
-
console.log(lastIdSnapshot, newIdSnapshot)
|
|
2437
|
+
// console.log(lastIdSnapshot, newIdSnapshot)
|
|
2283
2438
|
if (newIdSnapshot !== lastIdSnapshot.id) {
|
|
2284
2439
|
this.id$.value = this.delegatedIdentityOf(this.componentValue$.value);
|
|
2285
2440
|
}
|
|
2286
2441
|
});
|
|
2287
2442
|
}
|
|
2288
2443
|
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$
|
|
2444
|
+
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
2445
|
}
|
|
2291
2446
|
__decorate([
|
|
2292
2447
|
Proxify(),
|
|
@@ -2298,7 +2453,7 @@ __decorate([
|
|
|
2298
2453
|
], SelectInputComponent.prototype, "options", null);
|
|
2299
2454
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectInputComponent, decorators: [{
|
|
2300
2455
|
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"] }]
|
|
2456
|
+
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
2457
|
}], ctorParameters: function () { return []; }, propDecorators: { options$: [{
|
|
2303
2458
|
type: Input
|
|
2304
2459
|
}], options: [{
|
|
@@ -2329,17 +2484,24 @@ class StringInputComponent extends AbstractValueInputComponent {
|
|
|
2329
2484
|
get enableClear() { return this.#enableClear_accessor_storage; }
|
|
2330
2485
|
set enableClear(value) { this.#enableClear_accessor_storage = value; }
|
|
2331
2486
|
iconPrefix;
|
|
2487
|
+
#suffixCommand_accessor_storage = proxify(Command);
|
|
2488
|
+
get suffixCommand() { return this.#suffixCommand_accessor_storage; }
|
|
2489
|
+
set suffixCommand(value) { this.#suffixCommand_accessor_storage = value; }
|
|
2332
2490
|
clearCommand;
|
|
2333
2491
|
constructor() {
|
|
2334
2492
|
super();
|
|
2335
2493
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
2336
2494
|
this.clearCommand = Command.create(() => {
|
|
2337
2495
|
this.componentValue$.value = "";
|
|
2338
|
-
})
|
|
2339
|
-
|
|
2496
|
+
})
|
|
2497
|
+
.withFace({ icon: () => "mat:clear" })
|
|
2498
|
+
.enableWhile(chain.stringValue(this.componentValue$).isNotBlank());
|
|
2499
|
+
}
|
|
2500
|
+
get hasSuffixCommand() {
|
|
2501
|
+
return Proxify.hasTarget(this.suffixCommand);
|
|
2340
2502
|
}
|
|
2341
2503
|
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 <
|
|
2504
|
+
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
2505
|
}
|
|
2344
2506
|
__decorate([
|
|
2345
2507
|
Proxify(),
|
|
@@ -2349,9 +2511,13 @@ __decorate([
|
|
|
2349
2511
|
StoreInValueModel(),
|
|
2350
2512
|
__metadata("design:type", Object)
|
|
2351
2513
|
], StringInputComponent.prototype, "enableClear", null);
|
|
2514
|
+
__decorate([
|
|
2515
|
+
Proxify(),
|
|
2516
|
+
__metadata("design:type", Command)
|
|
2517
|
+
], StringInputComponent.prototype, "suffixCommand", null);
|
|
2352
2518
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: StringInputComponent, decorators: [{
|
|
2353
2519
|
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 <
|
|
2520
|
+
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
2521
|
}], ctorParameters: function () { return []; }, propDecorators: { autocomplete: [{
|
|
2356
2522
|
type: Input
|
|
2357
2523
|
}], enableClear$: [{
|
|
@@ -2360,6 +2526,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
2360
2526
|
type: Input
|
|
2361
2527
|
}], iconPrefix: [{
|
|
2362
2528
|
type: Input
|
|
2529
|
+
}], suffixCommand: [{
|
|
2530
|
+
type: Input
|
|
2363
2531
|
}] } });
|
|
2364
2532
|
|
|
2365
2533
|
class TextInputComponent extends AbstractValueInputComponent {
|
|
@@ -2547,7 +2715,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
2547
2715
|
* </aup-switch-case>
|
|
2548
2716
|
*/
|
|
2549
2717
|
class SwitchCaseComponent extends DisposableComponent {
|
|
2550
|
-
cdr;
|
|
2551
2718
|
#switch$_accessor_storage = proxify((ValueModel));
|
|
2552
2719
|
get switch$() { return this.#switch$_accessor_storage; }
|
|
2553
2720
|
set switch$(value) { this.#switch$_accessor_storage = value; }
|
|
@@ -2556,9 +2723,8 @@ class SwitchCaseComponent extends DisposableComponent {
|
|
|
2556
2723
|
set switch(value) { this.#switch_accessor_storage = value; }
|
|
2557
2724
|
switchCaseOptions;
|
|
2558
2725
|
selectedIndex = 0;
|
|
2559
|
-
constructor(
|
|
2726
|
+
constructor() {
|
|
2560
2727
|
super();
|
|
2561
|
-
this.cdr = cdr;
|
|
2562
2728
|
}
|
|
2563
2729
|
ngAfterContentInit() {
|
|
2564
2730
|
const subscription = this.switchCaseOptions.changes.subscribe(change => this.updateSelection());
|
|
@@ -2595,8 +2761,8 @@ class SwitchCaseComponent extends DisposableComponent {
|
|
|
2595
2761
|
this.selectedIndex = -1;
|
|
2596
2762
|
}
|
|
2597
2763
|
}
|
|
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$
|
|
2764
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SwitchCaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2765
|
+
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
2766
|
}
|
|
2601
2767
|
__decorate([
|
|
2602
2768
|
Proxify(),
|
|
@@ -2609,7 +2775,7 @@ __decorate([
|
|
|
2609
2775
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SwitchCaseComponent, decorators: [{
|
|
2610
2776
|
type: Component,
|
|
2611
2777
|
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 [
|
|
2778
|
+
}], ctorParameters: function () { return []; }, propDecorators: { switch$: [{
|
|
2613
2779
|
type: Input
|
|
2614
2780
|
}], switch: [{
|
|
2615
2781
|
type: Input
|
|
@@ -2619,6 +2785,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
2619
2785
|
}] } });
|
|
2620
2786
|
|
|
2621
2787
|
const HEADER_CELL_RENDERER_PORTAL = Symbol('aup-cell-header-renderer-component-ref');
|
|
2788
|
+
const FOOTER_CELL_RENDERER_PORTAL = Symbol('aup-cell-footer-renderer-component-ref');
|
|
2622
2789
|
const CELL_RENDERER_PORTAL = Symbol('aup-cell-renderer-component-ref');
|
|
2623
2790
|
const CELL_EDITOR_PORTAL = Symbol('aup-cell-editor-component-ref');
|
|
2624
2791
|
const PORTAL_RENDERER_COMPONENT = Symbol('aup-cell-renderer-portal-component');
|
|
@@ -2716,6 +2883,23 @@ class TemplateCellRendererPortalRef extends CellRendererPortalRef {
|
|
|
2716
2883
|
return new TemplatePortal(this.templateRef, this.viewContainer, { ...(data), $implicit: data.row });
|
|
2717
2884
|
}
|
|
2718
2885
|
}
|
|
2886
|
+
class CellFooterPortalRef extends CellPortalRef {
|
|
2887
|
+
componentType;
|
|
2888
|
+
initialiseHeader;
|
|
2889
|
+
constructor(componentType, initialiseHeader) {
|
|
2890
|
+
super();
|
|
2891
|
+
this.componentType = componentType;
|
|
2892
|
+
this.initialiseHeader = initialiseHeader;
|
|
2893
|
+
}
|
|
2894
|
+
initialiseHost(host, columnModel) {
|
|
2895
|
+
assert$1.isTruthy(host);
|
|
2896
|
+
host[HEADER_CELL_RENDERER_PORTAL] = new ComponentPortal(this.componentType);
|
|
2897
|
+
}
|
|
2898
|
+
// @Trace()
|
|
2899
|
+
onPortalAttached(host, portalComponent) {
|
|
2900
|
+
this.initialiseHeader(portalComponent, host.column);
|
|
2901
|
+
}
|
|
2902
|
+
}
|
|
2719
2903
|
|
|
2720
2904
|
class ColumnTextSearchFormatter {
|
|
2721
2905
|
}
|
|
@@ -2806,6 +2990,7 @@ class ColumnTextSearchWrapper extends ColumnTextSearchFormatter.Delegate {
|
|
|
2806
2990
|
}
|
|
2807
2991
|
class ColumnModel extends GarbageCollector {
|
|
2808
2992
|
columnId;
|
|
2993
|
+
order;
|
|
2809
2994
|
textPropertiesProvider;
|
|
2810
2995
|
_columnTextProperties;
|
|
2811
2996
|
_columnHeaderPortalRef;
|
|
@@ -2819,9 +3004,10 @@ class ColumnModel extends GarbageCollector {
|
|
|
2819
3004
|
dasherisedColumnId;
|
|
2820
3005
|
textSearchDelegate = new ColumnTextSearchWrapper();
|
|
2821
3006
|
visible$;
|
|
2822
|
-
constructor(columnId, textPropertiesProvider) {
|
|
3007
|
+
constructor(columnId, order, textPropertiesProvider) {
|
|
2823
3008
|
super();
|
|
2824
3009
|
this.columnId = columnId;
|
|
3010
|
+
this.order = order;
|
|
2825
3011
|
this.textPropertiesProvider = textPropertiesProvider;
|
|
2826
3012
|
const { valueOf } = Dsl.disposeWith(this);
|
|
2827
3013
|
this.installHeaderRenderer();
|
|
@@ -2866,6 +3052,14 @@ class ColumnModel extends GarbageCollector {
|
|
|
2866
3052
|
this._columnTextProperties = columnTextProperties;
|
|
2867
3053
|
return this;
|
|
2868
3054
|
}
|
|
3055
|
+
positionAfter(column) {
|
|
3056
|
+
this.order.position(this, { after: column });
|
|
3057
|
+
return this;
|
|
3058
|
+
}
|
|
3059
|
+
positionBefore(column) {
|
|
3060
|
+
this.order.position(this, { before: column });
|
|
3061
|
+
return this;
|
|
3062
|
+
}
|
|
2869
3063
|
getSearchTextFor(row) {
|
|
2870
3064
|
return this.textSearchDelegate.format(row);
|
|
2871
3065
|
}
|
|
@@ -2967,8 +3161,8 @@ __decorate([
|
|
|
2967
3161
|
|
|
2968
3162
|
class CustomTemplateColumnModel extends ColumnModel {
|
|
2969
3163
|
config = new TemplateCellRendererPortalRef();
|
|
2970
|
-
constructor(columnId, defaults) {
|
|
2971
|
-
super(columnId, defaults);
|
|
3164
|
+
constructor(columnId, order, defaults) {
|
|
3165
|
+
super(columnId, order, defaults);
|
|
2972
3166
|
this.configureCellRenderer(this.config);
|
|
2973
3167
|
}
|
|
2974
3168
|
setTemplate(templateRef, viewContainer, fillCell, padChild) {
|
|
@@ -3046,12 +3240,17 @@ class AbstractTableComponent extends DisposableComponent {
|
|
|
3046
3240
|
#showHeader_accessor_storage = true;
|
|
3047
3241
|
get showHeader() { return this.#showHeader_accessor_storage; }
|
|
3048
3242
|
set showHeader(value) { this.#showHeader_accessor_storage = value; }
|
|
3243
|
+
#enableScrolling$_accessor_storage = proxify((ValueModel));
|
|
3049
3244
|
/**
|
|
3050
3245
|
* Set to true to enable scrolling. Once enabled the table will have 0 implicit height. You will either
|
|
3051
3246
|
* need to set it explicitly e.g. height: 400px; or by using flex or grid layout to make it fill it's
|
|
3052
3247
|
* containment area.
|
|
3053
3248
|
*/
|
|
3054
|
-
enableScrolling
|
|
3249
|
+
get enableScrolling$() { return this.#enableScrolling$_accessor_storage; }
|
|
3250
|
+
set enableScrolling$(value) { this.#enableScrolling$_accessor_storage = value; }
|
|
3251
|
+
#enableScrolling_accessor_storage = false;
|
|
3252
|
+
get enableScrolling() { return this.#enableScrolling_accessor_storage; }
|
|
3253
|
+
set enableScrolling(value) { this.#enableScrolling_accessor_storage = value; }
|
|
3055
3254
|
columns;
|
|
3056
3255
|
columnIds;
|
|
3057
3256
|
columnsById;
|
|
@@ -3070,7 +3269,6 @@ class AbstractTableComponent extends DisposableComponent {
|
|
|
3070
3269
|
super();
|
|
3071
3270
|
this.injector = injector;
|
|
3072
3271
|
const { chain, when } = Dsl.disposeWith(this);
|
|
3073
|
-
this._visibleRows$.setDelegate(this._dataSource$);
|
|
3074
3272
|
when(chain(this._dataSource$).first()).becomesTruthy(it => {
|
|
3075
3273
|
if (it === this.identityOf(it)) {
|
|
3076
3274
|
console.warn("Table model identity function is using reference equality. This can cause lots of table re-rendering", {
|
|
@@ -3089,7 +3287,7 @@ class AbstractTableComponent extends DisposableComponent {
|
|
|
3089
3287
|
if (!model) {
|
|
3090
3288
|
lang$1.illegalState("aup-table tableModel is nil");
|
|
3091
3289
|
}
|
|
3092
|
-
this.columnsById = chain(model.columns).indexBy('columnId');
|
|
3290
|
+
this.columnsById = chain(model.columns$).indexBy('columnId');
|
|
3093
3291
|
this._dataSource$.setDelegate(model.dataSource$);
|
|
3094
3292
|
model.initialise(this.injector, (row) => this.identityOf(row));
|
|
3095
3293
|
}
|
|
@@ -3106,7 +3304,7 @@ class AbstractTableComponent extends DisposableComponent {
|
|
|
3106
3304
|
}
|
|
3107
3305
|
}
|
|
3108
3306
|
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 });
|
|
3307
|
+
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
3308
|
}
|
|
3111
3309
|
__decorate([
|
|
3112
3310
|
Proxify(),
|
|
@@ -3116,6 +3314,14 @@ __decorate([
|
|
|
3116
3314
|
StoreInValueModel(),
|
|
3117
3315
|
__metadata("design:type", Object)
|
|
3118
3316
|
], AbstractTableComponent.prototype, "showHeader", null);
|
|
3317
|
+
__decorate([
|
|
3318
|
+
Proxify(),
|
|
3319
|
+
__metadata("design:type", ValueModel)
|
|
3320
|
+
], AbstractTableComponent.prototype, "enableScrolling$", null);
|
|
3321
|
+
__decorate([
|
|
3322
|
+
StoreInValueModel(),
|
|
3323
|
+
__metadata("design:type", Boolean)
|
|
3324
|
+
], AbstractTableComponent.prototype, "enableScrolling", null);
|
|
3119
3325
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractTableComponent, decorators: [{
|
|
3120
3326
|
type: Component,
|
|
3121
3327
|
args: [{
|
|
@@ -3126,6 +3332,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
3126
3332
|
type: Input
|
|
3127
3333
|
}], showHeader: [{
|
|
3128
3334
|
type: Input
|
|
3335
|
+
}], enableScrolling$: [{
|
|
3336
|
+
type: Input
|
|
3129
3337
|
}], enableScrolling: [{
|
|
3130
3338
|
type: Input
|
|
3131
3339
|
}], baseCssClass: [{
|
|
@@ -3186,6 +3394,8 @@ class EditSession extends GarbageCollector {
|
|
|
3186
3394
|
// console.warn()
|
|
3187
3395
|
// }
|
|
3188
3396
|
this._liveRowValue$.value = produce(this._liveRowValue$.value, draft => {
|
|
3397
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
3398
|
+
// @ts-ignore
|
|
3189
3399
|
this.form.writeDirtyStateTo(draft);
|
|
3190
3400
|
});
|
|
3191
3401
|
});
|
|
@@ -3288,11 +3498,11 @@ class DefaultCellRendererComponent {
|
|
|
3288
3498
|
return this._value;
|
|
3289
3499
|
}
|
|
3290
3500
|
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" }] });
|
|
3501
|
+
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
3502
|
}
|
|
3293
3503
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DefaultCellRendererComponent, decorators: [{
|
|
3294
3504
|
type: Component,
|
|
3295
|
-
args: [{ selector: "aup-default-cell-renderer", template: "<span [innerHTML]=\"value| aupHighlight\"></span>\n" }]
|
|
3505
|
+
args: [{ selector: "aup-default-cell-renderer", template: "<span [innerHTML]=\"value?.toString()| aupHighlight\"></span>\n" }]
|
|
3296
3506
|
}], propDecorators: { value: [{
|
|
3297
3507
|
type: Input
|
|
3298
3508
|
}] } });
|
|
@@ -3308,7 +3518,8 @@ class SelectionHeaderCellComponent extends DisposableComponent {
|
|
|
3308
3518
|
super();
|
|
3309
3519
|
this.selectCommand = Command.create(() => {
|
|
3310
3520
|
this.selectionModel.toggleAllCommand.execute();
|
|
3311
|
-
})
|
|
3521
|
+
}).visibleWhile(this.selectionModel.toggleAllCommand.visible$)
|
|
3522
|
+
.enableWhile(this.selectionModel.toggleAllCommand.enabled$);
|
|
3312
3523
|
}
|
|
3313
3524
|
isSelected() {
|
|
3314
3525
|
return this.ifMultiSelectionModel(m => m.allSelected$.value, false);
|
|
@@ -3336,7 +3547,7 @@ class SelectionHeaderCellComponent extends DisposableComponent {
|
|
|
3336
3547
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectionHeaderCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3337
3548
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SelectionHeaderCellComponent, selector: "aup-selection-header-cell", providers: [
|
|
3338
3549
|
{ 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:
|
|
3550
|
+
], 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
3551
|
}
|
|
3341
3552
|
__decorate([
|
|
3342
3553
|
Proxify(),
|
|
@@ -3369,7 +3580,7 @@ class SelectionCellComponent extends DisposableComponent {
|
|
|
3369
3580
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectionCellComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3370
3581
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SelectionCellComponent, selector: "aup-selection-cell", inputs: { row: "row" }, providers: [
|
|
3371
3582
|
{ 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:
|
|
3583
|
+
], 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
3584
|
}
|
|
3374
3585
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectionCellComponent, decorators: [{
|
|
3375
3586
|
type: Component,
|
|
@@ -3430,25 +3641,14 @@ class Bounds extends Dimension {
|
|
|
3430
3641
|
})(Bounds || (Bounds = {}));
|
|
3431
3642
|
|
|
3432
3643
|
class ResizeAwareComponent extends DisposableComponent {
|
|
3433
|
-
elementRef;
|
|
3434
|
-
ngZone;
|
|
3435
|
-
|
|
3436
|
-
constructor(elementRef, ngZone) {
|
|
3437
|
-
super();
|
|
3438
|
-
this.elementRef = elementRef;
|
|
3439
|
-
this.ngZone = ngZone;
|
|
3440
|
-
}
|
|
3644
|
+
elementRef = this.inject(ElementRef);
|
|
3645
|
+
ngZone = this.inject(NgZone);
|
|
3646
|
+
boundsTracker = new ResizeAwareComponent.ResizeTracker(this.elementRef, this.ngZone);
|
|
3441
3647
|
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());
|
|
3648
|
+
this.boundsTracker.notifyViewReady();
|
|
3449
3649
|
}
|
|
3450
3650
|
get bounds$() {
|
|
3451
|
-
return this.
|
|
3651
|
+
return this.boundsTracker.bounds$;
|
|
3452
3652
|
}
|
|
3453
3653
|
get nativeElement() {
|
|
3454
3654
|
return this.elementRef.nativeElement;
|
|
@@ -3458,57 +3658,160 @@ class ResizeAwareComponent extends DisposableComponent {
|
|
|
3458
3658
|
return this.bounds.relativePositionOf(point);
|
|
3459
3659
|
}
|
|
3460
3660
|
get bounds() {
|
|
3461
|
-
return this.
|
|
3661
|
+
return this.bounds$.value;
|
|
3462
3662
|
}
|
|
3463
|
-
|
|
3464
|
-
this._bounds$.value = Bounds.ofElement(this.nativeElement);
|
|
3465
|
-
}
|
|
3466
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeAwareComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
|
|
3663
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeAwareComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
3467
3664
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: ResizeAwareComponent, usesInheritance: true, ngImport: i0 });
|
|
3468
3665
|
}
|
|
3469
3666
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeAwareComponent, decorators: [{
|
|
3470
3667
|
type: Directive
|
|
3471
|
-
}]
|
|
3668
|
+
}] });
|
|
3669
|
+
(function (ResizeAwareComponent) {
|
|
3670
|
+
class ResizeTracker extends GarbageCollector {
|
|
3671
|
+
elementRef;
|
|
3672
|
+
ngZone;
|
|
3673
|
+
_bounds$ = new MutableValueModel(new Bounds(0, 0, 0, 0));
|
|
3674
|
+
width$;
|
|
3675
|
+
height$;
|
|
3676
|
+
top$;
|
|
3677
|
+
left$;
|
|
3678
|
+
bottom$;
|
|
3679
|
+
right$;
|
|
3680
|
+
constructor(elementRef, ngZone) {
|
|
3681
|
+
super();
|
|
3682
|
+
this.elementRef = elementRef;
|
|
3683
|
+
this.ngZone = ngZone;
|
|
3684
|
+
const { chain } = Dsl.disposeWith(this);
|
|
3685
|
+
this.width$ = chain(this.bounds$).pluck("width");
|
|
3686
|
+
this.height$ = chain(this.bounds$).pluck("height");
|
|
3687
|
+
this.top$ = chain(this.bounds$).pluck("top");
|
|
3688
|
+
this.left$ = chain(this.bounds$).pluck("left");
|
|
3689
|
+
this.bottom$ = chain.numericValue(this.top$).add(this.height$);
|
|
3690
|
+
this.right$ = chain.numericValue(this.left$).add(this.width$);
|
|
3691
|
+
}
|
|
3692
|
+
notifyViewReady() {
|
|
3693
|
+
const element = this.elementRef.nativeElement;
|
|
3694
|
+
const ro = new ResizeObserver((entries, observer) => {
|
|
3695
|
+
this.ngZone.run(() => this._updateBounds());
|
|
3696
|
+
});
|
|
3697
|
+
ro.observe(element);
|
|
3698
|
+
this.onDispose(() => ro.disconnect());
|
|
3699
|
+
setTimeout(() => this._updateBounds());
|
|
3700
|
+
}
|
|
3701
|
+
get bounds$() {
|
|
3702
|
+
return this._bounds$.readonly$;
|
|
3703
|
+
}
|
|
3704
|
+
get nativeElement() {
|
|
3705
|
+
return this.elementRef.nativeElement;
|
|
3706
|
+
}
|
|
3707
|
+
// TODO: Make this handle body scroll
|
|
3708
|
+
relativePositionOf(point) {
|
|
3709
|
+
return this.bounds.relativePositionOf(point);
|
|
3710
|
+
}
|
|
3711
|
+
get bounds() {
|
|
3712
|
+
return this._bounds$.value;
|
|
3713
|
+
}
|
|
3714
|
+
_updateBounds() {
|
|
3715
|
+
this._bounds$.value = Bounds.ofElement(this.nativeElement);
|
|
3716
|
+
}
|
|
3717
|
+
}
|
|
3718
|
+
ResizeAwareComponent.ResizeTracker = ResizeTracker;
|
|
3719
|
+
})(ResizeAwareComponent || (ResizeAwareComponent = {}));
|
|
3472
3720
|
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3721
|
+
var ColumnOrderManager;
|
|
3722
|
+
(function (ColumnOrderManager) {
|
|
3723
|
+
function processPosition(position, callback) {
|
|
3724
|
+
if (position) {
|
|
3725
|
+
const keys = Object.keys(position);
|
|
3726
|
+
if (keys.includes("before")) {
|
|
3727
|
+
return position["before"] ? callback.before(position["before"]) : callback.first();
|
|
3728
|
+
}
|
|
3729
|
+
else {
|
|
3730
|
+
return position["after"] ? callback.after(position["after"]) : callback.last();
|
|
3731
|
+
}
|
|
3732
|
+
}
|
|
3733
|
+
else {
|
|
3734
|
+
return callback.last();
|
|
3735
|
+
}
|
|
3736
|
+
}
|
|
3737
|
+
ColumnOrderManager.processPosition = processPosition;
|
|
3738
|
+
})(ColumnOrderManager || (ColumnOrderManager = {}));
|
|
3739
|
+
|
|
3740
|
+
class ColumnRef {
|
|
3741
|
+
column;
|
|
3742
|
+
position;
|
|
3743
|
+
constructor(column, position) {
|
|
3744
|
+
this.column = column;
|
|
3745
|
+
this.position = position;
|
|
3746
|
+
}
|
|
3747
|
+
}
|
|
3748
|
+
class ColumnManager extends GarbageCollector {
|
|
3749
|
+
_columnRefs$ = new MutableListModel();
|
|
3750
|
+
orderedColumnRefs$;
|
|
3751
|
+
_columnsById$;
|
|
3752
|
+
allColumns$;
|
|
3753
|
+
columnVisibilities$ = new WatchList();
|
|
3754
|
+
visibleColumns$;
|
|
3476
3755
|
constructor() {
|
|
3477
3756
|
super();
|
|
3478
3757
|
const { chain } = Dsl.disposeWith(this);
|
|
3479
|
-
this.
|
|
3758
|
+
this.orderedColumnRefs$ = chain(this._columnRefs$).orderBy("position", "asc");
|
|
3759
|
+
this.allColumns$ = this.orderedColumnRefs$.pluck("column");
|
|
3760
|
+
this._columnsById$ = chain(this.allColumns$).indexBy('columnId');
|
|
3761
|
+
this.visibleColumns$ = chain(this.allColumns$).select(it => it.visible$.value, {
|
|
3762
|
+
dependsOn: this.columnVisibilities$
|
|
3763
|
+
});
|
|
3480
3764
|
}
|
|
3481
|
-
|
|
3482
|
-
|
|
3765
|
+
position(column, newPosition) {
|
|
3766
|
+
const target = this._columnRefs$.query().findMatching(it => it.column === column);
|
|
3767
|
+
const position = this.computePosition(newPosition);
|
|
3768
|
+
this._columnRefs$.replace(target, { with: new ColumnRef(target.column, position) });
|
|
3483
3769
|
}
|
|
3484
3770
|
getColumn(id) {
|
|
3485
|
-
return this.
|
|
3771
|
+
return this._columnsById$.get(id);
|
|
3486
3772
|
}
|
|
3487
3773
|
hasColumn(id) {
|
|
3488
|
-
return !!this.
|
|
3774
|
+
return !!this._columnsById$.get(id);
|
|
3489
3775
|
}
|
|
3490
3776
|
hasMatchingColumn(row, regex) {
|
|
3491
3777
|
// only search the visible columns
|
|
3492
|
-
return !!this.value.find(c => regex.test(c.getSearchTextFor(row)));
|
|
3778
|
+
return !!this.visibleColumns$.value.find(c => regex.test(c.getSearchTextFor(row)));
|
|
3493
3779
|
}
|
|
3494
|
-
addColumn(column,
|
|
3780
|
+
addColumn(column, position) {
|
|
3495
3781
|
if (this.hasColumn(column.columnId)) {
|
|
3496
3782
|
lang.illegalState(`Column with id=${column.columnId} already exists`);
|
|
3497
3783
|
}
|
|
3498
3784
|
this.registerDisposable(column);
|
|
3499
|
-
this.
|
|
3500
|
-
|
|
3501
|
-
|
|
3502
|
-
|
|
3503
|
-
|
|
3504
|
-
|
|
3785
|
+
this._columnRefs$.push(new ColumnRef(column, this.computePosition(position)));
|
|
3786
|
+
this.columnVisibilities$.add(column.visible$);
|
|
3787
|
+
return column;
|
|
3788
|
+
}
|
|
3789
|
+
computePosition(position) {
|
|
3790
|
+
const q = this.orderedColumnRefs$.query();
|
|
3791
|
+
return ColumnOrderManager.processPosition(position, {
|
|
3792
|
+
before(col) {
|
|
3793
|
+
const index = q.findIndex(ref => ref.column === col);
|
|
3794
|
+
const beforeCol = q.value[index];
|
|
3795
|
+
const afterCol = index - 1 >= 0 ? q.value[index - 1] : undefined;
|
|
3796
|
+
return generateKeyBetween(afterCol?.position, beforeCol.position);
|
|
3797
|
+
},
|
|
3798
|
+
after(col) {
|
|
3799
|
+
const index = q.findIndex(ref => ref.column === col);
|
|
3800
|
+
const afterCol = q.value[index];
|
|
3801
|
+
const beforeCol = index + 1 < q.length ? q.value[index + 1] : undefined;
|
|
3802
|
+
return generateKeyBetween(afterCol.position, beforeCol?.position);
|
|
3803
|
+
},
|
|
3804
|
+
first() {
|
|
3805
|
+
return generateKeyBetween(null, q.first()?.position);
|
|
3806
|
+
},
|
|
3807
|
+
last() {
|
|
3808
|
+
// add it to the end of the list
|
|
3809
|
+
return generateKeyBetween(q.last()?.position, null);
|
|
3505
3810
|
}
|
|
3506
|
-
this.registerDisposable(this.trackSource(column.visible$));
|
|
3507
3811
|
});
|
|
3508
|
-
return column;
|
|
3509
3812
|
}
|
|
3510
3813
|
doComputeValue() {
|
|
3511
|
-
return this.
|
|
3814
|
+
return this.allColumns$.value.filter(c => c.visible$.value);
|
|
3512
3815
|
}
|
|
3513
3816
|
}
|
|
3514
3817
|
|
|
@@ -3542,8 +3845,8 @@ function EnableCellTextSearch(options) {
|
|
|
3542
3845
|
|
|
3543
3846
|
class CustomValueColumnModel extends ColumnModel {
|
|
3544
3847
|
getValue;
|
|
3545
|
-
constructor(columnId, defaults, getValue) {
|
|
3546
|
-
super(columnId, defaults);
|
|
3848
|
+
constructor(columnId, order, defaults, getValue) {
|
|
3849
|
+
super(columnId, order, defaults);
|
|
3547
3850
|
this.getValue = getValue;
|
|
3548
3851
|
this.cellRenderer(DefaultCellRendererComponent);
|
|
3549
3852
|
}
|
|
@@ -3551,17 +3854,17 @@ class CustomValueColumnModel extends ColumnModel {
|
|
|
3551
3854
|
this.configureColumnTextSearch(EnableCellTextSearch.getFormatter(componentType, () => new ColumnTextSearchFormatter.Null()), row => this.getValue(row));
|
|
3552
3855
|
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
|
|
3553
3856
|
if (firstTime) {
|
|
3554
|
-
if (isFunction
|
|
3857
|
+
if (isFunction(onComponentInitOrOptions)) {
|
|
3555
3858
|
onComponentInitOrOptions(component);
|
|
3556
3859
|
}
|
|
3557
3860
|
else {
|
|
3558
|
-
if (isFunction
|
|
3861
|
+
if (isFunction(onComponentInitOrOptions?.onComponentInit)) {
|
|
3559
3862
|
onComponentInitOrOptions.onComponentInit(component);
|
|
3560
3863
|
}
|
|
3561
3864
|
}
|
|
3562
3865
|
}
|
|
3563
3866
|
component.value = this.getValue(rowData.row);
|
|
3564
|
-
if (!isFunction
|
|
3867
|
+
if (!isFunction(onComponentInitOrOptions) && isFunction(onComponentInitOrOptions?.onRowUpdate)) {
|
|
3565
3868
|
onComponentInitOrOptions.onRowUpdate(component, rowData.row);
|
|
3566
3869
|
}
|
|
3567
3870
|
}));
|
|
@@ -3573,8 +3876,8 @@ class CustomValueColumnModel extends ColumnModel {
|
|
|
3573
3876
|
}
|
|
3574
3877
|
|
|
3575
3878
|
class EditorControlColumnModel extends ColumnModel {
|
|
3576
|
-
constructor(columnId, saveCommandFactory, defaults) {
|
|
3577
|
-
super(columnId, defaults);
|
|
3879
|
+
constructor(columnId, order, saveCommandFactory, defaults) {
|
|
3880
|
+
super(columnId, order, defaults);
|
|
3578
3881
|
this.cellRenderer(EditRowControlsComponent);
|
|
3579
3882
|
}
|
|
3580
3883
|
cellRenderer(componentType) {
|
|
@@ -3599,8 +3902,8 @@ class ListPropertyColumnModel extends ColumnModel {
|
|
|
3599
3902
|
intermediate.map(v => v?.toString()).join(", ") :
|
|
3600
3903
|
intermediate?.toString();
|
|
3601
3904
|
};
|
|
3602
|
-
constructor(id, property, defaults) {
|
|
3603
|
-
super(id, defaults);
|
|
3905
|
+
constructor(id, order, property, defaults) {
|
|
3906
|
+
super(id, order, defaults);
|
|
3604
3907
|
this.property = property;
|
|
3605
3908
|
this.cellRenderer(DefaultCellRendererComponent);
|
|
3606
3909
|
}
|
|
@@ -3616,7 +3919,7 @@ class ListPropertyColumnModel extends ColumnModel {
|
|
|
3616
3919
|
}
|
|
3617
3920
|
cellEditor(editor, validatorsOrInitialiser, initialiseComponent) {
|
|
3618
3921
|
const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
|
|
3619
|
-
const initialiser = isFunction
|
|
3922
|
+
const initialiser = isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : initialiseComponent;
|
|
3620
3923
|
this.configureCellEditor(new CellEditorPortalRef(editor, (component, editSession) => {
|
|
3621
3924
|
const formListModel = editSession.form.pluckList(this.property);
|
|
3622
3925
|
if (validators) {
|
|
@@ -3645,8 +3948,8 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3645
3948
|
_defaultSearchTextFormatter = (value) => {
|
|
3646
3949
|
return (this._userFormat ?? Functions.identity)(value)?.toString();
|
|
3647
3950
|
};
|
|
3648
|
-
constructor(id, property, defaults) {
|
|
3649
|
-
super(id, defaults);
|
|
3951
|
+
constructor(id, order, property, defaults) {
|
|
3952
|
+
super(id, order, defaults);
|
|
3650
3953
|
this.property = property;
|
|
3651
3954
|
this.cellRenderer(DefaultCellRendererComponent);
|
|
3652
3955
|
}
|
|
@@ -3654,11 +3957,11 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3654
3957
|
this.configureColumnTextSearch(EnableCellTextSearch.getFormatter(componentType, () => ColumnTextSearchFormatter.forFormatter(this._defaultSearchTextFormatter)), row => row[this.property]);
|
|
3655
3958
|
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
|
|
3656
3959
|
if (firstTime) {
|
|
3657
|
-
if (isFunction
|
|
3960
|
+
if (isFunction(onComponentInitOrOptions)) {
|
|
3658
3961
|
onComponentInitOrOptions(component);
|
|
3659
3962
|
}
|
|
3660
3963
|
else {
|
|
3661
|
-
if (isFunction
|
|
3964
|
+
if (isFunction(onComponentInitOrOptions?.onComponentInit)) {
|
|
3662
3965
|
onComponentInitOrOptions.onComponentInit(component);
|
|
3663
3966
|
}
|
|
3664
3967
|
}
|
|
@@ -3683,7 +3986,7 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3683
3986
|
component[ColumnModel.CELL_RENDERER_COMPONENT_ROW_CACHE] = rowData.row;
|
|
3684
3987
|
let disableEditCallback = false;
|
|
3685
3988
|
if (firstTime) {
|
|
3686
|
-
if (isFunction
|
|
3989
|
+
if (isFunction(options?.onComponentInit)) {
|
|
3687
3990
|
options.onComponentInit(component);
|
|
3688
3991
|
}
|
|
3689
3992
|
// install our edit callback
|
|
@@ -3698,7 +4001,7 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3698
4001
|
disableEditCallback = true;
|
|
3699
4002
|
component.value = rowData.row[this.property];
|
|
3700
4003
|
disableEditCallback = false;
|
|
3701
|
-
if (!isFunction
|
|
4004
|
+
if (!isFunction(options) && isFunction(options?.onRowUpdate)) {
|
|
3702
4005
|
options.onRowUpdate(component, rowData.row);
|
|
3703
4006
|
}
|
|
3704
4007
|
}));
|
|
@@ -3706,7 +4009,7 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
3706
4009
|
}
|
|
3707
4010
|
cellEditor(editor, validatorsOrInitialiser, onComponentInit) {
|
|
3708
4011
|
const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
|
|
3709
|
-
const initialiser = isFunction
|
|
4012
|
+
const initialiser = isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
|
|
3710
4013
|
this.configureCellEditor(new CellEditorPortalRef(editor, (component, editSession) => {
|
|
3711
4014
|
const formValueModel = editSession.form.pluck(this.property);
|
|
3712
4015
|
if (validators) {
|
|
@@ -3733,8 +4036,8 @@ class SelectionColumnModel extends ColumnModel {
|
|
|
3733
4036
|
selectionModel;
|
|
3734
4037
|
_enableHeaderControls = true;
|
|
3735
4038
|
_color = "accent";
|
|
3736
|
-
constructor(columnId, defaults, selectionModel) {
|
|
3737
|
-
super(columnId, defaults);
|
|
4039
|
+
constructor(columnId, order, defaults, selectionModel) {
|
|
4040
|
+
super(columnId, order, defaults);
|
|
3738
4041
|
this.selectionModel = selectionModel;
|
|
3739
4042
|
const { chain } = Dsl.disposeWith(this);
|
|
3740
4043
|
this._selectRowOnClick(false);
|
|
@@ -3775,6 +4078,42 @@ class SelectionColumnModel extends ColumnModel {
|
|
|
3775
4078
|
}
|
|
3776
4079
|
}
|
|
3777
4080
|
|
|
4081
|
+
let RowClass$1 = class RowClass {
|
|
4082
|
+
className;
|
|
4083
|
+
matches;
|
|
4084
|
+
constructor(className, matches) {
|
|
4085
|
+
this.className = className;
|
|
4086
|
+
this.matches = matches;
|
|
4087
|
+
}
|
|
4088
|
+
};
|
|
4089
|
+
class FooterRowModel {
|
|
4090
|
+
_rowClasses = [];
|
|
4091
|
+
noPadding() {
|
|
4092
|
+
this.addClass("no-padding");
|
|
4093
|
+
}
|
|
4094
|
+
addClass(className, condition) {
|
|
4095
|
+
this._rowClasses.push(new RowClass$1(className, condition ?? (() => true)));
|
|
4096
|
+
}
|
|
4097
|
+
}
|
|
4098
|
+
(function (FooterRowModel) {
|
|
4099
|
+
class Impl extends FooterRowModel {
|
|
4100
|
+
component;
|
|
4101
|
+
onInit;
|
|
4102
|
+
portal;
|
|
4103
|
+
constructor(component, onInit) {
|
|
4104
|
+
super();
|
|
4105
|
+
this.component = component;
|
|
4106
|
+
this.onInit = onInit;
|
|
4107
|
+
this.portal = new ComponentPortal(component);
|
|
4108
|
+
}
|
|
4109
|
+
getActiveRowClasses() {
|
|
4110
|
+
return this._rowClasses.filter(c => c.matches()).map(c => c.className).join(" ");
|
|
4111
|
+
}
|
|
4112
|
+
}
|
|
4113
|
+
FooterRowModel.Impl = Impl;
|
|
4114
|
+
})(FooterRowModel || (FooterRowModel = {}));
|
|
4115
|
+
ProxyRegistry.registerOneTimeBinding(FooterRowModel);
|
|
4116
|
+
|
|
3778
4117
|
class TableMoreMenuComponent extends DisposableComponent {
|
|
3779
4118
|
value$ = new MutableValueModel();
|
|
3780
4119
|
#value_accessor_storage;
|
|
@@ -3784,13 +4123,15 @@ class TableMoreMenuComponent extends DisposableComponent {
|
|
|
3784
4123
|
popupType$ = new MutableValueModel();
|
|
3785
4124
|
popupComponentPortal$;
|
|
3786
4125
|
_visible$ = this.registerDisposable(new DelegatingValueModel());
|
|
4126
|
+
initialiseCallback;
|
|
3787
4127
|
constructor() {
|
|
3788
4128
|
super();
|
|
3789
4129
|
const { chain } = Dsl.disposeWith(this);
|
|
3790
4130
|
this.popupComponentPortal$ = chain(this.popupType$).map(type => new ComponentPortal(type));
|
|
3791
4131
|
}
|
|
3792
|
-
configurePopupComponentType(popupComponentType) {
|
|
4132
|
+
configurePopupComponentType(popupComponentType, configureCallback) {
|
|
3793
4133
|
this.popupType$.value = popupComponentType;
|
|
4134
|
+
this.initialiseCallback = configureCallback;
|
|
3794
4135
|
}
|
|
3795
4136
|
// Stops tree selection when clicking the menu button
|
|
3796
4137
|
preventDefault($event) {
|
|
@@ -3801,12 +4142,15 @@ class TableMoreMenuComponent extends DisposableComponent {
|
|
|
3801
4142
|
const component = $event.instance;
|
|
3802
4143
|
component.initialise(this.value$, Command.create(() => this.matMenuTrigger.closeMenu()));
|
|
3803
4144
|
this._visible$.setDelegate(component.visible$);
|
|
4145
|
+
if (this.initialiseCallback) {
|
|
4146
|
+
this.initialiseCallback(component);
|
|
4147
|
+
}
|
|
3804
4148
|
}
|
|
3805
4149
|
get visible$() {
|
|
3806
4150
|
return this._visible$.readonly$;
|
|
3807
4151
|
}
|
|
3808
4152
|
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:
|
|
4153
|
+
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
4154
|
}
|
|
3811
4155
|
__decorate([
|
|
3812
4156
|
StoreInValueModel(),
|
|
@@ -3835,16 +4179,25 @@ class RowClass {
|
|
|
3835
4179
|
this.matches = matches;
|
|
3836
4180
|
}
|
|
3837
4181
|
}
|
|
4182
|
+
class RowAttribute {
|
|
4183
|
+
attributeName;
|
|
4184
|
+
getValue;
|
|
4185
|
+
constructor(attributeName, getValue) {
|
|
4186
|
+
this.attributeName = attributeName;
|
|
4187
|
+
this.getValue = getValue;
|
|
4188
|
+
}
|
|
4189
|
+
}
|
|
3838
4190
|
class AbstractTableModel extends GarbageCollector {
|
|
3839
4191
|
_dataSource$ = this.registerDisposable(new DelegatingListModel());
|
|
3840
4192
|
_filteredRows$ = this.registerDisposable(new DelegatingListModel());
|
|
3841
4193
|
_visibleRows$ = this.registerDisposable(new DelegatingListModel());
|
|
3842
|
-
|
|
4194
|
+
columnManager = this.registerDisposable(new ColumnManager());
|
|
3843
4195
|
_editorSessions = new MutableListModel();
|
|
3844
4196
|
_rowsBeingEdited$;
|
|
3845
4197
|
saveCommandFactory;
|
|
3846
4198
|
_editorSessionByRowId;
|
|
3847
4199
|
rowClassNamePredicates = [];
|
|
4200
|
+
rowAttributeGenerators = [];
|
|
3848
4201
|
_columnTextPropertiesLookup;
|
|
3849
4202
|
editing$;
|
|
3850
4203
|
firstEditableColumn$;
|
|
@@ -3861,6 +4214,8 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3861
4214
|
selectedItems$;
|
|
3862
4215
|
leadSelection$;
|
|
3863
4216
|
hasSelection$;
|
|
4217
|
+
footerRowModel;
|
|
4218
|
+
_viewDependencies = new Set();
|
|
3864
4219
|
constructor() {
|
|
3865
4220
|
super();
|
|
3866
4221
|
const { chain } = Dsl.disposeWith(this);
|
|
@@ -3869,15 +4224,15 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3869
4224
|
});
|
|
3870
4225
|
this._editorSessionByRowId = chain(this._editorSessions).indexBy("rowId");
|
|
3871
4226
|
this.editing$ = chain(this._editorSessions).count().isGreaterThan(0);
|
|
3872
|
-
this.textSearchPredicate$ = chain(this.visibleColumns).
|
|
4227
|
+
this.textSearchPredicate$ = chain(this.visibleColumns$).reduceAll(columns => {
|
|
3873
4228
|
return (row, regex) => {
|
|
3874
4229
|
return (!regex || !!columns.find(c => regex.test(c.getSearchTextFor(row))));
|
|
3875
4230
|
};
|
|
3876
4231
|
});
|
|
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.
|
|
4232
|
+
this.firstEditableColumn$ = chain(this.columns$).select(c => c.hasEditorPortal()).first();
|
|
4233
|
+
this.firstVisibleColumn$ = chain(this.visibleColumns$).first();
|
|
4234
|
+
this.lastVisibleColumn$ = chain(this.visibleColumns$).last();
|
|
4235
|
+
this.rowSelectionDisabledOnAllColumns$ = chain(this.columnManager.visibleColumns$).select(column => column.isRowSelectionEnabled()).count().equals(0);
|
|
3881
4236
|
this.dataSourceEmpty$ = chain(this.dataSource$).isEmpty();
|
|
3882
4237
|
this.selectedItems$ = this.selectionModelProxy.selectedItems$;
|
|
3883
4238
|
this.leadSelection$ = this.selectionModelProxy.leadSelection$;
|
|
@@ -3901,9 +4256,23 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3901
4256
|
],
|
|
3902
4257
|
parent: injector
|
|
3903
4258
|
});
|
|
3904
|
-
this.columns
|
|
4259
|
+
this.columns$.value.forEach(c => c.initialise(customInjector));
|
|
3905
4260
|
this.identityOf = identityOf;
|
|
3906
4261
|
}
|
|
4262
|
+
/**
|
|
4263
|
+
* Adds additional models that will trigger a table repaint. This is required if the table
|
|
4264
|
+
* needs to be redrawn outside of changes to the rows of filters. i.e. some eternal state is used
|
|
4265
|
+
* to assign row classes etc.
|
|
4266
|
+
*
|
|
4267
|
+
* Note: This function must be called before the table is bound to the model.
|
|
4268
|
+
* @param hasValues
|
|
4269
|
+
*/
|
|
4270
|
+
viewStateDependsOn(...hasValues) {
|
|
4271
|
+
hasValues.forEach(it => this._viewDependencies.add(it));
|
|
4272
|
+
}
|
|
4273
|
+
get viewStateDependencies() {
|
|
4274
|
+
return Array.from(this._viewDependencies.values());
|
|
4275
|
+
}
|
|
3907
4276
|
get dataSource$() {
|
|
3908
4277
|
return this._dataSource$.readonly$;
|
|
3909
4278
|
}
|
|
@@ -3954,19 +4323,19 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3954
4323
|
});
|
|
3955
4324
|
});
|
|
3956
4325
|
}
|
|
3957
|
-
get columns() {
|
|
3958
|
-
return this.
|
|
4326
|
+
get columns$() {
|
|
4327
|
+
return this.columnManager.allColumns$;
|
|
3959
4328
|
}
|
|
3960
|
-
get visibleColumns() {
|
|
3961
|
-
return this.
|
|
4329
|
+
get visibleColumns$() {
|
|
4330
|
+
return this.columnManager.visibleColumns$;
|
|
3962
4331
|
}
|
|
3963
4332
|
pluck(property, options) {
|
|
3964
4333
|
const columnId = options?.columnId || property.toString();
|
|
3965
|
-
return this.addColumn(new PropertyColumnModel(columnId, property, () => this.getColumnTextProperties(columnId)));
|
|
4334
|
+
return this.addColumn(new PropertyColumnModel(columnId, this.columnManager, property, () => this.getColumnTextProperties(columnId)));
|
|
3966
4335
|
}
|
|
3967
4336
|
pluckList(property, options) {
|
|
3968
4337
|
const columnId = options?.columnId || property.toString();
|
|
3969
|
-
return this.addColumn(new ListPropertyColumnModel(columnId, property, () => this.getColumnTextProperties(columnId)));
|
|
4338
|
+
return this.addColumn(new ListPropertyColumnModel(columnId, this.columnManager, property, () => this.getColumnTextProperties(columnId)));
|
|
3970
4339
|
}
|
|
3971
4340
|
// TODO: clean this up and assign the selection model on teh table directly.
|
|
3972
4341
|
// tableModel.useSelectionModel(model) and have the seleciton column automatically
|
|
@@ -3975,43 +4344,54 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
3975
4344
|
_addSelectionColumn(selectionModel, visible) {
|
|
3976
4345
|
assert.isNil(this.selectionColumnModel);
|
|
3977
4346
|
const columnId = "selection-column";
|
|
3978
|
-
this.selectionColumnModel = new SelectionColumnModel(columnId, () => this.getColumnTextProperties(columnId), this.selectionModelProxy);
|
|
4347
|
+
this.selectionColumnModel = new SelectionColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId), this.selectionModelProxy);
|
|
3979
4348
|
this.selectionColumnModel.useSelectionModel(selectionModel);
|
|
3980
4349
|
this.addRowClass("aup-row-selected", row => this.selectionColumnModel.isSelected(row));
|
|
3981
|
-
const selectionColumnModel = this.addColumn(this.selectionColumnModel,
|
|
3982
|
-
if (!isNil
|
|
4350
|
+
const selectionColumnModel = this.addColumn(this.selectionColumnModel, { before: null }); // first column
|
|
4351
|
+
if (!isNil(visible)) {
|
|
3983
4352
|
selectionColumnModel.visibleWhile(visible instanceof ValueModel ? visible : ValueModel.constant(visible));
|
|
3984
4353
|
}
|
|
3985
4354
|
return selectionColumnModel;
|
|
3986
4355
|
}
|
|
3987
4356
|
addEditControls(saveCommandFactory, formFactory) {
|
|
3988
4357
|
this.saveCommandFactory = saveCommandFactory;
|
|
3989
|
-
if (isFunction
|
|
4358
|
+
if (isFunction(formFactory)) {
|
|
3990
4359
|
this._createForm = formFactory;
|
|
3991
4360
|
}
|
|
3992
4361
|
const columnId = "editControls";
|
|
3993
|
-
return this.addColumn(new EditorControlColumnModel(columnId, saveCommandFactory, () => this.getColumnTextProperties(columnId)));
|
|
4362
|
+
return this.addColumn(new EditorControlColumnModel(columnId, this.columnManager, saveCommandFactory, () => this.getColumnTextProperties(columnId)));
|
|
3994
4363
|
}
|
|
3995
4364
|
addCustomColumn(columnId, dataAccessor) {
|
|
3996
|
-
return this.addColumn(new CustomValueColumnModel(columnId, () => this.getColumnTextProperties(columnId), dataAccessor));
|
|
4365
|
+
return this.addColumn(new CustomValueColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId), dataAccessor));
|
|
3997
4366
|
}
|
|
3998
4367
|
addComponentColumn(columnId, component, onComponentInitOrOptions) {
|
|
3999
|
-
return this.addColumn(new CustomValueColumnModel(columnId, () => this.getColumnTextProperties(columnId), row => row)).cellRenderer(component, onComponentInitOrOptions);
|
|
4368
|
+
return this.addColumn(new CustomValueColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId), row => row)).cellRenderer(component, onComponentInitOrOptions);
|
|
4000
4369
|
}
|
|
4001
|
-
addMoreMenu(componentClass) {
|
|
4370
|
+
addMoreMenu(componentClass, initialiseCallback) {
|
|
4002
4371
|
return this.addComponentColumn("more-menu", TableMoreMenuComponent, (component) => {
|
|
4003
|
-
component.configurePopupComponentType(componentClass);
|
|
4372
|
+
component.configurePopupComponentType(componentClass, initialiseCallback);
|
|
4004
4373
|
}).columnTextProperties({
|
|
4005
4374
|
headerText() {
|
|
4006
4375
|
return "";
|
|
4007
4376
|
}
|
|
4008
4377
|
});
|
|
4009
4378
|
}
|
|
4379
|
+
addFooterRow(component, initialiseCallback) {
|
|
4380
|
+
assert.isNil(this.footerRowModel);
|
|
4381
|
+
this.footerRowModel = new FooterRowModel.Impl(component, initialiseCallback);
|
|
4382
|
+
return this.footerRowModel;
|
|
4383
|
+
}
|
|
4010
4384
|
addTemplateColumn(columnId) {
|
|
4011
|
-
return this.addColumn(new CustomTemplateColumnModel(columnId, () => this.getColumnTextProperties(columnId)));
|
|
4385
|
+
return this.addColumn(new CustomTemplateColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId)));
|
|
4012
4386
|
}
|
|
4013
|
-
addRowClass(className, predicate) {
|
|
4387
|
+
addRowClass(className, predicate, options) {
|
|
4014
4388
|
this.rowClassNamePredicates.push(new RowClass(className, predicate));
|
|
4389
|
+
if (options) {
|
|
4390
|
+
this.viewStateDependsOn(...DependsOnOptions.extract(options));
|
|
4391
|
+
}
|
|
4392
|
+
}
|
|
4393
|
+
addRowAttribute(attributeName, getValue) {
|
|
4394
|
+
this.rowAttributeGenerators.push(new RowAttribute(attributeName, getValue));
|
|
4015
4395
|
}
|
|
4016
4396
|
getRowClasses(row) {
|
|
4017
4397
|
const classNames = [];
|
|
@@ -4022,8 +4402,13 @@ class AbstractTableModel extends GarbageCollector {
|
|
|
4022
4402
|
});
|
|
4023
4403
|
return classNames;
|
|
4024
4404
|
}
|
|
4025
|
-
|
|
4026
|
-
return this.
|
|
4405
|
+
getRowAttributes(row) {
|
|
4406
|
+
return this.rowAttributeGenerators.reduce((result, generator) => {
|
|
4407
|
+
return { ...result, [generator.attributeName]: generator.getValue(row) };
|
|
4408
|
+
}, {});
|
|
4409
|
+
}
|
|
4410
|
+
addColumn(column, position) {
|
|
4411
|
+
return this.columnManager.addColumn(column, position);
|
|
4027
4412
|
}
|
|
4028
4413
|
columnTextProperties(columnTextProperties) {
|
|
4029
4414
|
this._columnTextPropertiesLookup = columnTextProperties;
|
|
@@ -4140,7 +4525,7 @@ class TableCellComponent extends DisposableComponent {
|
|
|
4140
4525
|
};
|
|
4141
4526
|
}
|
|
4142
4527
|
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:
|
|
4528
|
+
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
4529
|
}
|
|
4145
4530
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableCellComponent, decorators: [{
|
|
4146
4531
|
type: Component,
|
|
@@ -4179,7 +4564,7 @@ class TableHeaderCellComponent {
|
|
|
4179
4564
|
return this[HEADER_CELL_RENDERER_PORTAL];
|
|
4180
4565
|
}
|
|
4181
4566
|
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:
|
|
4567
|
+
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
4568
|
}
|
|
4184
4569
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableHeaderCellComponent, decorators: [{
|
|
4185
4570
|
type: Component,
|
|
@@ -4191,61 +4576,132 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
4191
4576
|
args: ['class']
|
|
4192
4577
|
}] } });
|
|
4193
4578
|
|
|
4579
|
+
// eslint-disable-next-line @angular-eslint/component-class-suffix
|
|
4580
|
+
class TableFooterRow {
|
|
4581
|
+
row;
|
|
4582
|
+
defaultClassNames = 'aup-footer-row-renderer';
|
|
4583
|
+
get rowClasses() {
|
|
4584
|
+
return this.row.getActiveRowClasses();
|
|
4585
|
+
}
|
|
4586
|
+
initialise($event) {
|
|
4587
|
+
this.row.onInit && this.row.onInit($event.instance);
|
|
4588
|
+
}
|
|
4589
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableFooterRow, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
4590
|
+
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"] }] });
|
|
4591
|
+
}
|
|
4592
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableFooterRow, decorators: [{
|
|
4593
|
+
type: Component,
|
|
4594
|
+
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"] }]
|
|
4595
|
+
}], propDecorators: { row: [{
|
|
4596
|
+
type: Input
|
|
4597
|
+
}], defaultClassNames: [{
|
|
4598
|
+
type: HostBinding,
|
|
4599
|
+
args: ['class']
|
|
4600
|
+
}], rowClasses: [{
|
|
4601
|
+
type: HostBinding,
|
|
4602
|
+
args: ['class']
|
|
4603
|
+
}] } });
|
|
4604
|
+
|
|
4605
|
+
const AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER = new InjectionToken("AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER");
|
|
4606
|
+
class TableRowAttributesDirective {
|
|
4607
|
+
elementRef;
|
|
4608
|
+
aupTableRowAttributes;
|
|
4609
|
+
constructor(elementRef) {
|
|
4610
|
+
this.elementRef = elementRef;
|
|
4611
|
+
}
|
|
4612
|
+
ngOnInit() {
|
|
4613
|
+
for (const attr in this.aupTableRowAttributes) {
|
|
4614
|
+
this.elementRef.nativeElement.setAttribute(attr, this.aupTableRowAttributes[attr]);
|
|
4615
|
+
}
|
|
4616
|
+
}
|
|
4617
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableRowAttributesDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
4618
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: TableRowAttributesDirective, selector: "[aupTableRowAttributes]", inputs: { aupTableRowAttributes: "aupTableRowAttributes" }, ngImport: i0 });
|
|
4619
|
+
}
|
|
4620
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableRowAttributesDirective, decorators: [{
|
|
4621
|
+
type: Directive,
|
|
4622
|
+
args: [{
|
|
4623
|
+
selector: "[aupTableRowAttributes]",
|
|
4624
|
+
}]
|
|
4625
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { aupTableRowAttributes: [{
|
|
4626
|
+
type: Input
|
|
4627
|
+
}] } });
|
|
4194
4628
|
class TableBodyComponent extends ResizeAwareComponent {
|
|
4629
|
+
bufferMultiplier;
|
|
4195
4630
|
#data$_accessor_storage = proxify((ListModel));
|
|
4196
4631
|
get data$() { return this.#data$_accessor_storage; }
|
|
4197
4632
|
set data$(value) { this.#data$_accessor_storage = value; }
|
|
4198
4633
|
#tableModel_accessor_storage = proxify((AbstractTableModel));
|
|
4199
4634
|
get tableModel() { return this.#tableModel_accessor_storage; }
|
|
4200
4635
|
set tableModel(value) { this.#tableModel_accessor_storage = value; }
|
|
4636
|
+
#footerRow_accessor_storage = proxify((FooterRowModel.Impl));
|
|
4637
|
+
get footerRow() { return this.#footerRow_accessor_storage; }
|
|
4638
|
+
set footerRow(value) { this.#footerRow_accessor_storage = value; }
|
|
4201
4639
|
#showHeader$_accessor_storage = proxify((ValueModel));
|
|
4202
4640
|
get showHeader$() { return this.#showHeader$_accessor_storage; }
|
|
4203
4641
|
set showHeader$(value) { this.#showHeader$_accessor_storage = value; }
|
|
4204
4642
|
#showHeader_accessor_storage = true;
|
|
4205
4643
|
get showHeader() { return this.#showHeader_accessor_storage; }
|
|
4206
4644
|
set showHeader(value) { this.#showHeader_accessor_storage = value; }
|
|
4207
|
-
visibleRowCount = new EventEmitter();
|
|
4208
4645
|
trackBy;
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4646
|
+
#scrollMode$_accessor_storage = proxify((ValueModel));
|
|
4647
|
+
get scrollMode$() { return this.#scrollMode$_accessor_storage; }
|
|
4648
|
+
set scrollMode$(value) { this.#scrollMode$_accessor_storage = value; }
|
|
4649
|
+
#scrollMode_accessor_storage = "none";
|
|
4650
|
+
get scrollMode() { return this.#scrollMode_accessor_storage; }
|
|
4651
|
+
set scrollMode(value) { this.#scrollMode_accessor_storage = value; }
|
|
4652
|
+
scrollViewport;
|
|
4215
4653
|
columns$;
|
|
4216
4654
|
columnIds$;
|
|
4217
4655
|
columnsById$;
|
|
4218
|
-
_visibleRowCount$;
|
|
4219
4656
|
// TODO: support user defined header and row heights via css vars.
|
|
4220
|
-
headerHeight$ = new MutableValueModel(
|
|
4221
|
-
rowHeight$ = new MutableValueModel(
|
|
4657
|
+
headerHeight$ = new MutableValueModel(48);
|
|
4658
|
+
rowHeight$ = new MutableValueModel(44);
|
|
4222
4659
|
baseCssClass = "aup-table-component";
|
|
4223
|
-
|
|
4224
|
-
|
|
4225
|
-
|
|
4660
|
+
virtualScrollDataSource = new TableVirtualScrollDataSource();
|
|
4661
|
+
virtualScrollActive$ = new MutableValueModel(false);
|
|
4662
|
+
scrollTimeout;
|
|
4663
|
+
constructor(bufferMultiplier = 1) {
|
|
4664
|
+
super();
|
|
4665
|
+
this.bufferMultiplier = bufferMultiplier;
|
|
4666
|
+
const { chain, when, observe } = Dsl.disposeWith(this);
|
|
4226
4667
|
const actualHeaderHeight$ = chain(this.showHeader$).map(show => {
|
|
4227
4668
|
return show ? this.headerHeight$.value : 0;
|
|
4228
4669
|
}, { 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" });
|
|
4670
|
+
// performance is terrible if the data changes while we're scrolling, so we postpone updates until
|
|
4671
|
+
// scrolling stops.
|
|
4672
|
+
const delayedDatea$ = chain(this.data$).postponeWhile(this.virtualScrollActive$);
|
|
4673
|
+
when(delayedDatea$).changes(delatedData => {
|
|
4674
|
+
this.virtualScrollDataSource.data = delatedData;
|
|
4675
|
+
this.scheduleTableHeightCheck();
|
|
4676
|
+
}, { initialValue: "evaluate" });
|
|
4240
4677
|
this.onInit(() => {
|
|
4241
|
-
this.columns$ = chain(this.tableModel.
|
|
4678
|
+
this.columns$ = chain(this.tableModel.visibleColumns$);
|
|
4242
4679
|
this.columnIds$ = chain(this.columns$).pluck("columnId");
|
|
4243
4680
|
this.columnsById$ = chain(this.columns$).indexBy('columnId');
|
|
4244
4681
|
});
|
|
4682
|
+
// const txo = new TransactionObserver({verbose: false}).onEvent(e => console.log(e.name, e.payload));
|
|
4683
|
+
// txo.observe('this.virtualScrollRowRange$', this.virtualScrollRowRange$);
|
|
4684
|
+
// txo.observe('this.virtualScrollSpacerSize$', this.virtualScrollSpacerSize$);
|
|
4685
|
+
// txo.observe('this.virtualRows$', this.virtualRows$);
|
|
4686
|
+
// txo.observe('this.tableBodyHeight$', this.tableBodyHeight$);
|
|
4687
|
+
// txo.observe('this.virtualScrollActive$', this.virtualScrollActive$);
|
|
4688
|
+
}
|
|
4689
|
+
ngAfterViewInit() {
|
|
4690
|
+
super.ngAfterViewInit();
|
|
4691
|
+
if (this.scrollViewport) {
|
|
4692
|
+
const { observe } = Dsl.disposeWith(this);
|
|
4693
|
+
this.scrollViewport.elementScrolled().subscribe(() => this.notifyScrolled());
|
|
4694
|
+
}
|
|
4245
4695
|
}
|
|
4246
4696
|
get hideHeader() {
|
|
4247
4697
|
return !this.showHeader;
|
|
4248
4698
|
}
|
|
4699
|
+
get headerHeightCssVar() {
|
|
4700
|
+
return `${this.headerHeight$.value}px`;
|
|
4701
|
+
}
|
|
4702
|
+
get rowHeightCssVar() {
|
|
4703
|
+
return `${this.rowHeight$.value}px`;
|
|
4704
|
+
}
|
|
4249
4705
|
isEditing(row) {
|
|
4250
4706
|
return !!this.tableModel.getEditSessionFor(row);
|
|
4251
4707
|
}
|
|
@@ -4270,51 +4726,110 @@ class TableBodyComponent extends ResizeAwareComponent {
|
|
|
4270
4726
|
}
|
|
4271
4727
|
return classes;
|
|
4272
4728
|
}
|
|
4273
|
-
|
|
4274
|
-
|
|
4729
|
+
scheduleTableHeightCheck(waitMillis = 50) {
|
|
4730
|
+
setTimeout(() => {
|
|
4731
|
+
const tbody = this.elementRef.nativeElement.querySelector("tbody");
|
|
4732
|
+
const bodyHeight = tbody.offsetHeight;
|
|
4733
|
+
if (this.data$.length > 0 && bodyHeight < this.rowHeight$.value) {
|
|
4734
|
+
// Hacks to get our virtual scroll to repaint
|
|
4735
|
+
// Logger.get(this).log(`rowCount=${this.data$.length}, bodyHeight=${bodyHeight} -> virtual table not rendering, triggering resize to force repaint`)
|
|
4736
|
+
window.dispatchEvent(new Event('resize'));
|
|
4737
|
+
if (waitMillis < 500) {
|
|
4738
|
+
this.scheduleTableHeightCheck(waitMillis + 50);
|
|
4739
|
+
}
|
|
4740
|
+
}
|
|
4741
|
+
}, waitMillis);
|
|
4742
|
+
}
|
|
4743
|
+
notifyScrolled() {
|
|
4744
|
+
this.virtualScrollActive$.value = true;
|
|
4745
|
+
this.clearScrollTimeout();
|
|
4746
|
+
this.scrollTimeout = setTimeout(() => {
|
|
4747
|
+
return this.virtualScrollActive$.value = false;
|
|
4748
|
+
}, 200);
|
|
4749
|
+
}
|
|
4750
|
+
clearScrollTimeout() {
|
|
4751
|
+
if (this.scrollTimeout) {
|
|
4752
|
+
clearTimeout(this.scrollTimeout);
|
|
4753
|
+
}
|
|
4754
|
+
}
|
|
4755
|
+
initialiseFooter($event) {
|
|
4756
|
+
const portalRef = $event;
|
|
4757
|
+
this.footerRow.onInit(portalRef.instance);
|
|
4758
|
+
}
|
|
4759
|
+
Proxify = Proxify;
|
|
4760
|
+
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 });
|
|
4761
|
+
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
4762
|
}
|
|
4276
4763
|
__decorate([
|
|
4277
4764
|
Proxify(),
|
|
4278
|
-
__metadata("design:type",
|
|
4765
|
+
__metadata("design:type", ListModel)
|
|
4279
4766
|
], TableBodyComponent.prototype, "data$", null);
|
|
4280
4767
|
__decorate([
|
|
4281
4768
|
Proxify(),
|
|
4282
|
-
__metadata("design:type",
|
|
4769
|
+
__metadata("design:type", AbstractTableModel)
|
|
4283
4770
|
], TableBodyComponent.prototype, "tableModel", null);
|
|
4284
4771
|
__decorate([
|
|
4285
4772
|
Proxify(),
|
|
4286
|
-
__metadata("design:type",
|
|
4773
|
+
__metadata("design:type", FooterRowModel.Impl)
|
|
4774
|
+
], TableBodyComponent.prototype, "footerRow", null);
|
|
4775
|
+
__decorate([
|
|
4776
|
+
Proxify(),
|
|
4777
|
+
__metadata("design:type", ValueModel)
|
|
4287
4778
|
], TableBodyComponent.prototype, "showHeader$", null);
|
|
4288
4779
|
__decorate([
|
|
4289
4780
|
StoreInValueModel(),
|
|
4290
4781
|
__metadata("design:type", Object)
|
|
4291
4782
|
], TableBodyComponent.prototype, "showHeader", null);
|
|
4783
|
+
__decorate([
|
|
4784
|
+
Proxify(),
|
|
4785
|
+
__metadata("design:type", ValueModel)
|
|
4786
|
+
], TableBodyComponent.prototype, "scrollMode$", null);
|
|
4787
|
+
__decorate([
|
|
4788
|
+
StoreInValueModel(),
|
|
4789
|
+
__metadata("design:type", String)
|
|
4790
|
+
], TableBodyComponent.prototype, "scrollMode", null);
|
|
4292
4791
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableBodyComponent, decorators: [{
|
|
4293
4792
|
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:
|
|
4793
|
+
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"] }]
|
|
4794
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
4795
|
+
type: Inject,
|
|
4796
|
+
args: [AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER]
|
|
4797
|
+
}, {
|
|
4798
|
+
type: Optional
|
|
4799
|
+
}] }]; }, propDecorators: { data$: [{
|
|
4296
4800
|
type: Input
|
|
4297
4801
|
}], tableModel: [{
|
|
4298
4802
|
type: Input
|
|
4803
|
+
}], footerRow: [{
|
|
4804
|
+
type: Input
|
|
4299
4805
|
}], showHeader$: [{
|
|
4300
4806
|
type: Input
|
|
4301
4807
|
}], showHeader: [{
|
|
4302
4808
|
type: Input
|
|
4303
|
-
}], visibleRowCount: [{
|
|
4304
|
-
type: Output
|
|
4305
4809
|
}], trackBy: [{
|
|
4306
4810
|
type: Input
|
|
4307
|
-
}],
|
|
4811
|
+
}], scrollMode$: [{
|
|
4812
|
+
type: Input
|
|
4813
|
+
}], scrollMode: [{
|
|
4308
4814
|
type: Input
|
|
4309
4815
|
}, {
|
|
4310
4816
|
type: HostBinding,
|
|
4311
|
-
args: ["
|
|
4817
|
+
args: ["attr.scrollMode"]
|
|
4818
|
+
}], scrollViewport: [{
|
|
4819
|
+
type: ViewChild,
|
|
4820
|
+
args: [CdkVirtualScrollViewport]
|
|
4312
4821
|
}], baseCssClass: [{
|
|
4313
4822
|
type: HostBinding,
|
|
4314
4823
|
args: ["class"]
|
|
4315
4824
|
}], hideHeader: [{
|
|
4316
4825
|
type: HostBinding,
|
|
4317
4826
|
args: ["class.hide-header"]
|
|
4827
|
+
}], headerHeightCssVar: [{
|
|
4828
|
+
type: HostBinding,
|
|
4829
|
+
args: ["style.--aup-table-header-height"]
|
|
4830
|
+
}], rowHeightCssVar: [{
|
|
4831
|
+
type: HostBinding,
|
|
4832
|
+
args: ["style.--aup-table-row-height"]
|
|
4318
4833
|
}] } });
|
|
4319
4834
|
|
|
4320
4835
|
class TableMoreMenuPopupComponent extends DisposableComponent {
|
|
@@ -4435,8 +4950,10 @@ class TableFilterModel extends GarbageCollector {
|
|
|
4435
4950
|
this.useSearchText(options.searchText$);
|
|
4436
4951
|
this.useRowPredicate(options.predicate$);
|
|
4437
4952
|
const { chain } = Dsl.disposeWith(this);
|
|
4438
|
-
const textSearchRegex$ = chain(this._searchText$)
|
|
4439
|
-
|
|
4953
|
+
const textSearchRegex$ = chain(this._searchText$)
|
|
4954
|
+
.debounce(250)
|
|
4955
|
+
.map(text => {
|
|
4956
|
+
return isEmpty(text) ? undefined : new RegExp(escapeStringRegexp(text), "i");
|
|
4440
4957
|
}, { allowNil: true });
|
|
4441
4958
|
this._rowPredicate = chain(this._rowPredicate$)
|
|
4442
4959
|
.map(predicate => {
|
|
@@ -4644,31 +5161,30 @@ class TableComponent extends AbstractTableComponent {
|
|
|
4644
5161
|
#filterModel_accessor_storage = proxify((TableFilterModel));
|
|
4645
5162
|
get filterModel() { return this.#filterModel_accessor_storage; }
|
|
4646
5163
|
set filterModel(value) { this.#filterModel_accessor_storage = value; }
|
|
4647
|
-
|
|
4648
|
-
|
|
4649
|
-
|
|
4650
|
-
|
|
4651
|
-
|
|
4652
|
-
|
|
4653
|
-
|
|
4654
|
-
|
|
4655
|
-
|
|
4656
|
-
|
|
4657
|
-
|
|
4658
|
-
// }
|
|
4659
|
-
// }
|
|
5164
|
+
tableBody;
|
|
5165
|
+
#scrollMode$_accessor_storage = proxify((ValueModel));
|
|
5166
|
+
/**
|
|
5167
|
+
* 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
|
|
5168
|
+
* renders all rows but allows row heights to grow.
|
|
5169
|
+
*/
|
|
5170
|
+
get scrollMode$() { return this.#scrollMode$_accessor_storage; }
|
|
5171
|
+
set scrollMode$(value) { this.#scrollMode$_accessor_storage = value; }
|
|
5172
|
+
#scrollMode_accessor_storage;
|
|
5173
|
+
get scrollMode() { return this.#scrollMode_accessor_storage; }
|
|
5174
|
+
set scrollMode(value) { this.#scrollMode_accessor_storage = value; }
|
|
4660
5175
|
_footerContentAdded = false;
|
|
4661
5176
|
_filteredRows$ = this.registerDisposable(new DelegatingListModel());
|
|
4662
|
-
|
|
4663
|
-
pagedListModel;
|
|
5177
|
+
tableBodyScrollMode$;
|
|
4664
5178
|
constructor(injector) {
|
|
4665
5179
|
super(injector);
|
|
4666
|
-
const { when } = Dsl.disposeWith(this);
|
|
4667
|
-
this.
|
|
4668
|
-
|
|
5180
|
+
const { chain, when } = Dsl.disposeWith(this);
|
|
5181
|
+
this.tableBodyScrollMode$ = chain(this.enableScrolling$).map(enable => {
|
|
5182
|
+
return enable ? (this.scrollMode$.value ?? "virtual") : 'none';
|
|
5183
|
+
}, { dependsOn: this.scrollMode$ });
|
|
4669
5184
|
}
|
|
4670
5185
|
ngOnInit() {
|
|
4671
5186
|
super.ngOnInit();
|
|
5187
|
+
const { when } = Dsl.disposeWith(this);
|
|
4672
5188
|
if (CanProxy.hasTarget(this.filterModel)) {
|
|
4673
5189
|
this.registerDisposable(this.filterModel.bindToTable(this._dataSource$, this.getModel().textSearchPredicate$));
|
|
4674
5190
|
this.highlightText$.setDelegate(this.filterModel.highlightText$);
|
|
@@ -4677,50 +5193,27 @@ class TableComponent extends AbstractTableComponent {
|
|
|
4677
5193
|
else {
|
|
4678
5194
|
this._filteredRows$.setDelegate(this._dataSource$);
|
|
4679
5195
|
}
|
|
4680
|
-
this.
|
|
5196
|
+
this._visibleRows$.setDelegate(this._filteredRows$);
|
|
5197
|
+
// let users of the model know what the current visible and filtered rows are for selection models and what not
|
|
4681
5198
|
this.tableModel.bindToTable(this._filteredRows$, this._visibleRows$);
|
|
5199
|
+
when.anyOf(...this.tableModel.viewStateDependencies).changes(() => this.cdr.markForCheck());
|
|
5200
|
+
this.viewStateDependsOn(this._filteredRows$, this.tableModel.visibleColumns$);
|
|
4682
5201
|
}
|
|
4683
5202
|
getModel() {
|
|
4684
5203
|
return this.tableModel;
|
|
4685
5204
|
}
|
|
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
5205
|
footerContentChanged($event) {
|
|
4709
5206
|
// console.log($event);
|
|
4710
5207
|
this._footerContentAdded = true;
|
|
4711
5208
|
}
|
|
4712
|
-
//@Trace()
|
|
4713
|
-
updatePageSize(count) {
|
|
4714
|
-
this._pageSize.value = count;
|
|
4715
|
-
}
|
|
4716
5209
|
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",
|
|
5210
|
+
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
5211
|
{ provide: AbstractTableComponent, useExisting: TableComponent }
|
|
4719
|
-
], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"tableModel\"\n [
|
|
5212
|
+
], viewQueries: [{ propertyName: "tableBody", first: true, predicate: TableBodyComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"$any(tableModel)\"\n [footerRow]=\"tableModel.footerRowModel\"\n [showHeader$]=\"$any(showHeader$)\"\n [scrollMode$]=\"tableBodyScrollMode$\"\n [trackBy]=\"trackBy\"\n [aupHighlightTextModel]=\"highlightText$\"\n></aup-table-body>\n<section class=\"table-footer\">\n <div class=\"footer-content\"><ng-content select=\"[footer], [slot=footer]\"></ng-content></div>\n</section>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}aup-table-body{flex:1}.table-footer{display:flex;flex-direction:row;align-items:center}.table-footer .footer-content{flex:1}\n"], dependencies: [{ kind: "directive", type: HighlightTextModelDirective, selector: "[aupHighlightTextModel]", inputs: ["aupHighlightTextModel"] }, { kind: "component", type: TableBodyComponent, selector: "aup-table-body", inputs: ["data$", "tableModel", "footerRow", "showHeader$", "showHeader", "trackBy", "scrollMode$", "scrollMode"] }] });
|
|
4720
5213
|
}
|
|
4721
5214
|
__decorate([
|
|
4722
5215
|
Proxify(),
|
|
4723
|
-
__metadata("design:type",
|
|
5216
|
+
__metadata("design:type", TableModel)
|
|
4724
5217
|
], TableComponent.prototype, "tableModel", null);
|
|
4725
5218
|
__decorate([
|
|
4726
5219
|
Proxify(),
|
|
@@ -4728,24 +5221,27 @@ __decorate([
|
|
|
4728
5221
|
], TableComponent.prototype, "filterModel", null);
|
|
4729
5222
|
__decorate([
|
|
4730
5223
|
Proxify(),
|
|
4731
|
-
__metadata("design:type",
|
|
4732
|
-
], TableComponent.prototype, "
|
|
5224
|
+
__metadata("design:type", ValueModel)
|
|
5225
|
+
], TableComponent.prototype, "scrollMode$", null);
|
|
4733
5226
|
__decorate([
|
|
4734
5227
|
StoreInValueModel(),
|
|
4735
5228
|
__metadata("design:type", Object)
|
|
4736
|
-
], TableComponent.prototype, "
|
|
5229
|
+
], TableComponent.prototype, "scrollMode", null);
|
|
4737
5230
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TableComponent, decorators: [{
|
|
4738
5231
|
type: Component,
|
|
4739
5232
|
args: [{ selector: 'aup-table', providers: [
|
|
4740
5233
|
{ provide: AbstractTableComponent, useExisting: TableComponent }
|
|
4741
|
-
], template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"tableModel\"\n [
|
|
5234
|
+
], 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
5235
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { tableModel: [{
|
|
4743
5236
|
type: Input
|
|
4744
5237
|
}], filterModel: [{
|
|
4745
5238
|
type: Input
|
|
4746
|
-
}],
|
|
5239
|
+
}], tableBody: [{
|
|
5240
|
+
type: ViewChild,
|
|
5241
|
+
args: [TableBodyComponent]
|
|
5242
|
+
}], scrollMode$: [{
|
|
4747
5243
|
type: Input
|
|
4748
|
-
}],
|
|
5244
|
+
}], scrollMode: [{
|
|
4749
5245
|
type: Input
|
|
4750
5246
|
}] } });
|
|
4751
5247
|
|
|
@@ -4927,7 +5423,7 @@ var DecoratedTreeNode;
|
|
|
4927
5423
|
}
|
|
4928
5424
|
}
|
|
4929
5425
|
__decorate([
|
|
4930
|
-
|
|
5426
|
+
MemoizeGet(),
|
|
4931
5427
|
__metadata("design:type", Array),
|
|
4932
5428
|
__metadata("design:paramtypes", [])
|
|
4933
5429
|
], Decorator.prototype, "children", null);
|
|
@@ -4980,7 +5476,7 @@ var DecoratedTreeNode;
|
|
|
4980
5476
|
__metadata("design:returntype", Array)
|
|
4981
5477
|
], Decorator.prototype, "ancestors", null);
|
|
4982
5478
|
__decorate([
|
|
4983
|
-
|
|
5479
|
+
MemoizeGet(),
|
|
4984
5480
|
__metadata("design:type", Number),
|
|
4985
5481
|
__metadata("design:paramtypes", [])
|
|
4986
5482
|
], Decorator.prototype, "depth", null);
|
|
@@ -4991,8 +5487,8 @@ class TreeLabelColumnModel extends ColumnModel {
|
|
|
4991
5487
|
expansionModel;
|
|
4992
5488
|
labelFactory = () => undefined;
|
|
4993
5489
|
iconFactory;
|
|
4994
|
-
constructor(columnId, textPropertiesProvider, expansionModel) {
|
|
4995
|
-
super(columnId, textPropertiesProvider);
|
|
5490
|
+
constructor(columnId, order, textPropertiesProvider, expansionModel) {
|
|
5491
|
+
super(columnId, order, textPropertiesProvider);
|
|
4996
5492
|
this.expansionModel = expansionModel;
|
|
4997
5493
|
this.cellRenderer(TreeLabelCellRendererComponent);
|
|
4998
5494
|
}
|
|
@@ -5051,7 +5547,7 @@ class TreeTableModel extends AbstractTableModel {
|
|
|
5051
5547
|
get isExpandedPredicate$() {
|
|
5052
5548
|
return this._isExpandedPredicate$.readonly$;
|
|
5053
5549
|
}
|
|
5054
|
-
bindToTable(expansionModel, filteredRows$, visibleRows
|
|
5550
|
+
bindToTable(expansionModel, filteredRows$, visibleRows$, cdr) {
|
|
5055
5551
|
this.treeExpansionModel = expansionModel;
|
|
5056
5552
|
// TODO: Move all the expansion model stuff out of here and have things use the expansion model directly
|
|
5057
5553
|
this._isExpandedPredicate$.setDelegate(this.treeExpansionModel.isExpandedPredicate$);
|
|
@@ -5060,7 +5556,7 @@ class TreeTableModel extends AbstractTableModel {
|
|
|
5060
5556
|
}
|
|
5061
5557
|
treeControlColumn(builder) {
|
|
5062
5558
|
const columnId = 'tree-label';
|
|
5063
|
-
const column = new TreeLabelColumnModel(columnId, () => this.getColumnTextProperties(columnId), this);
|
|
5559
|
+
const column = new TreeLabelColumnModel(columnId, this.columnManager, () => this.getColumnTextProperties(columnId), this);
|
|
5064
5560
|
builder(column);
|
|
5065
5561
|
this.addColumn(column);
|
|
5066
5562
|
}
|
|
@@ -5386,11 +5882,15 @@ class TreeTableComponent extends AbstractTableComponent {
|
|
|
5386
5882
|
#expansionModel_accessor_storage = proxify((TreeExpansionModel));
|
|
5387
5883
|
get expansionModel() { return this.#expansionModel_accessor_storage; }
|
|
5388
5884
|
set expansionModel(value) { this.#expansionModel_accessor_storage = value; }
|
|
5885
|
+
scrollMode$;
|
|
5389
5886
|
constructor(injector) {
|
|
5390
5887
|
super(injector);
|
|
5888
|
+
const { chain } = Dsl.disposeWith(this);
|
|
5889
|
+
this.scrollMode$ = chain(this.enableScrolling$).map(enabled => enabled ? "classic" : "none");
|
|
5391
5890
|
}
|
|
5392
5891
|
ngOnInit() {
|
|
5393
5892
|
super.ngOnInit();
|
|
5893
|
+
const { when } = Dsl.disposeWith(this);
|
|
5394
5894
|
// TODO: clean up all this tightly coupled shit, should the expansion model really be separate from the tree model?
|
|
5395
5895
|
if (!this.expansionModel) {
|
|
5396
5896
|
this.expansionModel = new TreeExpansionModel({ disposedWith: this });
|
|
@@ -5399,7 +5899,10 @@ class TreeTableComponent extends AbstractTableComponent {
|
|
|
5399
5899
|
const visibleRows$ = new FlattenedTreeListModel(this._dataSource$, row => this.treeTableModel.childExtractor(row), this.expansionModel);
|
|
5400
5900
|
this._visibleRows$.setDelegate(visibleRows$);
|
|
5401
5901
|
this.expansionModel.bindToTable(this._dataSource$, visibleRows$);
|
|
5402
|
-
this.treeTableModel.bindToTable(this.expansionModel, visibleRows$, this._visibleRows
|
|
5902
|
+
this.treeTableModel.bindToTable(this.expansionModel, visibleRows$, this._visibleRows$, this.cdr);
|
|
5903
|
+
this.viewStateDependsOn(this.treeTableModel.visibleRows$);
|
|
5904
|
+
this.viewStateDependsOn(this.treeTableModel.visibleRows$);
|
|
5905
|
+
when.anyOf(...this.treeTableModel.viewStateDependencies).changes(() => this.cdr.markForCheck());
|
|
5403
5906
|
}
|
|
5404
5907
|
getModel() {
|
|
5405
5908
|
return this.treeTableModel;
|
|
@@ -5407,7 +5910,7 @@ class TreeTableComponent extends AbstractTableComponent {
|
|
|
5407
5910
|
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
5911
|
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
5912
|
{ provide: AbstractTableComponent, useExisting: TreeTableComponent }
|
|
5410
|
-
], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"treeTableModel\"\n [showHeader$]=\"showHeader$\"\n [
|
|
5913
|
+
], usesInheritance: true, ngImport: i0, template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"treeTableModel\"\n [showHeader$]=\"showHeader$\"\n [scrollMode$]=\"scrollMode$\"\n [aupHighlightTextModel]=\"highlightText$\"\n [trackBy]=\"trackBy\"\n></aup-table-body>\n", styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host::ng-deep td.mat-mdc-cell{border-top-width:0!important;border-bottom-width:0!important}:host::ng-deep td.mat-column-tree-label{width:1px}:host::ng-deep aup-table-cell-renderer[column-id=tree-label]{padding-left:8px!important}:host::ng-deep aup-tree-label-cell-renderer{flex:1}aup-table-body{flex:1}\n"], dependencies: [{ kind: "directive", type: HighlightTextModelDirective, selector: "[aupHighlightTextModel]", inputs: ["aupHighlightTextModel"] }, { kind: "component", type: TableBodyComponent, selector: "aup-table-body", inputs: ["data$", "tableModel", "footerRow", "showHeader$", "showHeader", "trackBy", "scrollMode$", "scrollMode"] }] });
|
|
5411
5914
|
}
|
|
5412
5915
|
__decorate([
|
|
5413
5916
|
Proxify(),
|
|
@@ -5421,7 +5924,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5421
5924
|
type: Component,
|
|
5422
5925
|
args: [{ selector: 'aup-tree-table', providers: [
|
|
5423
5926
|
{ provide: AbstractTableComponent, useExisting: TreeTableComponent }
|
|
5424
|
-
], template: "<aup-table-body [data$]=\"visibleRows$\"\n [tableModel]=\"treeTableModel\"\n [showHeader$]=\"showHeader$\"\n [
|
|
5927
|
+
], 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
5928
|
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { treeTableModel: [{
|
|
5426
5929
|
type: Input
|
|
5427
5930
|
}], expansionModel: [{
|
|
@@ -5603,6 +6106,7 @@ class ComponentsModule {
|
|
|
5603
6106
|
FocusableComponent,
|
|
5604
6107
|
CardContainerComponent,
|
|
5605
6108
|
TableComponent,
|
|
6109
|
+
TableRowAttributesDirective,
|
|
5606
6110
|
EditRowControlsComponent,
|
|
5607
6111
|
ColumnTemplateDirective,
|
|
5608
6112
|
DefaultCellRendererComponent,
|
|
@@ -5636,7 +6140,9 @@ class ComponentsModule {
|
|
|
5636
6140
|
MarkdownComponent,
|
|
5637
6141
|
TableBodyComponent,
|
|
5638
6142
|
TableMoreMenuComponent,
|
|
5639
|
-
TableMoreMenuPopupComponent
|
|
6143
|
+
TableMoreMenuPopupComponent,
|
|
6144
|
+
SearchInputComponent,
|
|
6145
|
+
TableFooterRow], imports: [CommonModule,
|
|
5640
6146
|
BrowserAnimationsModule,
|
|
5641
6147
|
FormsModule,
|
|
5642
6148
|
MatInputModule,
|
|
@@ -5655,7 +6161,10 @@ class ComponentsModule {
|
|
|
5655
6161
|
MatMenuModule,
|
|
5656
6162
|
MatDividerModule,
|
|
5657
6163
|
MatProgressSpinnerModule,
|
|
5658
|
-
MatProgressBarModule
|
|
6164
|
+
MatProgressBarModule,
|
|
6165
|
+
ScrollingModule,
|
|
6166
|
+
TableVirtualScrollModule], exports: [TableFooterRow,
|
|
6167
|
+
NumberInputComponent,
|
|
5659
6168
|
StringInputComponent,
|
|
5660
6169
|
TextInputComponent,
|
|
5661
6170
|
PasswordInputComponent,
|
|
@@ -5693,7 +6202,8 @@ class ComponentsModule {
|
|
|
5693
6202
|
LoadingContainerComponent,
|
|
5694
6203
|
MarkdownComponent,
|
|
5695
6204
|
TableMoreMenuComponent,
|
|
5696
|
-
TableMoreMenuPopupComponent
|
|
6205
|
+
TableMoreMenuPopupComponent,
|
|
6206
|
+
SearchInputComponent] });
|
|
5697
6207
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ComponentsModule, providers: [
|
|
5698
6208
|
FocusBindingFactory,
|
|
5699
6209
|
MarkdownService
|
|
@@ -5716,7 +6226,9 @@ class ComponentsModule {
|
|
|
5716
6226
|
MatMenuModule,
|
|
5717
6227
|
MatDividerModule,
|
|
5718
6228
|
MatProgressSpinnerModule,
|
|
5719
|
-
MatProgressBarModule
|
|
6229
|
+
MatProgressBarModule,
|
|
6230
|
+
ScrollingModule,
|
|
6231
|
+
TableVirtualScrollModule] });
|
|
5720
6232
|
}
|
|
5721
6233
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ComponentsModule, decorators: [{
|
|
5722
6234
|
type: NgModule,
|
|
@@ -5741,7 +6253,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5741
6253
|
MatMenuModule,
|
|
5742
6254
|
MatDividerModule,
|
|
5743
6255
|
MatProgressSpinnerModule,
|
|
5744
|
-
MatProgressBarModule
|
|
6256
|
+
MatProgressBarModule,
|
|
6257
|
+
ScrollingModule,
|
|
6258
|
+
TableVirtualScrollModule
|
|
5745
6259
|
],
|
|
5746
6260
|
declarations: [
|
|
5747
6261
|
AbstractInputComponent,
|
|
@@ -5765,6 +6279,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5765
6279
|
FocusableComponent,
|
|
5766
6280
|
CardContainerComponent,
|
|
5767
6281
|
TableComponent,
|
|
6282
|
+
TableRowAttributesDirective,
|
|
5768
6283
|
EditRowControlsComponent,
|
|
5769
6284
|
ColumnTemplateDirective,
|
|
5770
6285
|
DefaultCellRendererComponent,
|
|
@@ -5799,8 +6314,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5799
6314
|
TableBodyComponent,
|
|
5800
6315
|
TableMoreMenuComponent,
|
|
5801
6316
|
TableMoreMenuPopupComponent,
|
|
6317
|
+
SearchInputComponent,
|
|
6318
|
+
TableFooterRow
|
|
5802
6319
|
],
|
|
5803
6320
|
exports: [
|
|
6321
|
+
TableFooterRow,
|
|
5804
6322
|
NumberInputComponent,
|
|
5805
6323
|
StringInputComponent,
|
|
5806
6324
|
TextInputComponent,
|
|
@@ -5840,6 +6358,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5840
6358
|
MarkdownComponent,
|
|
5841
6359
|
TableMoreMenuComponent,
|
|
5842
6360
|
TableMoreMenuPopupComponent,
|
|
6361
|
+
SearchInputComponent
|
|
5843
6362
|
],
|
|
5844
6363
|
providers: [
|
|
5845
6364
|
FocusBindingFactory,
|
|
@@ -5848,6 +6367,73 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5848
6367
|
}]
|
|
5849
6368
|
}] });
|
|
5850
6369
|
|
|
6370
|
+
class LoadableComponent extends DisposableComponent {
|
|
6371
|
+
#_loaded$ = new MutableValueModel();
|
|
6372
|
+
#asyncLoadables = [];
|
|
6373
|
+
#awaitedLoadables = [];
|
|
6374
|
+
get loaded$() {
|
|
6375
|
+
return this.#_loaded$.readonly$;
|
|
6376
|
+
}
|
|
6377
|
+
ngOnInit() {
|
|
6378
|
+
super.ngOnInit();
|
|
6379
|
+
this.#asyncLoadables.forEach(it => it.ensureLoaded());
|
|
6380
|
+
if (this.#awaitedLoadables.length > 0) {
|
|
6381
|
+
Promise.all(this.#awaitedLoadables.map(it => {
|
|
6382
|
+
return it.ensureLoaded(); //.then(() => console.log(`${it.constructor.name} loaded`));
|
|
6383
|
+
})).then(() => {
|
|
6384
|
+
this.#_loaded$.value = true;
|
|
6385
|
+
});
|
|
6386
|
+
}
|
|
6387
|
+
else {
|
|
6388
|
+
this.#_loaded$.value = true;
|
|
6389
|
+
}
|
|
6390
|
+
}
|
|
6391
|
+
injectLoadable(token, options) {
|
|
6392
|
+
return this.registerLoadable(inject(token, options), options);
|
|
6393
|
+
}
|
|
6394
|
+
registerLoadable(loadable, options) {
|
|
6395
|
+
if (this.loaded$.value) {
|
|
6396
|
+
loadable.ensureLoaded();
|
|
6397
|
+
}
|
|
6398
|
+
else {
|
|
6399
|
+
if (!options || options.wait === true) {
|
|
6400
|
+
this.#awaitedLoadables.push(loadable);
|
|
6401
|
+
}
|
|
6402
|
+
else {
|
|
6403
|
+
this.#asyncLoadables.push(loadable);
|
|
6404
|
+
}
|
|
6405
|
+
}
|
|
6406
|
+
return loadable;
|
|
6407
|
+
}
|
|
6408
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
6409
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: LoadableComponent, usesInheritance: true, ngImport: i0 });
|
|
6410
|
+
}
|
|
6411
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: LoadableComponent, decorators: [{
|
|
6412
|
+
type: Directive
|
|
6413
|
+
}] });
|
|
6414
|
+
|
|
6415
|
+
class TextSearchContext {
|
|
6416
|
+
row;
|
|
6417
|
+
searchText;
|
|
6418
|
+
searchRegex;
|
|
6419
|
+
constructor(row, searchText, searchRegex) {
|
|
6420
|
+
this.row = row;
|
|
6421
|
+
this.searchText = searchText;
|
|
6422
|
+
this.searchRegex = searchRegex;
|
|
6423
|
+
}
|
|
6424
|
+
getOrCreate(type, create) {
|
|
6425
|
+
}
|
|
6426
|
+
matchesText(text) {
|
|
6427
|
+
return this.searchRegex.test(text);
|
|
6428
|
+
}
|
|
6429
|
+
}
|
|
6430
|
+
|
|
6431
|
+
class AbstractCellRenderer extends LoadableComponent {
|
|
6432
|
+
constructor() {
|
|
6433
|
+
super();
|
|
6434
|
+
}
|
|
6435
|
+
}
|
|
6436
|
+
|
|
5851
6437
|
/**
|
|
5852
6438
|
* @file Automatically generated by barrelsby.
|
|
5853
6439
|
*/
|
|
@@ -5874,7 +6460,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5874
6460
|
* </aup-activity-actions>
|
|
5875
6461
|
*/
|
|
5876
6462
|
class ActivityActionsComponent extends DisposableComponent {
|
|
5877
|
-
cdr;
|
|
5878
6463
|
confirmCommandComponent;
|
|
5879
6464
|
cancelCommandComponent;
|
|
5880
6465
|
#confirmCommand_accessor_storage = proxify((Command));
|
|
@@ -5903,9 +6488,9 @@ class ActivityActionsComponent extends DisposableComponent {
|
|
|
5903
6488
|
}
|
|
5904
6489
|
layout = ActivityActionsComponent.Layout.BLOCK;
|
|
5905
6490
|
align = ActivityActionsComponent.Align.STRETCH;
|
|
5906
|
-
|
|
6491
|
+
alignContent = ActivityActionsComponent.AlignContent.CENTER;
|
|
6492
|
+
constructor() {
|
|
5907
6493
|
super();
|
|
5908
|
-
this.cdr = cdr;
|
|
5909
6494
|
}
|
|
5910
6495
|
hasConfirmFace() {
|
|
5911
6496
|
return !!this.confirmFace;
|
|
@@ -5924,8 +6509,8 @@ class ActivityActionsComponent extends DisposableComponent {
|
|
|
5924
6509
|
focusCancel() {
|
|
5925
6510
|
this.cancelCommandComponent.requestFocus();
|
|
5926
6511
|
}
|
|
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=\"
|
|
6512
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
6513
|
+
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
6514
|
}
|
|
5930
6515
|
__decorate([
|
|
5931
6516
|
Proxify(),
|
|
@@ -5937,8 +6522,8 @@ __decorate([
|
|
|
5937
6522
|
], ActivityActionsComponent.prototype, "cancelCommand", null);
|
|
5938
6523
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityActionsComponent, decorators: [{
|
|
5939
6524
|
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 [
|
|
6525
|
+
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"] }]
|
|
6526
|
+
}], ctorParameters: function () { return []; }, propDecorators: { confirmCommandComponent: [{
|
|
5942
6527
|
type: ViewChild,
|
|
5943
6528
|
args: ["confirmCommandComponent"]
|
|
5944
6529
|
}], cancelCommandComponent: [{
|
|
@@ -5966,6 +6551,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5966
6551
|
}, {
|
|
5967
6552
|
type: HostBinding,
|
|
5968
6553
|
args: ['attr.align']
|
|
6554
|
+
}], alignContent: [{
|
|
6555
|
+
type: Input
|
|
6556
|
+
}, {
|
|
6557
|
+
type: HostBinding,
|
|
6558
|
+
args: ['attr.align-content']
|
|
5969
6559
|
}] } });
|
|
5970
6560
|
(function (ActivityActionsComponent) {
|
|
5971
6561
|
ActivityActionsComponent.Layout = Enum({
|
|
@@ -5974,14 +6564,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
5974
6564
|
});
|
|
5975
6565
|
ActivityActionsComponent.Align = Enum({
|
|
5976
6566
|
START: 'start',
|
|
5977
|
-
|
|
5978
|
-
|
|
6567
|
+
STRETCH: 'stretch',
|
|
6568
|
+
END: 'end'
|
|
6569
|
+
});
|
|
6570
|
+
ActivityActionsComponent.AlignContent = Enum({
|
|
6571
|
+
START: 'start',
|
|
6572
|
+
CENTER: 'center',
|
|
6573
|
+
END: 'end'
|
|
5979
6574
|
});
|
|
5980
6575
|
})(ActivityActionsComponent || (ActivityActionsComponent = {}));
|
|
5981
6576
|
|
|
5982
6577
|
const ACTIVITY_DATA = new InjectionToken("InteractionActivityData");
|
|
5983
6578
|
// eslint-disable-next-line @angular-eslint/component-class-suffix
|
|
5984
|
-
class Activity extends
|
|
6579
|
+
class Activity extends LoadableComponent {
|
|
5985
6580
|
activityData = inject(ACTIVITY_DATA);
|
|
5986
6581
|
activityReadyListeners = new EventListenerList();
|
|
5987
6582
|
_busy$ = this.registerDisposable(new DelegatingValueModel().withDefault(false));
|
|
@@ -6036,7 +6631,6 @@ class Activity extends DisposableComponent {
|
|
|
6036
6631
|
notifyActivityReady() {
|
|
6037
6632
|
this.activityReadyListeners.fire(l => l(this));
|
|
6038
6633
|
this._ready$.value = true;
|
|
6039
|
-
console.log("ready");
|
|
6040
6634
|
}
|
|
6041
6635
|
onActivityReady(callback) {
|
|
6042
6636
|
return this.activityReadyListeners.add(callback);
|
|
@@ -6156,7 +6750,7 @@ class AbstractDialogComponent extends Activity {
|
|
|
6156
6750
|
}
|
|
6157
6751
|
}
|
|
6158
6752
|
isDestructive() {
|
|
6159
|
-
return isFunction
|
|
6753
|
+
return isFunction(this.config['destructive']) && this.config["destructive"]();
|
|
6160
6754
|
}
|
|
6161
6755
|
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
6756
|
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 +6767,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
6173
6767
|
|
|
6174
6768
|
class AbstractConfirmDialogComponent extends AbstractDialogComponent {
|
|
6175
6769
|
cancelFace;
|
|
6770
|
+
confirmClass = "aup-confirm-activity";
|
|
6176
6771
|
constructor(config) {
|
|
6177
6772
|
super(config);
|
|
6178
6773
|
this.cancelFace = {
|
|
@@ -6183,7 +6778,7 @@ class AbstractConfirmDialogComponent extends AbstractDialogComponent {
|
|
|
6183
6778
|
});
|
|
6184
6779
|
}
|
|
6185
6780
|
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 });
|
|
6781
|
+
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
6782
|
}
|
|
6188
6783
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AbstractConfirmDialogComponent, decorators: [{
|
|
6189
6784
|
type: Component,
|
|
@@ -6193,7 +6788,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
6193
6788
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
6194
6789
|
type: Inject,
|
|
6195
6790
|
args: [ALERT_CONFIG]
|
|
6196
|
-
}] }]; }
|
|
6791
|
+
}] }]; }, propDecorators: { confirmClass: [{
|
|
6792
|
+
type: HostBinding,
|
|
6793
|
+
args: ["class"]
|
|
6794
|
+
}] } });
|
|
6197
6795
|
|
|
6198
6796
|
class ActivityBodyComponent extends DisposableComponent {
|
|
6199
6797
|
fullWidth = false;
|
|
@@ -6732,7 +7330,7 @@ const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');
|
|
|
6732
7330
|
// return true;
|
|
6733
7331
|
// }
|
|
6734
7332
|
// }
|
|
6735
|
-
class PlaceComponent extends
|
|
7333
|
+
class PlaceComponent extends LoadableComponent {
|
|
6736
7334
|
_placeReadyCallbacks = [];
|
|
6737
7335
|
visitModel = new MutableValueModel();
|
|
6738
7336
|
_inVisitUpdate = new Guard();
|
|
@@ -6789,6 +7387,7 @@ class PlaceComponent extends DisposableComponent {
|
|
|
6789
7387
|
*/
|
|
6790
7388
|
installAndInitialiseBinding(initialVisit, parameterDef) {
|
|
6791
7389
|
const model = this[parameterDef.propertyName];
|
|
7390
|
+
assert.notNil(model);
|
|
6792
7391
|
DebugContext.tag(model, `${this.placeDefinition.component.name}.${parameterDef.propertyName}`);
|
|
6793
7392
|
const binding = this.registerDisposable(new Binding(this.visitModel, model, {
|
|
6794
7393
|
toRight(visit) {
|
|
@@ -6873,7 +7472,7 @@ class PlaceComponent extends DisposableComponent {
|
|
|
6873
7472
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: PlaceComponent, usesInheritance: true, ngImport: i0 });
|
|
6874
7473
|
}
|
|
6875
7474
|
__decorate([
|
|
6876
|
-
|
|
7475
|
+
MemoizeGet(),
|
|
6877
7476
|
__metadata("design:type", PlaceDefinition),
|
|
6878
7477
|
__metadata("design:paramtypes", [])
|
|
6879
7478
|
], PlaceComponent.prototype, "placeDefinition", null);
|
|
@@ -7063,7 +7662,7 @@ class Visit {
|
|
|
7063
7662
|
getRouterCommands() {
|
|
7064
7663
|
return this.segments.reduce((result, v) => {
|
|
7065
7664
|
const path = v.placeDefinition.path;
|
|
7066
|
-
return isEmpty
|
|
7665
|
+
return isEmpty(path) ?
|
|
7067
7666
|
[...result, path] : // Angular doesn't support route params on empty path segments
|
|
7068
7667
|
[...result, path, ...v.createRouterCommands()];
|
|
7069
7668
|
}, []);
|
|
@@ -7079,7 +7678,7 @@ class Visit {
|
|
|
7079
7678
|
}
|
|
7080
7679
|
}
|
|
7081
7680
|
__decorate([
|
|
7082
|
-
Memoize
|
|
7681
|
+
Memoize(),
|
|
7083
7682
|
__metadata("design:type", Function),
|
|
7084
7683
|
__metadata("design:paramtypes", [PlaceDefinition]),
|
|
7085
7684
|
__metadata("design:returntype", VisitSegment)
|
|
@@ -7460,10 +8059,7 @@ class SynchroniseInteractionContextIdsWithRoute extends NavigationSession {
|
|
|
7460
8059
|
return true;
|
|
7461
8060
|
}
|
|
7462
8061
|
notifyActive() {
|
|
7463
|
-
|
|
7464
|
-
setTimeout(() => {
|
|
7465
|
-
this.syncInteractionIdsWithRouter();
|
|
7466
|
-
});
|
|
8062
|
+
this.syncInteractionIdsWithRouter();
|
|
7467
8063
|
}
|
|
7468
8064
|
// @Trace()
|
|
7469
8065
|
onRouterEnd(event) {
|
|
@@ -8206,7 +8802,7 @@ class ConsolidatedParameterMap {
|
|
|
8206
8802
|
}
|
|
8207
8803
|
}
|
|
8208
8804
|
__decorate([
|
|
8209
|
-
|
|
8805
|
+
MemoizeGet(),
|
|
8210
8806
|
__metadata("design:type", Array),
|
|
8211
8807
|
__metadata("design:paramtypes", [])
|
|
8212
8808
|
], ConsolidatedParameterMap.prototype, "keys", null);
|
|
@@ -8284,7 +8880,7 @@ class UrlSnapshot {
|
|
|
8284
8880
|
return this.getPrimaryUrlSegments().find(s => s.path === placeDef.path);
|
|
8285
8881
|
}
|
|
8286
8882
|
isLastPlaceInUrl(placeDef) {
|
|
8287
|
-
return last
|
|
8883
|
+
return last(this.getPrimaryUrlSegments()).path === placeDef.path;
|
|
8288
8884
|
}
|
|
8289
8885
|
createVisitSegmentFor(placeDef) {
|
|
8290
8886
|
return new VisitSegment(placeDef, new ConsolidatedParameterMap(this.getPrimaryUrlSegments()));
|
|
@@ -8400,7 +8996,7 @@ class UrlService {
|
|
|
8400
8996
|
back() {
|
|
8401
8997
|
this.angularLocation.back();
|
|
8402
8998
|
}
|
|
8403
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: UrlService, deps: [{ token: i1$
|
|
8999
|
+
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
9000
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: UrlService, providedIn: 'root' });
|
|
8405
9001
|
}
|
|
8406
9002
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: UrlService, decorators: [{
|
|
@@ -8408,7 +9004,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
8408
9004
|
args: [{
|
|
8409
9005
|
providedIn: 'root'
|
|
8410
9006
|
}]
|
|
8411
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
9007
|
+
}], ctorParameters: function () { return [{ type: i1$5.Router }, { type: i1$1.Location }, { type: i1$5.UrlSerializer }]; } });
|
|
8412
9008
|
|
|
8413
9009
|
// function asArray<T>(item: T | T[]): T[] {
|
|
8414
9010
|
// return Array.isArray(item) ? item : [item];
|
|
@@ -8428,6 +9024,8 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8428
9024
|
routerInteractionAdapter;
|
|
8429
9025
|
sessionFinishedJobs = [];
|
|
8430
9026
|
authService = new PlaceAuthService();
|
|
9027
|
+
_ready$ = this.registerDisposable(new DelegatingValueModel().withDefault(true));
|
|
9028
|
+
ready$ = this._ready$.readonly$;
|
|
8431
9029
|
constructor(angularRouter, angularLocation, interactionService, urlService, placeHistory) {
|
|
8432
9030
|
super();
|
|
8433
9031
|
this.angularRouter = angularRouter;
|
|
@@ -8449,7 +9047,7 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8449
9047
|
});
|
|
8450
9048
|
const { chain } = Dsl.disposeWith(this);
|
|
8451
9049
|
this.navigationInProgress$ = chain(this.navigationSession$).isNotNil();
|
|
8452
|
-
this.interactionSyncInProgress$ = chain(this.navigationSession$).pluck("isInteractionSync");
|
|
9050
|
+
this.interactionSyncInProgress$ = chain(this.navigationSession$).pluck("isInteractionSync").otherwise(false);
|
|
8453
9051
|
const idleStateName = chain(this.interactionService.active).map(active => active ? "IdleDuringInteraction" : "Idle");
|
|
8454
9052
|
this.navigationSessionName$ = chain(this.navigationSession$)
|
|
8455
9053
|
.pluck("name")
|
|
@@ -8493,6 +9091,9 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8493
9091
|
// the back button was clicked.
|
|
8494
9092
|
angularLocation.onUrlChange(url => this.onUrlChanged(url));
|
|
8495
9093
|
}
|
|
9094
|
+
postponeRoutingUntil(condition$) {
|
|
9095
|
+
this._ready$.setDelegate(condition$);
|
|
9096
|
+
}
|
|
8496
9097
|
getAuthenticationFailureRedirect(activatedRoute, state) {
|
|
8497
9098
|
return this.authService.getAuthenticationFailureRedirect(activatedRoute, state);
|
|
8498
9099
|
}
|
|
@@ -8508,23 +9109,20 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8508
9109
|
isNavigating() {
|
|
8509
9110
|
return this.navigationInProgress$.value;
|
|
8510
9111
|
}
|
|
8511
|
-
|
|
8512
|
-
const {
|
|
8513
|
-
|
|
8514
|
-
|
|
8515
|
-
|
|
8516
|
-
|
|
8517
|
-
|
|
8518
|
-
|
|
9112
|
+
async waitUntilRouterReady() {
|
|
9113
|
+
const { waitUntil } = Dsl.disposeWith(this);
|
|
9114
|
+
await waitUntil(this.ready$).becomesTruthy();
|
|
9115
|
+
return this;
|
|
9116
|
+
}
|
|
9117
|
+
async waitUntilIdle() {
|
|
9118
|
+
const { waitUntil } = Dsl.disposeWith(this);
|
|
9119
|
+
await waitUntil(this.navigationInProgress$).becomesFalsey();
|
|
9120
|
+
return this;
|
|
8519
9121
|
}
|
|
8520
9122
|
async waitActivitiesSynchronised() {
|
|
8521
|
-
const {
|
|
8522
|
-
|
|
8523
|
-
|
|
8524
|
-
initialValue: "evaluate",
|
|
8525
|
-
once: true
|
|
8526
|
-
});
|
|
8527
|
-
});
|
|
9123
|
+
const { waitUntil } = Dsl.disposeWith(this);
|
|
9124
|
+
await waitUntil(this.interactionSyncInProgress$).becomesFalsey();
|
|
9125
|
+
return this;
|
|
8528
9126
|
}
|
|
8529
9127
|
// @Trace()
|
|
8530
9128
|
onPopState(event) {
|
|
@@ -8710,7 +9308,7 @@ class PlaceRouter extends GarbageCollector {
|
|
|
8710
9308
|
return Visit.goto(visitOrPlaceComponent, params);
|
|
8711
9309
|
}
|
|
8712
9310
|
}
|
|
8713
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceRouter, deps: [{ token: i1$
|
|
9311
|
+
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
9312
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceRouter, providedIn: "root" });
|
|
8715
9313
|
}
|
|
8716
9314
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceRouter, decorators: [{
|
|
@@ -8718,7 +9316,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
8718
9316
|
args: [{
|
|
8719
9317
|
providedIn: "root"
|
|
8720
9318
|
}]
|
|
8721
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
9319
|
+
}], ctorParameters: function () { return [{ type: i1$5.Router }, { type: i1$1.Location }, { type: InteractionService }, { type: UrlService }, { type: PlaceHistory }]; } });
|
|
8722
9320
|
|
|
8723
9321
|
class ActivityTitleComponent extends DisposableComponent {
|
|
8724
9322
|
_color;
|
|
@@ -8740,11 +9338,11 @@ class ActivityTitleComponent extends DisposableComponent {
|
|
|
8740
9338
|
return this._color;
|
|
8741
9339
|
}
|
|
8742
9340
|
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:
|
|
9341
|
+
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
9342
|
}
|
|
8745
9343
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityTitleComponent, decorators: [{
|
|
8746
9344
|
type: Component,
|
|
8747
|
-
args: [{ selector: 'aup-activity-title', template: "<ng-content></ng-content>\n", styles: [":host{display:
|
|
9345
|
+
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
9346
|
}], propDecorators: { hasTransparentBackground: [{
|
|
8749
9347
|
type: Input
|
|
8750
9348
|
}, {
|
|
@@ -8765,7 +9363,7 @@ class AlertDialogComponent extends AbstractDialogComponent {
|
|
|
8765
9363
|
});
|
|
8766
9364
|
}
|
|
8767
9365
|
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"] }] });
|
|
9366
|
+
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
9367
|
}
|
|
8770
9368
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AlertDialogComponent, decorators: [{
|
|
8771
9369
|
type: Component,
|
|
@@ -8785,7 +9383,7 @@ class ConfirmThenDialogComponent extends AbstractConfirmDialogComponent {
|
|
|
8785
9383
|
});
|
|
8786
9384
|
}
|
|
8787
9385
|
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"] }] });
|
|
9386
|
+
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
9387
|
}
|
|
8790
9388
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ConfirmThenDialogComponent, decorators: [{
|
|
8791
9389
|
type: Component,
|
|
@@ -8809,7 +9407,7 @@ class ConfirmThenExecuteDialogComponent extends AbstractConfirmDialogComponent {
|
|
|
8809
9407
|
});
|
|
8810
9408
|
}
|
|
8811
9409
|
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"] }] });
|
|
9410
|
+
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
9411
|
}
|
|
8814
9412
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ConfirmThenExecuteDialogComponent, decorators: [{
|
|
8815
9413
|
type: Component,
|
|
@@ -8829,7 +9427,7 @@ class ConfirmationDialogComponent extends AbstractConfirmDialogComponent {
|
|
|
8829
9427
|
});
|
|
8830
9428
|
}
|
|
8831
9429
|
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"] }] });
|
|
9430
|
+
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
9431
|
}
|
|
8834
9432
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
|
|
8835
9433
|
type: Component,
|
|
@@ -9009,6 +9607,7 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9009
9607
|
tabs;
|
|
9010
9608
|
activityOutlets;
|
|
9011
9609
|
activityRefs = [];
|
|
9610
|
+
animationDuration = "500ms";
|
|
9012
9611
|
_identifier;
|
|
9013
9612
|
_deferredCleanUp;
|
|
9014
9613
|
interactionServiceApi;
|
|
@@ -9021,6 +9620,7 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9021
9620
|
busy = this.registerDisposable(new DelegatingValueModel().withDefault(false));
|
|
9022
9621
|
syncTabsJob = undefined;
|
|
9023
9622
|
stable$;
|
|
9623
|
+
wasActive = false;
|
|
9024
9624
|
constructor(placeRouter) {
|
|
9025
9625
|
super();
|
|
9026
9626
|
this.placeRouter = placeRouter;
|
|
@@ -9057,7 +9657,12 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9057
9657
|
* Returns true if an activity is currently running.
|
|
9058
9658
|
*/
|
|
9059
9659
|
isActive() {
|
|
9060
|
-
|
|
9660
|
+
const isActive = this.getActiveActivityCount() > 0;
|
|
9661
|
+
// if (this.wasActive !== isActive) {
|
|
9662
|
+
// console.log({was: this.wasActive, is: isActive});
|
|
9663
|
+
// }
|
|
9664
|
+
// this.wasActive = isActive
|
|
9665
|
+
return isActive;
|
|
9061
9666
|
}
|
|
9062
9667
|
registerDisposable(disposable) {
|
|
9063
9668
|
return this.garbage.registerDisposable(disposable);
|
|
@@ -9140,7 +9745,7 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9140
9745
|
// by activity index)
|
|
9141
9746
|
setTimeout(() => {
|
|
9142
9747
|
this.activityRefs = []; // we have to do it after the animation timeout or the activity disappears before the animatin finsihes
|
|
9143
|
-
}, this.
|
|
9748
|
+
}, this.getTabAnimationDurationInMillis());
|
|
9144
9749
|
const promise = this.interactionServiceApi.notifyFinished(this);
|
|
9145
9750
|
this._deferredCleanUp = promise
|
|
9146
9751
|
.finally(() => {
|
|
@@ -9166,7 +9771,6 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9166
9771
|
/**
|
|
9167
9772
|
* Synchronises the selected tab index.
|
|
9168
9773
|
*/
|
|
9169
|
-
// @Trace()
|
|
9170
9774
|
synchroniseSelectedTabIndex() {
|
|
9171
9775
|
assert.isTruthy(this.isActive());
|
|
9172
9776
|
const previousIndex = this.tabs.selectedIndex;
|
|
@@ -9178,10 +9782,10 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9178
9782
|
activityRef.setFocused(false);
|
|
9179
9783
|
this.busy.setDelegate(activityRef.activityBusy);
|
|
9180
9784
|
this.tabs.selectedIndex = newIndex;
|
|
9181
|
-
if (this.ready$.value) {
|
|
9182
|
-
|
|
9183
|
-
|
|
9184
|
-
}
|
|
9785
|
+
// if (this.ready$.value) {
|
|
9786
|
+
// // Note: We're not using the animation done event as it's firing almost immeadiately.
|
|
9787
|
+
// setTimeout(() => this.finaliseActivityStates(), animate ? this.getTabAnimationDurationInMillis() : 0);
|
|
9788
|
+
// }
|
|
9185
9789
|
}
|
|
9186
9790
|
}
|
|
9187
9791
|
finaliseActivityStates() {
|
|
@@ -9195,7 +9799,12 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9195
9799
|
return this.activityOutlets.toArray()[this.tabs.selectedIndex];
|
|
9196
9800
|
}
|
|
9197
9801
|
getTabAnimationDuration() {
|
|
9198
|
-
const
|
|
9802
|
+
// const s = this._started$.value ? this.animationDuration : "0";
|
|
9803
|
+
// return s
|
|
9804
|
+
return this.animationDuration;
|
|
9805
|
+
}
|
|
9806
|
+
getTabAnimationDurationInMillis() {
|
|
9807
|
+
const match = this.animationDuration.match(/(\d+)(.*)/);
|
|
9199
9808
|
const numericValue = parseFloat(match[1]);
|
|
9200
9809
|
switch (match[2].trim()) {
|
|
9201
9810
|
case "ms":
|
|
@@ -9221,12 +9830,16 @@ class ActivityContainerComponent extends AbstractInteractionContext {
|
|
|
9221
9830
|
}
|
|
9222
9831
|
}, 75);
|
|
9223
9832
|
}
|
|
9833
|
+
onAnimationDone() {
|
|
9834
|
+
this._started$.value = true;
|
|
9835
|
+
this.finaliseActivityStates();
|
|
9836
|
+
}
|
|
9224
9837
|
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$
|
|
9838
|
+
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
9839
|
}
|
|
9227
9840
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ActivityContainerComponent, decorators: [{
|
|
9228
9841
|
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"] }]
|
|
9842
|
+
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
9843
|
}], ctorParameters: function () { return [{ type: PlaceRouter }]; }, propDecorators: { dynamicHeight: [{
|
|
9231
9844
|
type: Input
|
|
9232
9845
|
}], tabs: [{
|
|
@@ -9235,6 +9848,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
9235
9848
|
}], activityOutlets: [{
|
|
9236
9849
|
type: ViewChildren,
|
|
9237
9850
|
args: [ActivityOutletComponent]
|
|
9851
|
+
}], animationDuration: [{
|
|
9852
|
+
type: Input
|
|
9238
9853
|
}] } });
|
|
9239
9854
|
|
|
9240
9855
|
class AbstractActivityTriggerComponent extends DisposableComponent {
|
|
@@ -9335,14 +9950,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
9335
9950
|
args: ['class.active']
|
|
9336
9951
|
}] } });
|
|
9337
9952
|
|
|
9338
|
-
const
|
|
9953
|
+
const INTERACTION_CONTEXT = new InjectionToken('interactionContext');
|
|
9954
|
+
|
|
9955
|
+
const cssDurationRegex$1 = /(\d+)(m?s)/;
|
|
9339
9956
|
/**
|
|
9340
9957
|
* @example
|
|
9341
9958
|
* <aup-in-place-interaction-context #inPlaceInteractionContext>
|
|
9342
9959
|
* </aup-in-place-interaction-context>
|
|
9343
9960
|
*
|
|
9344
9961
|
* in your component
|
|
9345
|
-
* @ViewChild(
|
|
9962
|
+
* @ViewChild(InPlaceInteractionContextComponent)
|
|
9346
9963
|
* interactionContext: InteractionContext;
|
|
9347
9964
|
*
|
|
9348
9965
|
*
|
|
@@ -9361,11 +9978,13 @@ class InPlaceInteractionContextComponent extends DisposableComponent {
|
|
|
9361
9978
|
* active interactions.
|
|
9362
9979
|
*/
|
|
9363
9980
|
syncWithRoutes = true;
|
|
9981
|
+
started = new EventEmitter();
|
|
9982
|
+
finished = new EventEmitter();
|
|
9364
9983
|
get animationDuration() {
|
|
9365
9984
|
return this.animateFirstActivity ? (this.tabConfig?.animationDuration || "500ms") : "0ms";
|
|
9366
9985
|
}
|
|
9367
9986
|
get animationDurationMillis() {
|
|
9368
|
-
const result = cssDurationRegex.exec(this.animationDuration);
|
|
9987
|
+
const result = cssDurationRegex$1.exec(this.animationDuration);
|
|
9369
9988
|
if (!result) {
|
|
9370
9989
|
lang.illegalState(`unsupported css duration: ${this.animationDuration}`);
|
|
9371
9990
|
}
|
|
@@ -9387,11 +10006,16 @@ class InPlaceInteractionContextComponent extends DisposableComponent {
|
|
|
9387
10006
|
this.interactionService.registerInplaceInteractionContext(this);
|
|
9388
10007
|
}
|
|
9389
10008
|
else {
|
|
10009
|
+
const self = this;
|
|
9390
10010
|
this.activityContainerComponent.initialise("dont-care", {
|
|
9391
10011
|
async notifyActive(interactionContext) {
|
|
10012
|
+
self.started.emit();
|
|
9392
10013
|
return undefined;
|
|
9393
10014
|
},
|
|
9394
10015
|
async notifyFinished(interactionContext) {
|
|
10016
|
+
// I've noticed some rendering fails when returning the the transcluded content we'll fire an event
|
|
10017
|
+
// so components can do stuff if they need to.
|
|
10018
|
+
self.started.emit();
|
|
9395
10019
|
return undefined;
|
|
9396
10020
|
}
|
|
9397
10021
|
});
|
|
@@ -9438,11 +10062,15 @@ class InPlaceInteractionContextComponent extends DisposableComponent {
|
|
|
9438
10062
|
}
|
|
9439
10063
|
}
|
|
9440
10064
|
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" },
|
|
10065
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: InPlaceInteractionContextComponent, selector: "aup-in-place-interaction-context", inputs: { animateFirstActivity: "animateFirstActivity", syncWithRoutes: "syncWithRoutes" }, outputs: { started: "started", finished: "finished" }, host: { properties: { "class.active": "this.active" } }, providers: [
|
|
10066
|
+
{ provide: INTERACTION_CONTEXT, useExisting: InPlaceInteractionContextComponent }
|
|
10067
|
+
], 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
10068
|
}
|
|
9443
10069
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InPlaceInteractionContextComponent, decorators: [{
|
|
9444
10070
|
type: Component,
|
|
9445
|
-
args: [{ selector: "aup-in-place-interaction-context",
|
|
10071
|
+
args: [{ selector: "aup-in-place-interaction-context", providers: [
|
|
10072
|
+
{ provide: INTERACTION_CONTEXT, useExisting: InPlaceInteractionContextComponent }
|
|
10073
|
+
], template: "<mat-tab-group no-tab-header [selectedIndex]=\"isActive() ? 1 : 0\" full-height-tabs\n (selectedTabChange)=\"onTabChanged($event)\"\n [dynamicHeight]=\"false\"\n [animationDuration]=\"animationDuration\">\n <mat-tab>\n <ng-content></ng-content>\n </mat-tab>\n <mat-tab>\n <aup-activity-container #activityContainer [dynamicHeight]=\"false\"></aup-activity-container>\n </mat-tab>\n</mat-tab-group>\n\n", styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}aup-activity-container{flex:1}\n"] }]
|
|
9446
10074
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
9447
10075
|
type: Inject,
|
|
9448
10076
|
args: [MAT_TABS_CONFIG]
|
|
@@ -9455,6 +10083,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
9455
10083
|
type: Input
|
|
9456
10084
|
}], syncWithRoutes: [{
|
|
9457
10085
|
type: Input
|
|
10086
|
+
}], started: [{
|
|
10087
|
+
type: Output
|
|
10088
|
+
}], finished: [{
|
|
10089
|
+
type: Output
|
|
9458
10090
|
}], active: [{
|
|
9459
10091
|
type: HostBinding,
|
|
9460
10092
|
args: ["class.active"]
|
|
@@ -9469,7 +10101,7 @@ class InlineActivityTriggerComponent extends AbstractActivityTriggerComponent {
|
|
|
9469
10101
|
super();
|
|
9470
10102
|
}
|
|
9471
10103
|
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"] }] });
|
|
10104
|
+
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
10105
|
}
|
|
9474
10106
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InlineActivityTriggerComponent, decorators: [{
|
|
9475
10107
|
type: Component,
|
|
@@ -9593,7 +10225,7 @@ class PopupInteractionContextComponent extends DisposableComponent {
|
|
|
9593
10225
|
isActive() {
|
|
9594
10226
|
return this.interactionContext && this.interactionContext.isActive();
|
|
9595
10227
|
}
|
|
9596
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PopupInteractionContextComponent, deps: [{ token: i0.ElementRef }, { token: i1$
|
|
10228
|
+
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
10229
|
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
10230
|
}
|
|
9599
10231
|
__decorate([
|
|
@@ -9607,7 +10239,7 @@ __decorate([
|
|
|
9607
10239
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PopupInteractionContextComponent, decorators: [{
|
|
9608
10240
|
type: Component,
|
|
9609
10241
|
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$
|
|
10242
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$6.Overlay }, { type: i1$6.CdkScrollable, decorators: [{
|
|
9611
10243
|
type: Optional
|
|
9612
10244
|
}, {
|
|
9613
10245
|
type: SkipSelf
|
|
@@ -9692,7 +10324,7 @@ class AddCardActivityComponent extends AbstractActivityTriggerComponent {
|
|
|
9692
10324
|
return this.interactionStyle === 'inline';
|
|
9693
10325
|
}
|
|
9694
10326
|
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"] }] });
|
|
10327
|
+
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
10328
|
}
|
|
9697
10329
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: AddCardActivityComponent, decorators: [{
|
|
9698
10330
|
type: Component,
|
|
@@ -9768,7 +10400,7 @@ class AddItemInteractionContextComponent extends DisposableComponent {
|
|
|
9768
10400
|
return this.interactionContext.startActivity(activityType, data);
|
|
9769
10401
|
}
|
|
9770
10402
|
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"] }] });
|
|
10403
|
+
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
10404
|
}
|
|
9773
10405
|
__decorate([
|
|
9774
10406
|
Proxify(),
|
|
@@ -9907,12 +10539,14 @@ class StringInputActivity extends InputActivity {
|
|
|
9907
10539
|
[label]="activityData.label"
|
|
9908
10540
|
[placeholder]="activityData.placeholder"
|
|
9909
10541
|
[command.enter]="confirmCommand"
|
|
9910
|
-
[command.escape]="cancelCommand"
|
|
10542
|
+
[command.escape]="cancelCommand"
|
|
10543
|
+
[dense]="true"
|
|
10544
|
+
></aup-string-input>
|
|
9911
10545
|
<aup-activity-actions [layout]="layout" align="end"
|
|
9912
10546
|
[confirmFace]="confirmFace"
|
|
9913
10547
|
[cancelFace]="cancelFace"
|
|
9914
10548
|
></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"] }] });
|
|
10549
|
+
`, 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
10550
|
}
|
|
9917
10551
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: StringInputActivity, decorators: [{
|
|
9918
10552
|
type: Component,
|
|
@@ -9923,7 +10557,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
9923
10557
|
[label]="activityData.label"
|
|
9924
10558
|
[placeholder]="activityData.placeholder"
|
|
9925
10559
|
[command.enter]="confirmCommand"
|
|
9926
|
-
[command.escape]="cancelCommand"
|
|
10560
|
+
[command.escape]="cancelCommand"
|
|
10561
|
+
[dense]="true"
|
|
10562
|
+
></aup-string-input>
|
|
9927
10563
|
<aup-activity-actions [layout]="layout" align="end"
|
|
9928
10564
|
[confirmFace]="confirmFace"
|
|
9929
10565
|
[cancelFace]="cancelFace"
|
|
@@ -10106,7 +10742,7 @@ class InlineStringEditorComponent extends DisposableComponent {
|
|
|
10106
10742
|
return !this.editingEnabled$.value;
|
|
10107
10743
|
}
|
|
10108
10744
|
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"] }] });
|
|
10745
|
+
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
10746
|
}
|
|
10111
10747
|
__decorate([
|
|
10112
10748
|
Proxify(),
|
|
@@ -10189,6 +10825,7 @@ class SelectInputActivity extends InputActivity {
|
|
|
10189
10825
|
[options]="options"
|
|
10190
10826
|
[optionLabelFormat]="optionLabelFormat"
|
|
10191
10827
|
[allowNil]="activityData.allowNil"
|
|
10828
|
+
[dense]="true"
|
|
10192
10829
|
>
|
|
10193
10830
|
<ng-template #nilOptionTemplate>{{activityData.nilLabel}}</ng-template>
|
|
10194
10831
|
</aup-select-input>
|
|
@@ -10196,7 +10833,7 @@ class SelectInputActivity extends InputActivity {
|
|
|
10196
10833
|
[confirmFace]="confirmFace"
|
|
10197
10834
|
[cancelFace]="cancelFace"
|
|
10198
10835
|
></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"] }] });
|
|
10836
|
+
`, 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
10837
|
}
|
|
10201
10838
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SelectInputActivity, decorators: [{
|
|
10202
10839
|
type: Component,
|
|
@@ -10211,6 +10848,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10211
10848
|
[options]="options"
|
|
10212
10849
|
[optionLabelFormat]="optionLabelFormat"
|
|
10213
10850
|
[allowNil]="activityData.allowNil"
|
|
10851
|
+
[dense]="true"
|
|
10214
10852
|
>
|
|
10215
10853
|
<ng-template #nilOptionTemplate>{{activityData.nilLabel}}</ng-template>
|
|
10216
10854
|
</aup-select-input>
|
|
@@ -10222,6 +10860,186 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10222
10860
|
}]
|
|
10223
10861
|
}] });
|
|
10224
10862
|
|
|
10863
|
+
const slideDownOnEnterDef = style({
|
|
10864
|
+
opacity: 0,
|
|
10865
|
+
'height': '0',
|
|
10866
|
+
'max-height': '0',
|
|
10867
|
+
paddingTop: '0',
|
|
10868
|
+
paddingBottom: '0'
|
|
10869
|
+
});
|
|
10870
|
+
// TODO: params aren't getting customised in the view. Need to figure out the correct approach.
|
|
10871
|
+
const slideDownOnEnterAnimation = trigger('slideDownOnEnter', [
|
|
10872
|
+
transition(':enter', [slideDownOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
|
|
10873
|
+
transition(':leave', [animate('{{duration}}', slideDownOnEnterDef)], { params: { duration: '100ms' } })
|
|
10874
|
+
]);
|
|
10875
|
+
const slideDownWhenOpenAnimation = trigger('slideDownWhenOpen', [
|
|
10876
|
+
transition('closed => open', [slideDownOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
|
|
10877
|
+
transition('open => closed', [animate('{{duration}}', slideDownOnEnterDef)], { params: { duration: '100ms' } })
|
|
10878
|
+
]);
|
|
10879
|
+
const slideLeftOnEnterDef = style({
|
|
10880
|
+
opacity: 0,
|
|
10881
|
+
'width': '0',
|
|
10882
|
+
paddingLeft: '0',
|
|
10883
|
+
paddingRight: '0'
|
|
10884
|
+
});
|
|
10885
|
+
const slideRightOnEnterAnimation = trigger('slideRightOnEnter', [
|
|
10886
|
+
transition(':enter', [slideLeftOnEnterDef, animate('{{duration}}')], { params: { duration: '100ms' } }),
|
|
10887
|
+
transition(':leave', [animate('{{duration}}', slideLeftOnEnterDef)], { params: { duration: '100ms' } })
|
|
10888
|
+
]);
|
|
10889
|
+
const ZERO_WIDTH = {
|
|
10890
|
+
opacity: 0,
|
|
10891
|
+
width: '0',
|
|
10892
|
+
paddingLeft: '0',
|
|
10893
|
+
paddingRight: '0',
|
|
10894
|
+
};
|
|
10895
|
+
const ZERO_HEIGHT = {
|
|
10896
|
+
opacity: 0,
|
|
10897
|
+
height: '0',
|
|
10898
|
+
paddingTop: '0',
|
|
10899
|
+
paddingBottom: '0',
|
|
10900
|
+
};
|
|
10901
|
+
const slideDownAndRightOnEnterAnimation = trigger('slideDownAndRightOnEnter', [
|
|
10902
|
+
transition(':enter', [
|
|
10903
|
+
style({ overflow: "hidden", whiteSpace: "nowrap", ...ZERO_WIDTH, ...ZERO_HEIGHT }),
|
|
10904
|
+
animate('{{duration}}')
|
|
10905
|
+
], { params: { duration: '100ms' } }),
|
|
10906
|
+
transition(':leave', [
|
|
10907
|
+
style({ overflow: "hidden", whiteSpace: "nowrap" }),
|
|
10908
|
+
group([
|
|
10909
|
+
animate('{{duration}}', style(ZERO_HEIGHT)),
|
|
10910
|
+
// Hack: 100ms is too quick as it animates from * - 0 as we only see it animate the width is greater than the parent.
|
|
10911
|
+
// Not sure how to animate from * to natural new width of parent. This hack won't work for text that's just a little
|
|
10912
|
+
// bit wider than the parent as it'll fall within the parent bounds very early in the animation cycle.
|
|
10913
|
+
animate('300ms', style(ZERO_WIDTH)),
|
|
10914
|
+
])
|
|
10915
|
+
], { params: { duration: '100ms' } })
|
|
10916
|
+
]);
|
|
10917
|
+
|
|
10918
|
+
const cssDurationRegex = /(\d+)(m?s)/;
|
|
10919
|
+
/**
|
|
10920
|
+
* This interaction context remains hidden (height: 0) until it is active.
|
|
10921
|
+
* @example
|
|
10922
|
+
* <aup-slide-down-interaction-context #inPlaceInteractionContext>
|
|
10923
|
+
* </aup-slide-down-interaction-context>
|
|
10924
|
+
*
|
|
10925
|
+
* in your component
|
|
10926
|
+
* @ViewChild(SlideDownInteractionContextComponent)
|
|
10927
|
+
* interactionContext: InteractionContext;
|
|
10928
|
+
*
|
|
10929
|
+
*
|
|
10930
|
+
*/
|
|
10931
|
+
class SlideDownInteractionContextComponent extends DisposableComponent {
|
|
10932
|
+
tabConfig;
|
|
10933
|
+
activityContainerComponent;
|
|
10934
|
+
// NOTE: disabling this as I'm using the initialise callback to release the hacky height clamp.
|
|
10935
|
+
// The whole registration thing is a bit naf so I should really clean that up at some point.
|
|
10936
|
+
// /**
|
|
10937
|
+
// * If true the activity will sync with the router to enable back button support. This is a work around for
|
|
10938
|
+
// * deeply nested activities that can't be linked with the root place interactionContext hook for cancelling
|
|
10939
|
+
// * active interactions.
|
|
10940
|
+
// */
|
|
10941
|
+
// @Input()
|
|
10942
|
+
// syncWithRoutes = true;
|
|
10943
|
+
dynamicHeight = true;
|
|
10944
|
+
get active() {
|
|
10945
|
+
return this.isActive();
|
|
10946
|
+
}
|
|
10947
|
+
// Horrible hack to stop the div and activity container bouncing back for a bit in after closing. No idea why it's doing that.
|
|
10948
|
+
clampShut = true;
|
|
10949
|
+
interactionService = this.inject(InteractionService);
|
|
10950
|
+
constructor(tabConfig) {
|
|
10951
|
+
super();
|
|
10952
|
+
this.tabConfig = tabConfig;
|
|
10953
|
+
}
|
|
10954
|
+
ngAfterViewInit() {
|
|
10955
|
+
// NOTE: this is a temp work around to detach inplace contexts from the router until AUP-88 is implemented.
|
|
10956
|
+
// https://coolon.atlassian.net/browse/AUP-88?atlOrigin=eyJpIjoiOTg5YjEzZGUzZjRmNDg0NmExOWU3ZGJmMzJiNTRmNGYiLCJwIjoiaiJ9
|
|
10957
|
+
const self = this;
|
|
10958
|
+
this.activityContainerComponent.initialise("dont-care", {
|
|
10959
|
+
async notifyActive(interactionContext) {
|
|
10960
|
+
self.clampShut = false;
|
|
10961
|
+
return undefined;
|
|
10962
|
+
},
|
|
10963
|
+
async notifyFinished(interactionContext) {
|
|
10964
|
+
return undefined;
|
|
10965
|
+
}
|
|
10966
|
+
});
|
|
10967
|
+
// if (this.syncWithRoutes) {
|
|
10968
|
+
// this.interactionService.registerInplaceInteractionContext(this);
|
|
10969
|
+
// }
|
|
10970
|
+
}
|
|
10971
|
+
getAnimationState() {
|
|
10972
|
+
return {
|
|
10973
|
+
value: this.isActive() ? "open" : "closed",
|
|
10974
|
+
params: { duration: "200ms" }
|
|
10975
|
+
};
|
|
10976
|
+
}
|
|
10977
|
+
// this is a regsitration callback from the interaction service
|
|
10978
|
+
// @Trace() // webstorm says no usages... but I'm not sure.
|
|
10979
|
+
onInplaceInteractionContextRegistered(id, api) {
|
|
10980
|
+
this.activityContainerComponent.initialise(id, api);
|
|
10981
|
+
}
|
|
10982
|
+
get identifier() {
|
|
10983
|
+
return this.activityContainerComponent.identifier;
|
|
10984
|
+
}
|
|
10985
|
+
alert(alert) {
|
|
10986
|
+
return this.activityContainerComponent.alert(alert);
|
|
10987
|
+
}
|
|
10988
|
+
cancelActiveActivity() {
|
|
10989
|
+
return this.activityContainerComponent.cancelActiveActivity();
|
|
10990
|
+
}
|
|
10991
|
+
confirm(confirm) {
|
|
10992
|
+
return this.activityContainerComponent.confirm(confirm);
|
|
10993
|
+
}
|
|
10994
|
+
confirmOrReject(confirm) {
|
|
10995
|
+
return this.activityContainerComponent.confirmOrReject(confirm);
|
|
10996
|
+
}
|
|
10997
|
+
confirmThen(confirm, activityType, data) {
|
|
10998
|
+
return this.activityContainerComponent.confirmThen(confirm, activityType);
|
|
10999
|
+
}
|
|
11000
|
+
confirmThenExecute(confirm, operation) {
|
|
11001
|
+
return this.activityContainerComponent.confirmThenExecute(confirm, operation);
|
|
11002
|
+
}
|
|
11003
|
+
isActive() {
|
|
11004
|
+
return this.activityContainerComponent.isActive();
|
|
11005
|
+
}
|
|
11006
|
+
startActivity(activityType, data, options) {
|
|
11007
|
+
return this.activityContainerComponent.startActivity(activityType, data, options);
|
|
11008
|
+
}
|
|
11009
|
+
onAnimationDone() {
|
|
11010
|
+
if (!this.isActive()) {
|
|
11011
|
+
this.clampShut = true;
|
|
11012
|
+
}
|
|
11013
|
+
}
|
|
11014
|
+
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 });
|
|
11015
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: SlideDownInteractionContextComponent, selector: "aup-slide-down-interaction-context", inputs: { dynamicHeight: "dynamicHeight" }, host: { properties: { "class.active": "this.active" } }, providers: [
|
|
11016
|
+
{ provide: INTERACTION_CONTEXT, useExisting: SlideDownInteractionContextComponent }
|
|
11017
|
+
], 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: [
|
|
11018
|
+
slideDownWhenOpenAnimation
|
|
11019
|
+
] });
|
|
11020
|
+
}
|
|
11021
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SlideDownInteractionContextComponent, decorators: [{
|
|
11022
|
+
type: Component,
|
|
11023
|
+
args: [{ selector: "aup-slide-down-interaction-context", providers: [
|
|
11024
|
+
{ provide: INTERACTION_CONTEXT, useExisting: SlideDownInteractionContextComponent }
|
|
11025
|
+
], animations: [
|
|
11026
|
+
slideDownWhenOpenAnimation
|
|
11027
|
+
], 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"] }]
|
|
11028
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
11029
|
+
type: Inject,
|
|
11030
|
+
args: [MAT_TABS_CONFIG]
|
|
11031
|
+
}, {
|
|
11032
|
+
type: Optional
|
|
11033
|
+
}] }]; }, propDecorators: { activityContainerComponent: [{
|
|
11034
|
+
type: ViewChild,
|
|
11035
|
+
args: ["activityContainer", { static: true }]
|
|
11036
|
+
}], dynamicHeight: [{
|
|
11037
|
+
type: Input
|
|
11038
|
+
}], active: [{
|
|
11039
|
+
type: HostBinding,
|
|
11040
|
+
args: ["class.active"]
|
|
11041
|
+
}] } });
|
|
11042
|
+
|
|
10225
11043
|
class InteractionContextTriggerForDirective extends GarbageCollector {
|
|
10226
11044
|
aupInteractionContextTriggerFor;
|
|
10227
11045
|
activityClass;
|
|
@@ -10304,6 +11122,7 @@ class InteractionModule {
|
|
|
10304
11122
|
AlertDialogComponent,
|
|
10305
11123
|
ActivityOutletComponent,
|
|
10306
11124
|
InPlaceInteractionContextComponent,
|
|
11125
|
+
SlideDownInteractionContextComponent,
|
|
10307
11126
|
AddItemInteractionContextComponent,
|
|
10308
11127
|
ActivityActionsComponent,
|
|
10309
11128
|
PopupInteractionContextComponent,
|
|
@@ -10330,8 +11149,6 @@ class InteractionModule {
|
|
|
10330
11149
|
RouterModule,
|
|
10331
11150
|
MatIconModule,
|
|
10332
11151
|
DirectivesModule,
|
|
10333
|
-
FlexModule,
|
|
10334
|
-
GridModule,
|
|
10335
11152
|
ComponentsModule,
|
|
10336
11153
|
FormsModule,
|
|
10337
11154
|
MatInputModule,
|
|
@@ -10351,7 +11168,8 @@ class InteractionModule {
|
|
|
10351
11168
|
InlineActivityTriggerComponent,
|
|
10352
11169
|
ModalActivityTriggerComponent,
|
|
10353
11170
|
AddCardActivityComponent,
|
|
10354
|
-
InlineStringEditorComponent
|
|
11171
|
+
InlineStringEditorComponent,
|
|
11172
|
+
SlideDownInteractionContextComponent] });
|
|
10355
11173
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: InteractionModule, providers: [
|
|
10356
11174
|
InteractionService
|
|
10357
11175
|
// {
|
|
@@ -10365,8 +11183,6 @@ class InteractionModule {
|
|
|
10365
11183
|
RouterModule,
|
|
10366
11184
|
MatIconModule,
|
|
10367
11185
|
DirectivesModule,
|
|
10368
|
-
FlexModule,
|
|
10369
|
-
GridModule,
|
|
10370
11186
|
ComponentsModule,
|
|
10371
11187
|
FormsModule,
|
|
10372
11188
|
MatInputModule,
|
|
@@ -10385,8 +11201,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10385
11201
|
RouterModule,
|
|
10386
11202
|
MatIconModule,
|
|
10387
11203
|
DirectivesModule,
|
|
10388
|
-
FlexModule,
|
|
10389
|
-
GridModule,
|
|
10390
11204
|
ComponentsModule,
|
|
10391
11205
|
FormsModule,
|
|
10392
11206
|
MatInputModule,
|
|
@@ -10401,6 +11215,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10401
11215
|
AlertDialogComponent,
|
|
10402
11216
|
ActivityOutletComponent,
|
|
10403
11217
|
InPlaceInteractionContextComponent,
|
|
11218
|
+
SlideDownInteractionContextComponent,
|
|
10404
11219
|
AddItemInteractionContextComponent,
|
|
10405
11220
|
ActivityActionsComponent,
|
|
10406
11221
|
PopupInteractionContextComponent,
|
|
@@ -10438,6 +11253,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10438
11253
|
ModalActivityTriggerComponent,
|
|
10439
11254
|
AddCardActivityComponent,
|
|
10440
11255
|
InlineStringEditorComponent,
|
|
11256
|
+
SlideDownInteractionContextComponent,
|
|
10441
11257
|
],
|
|
10442
11258
|
providers: [
|
|
10443
11259
|
InteractionService
|
|
@@ -10508,7 +11324,6 @@ class PlaceOutletComponent extends DisposableComponent {
|
|
|
10508
11324
|
router;
|
|
10509
11325
|
placeRouter;
|
|
10510
11326
|
placeConfig;
|
|
10511
|
-
cdr;
|
|
10512
11327
|
#animate$_accessor_storage = proxify((ValueModel));
|
|
10513
11328
|
get animate$() { return this.#animate$_accessor_storage; }
|
|
10514
11329
|
set animate$(value) { this.#animate$_accessor_storage = value; }
|
|
@@ -10542,12 +11357,11 @@ class PlaceOutletComponent extends DisposableComponent {
|
|
|
10542
11357
|
animationEnabled;
|
|
10543
11358
|
authorised;
|
|
10544
11359
|
notAuthorisedNoticePortal;
|
|
10545
|
-
constructor(router, placeRouter, placeConfig, unauthorisedPlaceNotice, parentOutlet
|
|
11360
|
+
constructor(router, placeRouter, placeConfig, unauthorisedPlaceNotice, parentOutlet) {
|
|
10546
11361
|
super();
|
|
10547
11362
|
this.router = router;
|
|
10548
11363
|
this.placeRouter = placeRouter;
|
|
10549
11364
|
this.placeConfig = placeConfig;
|
|
10550
|
-
this.cdr = cdr;
|
|
10551
11365
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
10552
11366
|
this.parentOutletModel = new MutableValueModel(parentOutlet);
|
|
10553
11367
|
const defaultPlaceAnimationOrder = chain(this.parentOutletModel)
|
|
@@ -10559,7 +11373,7 @@ class PlaceOutletComponent extends DisposableComponent {
|
|
|
10559
11373
|
this.placesInAnimationOrder = chain(this.customPlaceAnimationOrder$)
|
|
10560
11374
|
.otherwise(defaultPlaceAnimationOrder);
|
|
10561
11375
|
this.activePlaceAnimationPosition = this.placesInAnimationOrder
|
|
10562
|
-
.
|
|
11376
|
+
.reduceAll((placesInOrder) => {
|
|
10563
11377
|
let placeIndex = 0;
|
|
10564
11378
|
if (activatePlaceType.value) {
|
|
10565
11379
|
placeIndex = placesInOrder.indexOf(activatePlaceType.value);
|
|
@@ -10713,8 +11527,8 @@ class PlaceOutletComponent extends DisposableComponent {
|
|
|
10713
11527
|
this.onAnimationFinishedJob = undefined;
|
|
10714
11528
|
}
|
|
10715
11529
|
}
|
|
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$
|
|
11530
|
+
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 });
|
|
11531
|
+
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
11532
|
}
|
|
10719
11533
|
__decorate([
|
|
10720
11534
|
Proxify(),
|
|
@@ -10735,7 +11549,7 @@ __decorate([
|
|
|
10735
11549
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceOutletComponent, decorators: [{
|
|
10736
11550
|
type: Component,
|
|
10737
11551
|
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$
|
|
11552
|
+
}], ctorParameters: function () { return [{ type: i1$5.Router }, { type: PlaceRouter }, { type: undefined, decorators: [{
|
|
10739
11553
|
type: Optional
|
|
10740
11554
|
}, {
|
|
10741
11555
|
type: Inject,
|
|
@@ -10749,7 +11563,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
10749
11563
|
type: SkipSelf
|
|
10750
11564
|
}, {
|
|
10751
11565
|
type: Optional
|
|
10752
|
-
}] }
|
|
11566
|
+
}] }]; }, propDecorators: { animate$: [{
|
|
10753
11567
|
type: Input
|
|
10754
11568
|
}], animate: [{
|
|
10755
11569
|
type: Input
|
|
@@ -10882,7 +11696,7 @@ class ListPlaceNavComponent extends AbstractPlaceNavigationComponent {
|
|
|
10882
11696
|
super(router);
|
|
10883
11697
|
}
|
|
10884
11698
|
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: "
|
|
11699
|
+
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
11700
|
}
|
|
10887
11701
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ListPlaceNavComponent, decorators: [{
|
|
10888
11702
|
type: Component,
|
|
@@ -10957,7 +11771,7 @@ class SidePlaceNavigationComponent extends AbstractPlaceNavigationComponent {
|
|
|
10957
11771
|
this.expanded = !this.expanded;
|
|
10958
11772
|
}
|
|
10959
11773
|
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"] }] });
|
|
11774
|
+
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
11775
|
}
|
|
10962
11776
|
__decorate([
|
|
10963
11777
|
Proxify(),
|
|
@@ -10969,7 +11783,7 @@ __decorate([
|
|
|
10969
11783
|
], SidePlaceNavigationComponent.prototype, "expanded", null);
|
|
10970
11784
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: SidePlaceNavigationComponent, decorators: [{
|
|
10971
11785
|
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"] }]
|
|
11786
|
+
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
11787
|
}], ctorParameters: function () { return [{ type: PlaceRouter }]; }, propDecorators: { expanded$: [{
|
|
10974
11788
|
type: Input
|
|
10975
11789
|
}], expanded: [{
|
|
@@ -10987,7 +11801,7 @@ class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationComponent {
|
|
|
10987
11801
|
super(router);
|
|
10988
11802
|
}
|
|
10989
11803
|
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$
|
|
11804
|
+
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
11805
|
}
|
|
10992
11806
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: TabbedPlaceNavigationComponent, decorators: [{
|
|
10993
11807
|
type: Component,
|
|
@@ -11010,7 +11824,6 @@ class PlaceModule {
|
|
|
11010
11824
|
MatTooltipModule,
|
|
11011
11825
|
MatIconModule,
|
|
11012
11826
|
DirectivesModule,
|
|
11013
|
-
FlexModule,
|
|
11014
11827
|
ComponentsModule,
|
|
11015
11828
|
PortalModule,
|
|
11016
11829
|
MatCardModule], exports: [PlaceOutletComponent,
|
|
@@ -11027,7 +11840,6 @@ class PlaceModule {
|
|
|
11027
11840
|
MatTooltipModule,
|
|
11028
11841
|
MatIconModule,
|
|
11029
11842
|
DirectivesModule,
|
|
11030
|
-
FlexModule,
|
|
11031
11843
|
ComponentsModule,
|
|
11032
11844
|
PortalModule,
|
|
11033
11845
|
MatCardModule] });
|
|
@@ -11045,7 +11857,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
11045
11857
|
MatTooltipModule,
|
|
11046
11858
|
MatIconModule,
|
|
11047
11859
|
DirectivesModule,
|
|
11048
|
-
FlexModule,
|
|
11049
11860
|
ComponentsModule,
|
|
11050
11861
|
PortalModule,
|
|
11051
11862
|
MatCardModule
|
|
@@ -11135,60 +11946,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
11135
11946
|
}]
|
|
11136
11947
|
}] });
|
|
11137
11948
|
|
|
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
11949
|
/**
|
|
11189
11950
|
* @file Automatically generated by barrelsby.
|
|
11190
11951
|
*/
|
|
11191
11952
|
|
|
11953
|
+
class ResizeObserverDirective extends DisposableComponent {
|
|
11954
|
+
aupOnResize = new EventEmitter();
|
|
11955
|
+
elementRef = this.inject(ElementRef);
|
|
11956
|
+
ngZone = this.inject(NgZone);
|
|
11957
|
+
_bounds$ = new MutableValueModel();
|
|
11958
|
+
ngAfterViewInit() {
|
|
11959
|
+
const element = this.elementRef.nativeElement;
|
|
11960
|
+
const ro = new ResizeObserver((entries, observer) => {
|
|
11961
|
+
this.ngZone.run(() => this._updateBounds());
|
|
11962
|
+
});
|
|
11963
|
+
ro.observe(element);
|
|
11964
|
+
this.onDispose(() => ro.disconnect());
|
|
11965
|
+
setTimeout(() => this._updateBounds());
|
|
11966
|
+
}
|
|
11967
|
+
get bounds$() {
|
|
11968
|
+
return this._bounds$.readonly$;
|
|
11969
|
+
}
|
|
11970
|
+
_updateBounds() {
|
|
11971
|
+
this._bounds$.value = Bounds.ofElement(this.elementRef.nativeElement);
|
|
11972
|
+
this.aupOnResize.emit(this._bounds$.value);
|
|
11973
|
+
}
|
|
11974
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeObserverDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
11975
|
+
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 });
|
|
11976
|
+
}
|
|
11977
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ResizeObserverDirective, decorators: [{
|
|
11978
|
+
type: Directive,
|
|
11979
|
+
args: [{
|
|
11980
|
+
selector: "[aupOnResize]",
|
|
11981
|
+
standalone: true
|
|
11982
|
+
}]
|
|
11983
|
+
}], propDecorators: { aupOnResize: [{
|
|
11984
|
+
type: Output
|
|
11985
|
+
}] } });
|
|
11986
|
+
|
|
11192
11987
|
/**
|
|
11193
11988
|
* @file Automatically generated by barrelsby.
|
|
11194
11989
|
*/
|
|
@@ -11279,7 +12074,7 @@ class DialogInteractionContextFactory extends ModalInteractionContextFactory {
|
|
|
11279
12074
|
};
|
|
11280
12075
|
return new DialogInteractionContext(identifier, api, this.dialogService, config);
|
|
11281
12076
|
}
|
|
11282
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DialogInteractionContextFactory, deps: [{ token: i1$
|
|
12077
|
+
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
12078
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DialogInteractionContextFactory, providedIn: 'root' });
|
|
11284
12079
|
}
|
|
11285
12080
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: DialogInteractionContextFactory, decorators: [{
|
|
@@ -11287,12 +12082,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
11287
12082
|
args: [{
|
|
11288
12083
|
providedIn: 'root'
|
|
11289
12084
|
}]
|
|
11290
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
12085
|
+
}], ctorParameters: function () { return [{ type: i1$7.MatDialog }, { type: i1$7.MatDialogConfig, decorators: [{
|
|
11291
12086
|
type: Optional
|
|
11292
12087
|
}, {
|
|
11293
12088
|
type: Inject,
|
|
11294
12089
|
args: [DIALOG_INTERACTION_SERVICE_DEFAULTS]
|
|
11295
|
-
}] }, { type: i1$
|
|
12090
|
+
}] }, { type: i1$7.MatDialogConfig, decorators: [{
|
|
11296
12091
|
type: Optional
|
|
11297
12092
|
}, {
|
|
11298
12093
|
type: Inject,
|
|
@@ -11412,6 +12207,7 @@ class PlaceGuard {
|
|
|
11412
12207
|
}
|
|
11413
12208
|
// @Trace()
|
|
11414
12209
|
async canActivate(activatedRoute, state) {
|
|
12210
|
+
await this.placeRouter.waitUntilRouterReady();
|
|
11415
12211
|
if (PlaceComponent.isPlaceComponentConstructor(activatedRoute.component)) {
|
|
11416
12212
|
const placeDefinition = PlaceComponent.getDefinition(activatedRoute.component);
|
|
11417
12213
|
if (placeDefinition.authenticate) {
|
|
@@ -11524,13 +12320,13 @@ class PlaceGuard {
|
|
|
11524
12320
|
return next();
|
|
11525
12321
|
}
|
|
11526
12322
|
}
|
|
11527
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceGuard, deps: [{ token: i1$
|
|
12323
|
+
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
12324
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceGuard, providedIn: 'root' });
|
|
11529
12325
|
}
|
|
11530
12326
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: PlaceGuard, decorators: [{
|
|
11531
12327
|
type: Injectable,
|
|
11532
12328
|
args: [{ providedIn: 'root' }]
|
|
11533
|
-
}], ctorParameters: function () { return [{ type: i1$
|
|
12329
|
+
}], ctorParameters: function () { return [{ type: i1$5.Router }, { type: UrlService }, { type: PlaceRouter }, { type: PlaceHistory }, { type: InteractionService }, { type: i0.Injector }]; } });
|
|
11534
12330
|
|
|
11535
12331
|
var Formatter;
|
|
11536
12332
|
(function (Formatter) {
|
|
@@ -11564,69 +12360,74 @@ var Formatter;
|
|
|
11564
12360
|
Formatter.BOOLEAN = new BooleanType();
|
|
11565
12361
|
})(Formatter || (Formatter = {}));
|
|
11566
12362
|
|
|
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
|
-
}
|
|
12363
|
+
// function installMechanics<M extends HasValue<any>>(parameterDef: ParameterDefinition<any>, prototype: object, propertyKey: string | symbol, tagPrefix: string) {
|
|
12364
|
+
//
|
|
12365
|
+
// Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
|
|
12366
|
+
//
|
|
12367
|
+
// function getMechanics(instance: M, propertyName: string | symbol) {
|
|
12368
|
+
// const key = `__mechanics_${propertyName.toString()}`;
|
|
12369
|
+
// if (!instance[key]) {
|
|
12370
|
+
// const backingModel = parameterDef.createBackingModel();
|
|
12371
|
+
// instance[key] = {
|
|
12372
|
+
// backingModel: backingModel,
|
|
12373
|
+
// binding: null as Binding<any, any>
|
|
12374
|
+
// };
|
|
12375
|
+
// const tag = `${tagPrefix}(${prototype.constructor.name}.${propertyKey.toString()})`;
|
|
12376
|
+
// DebugContext.getOrCreate(instance[key].backingModel).tag(tag);
|
|
12377
|
+
// }
|
|
12378
|
+
// return instance[key];
|
|
12379
|
+
// }
|
|
12380
|
+
//
|
|
12381
|
+
// Object.defineProperty(prototype, propertyKey, {
|
|
12382
|
+
// get: function() {
|
|
12383
|
+
// return getMechanics(this, propertyKey).backingModel;
|
|
12384
|
+
// },
|
|
12385
|
+
// set: function(userModel: M) {
|
|
12386
|
+
// const mechanics = getMechanics(this, propertyKey);
|
|
12387
|
+
// // This handles the scenario where we want to push an existing value model (such as a form model)
|
|
12388
|
+
// // to and from the route.
|
|
12389
|
+
// if (mechanics.binding) {
|
|
12390
|
+
// mechanics.binding.dispose();
|
|
12391
|
+
// }
|
|
12392
|
+
// if (userModel) {
|
|
12393
|
+
// mechanics.binding = new Binding(mechanics.backingModel, userModel, {
|
|
12394
|
+
// toLeft: Functions.identity,
|
|
12395
|
+
// toRight: Functions.identity
|
|
12396
|
+
// });
|
|
12397
|
+
// if (parameterDef.isEmptyValue(userModel.value)) {
|
|
12398
|
+
// // console.log(`Push visit to model for ${tag}`, {value: mechanics.backingModel.value});
|
|
12399
|
+
// mechanics.binding.writeRight(); // push the visit into the user model;
|
|
12400
|
+
// } else {
|
|
12401
|
+
// if (!parameterDef.isEmptyValue(mechanics.backingModel.value)) {
|
|
12402
|
+
// console.warn('Assigning a visit model with an existing value to a visit parameter with an existing value. Visit parameter will be overridden');
|
|
12403
|
+
// }
|
|
12404
|
+
// mechanics.binding.writeLeft(); // push the user model into the visit
|
|
12405
|
+
// }
|
|
12406
|
+
// }
|
|
12407
|
+
// }
|
|
12408
|
+
// });
|
|
12409
|
+
// }
|
|
11612
12410
|
function RouteId(formatter, options) {
|
|
11613
12411
|
return (prototype, propertyKey) => {
|
|
11614
12412
|
const parameterDef = new ParameterDefinition.RouteId(propertyKey.toString(), options, formatter);
|
|
11615
|
-
installMechanics(parameterDef, prototype, propertyKey, '@RouteId');
|
|
12413
|
+
// installMechanics(parameterDef, prototype, propertyKey, '@RouteId');
|
|
12414
|
+
Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
|
|
11616
12415
|
};
|
|
11617
12416
|
}
|
|
11618
12417
|
function VisitParameter(options) {
|
|
11619
12418
|
const opts = Opts.get(options);
|
|
11620
12419
|
return (prototype, propertyKey) => {
|
|
11621
12420
|
const parameterDef = new ParameterDefinition.ValueParameter(propertyKey.toString(), options, opts.getOptional('storeInUrl', null));
|
|
11622
|
-
|
|
12421
|
+
Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
|
|
12422
|
+
// installMechanics(parameterDef, prototype, propertyKey, '@VisitParameter');
|
|
11623
12423
|
};
|
|
11624
12424
|
}
|
|
11625
12425
|
function VisitParameterList(options) {
|
|
11626
12426
|
const opts = Opts.get(options);
|
|
11627
12427
|
return (prototype, propertyKey) => {
|
|
11628
12428
|
const parameterDef = new ParameterDefinition.ArrayParameter(propertyKey.toString(), options, opts.getOptional('storeInUrl', null));
|
|
11629
|
-
|
|
12429
|
+
Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, parameterDef);
|
|
12430
|
+
// installMechanics(parameterDef, prototype, propertyKey, '@VisitParameterList');
|
|
11630
12431
|
};
|
|
11631
12432
|
}
|
|
11632
12433
|
|
|
@@ -11720,5 +12521,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
|
|
|
11720
12521
|
* Generated bundle index. Do not edit.
|
|
11721
12522
|
*/
|
|
11722
12523
|
|
|
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,
|
|
12524
|
+
export { ACTIVITY_DATA, ALERT_CONFIG, AUP_PLACE_CONFIG, AUP_TABLE_VIRTUAL_SCROLL_BUFFER_MULTIPLIER, AUP_UNAUTHORISED_PLACE_NOTICE_COMPONENT, AbstractActivityTriggerComponent, AbstractCardContainerComponent, AbstractCellRenderer, AbstractConfirmDialogComponent, AbstractDialogComponent, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractPopupMenuComponent, AbstractTableComponent, AbstractTableModel, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityBodyComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, ActivityTitleComponent, AddCardActivityComponent, AddItemInteractionContextComponent, Alert, AlertDialogComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellFooterPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnManager, ColumnModel, ColumnOrderManager, ColumnTemplateDirective, ColumnTextSearchFormatter, CommandComponent, CommandContainer, CommandDirective, CommandFace, CommandFaceComponent, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmThenExecuteDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DecoratedTreeNode, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControlsComponent, EditSession, EditorControlColumnModel, EmptyStateComponent, EnableCellTextSearch, EventCleanUpSession, FOOTER_CELL_RENDERER_PORTAL, FlattenedTreeListModel, FlexComponent, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, FooterRowModel, Formatter, GarbageCollectorDirective, HEADER_CELL_RENDERER_PORTAL, HighlightPipe, HighlightTextModelDirective, HorizontalAlignment, INTERACTION_CONTEXT, IconComponent, InPlaceInteractionContextComponent, InlineActivityTriggerComponent, InlineEditorModel, InlineStringEditorComponent, InputActivity, InteractionContextTriggerForDirective, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, Keys, LEFT_RIGHT_PLACE_ANIMATION, LabelledValueComponent, ListPlaceNavComponent, ListPropertyColumnModel, LoadableComponent, LoadingContainerComponent, MarkdownComponent, MarkdownService, ModalActivityTriggerComponent, ModalInteractionContextFactory, MoreMenuComponent, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NotAuthorisedNoticeComponent, NumberInputComponent, POPUP_CONTAINER, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, PaginatorComponent, ParameterDefinition, PasswordInputComponent, Place, PlaceAccessGuard, PlaceAuthService, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupActivityTriggerComponent, PopupAwareComponent, PopupInteractionContextComponent, PopupMenuComponent, PopupMenuRendererComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, ResizeObserverDirective, RouteId, ScrollContainerComponent, SearchInputComponent, SectionHeaderComponent, SelectInputActivity, SelectInputComponent, SelectionCellComponent, SelectionColumnModel, SelectionHeaderCellComponent, SeparatorComponent, SidePlaceNavigationComponent, SlideDownInteractionContextComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableBodyComponent, TableCellComponent, TableComponent, TableFilterModel, TableFooterRow, TableHeaderCellComponent, TableModel, TableMoreMenuComponent, TableMoreMenuPopupComponent, TableRowAttributesDirective, TableRowMenuComponent, TemplateCellRendererPortalRef, TextInputComponent, TextSearchContext, ToolBarComponent, Track, TreeExpansionModel, TreeInheritanceIconComponent, TreeLabelCellRendererComponent, TreeLabelColumnModel, TreeTableComponent, TreeTableModel, UrlService, UrlSnapshot, VerticalFocusContainerComponent, VisibilityService, Visit, VisitParameter, VisitParameterList, VisitSegment, VisitSegmentSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationTypeDetermined, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, markdownPillExtension, slideDownAndRightOnEnterAnimation, slideDownOnEnterAnimation, slideDownWhenOpenAnimation, slideRightOnEnterAnimation, treeNodeDecorator };
|
|
11724
12525
|
//# sourceMappingURL=coolon-angular-ui-powerups.mjs.map
|