@coolon/angular-ui-powerups 1.9.0 → 1.11.0
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/CHANGELOG.md +19 -0
- package/assets/styles.scss +7 -67
- package/bundles/coolon-angular-ui-powerups.umd.js +2623 -1581
- package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
- package/bundles/coolon-angular-ui-powerups.umd.min.js +2 -2
- package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
- package/coolon-angular-ui-powerups.d.ts +57 -44
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/coolon-angular-ui-powerups.js +55 -42
- package/esm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/esm2015/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
- package/esm2015/lib/components/card-container/card-container.component.js +1 -1
- package/esm2015/lib/components/card-container/card-container.component.metadata.json +1 -1
- package/esm2015/lib/components/components.module.js +37 -6
- package/esm2015/lib/components/components.module.js.map +1 -1
- package/esm2015/lib/components/components.module.metadata.json +1 -1
- package/esm2015/lib/components/components.module.ngfactory.js.map +1 -1
- package/esm2015/lib/components/forms/abstract-input-activity.js +47 -0
- package/esm2015/lib/components/forms/abstract-input-activity.js.map +1 -0
- package/esm2015/lib/components/forms/abstract-input-activity.metadata.json +1 -0
- package/esm2015/lib/components/forms/abstract-input-activity.ngfactory.js.map +1 -0
- package/esm2015/lib/components/forms/abstract-input.component.js +6 -1
- package/esm2015/lib/components/forms/abstract-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/abstract-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/number-input/number-input.component.js +1 -1
- package/esm2015/lib/components/forms/number-input/number-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/password-input/password-input.component.js +1 -1
- package/esm2015/lib/components/forms/password-input/password-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/string-input/string-input-activity.js +22 -0
- package/esm2015/lib/components/forms/string-input/string-input-activity.js.map +1 -0
- package/esm2015/lib/components/forms/string-input/string-input-activity.metadata.json +1 -0
- package/esm2015/lib/components/forms/string-input/string-input-activity.ngfactory.js.map +1 -0
- package/esm2015/lib/components/forms/string-input/string-input.component.js +1 -1
- package/esm2015/lib/components/forms/string-input/string-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/text-input/text-input.component.js +1 -1
- package/esm2015/lib/components/forms/text-input/text-input.component.metadata.json +1 -1
- package/esm2015/lib/components/index.js +13 -0
- package/esm2015/lib/components/index.js.map +1 -1
- package/esm2015/lib/components/index.metadata.json +1 -1
- package/esm2015/lib/components/table/cell-editor.component.js +1 -0
- package/esm2015/lib/components/table/cell-editor.component.js.map +1 -0
- package/esm2015/lib/components/table/cell-editor.component.metadata.json +1 -0
- package/esm2015/lib/components/table/cell-renderer.js +1 -0
- package/esm2015/lib/components/table/cell-renderer.js.map +1 -0
- package/esm2015/lib/components/table/cell-renderer.metadata.json +1 -0
- package/esm2015/lib/components/table/column-model.js +160 -0
- package/esm2015/lib/components/table/column-model.js.map +1 -0
- package/esm2015/lib/components/table/column-model.metadata.json +1 -0
- package/esm2015/lib/components/table/column-template/column-template.directive.js +24 -0
- package/esm2015/lib/components/table/column-template/column-template.directive.js.map +1 -0
- package/esm2015/lib/components/table/column-template/column-template.directive.metadata.json +1 -0
- package/esm2015/lib/components/table/column-template/column-template.directive.ngfactory.js.map +1 -0
- package/esm2015/lib/components/table/column-text-properties.js +1 -0
- package/esm2015/lib/components/table/column-text-properties.js.map +1 -0
- package/esm2015/lib/components/table/column-text-properties.metadata.json +1 -0
- package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.js +27 -0
- package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.js.map +1 -0
- package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.metadata.json +1 -0
- package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/table/default-cell-renderer/default-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
- package/esm2015/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.js +21 -0
- package/esm2015/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.js.map +1 -0
- package/esm2015/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.metadata.json +1 -0
- package/esm2015/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
- package/esm2015/lib/components/table/edit-row-controls/edit-row-controls.component.js +50 -0
- package/esm2015/lib/components/table/edit-row-controls/edit-row-controls.component.js.map +1 -0
- package/esm2015/lib/components/table/edit-row-controls/edit-row-controls.component.metadata.json +1 -0
- package/esm2015/lib/components/table/edit-row-controls/edit-row-controls.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/table/edit-row-controls/edit-row-controls.component.scss.shim.ngstyle.js.map +1 -0
- package/esm2015/lib/components/table/select-cell-renderer/select-cell-renderer.component.js +40 -0
- package/esm2015/lib/components/table/select-cell-renderer/select-cell-renderer.component.js.map +1 -0
- package/esm2015/lib/components/table/select-cell-renderer/select-cell-renderer.component.metadata.json +1 -0
- package/esm2015/lib/components/table/select-cell-renderer/select-cell-renderer.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/table/select-cell-renderer/select-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
- package/esm2015/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.js +32 -0
- package/esm2015/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.js.map +1 -0
- package/esm2015/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.metadata.json +1 -0
- package/esm2015/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
- package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js +64 -0
- package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -0
- package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.metadata.json +1 -0
- package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
- package/esm2015/lib/components/table/table-def.js +1 -0
- package/esm2015/lib/components/table/table-def.js.map +1 -0
- package/esm2015/lib/components/table/table-def.metadata.json +1 -0
- package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js +32 -0
- package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js.map +1 -0
- package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.metadata.json +1 -0
- package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
- package/esm2015/lib/components/table/table-model.js +197 -0
- package/esm2015/lib/components/table/table-model.js.map +1 -0
- package/esm2015/lib/components/table/table-model.metadata.json +1 -0
- package/esm2015/lib/components/table/table.component.js +60 -0
- package/esm2015/lib/components/table/table.component.js.map +1 -0
- package/esm2015/lib/components/table/table.component.metadata.json +1 -0
- package/esm2015/lib/components/table/table.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/table/table.component.scss.shim.ngstyle.js.map +1 -0
- package/esm2015/lib/interaction/activity.js +7 -1
- package/esm2015/lib/interaction/activity.js.map +1 -1
- package/esm2015/lib/interaction/activity.metadata.json +1 -1
- package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js +2 -2
- package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.js.map +1 -1
- package/esm2015/lib/interaction/components/activity-actions/activity-actions.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +22 -9
- package/esm2015/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
- package/esm2015/lib/interaction/components/activity-container/activity-container.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js.map +1 -1
- package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js +87 -0
- package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js.map +1 -0
- package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.metadata.json +1 -0
- package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.ngfactory.js.map +1 -0
- package/esm2015/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.scss.shim.ngstyle.js.map +1 -0
- package/esm2015/lib/interaction/directives/interaction-context-trigger-for.directive.js +86 -0
- package/esm2015/lib/interaction/directives/interaction-context-trigger-for.directive.js.map +1 -0
- package/esm2015/lib/interaction/directives/interaction-context-trigger-for.directive.metadata.json +1 -0
- package/esm2015/lib/interaction/directives/interaction-context-trigger-for.directive.ngfactory.js.map +1 -0
- package/esm2015/lib/interaction/index.js +2 -0
- package/esm2015/lib/interaction/index.js.map +1 -1
- package/esm2015/lib/interaction/index.metadata.json +1 -1
- package/esm2015/lib/interaction/interaction.module.js +16 -4
- package/esm2015/lib/interaction/interaction.module.js.map +1 -1
- package/esm2015/lib/interaction/interaction.module.metadata.json +1 -1
- package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
- package/esm5/coolon-angular-ui-powerups.js +55 -42
- package/esm5/coolon-angular-ui-powerups.js.map +1 -1
- package/esm5/lib/angular-ui-powerups.module.ngfactory.js.map +1 -1
- package/esm5/lib/components/card-container/card-container.component.js +1 -1
- package/esm5/lib/components/components.module.js +37 -6
- package/esm5/lib/components/components.module.js.map +1 -1
- package/esm5/lib/components/components.module.ngfactory.js.map +1 -1
- package/esm5/lib/components/forms/abstract-input-activity.js +50 -0
- package/esm5/lib/components/forms/abstract-input-activity.js.map +1 -0
- package/esm5/lib/components/forms/abstract-input-activity.ngfactory.js.map +1 -0
- package/esm5/lib/components/forms/abstract-input.component.js +6 -1
- package/esm5/lib/components/forms/abstract-input.component.js.map +1 -1
- package/esm5/lib/components/forms/number-input/number-input.component.js +1 -1
- package/esm5/lib/components/forms/password-input/password-input.component.js +1 -1
- package/esm5/lib/components/forms/string-input/string-input-activity.js +18 -0
- package/esm5/lib/components/forms/string-input/string-input-activity.js.map +1 -0
- package/esm5/lib/components/forms/string-input/string-input-activity.ngfactory.js.map +1 -0
- package/esm5/lib/components/forms/string-input/string-input.component.js +1 -1
- package/esm5/lib/components/forms/text-input/text-input.component.js +1 -1
- package/esm5/lib/components/index.js +13 -0
- package/esm5/lib/components/index.js.map +1 -1
- package/esm5/lib/components/table/cell-editor.component.js +1 -0
- package/esm5/lib/components/table/cell-editor.component.js.map +1 -0
- package/esm5/lib/components/table/cell-renderer.js +1 -0
- package/esm5/lib/components/table/cell-renderer.js.map +1 -0
- package/esm5/lib/components/table/column-model.js +196 -0
- package/esm5/lib/components/table/column-model.js.map +1 -0
- package/esm5/lib/components/table/column-template/column-template.directive.js +25 -0
- package/esm5/lib/components/table/column-template/column-template.directive.js.map +1 -0
- package/esm5/lib/components/table/column-template/column-template.directive.ngfactory.js.map +1 -0
- package/esm5/lib/components/table/column-text-properties.js +1 -0
- package/esm5/lib/components/table/column-text-properties.js.map +1 -0
- package/esm5/lib/components/table/default-cell-renderer/default-cell-renderer.component.js +32 -0
- package/esm5/lib/components/table/default-cell-renderer/default-cell-renderer.component.js.map +1 -0
- package/esm5/lib/components/table/default-cell-renderer/default-cell-renderer.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/table/default-cell-renderer/default-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
- package/esm5/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.js +22 -0
- package/esm5/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.js.map +1 -0
- package/esm5/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
- package/esm5/lib/components/table/edit-row-controls/edit-row-controls.component.js +57 -0
- package/esm5/lib/components/table/edit-row-controls/edit-row-controls.component.js.map +1 -0
- package/esm5/lib/components/table/edit-row-controls/edit-row-controls.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/table/edit-row-controls/edit-row-controls.component.scss.shim.ngstyle.js.map +1 -0
- package/esm5/lib/components/table/select-cell-renderer/select-cell-renderer.component.js +47 -0
- package/esm5/lib/components/table/select-cell-renderer/select-cell-renderer.component.js.map +1 -0
- package/esm5/lib/components/table/select-cell-renderer/select-cell-renderer.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/table/select-cell-renderer/select-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
- package/esm5/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.js +35 -0
- package/esm5/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.js.map +1 -0
- package/esm5/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
- package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js +66 -0
- package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -0
- package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
- package/esm5/lib/components/table/table-def.js +1 -0
- package/esm5/lib/components/table/table-def.js.map +1 -0
- package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js +33 -0
- package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js.map +1 -0
- package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.scss.shim.ngstyle.js.map +1 -0
- package/esm5/lib/components/table/table-model.js +213 -0
- package/esm5/lib/components/table/table-model.js.map +1 -0
- package/esm5/lib/components/table/table.component.js +62 -0
- package/esm5/lib/components/table/table.component.js.map +1 -0
- package/esm5/lib/components/table/table.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/table/table.component.scss.shim.ngstyle.js.map +1 -0
- package/esm5/lib/interaction/activity.js +7 -2
- package/esm5/lib/interaction/activity.js.map +1 -1
- package/esm5/lib/interaction/components/activity-actions/activity-actions.component.js +2 -2
- package/esm5/lib/interaction/components/activity-actions/activity-actions.component.js.map +1 -1
- package/esm5/lib/interaction/components/activity-container/activity-container.component.js +23 -9
- package/esm5/lib/interaction/components/activity-container/activity-container.component.js.map +1 -1
- package/esm5/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js.map +1 -1
- package/esm5/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js +95 -0
- package/esm5/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.js.map +1 -0
- package/esm5/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.ngfactory.js.map +1 -0
- package/esm5/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.scss.shim.ngstyle.js.map +1 -0
- package/esm5/lib/interaction/directives/interaction-context-trigger-for.directive.js +90 -0
- package/esm5/lib/interaction/directives/interaction-context-trigger-for.directive.js.map +1 -0
- package/esm5/lib/interaction/directives/interaction-context-trigger-for.directive.ngfactory.js.map +1 -0
- package/esm5/lib/interaction/index.js +2 -0
- package/esm5/lib/interaction/index.js.map +1 -1
- package/esm5/lib/interaction/interaction.module.js +16 -4
- package/esm5/lib/interaction/interaction.module.js.map +1 -1
- package/esm5/lib/interaction/interaction.module.ngfactory.js.map +1 -1
- package/fesm2015/coolon-angular-ui-powerups.js +2291 -1368
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +2536 -1526
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/components/forms/abstract-input-activity.d.ts +18 -0
- package/lib/components/forms/abstract-input.component.d.ts +1 -0
- package/lib/components/forms/string-input/string-input-activity.d.ts +3 -0
- package/lib/components/index.d.ts +17 -0
- package/lib/components/table/cell-editor.component.d.ts +5 -0
- package/lib/components/table/cell-renderer.d.ts +3 -0
- package/lib/components/table/column-model.d.ts +84 -0
- package/lib/components/table/column-template/column-template.directive.d.ts +7 -0
- package/lib/components/table/column-text-properties.d.ts +3 -0
- package/lib/components/table/default-cell-renderer/default-cell-renderer.component.d.ts +6 -0
- package/lib/components/table/default-header-cell-renderer/default-header-cell-renderer.component.d.ts +5 -0
- package/lib/components/table/edit-row-controls/edit-row-controls.component.d.ts +14 -0
- package/lib/components/table/select-cell-renderer/select-cell-renderer.component.d.ts +11 -0
- package/lib/components/table/select-header-cell-renderer/select-header-cell-renderer.component.d.ts +9 -0
- package/lib/components/table/table-cell-renderer/table-cell-renderer.component.d.ts +18 -0
- package/lib/components/table/table-def.d.ts +7 -0
- package/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.d.ts +8 -0
- package/lib/components/table/table-model.d.ts +114 -0
- package/lib/components/table/table.component.d.ts +40 -0
- package/lib/interaction/activity.d.ts +1 -0
- package/lib/interaction/components/activity-container/activity-container.component.d.ts +2 -1
- package/lib/interaction/components/popup-interaction-context/popup-interaction-context.component.d.ts +21 -0
- package/lib/interaction/directives/interaction-context-trigger-for.directive.d.ts +17 -0
- package/lib/interaction/index.d.ts +2 -0
- package/package.json +5 -4
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
import { __decorate, __metadata, __param, __awaiter } from 'tslib';
|
|
2
2
|
import { DOCUMENT, CommonModule, Location } from '@angular/common';
|
|
3
|
-
import { ElementRef, Inject, Input, HostListener, Directive, NgZone, ɵɵdefineInjectable, ɵɵinject, Injectable, NgModule,
|
|
3
|
+
import { ElementRef, Inject, Input, HostListener, Directive, NgZone, ɵɵdefineInjectable, ɵɵinject, Injectable, NgModule, HostBinding, Component, ContentChild, TemplateRef, Self, InjectionToken, Injector, ComponentFactoryResolver, ViewContainerRef, ViewChild, ViewChildren, QueryList, Optional, EventEmitter, Output, ChangeDetectorRef, ContentChildren, SkipSelf } from '@angular/core';
|
|
4
4
|
import { FormsModule } from '@angular/forms';
|
|
5
5
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
6
6
|
import { MatInputModule } from '@angular/material/input';
|
|
7
7
|
import { MatSelectModule } from '@angular/material/select';
|
|
8
8
|
import { MatTabsModule, MatTabGroup, MAT_TABS_CONFIG } from '@angular/material/tabs';
|
|
9
9
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
10
|
+
import { ComponentPortal, PortalModule } from '@angular/cdk/portal';
|
|
10
11
|
import { MatButtonModule } from '@angular/material/button';
|
|
11
12
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
12
13
|
import { MatIconModule } from '@angular/material/icon';
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
14
|
+
import { MatTableModule } from '@angular/material/table';
|
|
15
|
+
import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, Logger, FocusManager, MutableValueModel, TrackExternal, Command, Deferred, Trace, MutableListModel, Form, DelegatingFormValueModel, ListModel, StoreInListModel, ValueModel, StoreInValueModel, MultipleSelectionModel, Guard, DebugContext, Binding, Functions } from '@coolon/pectin';
|
|
16
|
+
import { FlexModule, GridModule } from '@angular/flex-layout';
|
|
15
17
|
import { MatDialog, MatDialogConfig, MAT_DIALOG_DEFAULT_OPTIONS, MatDialogModule } from '@angular/material/dialog';
|
|
16
18
|
import { RouterModule, UrlSegment, Router, UrlSerializer, NavigationStart, NavigationEnd, NavigationError, NavigationCancel, RouterOutlet } from '@angular/router';
|
|
17
19
|
import ___default, { isEqual, isNil } from 'lodash';
|
|
18
20
|
import ResizeObserver from 'resize-observer-polyfill';
|
|
19
21
|
import { assert as assert$1, lang as lang$1, Opts, Klass } from '@coolon/typescript-utilities';
|
|
20
|
-
import {
|
|
22
|
+
import { Overlay } from '@angular/cdk/overlay';
|
|
23
|
+
import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
|
|
24
|
+
import produce from 'immer';
|
|
21
25
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
22
26
|
import { MatListModule } from '@angular/material/list';
|
|
23
27
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
24
|
-
import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
|
|
25
28
|
import { Memoize as Memoize$1 } from '@typescript-plus/fast-memoize-decorator';
|
|
26
29
|
import 'reflect-metadata';
|
|
27
30
|
import { style, query, group, animate, trigger, transition } from '@angular/animations';
|
|
@@ -325,42 +328,6 @@ DirectivesModule = __decorate([
|
|
|
325
328
|
})
|
|
326
329
|
], DirectivesModule);
|
|
327
330
|
|
|
328
|
-
let FocusContainerComponent = class FocusContainerComponent extends DisposableComponent {
|
|
329
|
-
constructor(focusManager) {
|
|
330
|
-
super();
|
|
331
|
-
this.focusManager = focusManager;
|
|
332
|
-
this.restoreFocusCommand = Command.create(() => {
|
|
333
|
-
this.restoreFocus();
|
|
334
|
-
});
|
|
335
|
-
this.tabIndex = -1;
|
|
336
|
-
}
|
|
337
|
-
ngOnInit() {
|
|
338
|
-
}
|
|
339
|
-
// @Trace()
|
|
340
|
-
restoreFocus() {
|
|
341
|
-
this.focusManager.restoreFocus();
|
|
342
|
-
}
|
|
343
|
-
};
|
|
344
|
-
FocusContainerComponent.ctorParameters = () => [
|
|
345
|
-
{ type: FocusManager, decorators: [{ type: Self }] }
|
|
346
|
-
];
|
|
347
|
-
__decorate([
|
|
348
|
-
HostBinding('attr.tabindex'),
|
|
349
|
-
__metadata("design:type", Object)
|
|
350
|
-
], FocusContainerComponent.prototype, "tabIndex", void 0);
|
|
351
|
-
FocusContainerComponent = __decorate([
|
|
352
|
-
Component({
|
|
353
|
-
selector: 'aup-focus-container',
|
|
354
|
-
template: "<ng-content></ng-content>\n",
|
|
355
|
-
providers: [
|
|
356
|
-
{ provide: FocusManager }
|
|
357
|
-
],
|
|
358
|
-
styles: [":host{display:block}"]
|
|
359
|
-
}),
|
|
360
|
-
__param(0, Self()),
|
|
361
|
-
__metadata("design:paramtypes", [FocusManager])
|
|
362
|
-
], FocusContainerComponent);
|
|
363
|
-
|
|
364
331
|
let FocusableComponent = class FocusableComponent extends DisposableComponent {
|
|
365
332
|
constructor(el, focusManager, focusBindingFactory) {
|
|
366
333
|
super();
|
|
@@ -415,1634 +382,2506 @@ FocusableComponent = __decorate([
|
|
|
415
382
|
__metadata("design:paramtypes", [ElementRef, FocusManager, FocusBindingFactory])
|
|
416
383
|
], FocusableComponent);
|
|
417
384
|
|
|
418
|
-
|
|
419
|
-
constructor() {
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
* A backing model for all our @Input() valueModel properties which should be defined as follows.
|
|
423
|
-
*
|
|
424
|
-
* @Input() @TrackExternal({useExisting: "delegatingFormValueModel"})
|
|
425
|
-
* valueModel: FormValueModel<string> | MutableValueModel<string>;
|
|
426
|
-
*
|
|
427
|
-
* This approach allows the input to accept plain or form models but all backed by a form
|
|
428
|
-
* friendly delegate. We have to use an existing delegate for union types as pectin just
|
|
429
|
-
* gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).
|
|
430
|
-
*/
|
|
431
|
-
// We have to register it as a disposable so it ditches any listeners when we're disposed.
|
|
432
|
-
this.delegatingFormValueModel = this.registerDisposable(new DelegatingFormValueModel());
|
|
433
|
-
// TODO: fix this.
|
|
434
|
-
// tslint:disable-next-line:no-output-native
|
|
435
|
-
this.focus = new EventEmitter();
|
|
436
|
-
// tslint:disable-next-line:no-output-native
|
|
437
|
-
this.blur = new EventEmitter();
|
|
438
|
-
// tslint:disable-next-line:no-output-native
|
|
439
|
-
this.enterKey = new EventEmitter();
|
|
440
|
-
// tslint:disable-next-line:no-output-native
|
|
441
|
-
this.escapeKey = new EventEmitter();
|
|
442
|
-
const self = this;
|
|
443
|
-
this.errorStateMatcher = {
|
|
444
|
-
isErrorState(control, form) {
|
|
445
|
-
return self.hasErrors();
|
|
446
|
-
}
|
|
447
|
-
};
|
|
448
|
-
}
|
|
449
|
-
notifyClick() {
|
|
450
|
-
this.safelyInvoke(this.clickCommand);
|
|
385
|
+
class Dimension {
|
|
386
|
+
constructor(width, height) {
|
|
387
|
+
this.width = width;
|
|
388
|
+
this.height = height;
|
|
451
389
|
}
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
class Point {
|
|
393
|
+
constructor(x, y) {
|
|
394
|
+
this.x = x;
|
|
395
|
+
this.y = y;
|
|
455
396
|
}
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
this.blur.emit();
|
|
397
|
+
static from(data) {
|
|
398
|
+
return new Point(data.x, data.y);
|
|
459
399
|
}
|
|
460
|
-
|
|
461
|
-
this.
|
|
462
|
-
this.enterKey.emit();
|
|
400
|
+
translate(x, y) {
|
|
401
|
+
return new Point(this.x + x, this.y + y);
|
|
463
402
|
}
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
class Bounds extends Dimension {
|
|
406
|
+
constructor(top, left, width, height) {
|
|
407
|
+
super(width, height);
|
|
408
|
+
this.top = top;
|
|
409
|
+
this.left = left;
|
|
410
|
+
this.width = width;
|
|
411
|
+
this.height = height;
|
|
467
412
|
}
|
|
468
|
-
|
|
469
|
-
if (
|
|
470
|
-
|
|
413
|
+
relativePositionOf(point) {
|
|
414
|
+
if (point instanceof MouseEvent) {
|
|
415
|
+
return new Point(point.clientX - this.left, point.clientY - this.top);
|
|
416
|
+
}
|
|
417
|
+
else {
|
|
418
|
+
return new Point(point.x - this.left, point.y - this.top);
|
|
471
419
|
}
|
|
472
420
|
}
|
|
473
|
-
|
|
421
|
+
}
|
|
422
|
+
(function (Bounds) {
|
|
423
|
+
function ofElement(element) {
|
|
424
|
+
const rect = element.getBoundingClientRect();
|
|
425
|
+
return new Bounds(rect.top, rect.left, rect.width, rect.height);
|
|
474
426
|
}
|
|
475
|
-
|
|
476
|
-
|
|
427
|
+
Bounds.ofElement = ofElement;
|
|
428
|
+
})(Bounds || (Bounds = {}));
|
|
429
|
+
|
|
430
|
+
let ResizeAwareComponent = class ResizeAwareComponent extends DisposableComponent {
|
|
431
|
+
constructor(elementRef, ngZone) {
|
|
432
|
+
super();
|
|
433
|
+
this.elementRef = elementRef;
|
|
434
|
+
this.ngZone = ngZone;
|
|
435
|
+
this._boundsModel = new MutableValueModel(new Bounds(0, 0, 0, 0));
|
|
477
436
|
}
|
|
478
|
-
|
|
479
|
-
|
|
437
|
+
ngAfterViewInit() {
|
|
438
|
+
this.updateBounds();
|
|
439
|
+
const element = this.elementRef.nativeElement;
|
|
440
|
+
const ro = new ResizeObserver((entries, observer) => {
|
|
441
|
+
this.ngZone.run(() => this.updateBounds());
|
|
442
|
+
});
|
|
443
|
+
ro.observe(element);
|
|
444
|
+
this.onDispose(() => ro.disconnect());
|
|
480
445
|
}
|
|
481
|
-
|
|
482
|
-
return
|
|
446
|
+
get boundsModel() {
|
|
447
|
+
return this._boundsModel.readonly;
|
|
483
448
|
}
|
|
484
|
-
get
|
|
485
|
-
return this.
|
|
449
|
+
get nativeElement() {
|
|
450
|
+
return this.elementRef.nativeElement;
|
|
486
451
|
}
|
|
487
|
-
|
|
488
|
-
|
|
452
|
+
// TODO: Make this handle body scroll
|
|
453
|
+
relativePositionOf(point) {
|
|
454
|
+
return this.bounds.relativePositionOf(point);
|
|
455
|
+
}
|
|
456
|
+
get bounds() {
|
|
457
|
+
return this._boundsModel.value;
|
|
458
|
+
}
|
|
459
|
+
updateBounds() {
|
|
460
|
+
this._boundsModel.value = Bounds.ofElement(this.nativeElement);
|
|
461
|
+
}
|
|
462
|
+
};
|
|
463
|
+
ResizeAwareComponent.ctorParameters = () => [
|
|
464
|
+
{ type: ElementRef },
|
|
465
|
+
{ type: NgZone }
|
|
466
|
+
];
|
|
467
|
+
ResizeAwareComponent = __decorate([
|
|
468
|
+
Directive(),
|
|
469
|
+
__metadata("design:paramtypes", [ElementRef, NgZone])
|
|
470
|
+
], ResizeAwareComponent);
|
|
471
|
+
|
|
472
|
+
/**
|
|
473
|
+
* @example
|
|
474
|
+
* // CSS Vars
|
|
475
|
+
* aup-card-container {
|
|
476
|
+
* --card-gap: var(--card-gap, 16px);
|
|
477
|
+
* --card-width: var(--card-width, 300px);
|
|
478
|
+
* --card-height: var(--card-height, auto);
|
|
479
|
+
* --card-min-height: var(--card-min-height, auto);
|
|
480
|
+
* --card-background: var(--card-background, #fcfcfb);
|
|
481
|
+
* }
|
|
482
|
+
*
|
|
483
|
+
* // Content Templates:
|
|
484
|
+
* #addCardTemplate
|
|
485
|
+
* <ng-template #addCardTemplate>
|
|
486
|
+
* This is a new card template, it will the the size of the other cards.
|
|
487
|
+
* </nav-template>
|
|
488
|
+
*
|
|
489
|
+
*/
|
|
490
|
+
let CardContainerComponent = class CardContainerComponent extends DisposableComponent {
|
|
491
|
+
constructor() {
|
|
492
|
+
super();
|
|
493
|
+
}
|
|
494
|
+
ngOnInit() {
|
|
489
495
|
}
|
|
490
496
|
};
|
|
491
497
|
__decorate([
|
|
492
498
|
Input(),
|
|
493
|
-
|
|
494
|
-
], AbstractInputComponent.prototype, "label", void 0);
|
|
495
|
-
__decorate([
|
|
496
|
-
Input(),
|
|
497
|
-
__metadata("design:type", String)
|
|
498
|
-
], AbstractInputComponent.prototype, "floatLabel", void 0);
|
|
499
|
-
__decorate([
|
|
500
|
-
Input(),
|
|
501
|
-
__metadata("design:type", String)
|
|
502
|
-
], AbstractInputComponent.prototype, "hint", void 0);
|
|
503
|
-
__decorate([
|
|
504
|
-
Input(),
|
|
505
|
-
__metadata("design:type", String)
|
|
506
|
-
], AbstractInputComponent.prototype, "placeholder", void 0);
|
|
507
|
-
__decorate([
|
|
508
|
-
Input('command.focus'),
|
|
509
|
-
__metadata("design:type", Command)
|
|
510
|
-
], AbstractInputComponent.prototype, "focusCommand", void 0);
|
|
511
|
-
__decorate([
|
|
512
|
-
Input('command.blur'),
|
|
513
|
-
__metadata("design:type", Command)
|
|
514
|
-
], AbstractInputComponent.prototype, "blurCommand", void 0);
|
|
515
|
-
__decorate([
|
|
516
|
-
Input('command.enter'),
|
|
499
|
+
TrackExternal(),
|
|
517
500
|
__metadata("design:type", Command)
|
|
518
|
-
],
|
|
501
|
+
], CardContainerComponent.prototype, "addCardCommand", void 0);
|
|
519
502
|
__decorate([
|
|
520
|
-
|
|
521
|
-
__metadata("design:type",
|
|
522
|
-
],
|
|
503
|
+
ContentChild("addCardTemplate"),
|
|
504
|
+
__metadata("design:type", TemplateRef)
|
|
505
|
+
], CardContainerComponent.prototype, "addCardTemplate", void 0);
|
|
506
|
+
CardContainerComponent = __decorate([
|
|
507
|
+
Component({
|
|
508
|
+
selector: 'aup-card-container',
|
|
509
|
+
template: "<div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled.value\" [pectinCommand]=\"addCardCommand\">\n <mat-icon>add</mat-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n\n</div>\n",
|
|
510
|
+
styles: [":root{--aup-default-padding:var(--default-padding, 18px);--aup-default-background:white}.router-outlet-container>*{position:absolute;top:0;left:0;bottom:0;right:0}[no-tab-header]>mat-tab-header{display:none}[full-height-tabs] .mat-tab-body-wrapper,mat-tab-group.full-height-tabs .mat-tab-body-wrapper{flex:1}[full-height-tabs] .mat-tab-body-wrapper .mat-tab-body-content,[full-height-tabs] .mat-tab-body-wrapper mat-tab-body,mat-tab-group.full-height-tabs .mat-tab-body-wrapper .mat-tab-body-content,mat-tab-group.full-height-tabs .mat-tab-body-wrapper mat-tab-body{display:flex;flex-direction:column;justify-content:stretch}.dialog-interaction-context{max-width:95vw!important;max-height:95vh!important}.dialog-interaction-context mat-dialog-container{max-width:95vw!important;max-height:95vh!important;padding:0}.aup-popup-interaction-panel{background:var(--aup-default-background,#fff);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);transition:box-shadow 280ms cubic-bezier(.4,0,.2,1)}.aup-input-activity{padding:calc(var(--aup-default-padding)/2)}.aup-input-component{display:block}.aup-input-component input,.aup-input-component mat-form-field{width:100%}.aup-input-component input mat-hint.faux-error,.aup-input-component mat-form-field mat-hint.faux-error{color:#f44336}aup-table-cell-renderer>.aup-input-component .mat-form-field-flex{padding-top:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-infix{width:0}aup-table-cell-renderer>.aup-input-component .mat-form-field-label-wrapper{display:none}aup-table{--default-column-gap:var(--column-gap, 24px)}aup-table aup-table-cell-renderer:not(.first-column),aup-table aup-table-header-cell-renderer:not(.first-column){padding-left:var(--default-column-gap)}:host{--resolved-card-gap:var(--card-gap, 16px);--resolved-card-width:var(--card-width, 300px);--resolved-card-height:var(--card-height, auto);--resolved-card-min-height:var(--card-min-height, auto);--resolved-card-background:var(--card-background, #fcfcfb);flex:1;display:block;background:var(--resolved-card-background)}.card-container{display:-ms-grid;display:grid;grid-template-columns:repeat(auto-fill,var(--resolved-card-width));grid-template-rows:repeat(auto-fit,minmax(0,var(--resolved-card-height)));grid-gap:var(--resolved-card-gap);box-sizing:border-box;padding:var(--resolved-card-gap);min-height:calc(var(--resolved-card-height) + 2 * var(--resolved-card-gap));min-width:calc(var(--resolved-card-width) + 2 * var(--resolved-card-gap));width:calc((var(--resolved-card-width) + var(--resolved-card-gap)) * 2 + var(--grid-gap));max-width:100%}.add-card-container{width:var(--resolved-card-width);height:var(--resolved-card-height);min-height:var(--resolved-card-min-height);display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;border:2px dashed rgba(0,0,0,.1);border-radius:6px;font-weight:300;cursor:pointer;color:rgba(0,0,0,.54);background-color:rgba(255,255,255,.8);transition:280ms cubic-bezier(.4,0,.2,1)}.add-card-container mat-icon{font-size:200%}.add-card-container:hover{transition:280ms cubic-bezier(.4,0,.2,1);border-color:transparent;background-color:#fff;color:rgba(0,0,0,.54)}.add-card-container:hover:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.add-card-template-container{width:var(--resolved-card-width);height:var(--resolved-card-height);display:flex;flex-direction:column;align-items:stretch;justify-content:stretch}"]
|
|
511
|
+
}),
|
|
512
|
+
__metadata("design:paramtypes", [])
|
|
513
|
+
], CardContainerComponent);
|
|
514
|
+
|
|
515
|
+
let FocusContainerComponent = class FocusContainerComponent extends DisposableComponent {
|
|
516
|
+
constructor(focusManager) {
|
|
517
|
+
super();
|
|
518
|
+
this.focusManager = focusManager;
|
|
519
|
+
this.restoreFocusCommand = Command.create(() => {
|
|
520
|
+
this.restoreFocus();
|
|
521
|
+
});
|
|
522
|
+
this.tabIndex = -1;
|
|
523
|
+
}
|
|
524
|
+
ngOnInit() {
|
|
525
|
+
}
|
|
526
|
+
// @Trace()
|
|
527
|
+
restoreFocus() {
|
|
528
|
+
this.focusManager.restoreFocus();
|
|
529
|
+
}
|
|
530
|
+
};
|
|
531
|
+
FocusContainerComponent.ctorParameters = () => [
|
|
532
|
+
{ type: FocusManager, decorators: [{ type: Self }] }
|
|
533
|
+
];
|
|
523
534
|
__decorate([
|
|
524
|
-
|
|
525
|
-
__metadata("design:type", Command)
|
|
526
|
-
], AbstractInputComponent.prototype, "clickCommand", void 0);
|
|
527
|
-
__decorate([
|
|
528
|
-
Output(),
|
|
529
|
-
__metadata("design:type", Object)
|
|
530
|
-
], AbstractInputComponent.prototype, "focus", void 0);
|
|
531
|
-
__decorate([
|
|
532
|
-
Output(),
|
|
533
|
-
__metadata("design:type", Object)
|
|
534
|
-
], AbstractInputComponent.prototype, "blur", void 0);
|
|
535
|
-
__decorate([
|
|
536
|
-
Output(),
|
|
537
|
-
__metadata("design:type", Object)
|
|
538
|
-
], AbstractInputComponent.prototype, "enterKey", void 0);
|
|
539
|
-
__decorate([
|
|
540
|
-
Output(),
|
|
535
|
+
HostBinding('attr.tabindex'),
|
|
541
536
|
__metadata("design:type", Object)
|
|
542
|
-
],
|
|
543
|
-
__decorate([
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
__metadata("design:
|
|
554
|
-
],
|
|
555
|
-
__decorate([
|
|
556
|
-
HostListener('focusout'),
|
|
557
|
-
__metadata("design:type", Function),
|
|
558
|
-
__metadata("design:paramtypes", []),
|
|
559
|
-
__metadata("design:returntype", void 0)
|
|
560
|
-
], AbstractInputComponent.prototype, "notifyFocusOut", null);
|
|
561
|
-
AbstractInputComponent = __decorate([
|
|
562
|
-
Component({ template: '' }),
|
|
563
|
-
__metadata("design:paramtypes", [])
|
|
564
|
-
], AbstractInputComponent);
|
|
537
|
+
], FocusContainerComponent.prototype, "tabIndex", void 0);
|
|
538
|
+
FocusContainerComponent = __decorate([
|
|
539
|
+
Component({
|
|
540
|
+
selector: 'aup-focus-container',
|
|
541
|
+
template: "<ng-content></ng-content>\n",
|
|
542
|
+
providers: [
|
|
543
|
+
{ provide: FocusManager }
|
|
544
|
+
],
|
|
545
|
+
styles: [":host{display:block}"]
|
|
546
|
+
}),
|
|
547
|
+
__param(0, Self()),
|
|
548
|
+
__metadata("design:paramtypes", [FocusManager])
|
|
549
|
+
], FocusContainerComponent);
|
|
565
550
|
|
|
566
|
-
|
|
551
|
+
const ACTIVITY_DATA = new InjectionToken('InteractionActivityData');
|
|
552
|
+
class Activity extends DisposableComponent {
|
|
567
553
|
constructor() {
|
|
568
|
-
super();
|
|
569
|
-
this.
|
|
570
|
-
this.
|
|
554
|
+
super(...arguments);
|
|
555
|
+
this._busyModel = new DelegatingValueModel().withDefault(false);
|
|
556
|
+
this.class = 'aup-activity';
|
|
571
557
|
}
|
|
572
|
-
|
|
558
|
+
initialise(nestedInteractionContext, activityContext) {
|
|
559
|
+
assert$1.isNil(this._activityContext);
|
|
560
|
+
this._activityContext = activityContext;
|
|
561
|
+
this._interactionContext = nestedInteractionContext;
|
|
573
562
|
}
|
|
574
|
-
|
|
563
|
+
get interactionContext() {
|
|
564
|
+
assert$1.isTruthy(this.isInitialised());
|
|
565
|
+
return this._interactionContext;
|
|
566
|
+
}
|
|
567
|
+
done(result) {
|
|
568
|
+
return this._activityContext.onDone(result);
|
|
569
|
+
}
|
|
570
|
+
cancel(error) {
|
|
571
|
+
this._activityContext.onCancel(error);
|
|
572
|
+
}
|
|
573
|
+
// @Trace()
|
|
574
|
+
onActivityReady() {
|
|
575
|
+
}
|
|
576
|
+
get busy() {
|
|
577
|
+
return this._busyModel.readonly;
|
|
578
|
+
}
|
|
579
|
+
busyWhile(busyModel) {
|
|
580
|
+
this._busyModel.setDelegate(busyModel);
|
|
581
|
+
}
|
|
582
|
+
isBusy() {
|
|
583
|
+
return this._busyModel.value;
|
|
584
|
+
}
|
|
585
|
+
isInitialised() {
|
|
586
|
+
return !!this._activityContext;
|
|
587
|
+
}
|
|
588
|
+
}
|
|
575
589
|
__decorate([
|
|
576
|
-
|
|
590
|
+
HostBinding('class'),
|
|
577
591
|
__metadata("design:type", Object)
|
|
578
|
-
],
|
|
579
|
-
__decorate([
|
|
580
|
-
Input(),
|
|
581
|
-
__metadata("design:type", String)
|
|
582
|
-
], CheckboxInputComponent.prototype, "color", void 0);
|
|
583
|
-
__decorate([
|
|
584
|
-
Input(),
|
|
585
|
-
__metadata("design:type", String)
|
|
586
|
-
], CheckboxInputComponent.prototype, "labelPosition", void 0);
|
|
587
|
-
CheckboxInputComponent = __decorate([
|
|
588
|
-
Component({
|
|
589
|
-
selector: 'aup-checkbox-input',
|
|
590
|
-
template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [(ngModel)]=\"valueModel.value\"\n [color]=\"color\"\n [labelPosition]=\"labelPosition\"\n [disabled]=\"!isEnabled()\"\n>{{label}}</mat-checkbox>\n<mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n<mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n",
|
|
591
|
-
styles: [":host{display:inline-flex;flex-direction:column;margin-top:24px;margin-bottom:16px}mat-error,mat-hint{margin-top:4px;margin-left:24px;font-size:12px;font-weight:400;line-height:13.5px}"]
|
|
592
|
-
}),
|
|
593
|
-
__metadata("design:paramtypes", [])
|
|
594
|
-
], CheckboxInputComponent);
|
|
592
|
+
], Activity.prototype, "class", void 0);
|
|
595
593
|
|
|
596
|
-
let
|
|
597
|
-
constructor() {
|
|
594
|
+
let AlertDialogComponent = class AlertDialogComponent extends Activity {
|
|
595
|
+
constructor(alert) {
|
|
598
596
|
super();
|
|
599
|
-
this.
|
|
600
|
-
this.max = Number.MAX_SAFE_INTEGER;
|
|
597
|
+
this.alert = alert;
|
|
601
598
|
}
|
|
602
599
|
ngOnInit() {
|
|
603
600
|
}
|
|
604
601
|
};
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
__decorate([
|
|
610
|
-
Input(),
|
|
611
|
-
__metadata("design:type", Object)
|
|
612
|
-
], NumberInputComponent.prototype, "min", void 0);
|
|
613
|
-
__decorate([
|
|
614
|
-
Input(),
|
|
615
|
-
__metadata("design:type", Object)
|
|
616
|
-
], NumberInputComponent.prototype, "max", void 0);
|
|
617
|
-
NumberInputComponent = __decorate([
|
|
602
|
+
AlertDialogComponent.ctorParameters = () => [
|
|
603
|
+
{ type: undefined, decorators: [{ type: Inject, args: [ACTIVITY_DATA,] }] }
|
|
604
|
+
];
|
|
605
|
+
AlertDialogComponent = __decorate([
|
|
618
606
|
Component({
|
|
619
|
-
selector: 'aup-
|
|
620
|
-
template: "<
|
|
621
|
-
styles: [":host{display:block}
|
|
607
|
+
selector: 'aup-alert-dialog',
|
|
608
|
+
template: "<h3 matDialogTitle *ngIf=\"alert.title\">{{alert.title()}}</h3>\n<div matDialogContent>\n <p *ngFor=\"let line of alert.content()\">{{line}}</p>\n</div>\n<div matDialogActions>\n <button mat-raised-button color=\"primary\" (click)=\"done()\" data-cy=\"close-button\">{{alert.ok()}}</button>\n</div>\n",
|
|
609
|
+
styles: [":host{display:block;padding:var(--aup-default-padding)}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}"]
|
|
622
610
|
}),
|
|
623
|
-
|
|
624
|
-
|
|
611
|
+
__param(0, Inject(ACTIVITY_DATA)),
|
|
612
|
+
__metadata("design:paramtypes", [Object])
|
|
613
|
+
], AlertDialogComponent);
|
|
625
614
|
|
|
626
|
-
let
|
|
627
|
-
constructor() {
|
|
615
|
+
let ConfirmThenDialogComponent = class ConfirmThenDialogComponent extends Activity {
|
|
616
|
+
constructor(config) {
|
|
628
617
|
super();
|
|
618
|
+
this.config = config;
|
|
619
|
+
assert.notNil(config);
|
|
629
620
|
}
|
|
630
621
|
ngOnInit() {
|
|
631
622
|
}
|
|
623
|
+
get confirm() {
|
|
624
|
+
return this.config.confirm;
|
|
625
|
+
}
|
|
626
|
+
isDestructive() {
|
|
627
|
+
return this.confirm.destructive && this.confirm.destructive();
|
|
628
|
+
}
|
|
629
|
+
onConfirm() {
|
|
630
|
+
this.interactionContext.startActivity(this.config.activityType, this.config.data)
|
|
631
|
+
.then((result) => this.done(result))
|
|
632
|
+
.catch(error => this.cancel(error));
|
|
633
|
+
}
|
|
632
634
|
};
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
PasswordInputComponent = __decorate([
|
|
635
|
+
ConfirmThenDialogComponent.ctorParameters = () => [
|
|
636
|
+
{ type: undefined, decorators: [{ type: Inject, args: [ACTIVITY_DATA,] }] }
|
|
637
|
+
];
|
|
638
|
+
ConfirmThenDialogComponent = __decorate([
|
|
638
639
|
Component({
|
|
639
|
-
selector: 'aup-
|
|
640
|
-
template: "<
|
|
641
|
-
styles: [":host{display:block}
|
|
640
|
+
selector: 'aup-confirmation-dialog',
|
|
641
|
+
template: "<h3 matDialogTitle *ngIf=\"confirm.title\">{{confirm.title()}}</h3>\n<div matDialogContent>\n <p *ngFor=\"let line of confirm.content()\">{{line}}</p>\n</div>\n<div matDialogActions>\n <button mat-button (click)=\"cancel()\" data-cy=\"cancel-button\">{{confirm.cancel()}}</button>\n <button mat-raised-button [color]=\"isDestructive() ? 'warn' : 'primary'\"\n (click)=\"onConfirm()\" data-cy=\"confirm-button\">{{confirm.ok()}}</button>\n</div>\n\n",
|
|
642
|
+
styles: [":host{display:block;padding:var(--aup-default-padding)}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}"]
|
|
642
643
|
}),
|
|
643
|
-
|
|
644
|
-
|
|
644
|
+
__param(0, Inject(ACTIVITY_DATA)),
|
|
645
|
+
__metadata("design:paramtypes", [Object])
|
|
646
|
+
], ConfirmThenDialogComponent);
|
|
645
647
|
|
|
646
|
-
let
|
|
647
|
-
constructor() {
|
|
648
|
+
let ConfirmationDialogComponent = class ConfirmationDialogComponent extends Activity {
|
|
649
|
+
constructor(confirm) {
|
|
648
650
|
super();
|
|
649
|
-
this.
|
|
651
|
+
this.confirm = confirm;
|
|
652
|
+
assert.notNil(confirm);
|
|
650
653
|
}
|
|
651
654
|
ngOnInit() {
|
|
652
655
|
}
|
|
656
|
+
isDestructive() {
|
|
657
|
+
return this.confirm.destructive && this.confirm.destructive();
|
|
658
|
+
}
|
|
653
659
|
};
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
__decorate([
|
|
659
|
-
Input(), TrackExternal(),
|
|
660
|
-
__metadata("design:type", ListModel)
|
|
661
|
-
], SelectInputComponent.prototype, "optionsModel", void 0);
|
|
662
|
-
__decorate([
|
|
663
|
-
Input(), StoreInListModel('optionsModel'),
|
|
664
|
-
__metadata("design:type", Array)
|
|
665
|
-
], SelectInputComponent.prototype, "options", void 0);
|
|
666
|
-
__decorate([
|
|
667
|
-
Input(),
|
|
668
|
-
__metadata("design:type", Object)
|
|
669
|
-
], SelectInputComponent.prototype, "optionLabel", void 0);
|
|
670
|
-
__decorate([
|
|
671
|
-
Input(),
|
|
672
|
-
__metadata("design:type", Boolean)
|
|
673
|
-
], SelectInputComponent.prototype, "allowNil", void 0);
|
|
674
|
-
__decorate([
|
|
675
|
-
ContentChild("optionTemplate"),
|
|
676
|
-
__metadata("design:type", TemplateRef)
|
|
677
|
-
], SelectInputComponent.prototype, "optionTemplateRef", void 0);
|
|
678
|
-
__decorate([
|
|
679
|
-
ContentChild("nilOptionTemplate"),
|
|
680
|
-
__metadata("design:type", TemplateRef)
|
|
681
|
-
], SelectInputComponent.prototype, "nilOptionTemplateRef", void 0);
|
|
682
|
-
__decorate([
|
|
683
|
-
Input(),
|
|
684
|
-
__metadata("design:type", Function)
|
|
685
|
-
], SelectInputComponent.prototype, "optionLabelFormat", void 0);
|
|
686
|
-
SelectInputComponent = __decorate([
|
|
660
|
+
ConfirmationDialogComponent.ctorParameters = () => [
|
|
661
|
+
{ type: undefined, decorators: [{ type: Inject, args: [ACTIVITY_DATA,] }] }
|
|
662
|
+
];
|
|
663
|
+
ConfirmationDialogComponent = __decorate([
|
|
687
664
|
Component({
|
|
688
|
-
selector: 'aup-
|
|
689
|
-
template: "<
|
|
690
|
-
styles: [":host{display:
|
|
665
|
+
selector: 'aup-confirmation-dialog',
|
|
666
|
+
template: "<h3 matDialogTitle *ngIf=\"confirm.title\">{{confirm.title()}}</h3>\n<div matDialogContent>\n <p *ngFor=\"let line of confirm.content()\">{{line}}</p>\n</div>\n<div matDialogActions>\n <button mat-button (click)=\"cancel()\" data-cy=\"cancel-button\">{{confirm.cancel()}}</button>\n <button mat-raised-button [color]=\"isDestructive() ? 'warn' : 'primary'\"\n (click)=\"done()\" data-cy=\"confirm-button\">{{confirm.ok()}}</button>\n</div>\n\n",
|
|
667
|
+
styles: [":host{display:block;padding:var(--aup-default-padding)}.mat-dialog-content{margin:0;padding:0}.mat-dialog-actions{margin-bottom:0!important;padding:0;align-items:flex-end;justify-content:flex-end}"]
|
|
691
668
|
}),
|
|
692
|
-
|
|
693
|
-
|
|
669
|
+
__param(0, Inject(ACTIVITY_DATA)),
|
|
670
|
+
__metadata("design:paramtypes", [Object])
|
|
671
|
+
], ConfirmationDialogComponent);
|
|
694
672
|
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
699
|
-
this.clearCommand = Command.create(() => {
|
|
700
|
-
this.valueModel.value = null;
|
|
701
|
-
});
|
|
702
|
-
this.clearCommand.disableWhile(chain.stringValue(this.valueModel).isBlank());
|
|
673
|
+
class AbstractInteractionContext {
|
|
674
|
+
startActivity(activityType, data) {
|
|
675
|
+
return this.createAndLaunchActivity(activityType, data, false);
|
|
703
676
|
}
|
|
704
|
-
|
|
677
|
+
confirm(confirm) {
|
|
678
|
+
// Important: we have to implement confirmOrReject as the main entry point
|
|
679
|
+
// as the canDeactivation guards need to be able to cancel an interaction
|
|
680
|
+
// without caring about returning a value.
|
|
681
|
+
return this.confirmOrReject(confirm).then(() => true).catch(() => false);
|
|
705
682
|
}
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
683
|
+
alert(alert) {
|
|
684
|
+
// TODO: Test disableClose === false
|
|
685
|
+
return this.createAndLaunchActivity(AlertDialogComponent, alert, false);
|
|
686
|
+
}
|
|
687
|
+
confirmOrReject(confirm) {
|
|
688
|
+
return this.createAndLaunchActivity(ConfirmationDialogComponent, confirm, true);
|
|
689
|
+
}
|
|
690
|
+
/**
|
|
691
|
+
* Presents the confirmation to the user and runs the activity only if the user confirms.
|
|
692
|
+
* @param confirm:Confirm the confirmation to display.
|
|
693
|
+
* @param activityType the activity to run if confirmed.
|
|
694
|
+
* @param data the activity data.
|
|
695
|
+
*/
|
|
696
|
+
confirmThen(confirm, activityType, data) {
|
|
697
|
+
return this.createAndLaunchActivity(ConfirmThenDialogComponent, {
|
|
698
|
+
confirm,
|
|
699
|
+
activityType: activityType,
|
|
700
|
+
data: data
|
|
701
|
+
}, true);
|
|
702
|
+
}
|
|
703
|
+
}
|
|
727
704
|
|
|
728
|
-
|
|
729
|
-
constructor() {
|
|
730
|
-
|
|
731
|
-
this.
|
|
732
|
-
|
|
705
|
+
class ActivityRef {
|
|
706
|
+
constructor(activityClass, activityData, onComplete) {
|
|
707
|
+
this.activityClass = activityClass;
|
|
708
|
+
this.activityData = activityData;
|
|
709
|
+
this.onComplete = onComplete;
|
|
710
|
+
this._complete = false;
|
|
711
|
+
this.deferredResult = Deferred.defer();
|
|
712
|
+
}
|
|
713
|
+
isActivityRealised() {
|
|
714
|
+
return !!this._activity;
|
|
715
|
+
}
|
|
716
|
+
isComplete() {
|
|
717
|
+
return this._complete;
|
|
718
|
+
}
|
|
719
|
+
get activity() {
|
|
720
|
+
assert.isTruthy(this.isActivityRealised());
|
|
721
|
+
return this._activity;
|
|
722
|
+
}
|
|
723
|
+
notifyActivityCreated(activity, nestedInteractionContext) {
|
|
724
|
+
assert.isNil(this._activity);
|
|
725
|
+
this._activity = activity;
|
|
726
|
+
const self = this;
|
|
727
|
+
this._activity.initialise(nestedInteractionContext, {
|
|
728
|
+
onDone(result) {
|
|
729
|
+
self.finishActivity(deferred => deferred.resolve(result));
|
|
730
|
+
},
|
|
731
|
+
onCancel(error) {
|
|
732
|
+
self.finishActivity(deferred => deferred.reject(error));
|
|
733
|
+
}
|
|
734
|
+
});
|
|
735
|
+
}
|
|
736
|
+
finishActivity(resolveOrReject) {
|
|
737
|
+
assert.isFalsey(this.isComplete());
|
|
738
|
+
resolveOrReject(this.deferredResult);
|
|
739
|
+
this._complete = true;
|
|
740
|
+
this.onComplete(this);
|
|
741
|
+
}
|
|
742
|
+
cancel() {
|
|
743
|
+
this.activity.cancel();
|
|
744
|
+
}
|
|
745
|
+
get activityResult() {
|
|
746
|
+
return this.deferredResult.promise;
|
|
747
|
+
}
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
/**
|
|
751
|
+
* ActivityOutletComponent creates and displays an activity and delegates the interaction context functionality to an
|
|
752
|
+
* external service.
|
|
753
|
+
*/
|
|
754
|
+
let ActivityOutletComponent = class ActivityOutletComponent {
|
|
755
|
+
constructor(componentFactoryResolver, viewContainerRef, injector) {
|
|
756
|
+
this.componentFactoryResolver = componentFactoryResolver;
|
|
757
|
+
this.viewContainerRef = viewContainerRef;
|
|
758
|
+
this.injector = injector;
|
|
759
|
+
}
|
|
760
|
+
set activityRef(activityRef) {
|
|
761
|
+
if (this.activityRef && !this.activityRef.isComplete()) {
|
|
762
|
+
lang$1.illegalState("changing activity before previous one has completed");
|
|
763
|
+
}
|
|
764
|
+
this._activityRef = activityRef;
|
|
765
|
+
this.loadActivity(activityRef);
|
|
766
|
+
}
|
|
767
|
+
;
|
|
768
|
+
get activityRef() {
|
|
769
|
+
return this._activityRef;
|
|
733
770
|
}
|
|
734
771
|
ngOnInit() {
|
|
735
772
|
}
|
|
773
|
+
loadActivity(activityRef) {
|
|
774
|
+
const injector = Injector.create({
|
|
775
|
+
providers: [
|
|
776
|
+
{ provide: ACTIVITY_DATA, useValue: activityRef.activityData }
|
|
777
|
+
],
|
|
778
|
+
parent: this.injector
|
|
779
|
+
});
|
|
780
|
+
const componentFactory = this.componentFactoryResolver.resolveComponentFactory(activityRef.activityClass);
|
|
781
|
+
this.viewContainerRef.clear();
|
|
782
|
+
// console.log(`creating component -> ${activityRef.activityClass.name}`);
|
|
783
|
+
this.activityComponentRef = this.viewContainerRef.createComponent(componentFactory, 0, injector);
|
|
784
|
+
this.activityRef.notifyActivityCreated(this.activityComponentRef.instance, this.nestedInteractionContext);
|
|
785
|
+
}
|
|
786
|
+
get component() {
|
|
787
|
+
return this.activityComponentRef.instance;
|
|
788
|
+
}
|
|
736
789
|
};
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
790
|
+
ActivityOutletComponent.ctorParameters = () => [
|
|
791
|
+
{ type: ComponentFactoryResolver },
|
|
792
|
+
{ type: ViewContainerRef },
|
|
793
|
+
{ type: Injector }
|
|
794
|
+
];
|
|
741
795
|
__decorate([
|
|
742
796
|
Input(),
|
|
743
797
|
__metadata("design:type", Object)
|
|
744
|
-
],
|
|
798
|
+
], ActivityOutletComponent.prototype, "nestedInteractionContext", void 0);
|
|
745
799
|
__decorate([
|
|
746
800
|
Input(),
|
|
747
|
-
__metadata("design:type",
|
|
748
|
-
|
|
749
|
-
|
|
801
|
+
__metadata("design:type", ActivityRef),
|
|
802
|
+
__metadata("design:paramtypes", [ActivityRef])
|
|
803
|
+
], ActivityOutletComponent.prototype, "activityRef", null);
|
|
804
|
+
ActivityOutletComponent = __decorate([
|
|
750
805
|
Component({
|
|
751
|
-
selector: 'aup-
|
|
752
|
-
template:
|
|
753
|
-
styles: [":host{display:block}
|
|
806
|
+
selector: 'aup-activity-outlet',
|
|
807
|
+
template: '',
|
|
808
|
+
styles: [":host{display:block}"]
|
|
754
809
|
}),
|
|
755
|
-
__metadata("design:paramtypes", [
|
|
756
|
-
|
|
810
|
+
__metadata("design:paramtypes", [ComponentFactoryResolver,
|
|
811
|
+
ViewContainerRef,
|
|
812
|
+
Injector])
|
|
813
|
+
], ActivityOutletComponent);
|
|
757
814
|
|
|
758
|
-
let
|
|
815
|
+
let ActivityContainerComponent = class ActivityContainerComponent extends AbstractInteractionContext {
|
|
759
816
|
constructor() {
|
|
817
|
+
super();
|
|
818
|
+
this.dynamicHeight = false;
|
|
819
|
+
this.activityTabs = [];
|
|
820
|
+
this.garbage = new GarbageCollector();
|
|
760
821
|
}
|
|
761
|
-
};
|
|
762
|
-
NoopComponent = __decorate([
|
|
763
|
-
Component({
|
|
764
|
-
selector: 'aup-noop',
|
|
765
|
-
template: "",
|
|
766
|
-
styles: [":host{display:block}"]
|
|
767
|
-
}),
|
|
768
|
-
__metadata("design:paramtypes", [])
|
|
769
|
-
], NoopComponent);
|
|
770
|
-
|
|
771
|
-
let ScrollContainerComponent = class ScrollContainerComponent {
|
|
772
|
-
constructor() { }
|
|
773
822
|
ngOnInit() {
|
|
774
823
|
}
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
styles: [":host{display:flex;flex-direction:column;min-height:0;align-items:stretch}.container{display:flex;flex-direction:column;flex:1;flex-basis:0;overflow-y:scroll;align-items:stretch}"]
|
|
781
|
-
}),
|
|
782
|
-
__metadata("design:paramtypes", [])
|
|
783
|
-
], ScrollContainerComponent);
|
|
784
|
-
|
|
785
|
-
var SwitchCaseWhenDirective_1, SwitchCaseDefaultDirective_1;
|
|
786
|
-
class SwitchCaseOption {
|
|
787
|
-
constructor(templateRef) {
|
|
788
|
-
this.templateRef = templateRef;
|
|
789
|
-
}
|
|
790
|
-
get name() {
|
|
791
|
-
return this.constructor.name;
|
|
824
|
+
ngAfterViewInit() {
|
|
825
|
+
const { chain, observe } = Dsl.disposeWith(this);
|
|
826
|
+
// using the component directly rather than (animationDone)=.. allows us
|
|
827
|
+
// to keep our callback private.
|
|
828
|
+
observe.valuesFrom(this.tabs.animationDone).subscribe(() => this.onAnimationFinished());
|
|
792
829
|
}
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
this.
|
|
830
|
+
initialise(identifier, api) {
|
|
831
|
+
assert.isFalsey(this.isInitialised());
|
|
832
|
+
assert.notNil(identifier);
|
|
833
|
+
assert.notNil(api);
|
|
834
|
+
this._identifier = identifier;
|
|
835
|
+
this.interactionServiceApi = api;
|
|
798
836
|
}
|
|
799
|
-
|
|
800
|
-
return this.
|
|
837
|
+
get identifier() {
|
|
838
|
+
return this._identifier;
|
|
801
839
|
}
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
{ type: TemplateRef }
|
|
805
|
-
];
|
|
806
|
-
__decorate([
|
|
807
|
-
Input(),
|
|
808
|
-
__metadata("design:type", Object)
|
|
809
|
-
], SwitchCaseWhenDirective.prototype, "aupSwitchCaseWhen", void 0);
|
|
810
|
-
SwitchCaseWhenDirective = SwitchCaseWhenDirective_1 = __decorate([
|
|
811
|
-
Directive({
|
|
812
|
-
selector: '[aupSwitchCaseWhen]',
|
|
813
|
-
providers: [{ provide: SwitchCaseOption, useExisting: SwitchCaseWhenDirective_1 }]
|
|
814
|
-
}),
|
|
815
|
-
__metadata("design:paramtypes", [TemplateRef])
|
|
816
|
-
], SwitchCaseWhenDirective);
|
|
817
|
-
let SwitchCaseDefaultDirective = SwitchCaseDefaultDirective_1 = class SwitchCaseDefaultDirective extends SwitchCaseOption {
|
|
818
|
-
constructor(templateRef) {
|
|
819
|
-
super(templateRef);
|
|
820
|
-
this.isDefault = true;
|
|
840
|
+
isInitialised() {
|
|
841
|
+
return !!this.identifier;
|
|
821
842
|
}
|
|
822
|
-
|
|
823
|
-
|
|
843
|
+
/**
|
|
844
|
+
* Returns true if an activity is currently running.
|
|
845
|
+
*/
|
|
846
|
+
isActive() {
|
|
847
|
+
return this.getActiveActivityCount() > 0;
|
|
824
848
|
}
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
{ type: TemplateRef }
|
|
828
|
-
];
|
|
829
|
-
SwitchCaseDefaultDirective = SwitchCaseDefaultDirective_1 = __decorate([
|
|
830
|
-
Directive({
|
|
831
|
-
selector: '[aupSwitchCaseDefault]',
|
|
832
|
-
providers: [{ provide: SwitchCaseOption, useExisting: SwitchCaseDefaultDirective_1 }]
|
|
833
|
-
}),
|
|
834
|
-
__metadata("design:paramtypes", [TemplateRef])
|
|
835
|
-
], SwitchCaseDefaultDirective);
|
|
836
|
-
let SwitchCaseComponent = class SwitchCaseComponent extends DisposableComponent {
|
|
837
|
-
constructor(cdr) {
|
|
838
|
-
super();
|
|
839
|
-
this.cdr = cdr;
|
|
840
|
-
this.selectedIndex = 0;
|
|
849
|
+
registerDisposable(disposable) {
|
|
850
|
+
return this.garbage.registerDisposable(disposable);
|
|
841
851
|
}
|
|
842
|
-
|
|
852
|
+
dispose() {
|
|
853
|
+
// TODO: think about auto cancelling any outstanding activity on dispose.
|
|
854
|
+
// See NavigationState.Navigating for a use-case.
|
|
855
|
+
assert.isFalsey(this.isActive());
|
|
856
|
+
this.garbage.dispose();
|
|
843
857
|
}
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
this.cdr.detectChanges();
|
|
858
|
+
getActiveActivityRef() {
|
|
859
|
+
if (!this.isActive()) {
|
|
860
|
+
lang$1.illegalState('no activity in progress');
|
|
861
|
+
}
|
|
862
|
+
return ___default.findLast(this.activityTabs, tab => !tab.isComplete());
|
|
850
863
|
}
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
864
|
+
/**
|
|
865
|
+
* Cancels the current activity and returns true the context is no longer active, false if
|
|
866
|
+
* there is still another activity running.
|
|
867
|
+
*/
|
|
868
|
+
// @Trace()
|
|
869
|
+
cancelActiveActivity() {
|
|
870
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
871
|
+
const activity = this.getActiveActivityRef();
|
|
872
|
+
activity.cancel();
|
|
873
|
+
if (this.isCleaningUp()) {
|
|
874
|
+
return this.waitForInteractionContextCleanupToFinish();
|
|
875
|
+
}
|
|
876
|
+
else {
|
|
877
|
+
return !this.isActive();
|
|
856
878
|
}
|
|
857
879
|
});
|
|
858
|
-
|
|
859
|
-
|
|
880
|
+
}
|
|
881
|
+
// TODO: this handling of multiple nested activities is only used by the activity component and is not a general case.
|
|
882
|
+
// @Trace()
|
|
883
|
+
createAndLaunchActivity(activityType, data, disableClose) {
|
|
884
|
+
assert.isTruthy(this.isInitialised()); // make sure we've been initialised
|
|
885
|
+
const activityRef = new ActivityRef(activityType, data, () => {
|
|
886
|
+
const activeActivityCount = this.getActiveActivityCount() > 0;
|
|
887
|
+
if (activeActivityCount) {
|
|
888
|
+
this.triggerTabSynchronisation();
|
|
889
|
+
}
|
|
890
|
+
else {
|
|
891
|
+
this.finishAndStartCleanup();
|
|
892
|
+
}
|
|
893
|
+
});
|
|
894
|
+
this.launchActivity(activityRef);
|
|
895
|
+
// if this is the first activity let the interaction service know.
|
|
896
|
+
if (this.activityTabs.length === 1) {
|
|
897
|
+
// console.log('Now active!!!');
|
|
898
|
+
this.interactionServiceApi.notifyActive(this);
|
|
860
899
|
}
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
900
|
+
return activityRef.activityResult;
|
|
901
|
+
}
|
|
902
|
+
getActiveActivityCount() {
|
|
903
|
+
return this.activityTabs.filter(ref => !ref.isComplete()).length;
|
|
904
|
+
}
|
|
905
|
+
/**
|
|
906
|
+
* Checks if this interaction context has finished an is in the process of waiting
|
|
907
|
+
* for all the infrastructure (including route updates) to be completed.
|
|
908
|
+
*/
|
|
909
|
+
isCleaningUp() {
|
|
910
|
+
return !!this._deferredCleanUp;
|
|
911
|
+
}
|
|
912
|
+
waitForInteractionContextCleanupToFinish() {
|
|
913
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
914
|
+
return this._deferredCleanUp ?
|
|
915
|
+
this._deferredCleanUp :
|
|
916
|
+
true;
|
|
917
|
+
});
|
|
918
|
+
}
|
|
919
|
+
// @Trace()
|
|
920
|
+
finishAndStartCleanup() {
|
|
921
|
+
if (!this._deferredCleanUp) {
|
|
922
|
+
// Important:
|
|
923
|
+
// Clear our tabs so the next activity triggers a tab change.
|
|
924
|
+
// Without this our animation done wasn't called when a single
|
|
925
|
+
// new activity followed a single tab activity (since we're tracking
|
|
926
|
+
// by activity index)
|
|
927
|
+
this.activityTabs = [];
|
|
928
|
+
const promise = this.interactionServiceApi.notifyFinished(this);
|
|
929
|
+
this._deferredCleanUp = promise
|
|
930
|
+
.finally(() => {
|
|
931
|
+
this._deferredCleanUp = null;
|
|
864
932
|
});
|
|
865
|
-
if (matchingIndicies.length > 1) {
|
|
866
|
-
console.warn(`found ${matchingIndicies.length} default case values, displaying the first.`);
|
|
867
|
-
}
|
|
868
933
|
}
|
|
869
|
-
|
|
870
|
-
|
|
934
|
+
}
|
|
935
|
+
// @Trace()
|
|
936
|
+
launchActivity(activityRef) {
|
|
937
|
+
const cleanedTabs = this.activityTabs.filter(tab => !tab.isComplete());
|
|
938
|
+
this.activityTabs = cleanedTabs.concat(activityRef);
|
|
939
|
+
this.synchroniseSelectedTabIndex();
|
|
940
|
+
}
|
|
941
|
+
activityIndex(index, activityRef) {
|
|
942
|
+
return index;
|
|
943
|
+
}
|
|
944
|
+
;
|
|
945
|
+
onAnimationFinished() {
|
|
946
|
+
if (this.onAnimationFinishedJob) {
|
|
947
|
+
this.onAnimationFinishedJob();
|
|
948
|
+
this.onAnimationFinishedJob = undefined;
|
|
871
949
|
}
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
950
|
+
}
|
|
951
|
+
/**
|
|
952
|
+
* Synchronises the selected tab index.
|
|
953
|
+
*/
|
|
954
|
+
synchroniseSelectedTabIndex() {
|
|
955
|
+
const previousIndex = this.tabs.selectedIndex;
|
|
956
|
+
const newIndex = this.getActiveActivityCount() - 1;
|
|
957
|
+
if (previousIndex !== newIndex) {
|
|
958
|
+
this.tabs.selectedIndex = newIndex;
|
|
959
|
+
this.onAnimationFinishedJob = () => {
|
|
960
|
+
this.getSelectedOutlet().component.onActivityReady();
|
|
961
|
+
this.activityTabs = this.activityTabs.filter(tab => !tab.isComplete());
|
|
962
|
+
};
|
|
875
963
|
}
|
|
876
964
|
}
|
|
965
|
+
getSelectedOutlet() {
|
|
966
|
+
return this.activityOutlets.toArray()[this.tabs.selectedIndex];
|
|
967
|
+
}
|
|
968
|
+
// @Trace()
|
|
969
|
+
triggerTabSynchronisation() {
|
|
970
|
+
if (this.syncSelectedTabTimeout) {
|
|
971
|
+
clearTimeout(this.syncSelectedTabTimeout);
|
|
972
|
+
}
|
|
973
|
+
this.syncSelectedTabTimeout = setTimeout(() => {
|
|
974
|
+
this.syncSelectedTabTimeout = null;
|
|
975
|
+
this.synchroniseSelectedTabIndex();
|
|
976
|
+
}, 75);
|
|
977
|
+
}
|
|
877
978
|
};
|
|
878
|
-
SwitchCaseComponent.ctorParameters = () => [
|
|
879
|
-
{ type: ChangeDetectorRef }
|
|
880
|
-
];
|
|
881
|
-
__decorate([
|
|
882
|
-
Input(), TrackExternal(),
|
|
883
|
-
__metadata("design:type", ValueModel)
|
|
884
|
-
], SwitchCaseComponent.prototype, "switchModel", void 0);
|
|
885
979
|
__decorate([
|
|
886
|
-
Input(),
|
|
980
|
+
Input(),
|
|
887
981
|
__metadata("design:type", Object)
|
|
888
|
-
],
|
|
982
|
+
], ActivityContainerComponent.prototype, "dynamicHeight", void 0);
|
|
889
983
|
__decorate([
|
|
890
|
-
|
|
984
|
+
ViewChild('tabs', { static: true }),
|
|
985
|
+
__metadata("design:type", MatTabGroup)
|
|
986
|
+
], ActivityContainerComponent.prototype, "tabs", void 0);
|
|
987
|
+
__decorate([
|
|
988
|
+
ViewChildren(ActivityOutletComponent),
|
|
891
989
|
__metadata("design:type", QueryList)
|
|
892
|
-
],
|
|
893
|
-
|
|
990
|
+
], ActivityContainerComponent.prototype, "activityOutlets", void 0);
|
|
991
|
+
__decorate([
|
|
992
|
+
Trace(),
|
|
993
|
+
__metadata("design:type", Function),
|
|
994
|
+
__metadata("design:paramtypes", []),
|
|
995
|
+
__metadata("design:returntype", void 0)
|
|
996
|
+
], ActivityContainerComponent.prototype, "dispose", null);
|
|
997
|
+
ActivityContainerComponent = __decorate([
|
|
894
998
|
Component({
|
|
895
|
-
selector: 'aup-
|
|
896
|
-
template: "<mat-tab-group
|
|
897
|
-
styles: [":host{display:flex;flex-direction:column
|
|
999
|
+
selector: 'aup-activity-container',
|
|
1000
|
+
template: "<mat-tab-group #tabs no-tab-header\n [dynamicHeight]=\"dynamicHeight\"\n [class.full-height-tabs]=\"!dynamicHeight\">\n <mat-tab *ngFor=\"let tab of activityTabs; trackBy: activityIndex\" >\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"tab\"></aup-activity-outlet>\n </mat-tab>\n</mat-tab-group>\n",
|
|
1001
|
+
styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}"]
|
|
898
1002
|
}),
|
|
899
|
-
__metadata("design:paramtypes", [
|
|
900
|
-
],
|
|
1003
|
+
__metadata("design:paramtypes", [])
|
|
1004
|
+
], ActivityContainerComponent);
|
|
901
1005
|
|
|
902
|
-
let
|
|
903
|
-
constructor(
|
|
904
|
-
super(
|
|
905
|
-
this.
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
event.preventDefault();
|
|
917
|
-
event.stopPropagation();
|
|
918
|
-
this.rightArrowCommand.execute();
|
|
919
|
-
}
|
|
1006
|
+
let AddItemInteractionContextComponent = class AddItemInteractionContextComponent extends DisposableComponent {
|
|
1007
|
+
constructor() {
|
|
1008
|
+
super();
|
|
1009
|
+
this.tabindex = 0;
|
|
1010
|
+
this.clickCommand = Command.create((context) => {
|
|
1011
|
+
if (this.activityClass) {
|
|
1012
|
+
this.startActivity(this.activityClass, this.activityData).catch(e => {
|
|
1013
|
+
// don't care.
|
|
1014
|
+
});
|
|
1015
|
+
}
|
|
1016
|
+
else {
|
|
1017
|
+
this.addCommand.withContext(context).execute();
|
|
1018
|
+
}
|
|
1019
|
+
});
|
|
920
1020
|
}
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
event.stopPropagation();
|
|
924
|
-
this.focusManager.focusNext();
|
|
1021
|
+
get active() {
|
|
1022
|
+
return this.interactionContext ? this.interactionContext.isActive() : false;
|
|
925
1023
|
}
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
event.stopPropagation();
|
|
929
|
-
this.focusManager.focusPrevious();
|
|
1024
|
+
startActivity(activityType, data) {
|
|
1025
|
+
return this.interactionContext.startActivity(activityType, data);
|
|
930
1026
|
}
|
|
931
1027
|
ngOnInit() {
|
|
932
1028
|
}
|
|
933
1029
|
};
|
|
934
|
-
VerticalFocusContainerComponent.ctorParameters = () => [
|
|
935
|
-
{ type: FocusManager, decorators: [{ type: Self }] }
|
|
936
|
-
];
|
|
937
1030
|
__decorate([
|
|
938
|
-
Input(
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
], VerticalFocusContainerComponent.prototype, "rightArrowCommand", void 0);
|
|
1031
|
+
Input(),
|
|
1032
|
+
__metadata("design:type", String)
|
|
1033
|
+
], AddItemInteractionContextComponent.prototype, "label", void 0);
|
|
942
1034
|
__decorate([
|
|
943
|
-
Input(
|
|
1035
|
+
Input(),
|
|
1036
|
+
__metadata("design:type", Object)
|
|
1037
|
+
], AddItemInteractionContextComponent.prototype, "activityClass", void 0);
|
|
1038
|
+
__decorate([
|
|
1039
|
+
Input(),
|
|
1040
|
+
__metadata("design:type", Object)
|
|
1041
|
+
], AddItemInteractionContextComponent.prototype, "activityData", void 0);
|
|
1042
|
+
__decorate([
|
|
1043
|
+
Input(),
|
|
944
1044
|
TrackExternal(),
|
|
945
1045
|
__metadata("design:type", Command)
|
|
946
|
-
],
|
|
1046
|
+
], AddItemInteractionContextComponent.prototype, "addCommand", void 0);
|
|
947
1047
|
__decorate([
|
|
948
|
-
|
|
949
|
-
__metadata("design:type",
|
|
950
|
-
|
|
951
|
-
__metadata("design:returntype", void 0)
|
|
952
|
-
], VerticalFocusContainerComponent.prototype, "arrowLeft", null);
|
|
1048
|
+
ViewChild(InPlaceInteractionContextComponent),
|
|
1049
|
+
__metadata("design:type", InPlaceInteractionContextComponent)
|
|
1050
|
+
], AddItemInteractionContextComponent.prototype, "interactionContext", void 0);
|
|
953
1051
|
__decorate([
|
|
954
|
-
|
|
955
|
-
__metadata("design:type",
|
|
956
|
-
__metadata("design:paramtypes", [
|
|
957
|
-
|
|
958
|
-
], VerticalFocusContainerComponent.prototype, "arrowRight", null);
|
|
1052
|
+
HostBinding('class.interaction-active'),
|
|
1053
|
+
__metadata("design:type", Boolean),
|
|
1054
|
+
__metadata("design:paramtypes", [])
|
|
1055
|
+
], AddItemInteractionContextComponent.prototype, "active", null);
|
|
959
1056
|
__decorate([
|
|
960
|
-
|
|
961
|
-
__metadata("design:type",
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
1057
|
+
HostBinding('tabindex'),
|
|
1058
|
+
__metadata("design:type", Object)
|
|
1059
|
+
], AddItemInteractionContextComponent.prototype, "tabindex", void 0);
|
|
1060
|
+
AddItemInteractionContextComponent = __decorate([
|
|
1061
|
+
Component({
|
|
1062
|
+
selector: 'aup-add-item-interaction-context',
|
|
1063
|
+
template: "<aup-in-place-interaction-context #interactionContext [animateFirstActivity]=\"false\">\n <a part=\"link\" class=\"link\" [pectinCommand]=\"clickCommand\"><mat-icon>add</mat-icon> {{label}}</a>\n</aup-in-place-interaction-context>\n",
|
|
1064
|
+
styles: [":host{--def-link-color:var(--link-color, currentColor);--def-link-backgound:var(--link-background, rgba(0, 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:0}:host:hover{--link-background:rgba(0,0,0,0.1)}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-backgound);padding:var(--def-link-padding);cursor:pointer;text-decoration:none}a.link mat-icon{margin-right:8px}"]
|
|
1065
|
+
}),
|
|
1066
|
+
__metadata("design:paramtypes", [])
|
|
1067
|
+
], AddItemInteractionContextComponent);
|
|
1068
|
+
|
|
1069
|
+
class InteractionServiceRoutingAdapter {
|
|
1070
|
+
constructor(activeInteractionContextIds, activeModalContext, createExclusiveInteractionContext) {
|
|
1071
|
+
this.activeInteractionContextIds = activeInteractionContextIds;
|
|
1072
|
+
this.activeModalContext = activeModalContext;
|
|
1073
|
+
this.createExclusiveInteractionContext = createExclusiveInteractionContext;
|
|
1074
|
+
}
|
|
1075
|
+
isActive() {
|
|
1076
|
+
return this.getActiveInteractionContextIds().length > 0;
|
|
1077
|
+
}
|
|
1078
|
+
isModalActive() {
|
|
1079
|
+
return !!this.activeModalContext.value;
|
|
1080
|
+
}
|
|
1081
|
+
// @Trace()
|
|
1082
|
+
isComponentInteracting(component) {
|
|
1083
|
+
return component.interactionContext && component.interactionContext.isActive();
|
|
1084
|
+
}
|
|
1085
|
+
getActiveInteractionContextIds() {
|
|
1086
|
+
return this.activeInteractionContextIds.value;
|
|
1087
|
+
}
|
|
1088
|
+
// @Trace()
|
|
1089
|
+
cancelCurrentModalInteraction() {
|
|
1090
|
+
return this.activeModalContext.value.cancelActiveActivity();
|
|
1091
|
+
}
|
|
1092
|
+
// @Trace()
|
|
1093
|
+
cancelComponentInteraction(component) {
|
|
1094
|
+
return component.interactionContext.cancelActiveActivity();
|
|
1095
|
+
}
|
|
1096
|
+
}
|
|
1097
|
+
|
|
1098
|
+
class ModalInteractionContextFactory {
|
|
1099
|
+
}
|
|
1100
|
+
|
|
1101
|
+
var InteractionService_1;
|
|
1102
|
+
let inplaceMonitorCount = 0;
|
|
1103
|
+
let InteractionService = InteractionService_1 = class InteractionService {
|
|
1104
|
+
constructor(modelInteractionContextFactory) {
|
|
1105
|
+
this.modelInteractionContextFactory = modelInteractionContextFactory;
|
|
1106
|
+
this.garbage = new GarbageCollector();
|
|
1107
|
+
// private readonly _activeModalContext = new MutableValueModel<InteractionContext>();
|
|
1108
|
+
// private readonly _activeInlineContext = new MutableValueModel<InteractionContext>();
|
|
1109
|
+
// private readonly _activeContext: ValueModelChain<InteractionContext>;
|
|
1110
|
+
this._navigationInProgress = new DelegatingValueModel().withDefault(false);
|
|
1111
|
+
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this.garbage);
|
|
1112
|
+
this.exclusiveInteractionRegistry = new InteractionService_1.ContextRegistry();
|
|
1113
|
+
this.modalInteractionRegistry = new InteractionService_1.ContextRegistry();
|
|
1114
|
+
this.inPlaceInteractionRegistry = new InteractionService_1.ContextRegistry();
|
|
1115
|
+
this.modalInteractionRegistry.disableWhen(valueOf.any(this.exclusiveInteractionRegistry.active, this.modalInteractionRegistry.active).areTruthy());
|
|
1116
|
+
this.inPlaceInteractionRegistry.disableWhen(valueOf.any(this.exclusiveInteractionRegistry.active, this.modalInteractionRegistry.active, this.inPlaceInteractionRegistry.active).areTruthy());
|
|
1117
|
+
this.active = valueOf.any(this.inPlaceInteractionRegistry.active, this.modalInteractionRegistry.active).areTruthy();
|
|
1118
|
+
// TODO: chain.concat(listOrValueModels) would be nice.
|
|
1119
|
+
this.activeInteractionContextIds = chain(this.inPlaceInteractionRegistry.interactionContextIds)
|
|
1120
|
+
.concat(this.modalInteractionRegistry.interactionContextIds);
|
|
1121
|
+
this.activeModalContext = chain(this.modalInteractionRegistry.interactionContexts).first();
|
|
1122
|
+
this.inModalInteraction = chain(this.activeModalContext).isNotNil();
|
|
1123
|
+
}
|
|
1124
|
+
isActive() {
|
|
1125
|
+
return this.active.value;
|
|
1126
|
+
}
|
|
1127
|
+
/**
|
|
1128
|
+
* @deprecated use #createModalInteractionContextDisposedWith instead.
|
|
1129
|
+
* @param disposable
|
|
1130
|
+
*/
|
|
1131
|
+
createModalInteractionContextFor(disposable) {
|
|
1132
|
+
return this.createModalInteractionContextDisposedWith(disposable);
|
|
1133
|
+
}
|
|
1134
|
+
/**
|
|
1135
|
+
* Creates a new model interaction context that will be disposed along with the component.
|
|
1136
|
+
* @param disposable
|
|
1137
|
+
*/
|
|
1138
|
+
createModalInteractionContextDisposedWith(disposable) {
|
|
1139
|
+
// TODO: look at making the registry the factory..
|
|
1140
|
+
return this.modelInteractionContextFactory.createInteractionContext('modal', new InteractionService_1.ApiAdapter(this.placeRouter, this.modalInteractionRegistry));
|
|
1141
|
+
}
|
|
1142
|
+
registerInplaceInteractionContext(interactionContext) {
|
|
1143
|
+
// TODO: look at making the registry the factory..
|
|
1144
|
+
// Todo: check for double registration.
|
|
1145
|
+
// Todo: allow multiple inplace interactions..
|
|
1146
|
+
interactionContext.initialise(`ip${++inplaceMonitorCount}`, new InteractionService_1.ApiAdapter(this.placeRouter, this.inPlaceInteractionRegistry));
|
|
1147
|
+
}
|
|
1148
|
+
/**
|
|
1149
|
+
* Creates an interaction context that will prevent any other contexts from starting an
|
|
1150
|
+
* activity until it is disposed. This is intended for use by the router for passing
|
|
1151
|
+
* to PlaceComponent.canDeactivate(interactionContext). This ensures components don't
|
|
1152
|
+
* try and interact in a way that we can't track and synchronise with the browser back
|
|
1153
|
+
* button.
|
|
1154
|
+
*/
|
|
1155
|
+
registerPlaceRouter(router) {
|
|
1156
|
+
assert$1.isFalsey(this.placeRouter);
|
|
1157
|
+
this.placeRouter = router;
|
|
1158
|
+
this._navigationInProgress.setDelegate(this.placeRouter.navigationInProgress);
|
|
1159
|
+
const self = this;
|
|
1160
|
+
return new InteractionServiceRoutingAdapter(this.activeInteractionContextIds, this.activeModalContext, () => {
|
|
1161
|
+
return self.modelInteractionContextFactory.createInteractionContext('exclusive', new InteractionService_1.ApiAdapter(this.placeRouter, this.exclusiveInteractionRegistry));
|
|
1162
|
+
});
|
|
1163
|
+
}
|
|
1164
|
+
};
|
|
1165
|
+
InteractionService.ctorParameters = () => [
|
|
1166
|
+
{ type: ModalInteractionContextFactory }
|
|
1167
|
+
];
|
|
1168
|
+
InteractionService.ɵprov = ɵɵdefineInjectable({ factory: function InteractionService_Factory() { return new InteractionService(ɵɵinject(ModalInteractionContextFactory)); }, token: InteractionService, providedIn: "root" });
|
|
1169
|
+
InteractionService = InteractionService_1 = __decorate([
|
|
1170
|
+
Injectable({
|
|
1171
|
+
providedIn: 'root'
|
|
1172
|
+
}),
|
|
1173
|
+
__metadata("design:paramtypes", [ModalInteractionContextFactory])
|
|
1174
|
+
], InteractionService);
|
|
1175
|
+
(function (InteractionService) {
|
|
1176
|
+
/**
|
|
1177
|
+
* Provides a mechanism for the service to keep track of what the API adapters are doing to
|
|
1178
|
+
* ensure the rules are followed, i.e. modal or in-place interaction aren't started while
|
|
1179
|
+
* an exclusive routing interaction is active.
|
|
1180
|
+
*/
|
|
1181
|
+
class ContextRegistry extends GarbageCollector {
|
|
1182
|
+
constructor() {
|
|
1183
|
+
super();
|
|
1184
|
+
this._interactions = new MutableListModel();
|
|
1185
|
+
this._disabledDelegate = new DelegatingValueModel().withDefault(false);
|
|
1186
|
+
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
1187
|
+
this.active = chain(this._interactions).isNotEmpty();
|
|
1188
|
+
this.interactionContextIds = chain(this._interactions).pluck("identifier");
|
|
1189
|
+
}
|
|
1190
|
+
get interactionContexts() {
|
|
1191
|
+
return this._interactions.readonly;
|
|
1192
|
+
}
|
|
1193
|
+
start(context) {
|
|
1194
|
+
this._interactions.push(context);
|
|
1195
|
+
}
|
|
1196
|
+
finish(context) {
|
|
1197
|
+
this._interactions.remove(context);
|
|
1198
|
+
}
|
|
1199
|
+
isActive() {
|
|
1200
|
+
return this.active.value;
|
|
1201
|
+
}
|
|
1202
|
+
disableWhen(disabled) {
|
|
1203
|
+
this._disabledDelegate.setDelegate(disabled);
|
|
1204
|
+
}
|
|
1205
|
+
}
|
|
1206
|
+
InteractionService.ContextRegistry = ContextRegistry;
|
|
1207
|
+
class ApiAdapter {
|
|
1208
|
+
constructor(placeRouter, contextRegistry) {
|
|
1209
|
+
this.placeRouter = placeRouter;
|
|
1210
|
+
this.contextRegistry = contextRegistry;
|
|
1211
|
+
}
|
|
1212
|
+
// @Trace()
|
|
1213
|
+
notifyActive(context) {
|
|
1214
|
+
assert$1.isTruthy(context.identifier);
|
|
1215
|
+
this.contextRegistry.start(context);
|
|
1216
|
+
return this.isNavigationInProgress() ? Promise.resolve() : this.placeRouter.syncInteractionContextIdsWithRouter();
|
|
1217
|
+
}
|
|
1218
|
+
// @Trace()
|
|
1219
|
+
isNavigationInProgress() {
|
|
1220
|
+
return this.placeRouter.navigationInProgress.value;
|
|
1221
|
+
}
|
|
1222
|
+
// @Trace()
|
|
1223
|
+
notifyFinished(context) {
|
|
1224
|
+
this.contextRegistry.finish(context);
|
|
1225
|
+
// :: Important ::
|
|
1226
|
+
// This method will be traversed by both the place router (during can canDeactivate guards) and user land code
|
|
1227
|
+
// (both when routing is idle and while it is active in PlaceComponent.canDeactivate()).
|
|
1228
|
+
// The result of pushInteractionIdsToRoute will not start until after the current route finishes, and the
|
|
1229
|
+
// current route won't finish until after this promise returns... Deadlock.
|
|
1230
|
+
// So in order to keep this logic out of the activities we perform the check here and ensure that
|
|
1231
|
+
// any interactions with the context while routing is active returns immediately.
|
|
1232
|
+
return this.isNavigationInProgress() ? Promise.resolve() : this.placeRouter.syncInteractionContextIdsWithRouter();
|
|
1233
|
+
}
|
|
1234
|
+
}
|
|
1235
|
+
InteractionService.ApiAdapter = ApiAdapter;
|
|
1236
|
+
})(InteractionService || (InteractionService = {}));
|
|
1237
|
+
|
|
1238
|
+
let InPlaceInteractionContextComponent = class InPlaceInteractionContextComponent extends DisposableComponent {
|
|
1239
|
+
constructor(interactionService, tabConfig) {
|
|
1240
|
+
super();
|
|
1241
|
+
this.interactionService = interactionService;
|
|
1242
|
+
this.tabConfig = tabConfig;
|
|
1243
|
+
/**
|
|
1244
|
+
* If true then the first startActivity call will slide the activity into view. If false
|
|
1245
|
+
* the activity will replace the existing content immediately.
|
|
1246
|
+
*/
|
|
1247
|
+
this.animateFirstActivity = true;
|
|
1248
|
+
}
|
|
1249
|
+
get animationDuration() {
|
|
1250
|
+
var _a;
|
|
1251
|
+
return this.animateFirstActivity ? (((_a = this.tabConfig) === null || _a === void 0 ? void 0 : _a.animationDuration) || '500ms') : "0ms";
|
|
1252
|
+
}
|
|
1253
|
+
ngAfterViewInit() {
|
|
1254
|
+
this.interactionService.registerInplaceInteractionContext(this);
|
|
1255
|
+
}
|
|
1256
|
+
initialise(id, api) {
|
|
1257
|
+
this.activityContainerComponent.initialise(id, api);
|
|
1258
|
+
}
|
|
1259
|
+
get identifier() {
|
|
1260
|
+
return this.activityContainerComponent.identifier;
|
|
1261
|
+
}
|
|
1262
|
+
alert(alert) {
|
|
1263
|
+
return this.activityContainerComponent.alert(alert);
|
|
1264
|
+
}
|
|
1265
|
+
cancelActiveActivity() {
|
|
1266
|
+
return this.activityContainerComponent.cancelActiveActivity();
|
|
1267
|
+
}
|
|
1268
|
+
confirm(confirm) {
|
|
1269
|
+
return this.activityContainerComponent.confirm(confirm);
|
|
1270
|
+
}
|
|
1271
|
+
confirmOrReject(confirm) {
|
|
1272
|
+
return this.activityContainerComponent.confirmOrReject(confirm);
|
|
1273
|
+
}
|
|
1274
|
+
confirmThen(confirm, activityType, data) {
|
|
1275
|
+
return this.activityContainerComponent.confirmThen(confirm, activityType);
|
|
1276
|
+
}
|
|
1277
|
+
isActive() {
|
|
1278
|
+
return this.activityContainerComponent.isActive();
|
|
1279
|
+
}
|
|
1280
|
+
startActivity(activityType, data) {
|
|
1281
|
+
return this.activityContainerComponent.startActivity(activityType, data);
|
|
1282
|
+
}
|
|
1283
|
+
};
|
|
1284
|
+
InPlaceInteractionContextComponent.ctorParameters = () => [
|
|
1285
|
+
{ type: InteractionService },
|
|
1286
|
+
{ type: undefined, decorators: [{ type: Inject, args: [MAT_TABS_CONFIG,] }, { type: Optional }] }
|
|
1287
|
+
];
|
|
965
1288
|
__decorate([
|
|
966
|
-
|
|
967
|
-
__metadata("design:type",
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
1289
|
+
ViewChild('activityContainer', { static: true }),
|
|
1290
|
+
__metadata("design:type", ActivityContainerComponent)
|
|
1291
|
+
], InPlaceInteractionContextComponent.prototype, "activityContainerComponent", void 0);
|
|
1292
|
+
__decorate([
|
|
1293
|
+
Input(),
|
|
1294
|
+
__metadata("design:type", Object)
|
|
1295
|
+
], InPlaceInteractionContextComponent.prototype, "animateFirstActivity", void 0);
|
|
1296
|
+
InPlaceInteractionContextComponent = __decorate([
|
|
972
1297
|
Component({
|
|
973
|
-
selector: 'aup-
|
|
974
|
-
template: "<ng-content></ng-content>\n",
|
|
975
|
-
|
|
976
|
-
{ provide: FocusManager }
|
|
977
|
-
],
|
|
978
|
-
styles: [":host{display:block}"]
|
|
1298
|
+
selector: 'aup-in-place-interaction-context',
|
|
1299
|
+
template: "<mat-tab-group no-tab-header [selectedIndex]=\"isActive() ? 1 : 0\" full-height-tabs [dynamicHeight]=\"false\" [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",
|
|
1300
|
+
styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}"]
|
|
979
1301
|
}),
|
|
980
|
-
__param(
|
|
981
|
-
__metadata("design:paramtypes", [
|
|
982
|
-
],
|
|
1302
|
+
__param(1, Inject(MAT_TABS_CONFIG)), __param(1, Optional()),
|
|
1303
|
+
__metadata("design:paramtypes", [InteractionService, Object])
|
|
1304
|
+
], InPlaceInteractionContextComponent);
|
|
983
1305
|
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
* // CSS Vars
|
|
987
|
-
* aup-card-container {
|
|
988
|
-
* --card-gap: var(--card-gap, 16px);
|
|
989
|
-
* --card-width: var(--card-width, 300px);
|
|
990
|
-
* --card-height: var(--card-height, auto);
|
|
991
|
-
* --card-min-height: var(--card-min-height, auto);
|
|
992
|
-
* --card-background: var(--card-background, #fcfcfb);
|
|
993
|
-
* }
|
|
994
|
-
*
|
|
995
|
-
* // Content Templates:
|
|
996
|
-
* #addCardTemplate
|
|
997
|
-
* <ng-template #addCardTemplate>
|
|
998
|
-
* This is a new card template, it will the the size of the other cards.
|
|
999
|
-
* </nav-template>
|
|
1000
|
-
*
|
|
1001
|
-
*/
|
|
1002
|
-
let CardContainerComponent = class CardContainerComponent extends DisposableComponent {
|
|
1003
|
-
constructor() {
|
|
1306
|
+
let PopupInteractionContextComponent = class PopupInteractionContextComponent extends DisposableComponent {
|
|
1307
|
+
constructor(_element, _overlay) {
|
|
1004
1308
|
super();
|
|
1309
|
+
this._element = _element;
|
|
1310
|
+
this._overlay = _overlay;
|
|
1311
|
+
this.outputPortal = new ComponentPortal(InPlaceInteractionContextComponent);
|
|
1312
|
+
this.anchorX = 'start';
|
|
1313
|
+
this.anchorY = 'bottom';
|
|
1314
|
+
}
|
|
1315
|
+
get active() {
|
|
1316
|
+
return this.isActive();
|
|
1317
|
+
}
|
|
1318
|
+
startActivity(activityType, data) {
|
|
1319
|
+
const overlayRef = this._overlay.create({
|
|
1320
|
+
hasBackdrop: false,
|
|
1321
|
+
panelClass: 'aup-popup-interaction-panel',
|
|
1322
|
+
positionStrategy: this._overlay.position()
|
|
1323
|
+
.flexibleConnectedTo(this._element)
|
|
1324
|
+
.withPositions(this.computePositions())
|
|
1325
|
+
.withGrowAfterOpen(true)
|
|
1326
|
+
});
|
|
1327
|
+
const componentRef = overlayRef.attach(this.outputPortal);
|
|
1328
|
+
this.interactionContext = componentRef.instance;
|
|
1329
|
+
return new Promise((resolve, reject) => {
|
|
1330
|
+
// HACK: afterViewInit won't have been called yet. Need to add when.valueOf(interactionContext.ready).becomesTruthy(...)
|
|
1331
|
+
setTimeout(() => {
|
|
1332
|
+
this.interactionContext.startActivity(activityType, data)
|
|
1333
|
+
.then(resolve)
|
|
1334
|
+
.catch(reject)
|
|
1335
|
+
.finally(() => overlayRef.dispose());
|
|
1336
|
+
});
|
|
1337
|
+
});
|
|
1338
|
+
}
|
|
1339
|
+
computePositions() {
|
|
1340
|
+
const overlayX = this.anchorX === 'start' ? 'start' : 'end';
|
|
1341
|
+
const overlayY = this.anchorY === 'top' ? 'bottom' : 'top';
|
|
1342
|
+
return [
|
|
1343
|
+
{ originX: this.anchorX, originY: this.anchorY, overlayX: overlayX, overlayY: overlayY }
|
|
1344
|
+
// TODO: compute some meaningful alternatives.
|
|
1345
|
+
// { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },
|
|
1346
|
+
// { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },
|
|
1347
|
+
// { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },
|
|
1348
|
+
// { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom' }
|
|
1349
|
+
];
|
|
1350
|
+
}
|
|
1351
|
+
cancelActiveActivity() {
|
|
1352
|
+
return this.interactionContext.cancelActiveActivity();
|
|
1353
|
+
}
|
|
1354
|
+
isActive() {
|
|
1355
|
+
return this.interactionContext && this.interactionContext.isActive();
|
|
1005
1356
|
}
|
|
1006
1357
|
ngOnInit() {
|
|
1007
1358
|
}
|
|
1008
1359
|
};
|
|
1360
|
+
PopupInteractionContextComponent.ctorParameters = () => [
|
|
1361
|
+
{ type: ElementRef },
|
|
1362
|
+
{ type: Overlay }
|
|
1363
|
+
];
|
|
1364
|
+
__decorate([
|
|
1365
|
+
HostBinding('class.interaction-active'),
|
|
1366
|
+
__metadata("design:type", Boolean),
|
|
1367
|
+
__metadata("design:paramtypes", [])
|
|
1368
|
+
], PopupInteractionContextComponent.prototype, "active", null);
|
|
1009
1369
|
__decorate([
|
|
1010
1370
|
Input(),
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
], CardContainerComponent.prototype, "addCardCommand", void 0);
|
|
1371
|
+
__metadata("design:type", String)
|
|
1372
|
+
], PopupInteractionContextComponent.prototype, "anchorX", void 0);
|
|
1014
1373
|
__decorate([
|
|
1015
|
-
|
|
1016
|
-
__metadata("design:type",
|
|
1017
|
-
],
|
|
1018
|
-
|
|
1374
|
+
Input(),
|
|
1375
|
+
__metadata("design:type", String)
|
|
1376
|
+
], PopupInteractionContextComponent.prototype, "anchorY", void 0);
|
|
1377
|
+
PopupInteractionContextComponent = __decorate([
|
|
1019
1378
|
Component({
|
|
1020
|
-
selector: 'aup-
|
|
1021
|
-
template: "<
|
|
1022
|
-
styles: [":
|
|
1379
|
+
selector: 'aup-popup-interaction-context',
|
|
1380
|
+
template: "<ng-content></ng-content>\n",
|
|
1381
|
+
styles: [":host{display:inline}:host.interaction-active{background:rgba(0,0,0,.05)}"]
|
|
1023
1382
|
}),
|
|
1024
|
-
__metadata("design:paramtypes", [])
|
|
1025
|
-
],
|
|
1026
|
-
|
|
1027
|
-
let ComponentsModule = class ComponentsModule {
|
|
1028
|
-
};
|
|
1029
|
-
ComponentsModule = __decorate([
|
|
1030
|
-
NgModule({
|
|
1031
|
-
declarations: [
|
|
1032
|
-
NumberInputComponent,
|
|
1033
|
-
StringInputComponent,
|
|
1034
|
-
TextInputComponent,
|
|
1035
|
-
PasswordInputComponent,
|
|
1036
|
-
SelectInputComponent,
|
|
1037
|
-
CheckboxInputComponent,
|
|
1038
|
-
ScrollContainerComponent,
|
|
1039
|
-
NoopComponent,
|
|
1040
|
-
AbstractInputComponent,
|
|
1041
|
-
SwitchCaseComponent,
|
|
1042
|
-
SwitchCaseWhenDirective,
|
|
1043
|
-
SwitchCaseDefaultDirective,
|
|
1044
|
-
FocusContainerComponent,
|
|
1045
|
-
VerticalFocusContainerComponent,
|
|
1046
|
-
FocusableComponent,
|
|
1047
|
-
CardContainerComponent
|
|
1048
|
-
],
|
|
1049
|
-
imports: [
|
|
1050
|
-
CommonModule,
|
|
1051
|
-
BrowserAnimationsModule,
|
|
1052
|
-
FormsModule,
|
|
1053
|
-
MatInputModule,
|
|
1054
|
-
MatFormFieldModule,
|
|
1055
|
-
MatSelectModule,
|
|
1056
|
-
MatTabsModule,
|
|
1057
|
-
DirectivesModule,
|
|
1058
|
-
MatIconModule,
|
|
1059
|
-
MatButtonModule,
|
|
1060
|
-
MatCheckboxModule
|
|
1061
|
-
],
|
|
1062
|
-
exports: [
|
|
1063
|
-
NumberInputComponent,
|
|
1064
|
-
StringInputComponent,
|
|
1065
|
-
TextInputComponent,
|
|
1066
|
-
PasswordInputComponent,
|
|
1067
|
-
CheckboxInputComponent,
|
|
1068
|
-
SelectInputComponent,
|
|
1069
|
-
ScrollContainerComponent,
|
|
1070
|
-
NoopComponent,
|
|
1071
|
-
SwitchCaseComponent,
|
|
1072
|
-
SwitchCaseWhenDirective,
|
|
1073
|
-
SwitchCaseDefaultDirective,
|
|
1074
|
-
FocusContainerComponent,
|
|
1075
|
-
VerticalFocusContainerComponent,
|
|
1076
|
-
FocusableComponent,
|
|
1077
|
-
CardContainerComponent
|
|
1078
|
-
],
|
|
1079
|
-
providers: [
|
|
1080
|
-
FocusBindingFactory
|
|
1081
|
-
]
|
|
1082
|
-
})
|
|
1083
|
-
], ComponentsModule);
|
|
1084
|
-
|
|
1085
|
-
class Dimension {
|
|
1086
|
-
constructor(width, height) {
|
|
1087
|
-
this.width = width;
|
|
1088
|
-
this.height = height;
|
|
1089
|
-
}
|
|
1090
|
-
}
|
|
1383
|
+
__metadata("design:paramtypes", [ElementRef, Overlay])
|
|
1384
|
+
], PopupInteractionContextComponent);
|
|
1091
1385
|
|
|
1092
|
-
class
|
|
1093
|
-
constructor(
|
|
1094
|
-
|
|
1095
|
-
this.
|
|
1096
|
-
|
|
1097
|
-
static from(data) {
|
|
1098
|
-
return new Point(data.x, data.y);
|
|
1099
|
-
}
|
|
1100
|
-
translate(x, y) {
|
|
1101
|
-
return new Point(this.x + x, this.y + y);
|
|
1386
|
+
let InteractionContextTriggerFor = class InteractionContextTriggerFor extends GarbageCollector {
|
|
1387
|
+
constructor() {
|
|
1388
|
+
super();
|
|
1389
|
+
this.activityDone = new EventEmitter();
|
|
1390
|
+
this.activityCancelled = new EventEmitter();
|
|
1102
1391
|
}
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
this.width = width;
|
|
1111
|
-
this.height = height;
|
|
1392
|
+
onEnter(event) {
|
|
1393
|
+
if (!this.aupInteractionContextTriggerFor.isActive()) {
|
|
1394
|
+
this.startActivity();
|
|
1395
|
+
}
|
|
1396
|
+
else {
|
|
1397
|
+
this.aupInteractionContextTriggerFor.cancelActiveActivity();
|
|
1398
|
+
}
|
|
1112
1399
|
}
|
|
1113
|
-
|
|
1114
|
-
if (
|
|
1115
|
-
|
|
1400
|
+
onClick(event) {
|
|
1401
|
+
if (!this.aupInteractionContextTriggerFor.isActive()) {
|
|
1402
|
+
this.startActivity();
|
|
1116
1403
|
}
|
|
1117
1404
|
else {
|
|
1118
|
-
|
|
1405
|
+
this.aupInteractionContextTriggerFor.cancelActiveActivity();
|
|
1119
1406
|
}
|
|
1120
1407
|
}
|
|
1121
|
-
|
|
1122
|
-
(
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1408
|
+
startActivity() {
|
|
1409
|
+
assert.isTruthy(this.aupInteractionContextTriggerFor);
|
|
1410
|
+
assert.isFalsey(this.aupInteractionContextTriggerFor.isActive());
|
|
1411
|
+
assert.isTruthy(this.activityClass);
|
|
1412
|
+
this.aupInteractionContextTriggerFor.startActivity(this.activityClass, this.activityData)
|
|
1413
|
+
.then(result => {
|
|
1414
|
+
this.activityDone.emit(result);
|
|
1415
|
+
})
|
|
1416
|
+
.catch(error => {
|
|
1417
|
+
this.activityCancelled.emit(error);
|
|
1418
|
+
});
|
|
1126
1419
|
}
|
|
1127
|
-
|
|
1128
|
-
|
|
1420
|
+
prepareActivityData() {
|
|
1421
|
+
return ___default.isFunction(this.activityDataFactory()) ? this.activityDataFactory() : this.activityData;
|
|
1422
|
+
}
|
|
1423
|
+
};
|
|
1424
|
+
__decorate([
|
|
1425
|
+
Input(),
|
|
1426
|
+
__metadata("design:type", Object)
|
|
1427
|
+
], InteractionContextTriggerFor.prototype, "aupInteractionContextTriggerFor", void 0);
|
|
1428
|
+
__decorate([
|
|
1429
|
+
Input(),
|
|
1430
|
+
__metadata("design:type", Object)
|
|
1431
|
+
], InteractionContextTriggerFor.prototype, "activityClass", void 0);
|
|
1432
|
+
__decorate([
|
|
1433
|
+
Input(),
|
|
1434
|
+
__metadata("design:type", Object)
|
|
1435
|
+
], InteractionContextTriggerFor.prototype, "activityData", void 0);
|
|
1436
|
+
__decorate([
|
|
1437
|
+
Input(),
|
|
1438
|
+
__metadata("design:type", Function)
|
|
1439
|
+
], InteractionContextTriggerFor.prototype, "activityDataFactory", void 0);
|
|
1440
|
+
__decorate([
|
|
1441
|
+
Output(),
|
|
1442
|
+
__metadata("design:type", Object)
|
|
1443
|
+
], InteractionContextTriggerFor.prototype, "activityDone", void 0);
|
|
1444
|
+
__decorate([
|
|
1445
|
+
Output(),
|
|
1446
|
+
__metadata("design:type", Object)
|
|
1447
|
+
], InteractionContextTriggerFor.prototype, "activityCancelled", void 0);
|
|
1448
|
+
__decorate([
|
|
1449
|
+
HostListener('keyup.enter'),
|
|
1450
|
+
__metadata("design:type", Function),
|
|
1451
|
+
__metadata("design:paramtypes", [KeyboardEvent]),
|
|
1452
|
+
__metadata("design:returntype", void 0)
|
|
1453
|
+
], InteractionContextTriggerFor.prototype, "onEnter", null);
|
|
1454
|
+
__decorate([
|
|
1455
|
+
HostListener('click'),
|
|
1456
|
+
__metadata("design:type", Function),
|
|
1457
|
+
__metadata("design:paramtypes", [MouseEvent]),
|
|
1458
|
+
__metadata("design:returntype", void 0)
|
|
1459
|
+
], InteractionContextTriggerFor.prototype, "onClick", null);
|
|
1460
|
+
InteractionContextTriggerFor = __decorate([
|
|
1461
|
+
Directive({
|
|
1462
|
+
selector: '[aupInteractionContextTriggerFor]'
|
|
1463
|
+
}),
|
|
1464
|
+
__metadata("design:paramtypes", [])
|
|
1465
|
+
], InteractionContextTriggerFor);
|
|
1129
1466
|
|
|
1130
|
-
|
|
1131
|
-
constructor(
|
|
1467
|
+
class DialogInteractionContext extends AbstractInteractionContext {
|
|
1468
|
+
constructor(identifier, api, dialogService, config) {
|
|
1132
1469
|
super();
|
|
1133
|
-
this.
|
|
1134
|
-
this.
|
|
1135
|
-
this.
|
|
1470
|
+
this.identifier = identifier;
|
|
1471
|
+
this.api = api;
|
|
1472
|
+
this.dialogService = dialogService;
|
|
1473
|
+
this.config = config;
|
|
1474
|
+
this.garbage = new GarbageCollector();
|
|
1475
|
+
assert$1.notNil(dialogService);
|
|
1136
1476
|
}
|
|
1137
|
-
|
|
1138
|
-
this.
|
|
1139
|
-
const element = this.elementRef.nativeElement;
|
|
1140
|
-
const ro = new ResizeObserver((entries, observer) => {
|
|
1141
|
-
this.ngZone.run(() => this.updateBounds());
|
|
1142
|
-
});
|
|
1143
|
-
ro.observe(element);
|
|
1144
|
-
this.onDispose(() => ro.disconnect());
|
|
1477
|
+
cancelActiveActivity() {
|
|
1478
|
+
return this.activityContainer.cancelActiveActivity();
|
|
1145
1479
|
}
|
|
1146
|
-
|
|
1147
|
-
|
|
1480
|
+
dispose() {
|
|
1481
|
+
if (this.isActive()) {
|
|
1482
|
+
lang.illegalState('Dispose called while active.');
|
|
1483
|
+
}
|
|
1484
|
+
this.garbage.dispose();
|
|
1148
1485
|
}
|
|
1149
|
-
|
|
1150
|
-
return this.
|
|
1486
|
+
registerDisposable(disposable) {
|
|
1487
|
+
return this.garbage.registerDisposable(disposable);
|
|
1151
1488
|
}
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1489
|
+
isActive() {
|
|
1490
|
+
return !!this.activityContainer && this.activityContainer.isActive();
|
|
1491
|
+
}
|
|
1492
|
+
createAndLaunchActivity(activityType, data, disableClose) {
|
|
1493
|
+
assert$1.isNil(this._currentActivityRef);
|
|
1494
|
+
const config = Object.assign(Object.assign({}, this.config), {
|
|
1495
|
+
disableClose,
|
|
1496
|
+
panelClass: 'dialog-interaction-context'
|
|
1497
|
+
});
|
|
1498
|
+
const self = this;
|
|
1499
|
+
const matDialogRef = this.dialogService.open(ActivityContainerComponent, config);
|
|
1500
|
+
const activityContainer = this.activityContainer = matDialogRef.componentInstance;
|
|
1501
|
+
this.activityContainer.initialise(this.identifier, this.api);
|
|
1502
|
+
const activityResult = this.activityContainer.startActivity(activityType, data);
|
|
1503
|
+
activityResult.finally(() => matDialogRef.close());
|
|
1504
|
+
// we need to check if our onDone/onCancel methods above we called or if we were
|
|
1505
|
+
// closed by the user clicking the backdrop. If the later then we need to cancel our
|
|
1506
|
+
// activity.
|
|
1507
|
+
matDialogRef.afterClosed().subscribe(promiseAlreadyFinished => {
|
|
1508
|
+
if (activityContainer.isActive()) {
|
|
1509
|
+
activityContainer.cancelActiveActivity();
|
|
1510
|
+
}
|
|
1511
|
+
this.activityContainer = null;
|
|
1512
|
+
});
|
|
1513
|
+
matDialogRef.updateSize();
|
|
1514
|
+
matDialogRef.afterOpened().subscribe(promiseAlreadyFinished => {
|
|
1515
|
+
matDialogRef.updateSize();
|
|
1516
|
+
});
|
|
1517
|
+
return activityResult;
|
|
1155
1518
|
}
|
|
1156
|
-
|
|
1157
|
-
|
|
1519
|
+
}
|
|
1520
|
+
|
|
1521
|
+
const DIALOG_INTERACTION_SERVICE_DEFAULTS = new InjectionToken('DIALOG_INTERACTION_SERVICE_DEFAULTS');
|
|
1522
|
+
let DialogInteractionContextFactory = class DialogInteractionContextFactory extends ModalInteractionContextFactory {
|
|
1523
|
+
constructor(dialogService, dialogServiceDefaults, matDialogDefaultConfig) {
|
|
1524
|
+
super();
|
|
1525
|
+
this.dialogService = dialogService;
|
|
1526
|
+
this.dialogServiceDefaults = dialogServiceDefaults;
|
|
1527
|
+
this.matDialogDefaultConfig = matDialogDefaultConfig;
|
|
1528
|
+
assert$1.notNil(dialogService);
|
|
1158
1529
|
}
|
|
1159
|
-
|
|
1160
|
-
|
|
1530
|
+
createInteractionContext(identifier, api) {
|
|
1531
|
+
const config = Object.assign(Object.assign({ autoFocus: false, hasBackdrop: true, closeOnNavigation: false }, this.matDialogDefaultConfig), this.dialogServiceDefaults);
|
|
1532
|
+
return new DialogInteractionContext(identifier, api, this.dialogService, config);
|
|
1161
1533
|
}
|
|
1162
1534
|
};
|
|
1163
|
-
|
|
1164
|
-
{ type:
|
|
1165
|
-
{ type:
|
|
1535
|
+
DialogInteractionContextFactory.ctorParameters = () => [
|
|
1536
|
+
{ type: MatDialog },
|
|
1537
|
+
{ type: MatDialogConfig, decorators: [{ type: Optional }, { type: Inject, args: [DIALOG_INTERACTION_SERVICE_DEFAULTS,] }] },
|
|
1538
|
+
{ type: MatDialogConfig, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DIALOG_DEFAULT_OPTIONS,] }] }
|
|
1166
1539
|
];
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1540
|
+
DialogInteractionContextFactory.ɵprov = ɵɵdefineInjectable({ factory: function DialogInteractionContextFactory_Factory() { return new DialogInteractionContextFactory(ɵɵinject(MatDialog), ɵɵinject(DIALOG_INTERACTION_SERVICE_DEFAULTS, 8), ɵɵinject(MAT_DIALOG_DEFAULT_OPTIONS, 8)); }, token: DialogInteractionContextFactory, providedIn: "root" });
|
|
1541
|
+
DialogInteractionContextFactory = __decorate([
|
|
1542
|
+
Injectable({
|
|
1543
|
+
providedIn: 'root'
|
|
1544
|
+
}),
|
|
1545
|
+
__param(1, Optional()), __param(1, Inject(DIALOG_INTERACTION_SERVICE_DEFAULTS)),
|
|
1546
|
+
__param(2, Optional()), __param(2, Inject(MAT_DIALOG_DEFAULT_OPTIONS)),
|
|
1547
|
+
__metadata("design:paramtypes", [MatDialog,
|
|
1548
|
+
MatDialogConfig,
|
|
1549
|
+
MatDialogConfig])
|
|
1550
|
+
], DialogInteractionContextFactory);
|
|
1171
1551
|
|
|
1172
1552
|
/**
|
|
1173
1553
|
* @file Automatically generated by barrelsby.
|
|
1174
1554
|
*/
|
|
1175
1555
|
|
|
1176
|
-
let
|
|
1556
|
+
let AbstractInputActivity = class AbstractInputActivity extends Activity {
|
|
1557
|
+
constructor(data) {
|
|
1558
|
+
super();
|
|
1559
|
+
this.data = data;
|
|
1560
|
+
this.class = 'aup-input-activity';
|
|
1561
|
+
const form = new Form();
|
|
1562
|
+
this.valueModel = form.valueModel(this.data.initialValue);
|
|
1563
|
+
this.valueModel.validateUsing(data.validators || []);
|
|
1564
|
+
this.confirmCommand = Command.create(() => {
|
|
1565
|
+
if (this.valueModel.validate()) {
|
|
1566
|
+
if (data.save) {
|
|
1567
|
+
return Promise.resolve(data.save(this.valueModel, this.interactionContext))
|
|
1568
|
+
.then(() => this.done());
|
|
1569
|
+
}
|
|
1570
|
+
else {
|
|
1571
|
+
this.done(this.valueModel.value);
|
|
1572
|
+
}
|
|
1573
|
+
}
|
|
1574
|
+
});
|
|
1575
|
+
this.cancelCommand = Command.create(() => {
|
|
1576
|
+
this.cancel();
|
|
1577
|
+
});
|
|
1578
|
+
}
|
|
1579
|
+
onActivityReady() {
|
|
1580
|
+
this.valueModel.focusContext.requestFocus();
|
|
1581
|
+
}
|
|
1582
|
+
};
|
|
1583
|
+
AbstractInputActivity.ctorParameters = () => [
|
|
1584
|
+
{ type: undefined, decorators: [{ type: Inject, args: [ACTIVITY_DATA,] }] }
|
|
1585
|
+
];
|
|
1586
|
+
__decorate([
|
|
1587
|
+
HostBinding('class'),
|
|
1588
|
+
__metadata("design:type", Object)
|
|
1589
|
+
], AbstractInputActivity.prototype, "class", void 0);
|
|
1590
|
+
AbstractInputActivity = __decorate([
|
|
1591
|
+
Component({
|
|
1592
|
+
template: ``
|
|
1593
|
+
}),
|
|
1594
|
+
__param(0, Inject(ACTIVITY_DATA)),
|
|
1595
|
+
__metadata("design:paramtypes", [Object])
|
|
1596
|
+
], AbstractInputActivity);
|
|
1597
|
+
|
|
1598
|
+
let AbstractInputComponent = class AbstractInputComponent extends DisposableComponent {
|
|
1177
1599
|
constructor() {
|
|
1178
|
-
super(
|
|
1179
|
-
|
|
1600
|
+
super();
|
|
1601
|
+
/**
|
|
1602
|
+
* A backing model for all our @Input() valueModel properties which should be defined as follows.
|
|
1603
|
+
*
|
|
1604
|
+
* @Input() @TrackExternal({useExisting: "delegatingFormValueModel"})
|
|
1605
|
+
* valueModel: FormValueModel<string> | MutableValueModel<string>;
|
|
1606
|
+
*
|
|
1607
|
+
* This approach allows the input to accept plain or form models but all backed by a form
|
|
1608
|
+
* friendly delegate. We have to use an existing delegate for union types as pectin just
|
|
1609
|
+
* gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).
|
|
1610
|
+
*/
|
|
1611
|
+
// We have to register it as a disposable so it ditches any listeners when we're disposed.
|
|
1612
|
+
this.delegatingFormValueModel = this.registerDisposable(new DelegatingFormValueModel());
|
|
1613
|
+
// TODO: fix this.
|
|
1614
|
+
// tslint:disable-next-line:no-output-native
|
|
1615
|
+
this.focus = new EventEmitter();
|
|
1616
|
+
// tslint:disable-next-line:no-output-native
|
|
1617
|
+
this.blur = new EventEmitter();
|
|
1618
|
+
// tslint:disable-next-line:no-output-native
|
|
1619
|
+
this.enterKey = new EventEmitter();
|
|
1620
|
+
// tslint:disable-next-line:no-output-native
|
|
1621
|
+
this.escapeKey = new EventEmitter();
|
|
1622
|
+
this.baseClassName = 'aup-input-component';
|
|
1623
|
+
const self = this;
|
|
1624
|
+
this.errorStateMatcher = {
|
|
1625
|
+
isErrorState(control, form) {
|
|
1626
|
+
return self.hasErrors();
|
|
1627
|
+
}
|
|
1628
|
+
};
|
|
1180
1629
|
}
|
|
1181
|
-
|
|
1182
|
-
|
|
1630
|
+
notifyClick() {
|
|
1631
|
+
this.safelyInvoke(this.clickCommand);
|
|
1632
|
+
}
|
|
1633
|
+
notifyFocusIn() {
|
|
1634
|
+
this.safelyInvoke(this.focusCommand);
|
|
1635
|
+
this.focus.emit();
|
|
1636
|
+
}
|
|
1637
|
+
notifyFocusOut() {
|
|
1638
|
+
this.safelyInvoke(this.blurCommand);
|
|
1639
|
+
this.blur.emit();
|
|
1640
|
+
}
|
|
1641
|
+
notifyEnterKey() {
|
|
1642
|
+
this.safelyInvoke(this.enterCommand);
|
|
1643
|
+
this.enterKey.emit();
|
|
1644
|
+
}
|
|
1645
|
+
notifyEscapeKey() {
|
|
1646
|
+
this.safelyInvoke(this.escapeCommand);
|
|
1647
|
+
this.escapeKey.emit();
|
|
1648
|
+
}
|
|
1649
|
+
safelyInvoke(command) {
|
|
1650
|
+
if (command && command.enabled.value) {
|
|
1651
|
+
command.execute();
|
|
1652
|
+
}
|
|
1183
1653
|
}
|
|
1184
1654
|
ngOnInit() {
|
|
1185
1655
|
}
|
|
1186
|
-
|
|
1187
|
-
return
|
|
1656
|
+
isEnabled() {
|
|
1657
|
+
return this.enabled.value;
|
|
1658
|
+
}
|
|
1659
|
+
get enabled() {
|
|
1660
|
+
return this.delegatingFormValueModel.enabled;
|
|
1661
|
+
}
|
|
1662
|
+
hasErrors() {
|
|
1663
|
+
return !this.errorList.query().isEmpty();
|
|
1664
|
+
}
|
|
1665
|
+
get errorList() {
|
|
1666
|
+
return this.delegatingFormValueModel.errorList;
|
|
1667
|
+
}
|
|
1668
|
+
get firstError() {
|
|
1669
|
+
return this.hasErrors() ? this.errorList.value[0] : null;
|
|
1188
1670
|
}
|
|
1189
1671
|
};
|
|
1190
1672
|
__decorate([
|
|
1191
1673
|
Input(),
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
], ActivityActionsComponent.prototype, "confirmCommand", void 0);
|
|
1674
|
+
__metadata("design:type", String)
|
|
1675
|
+
], AbstractInputComponent.prototype, "label", void 0);
|
|
1195
1676
|
__decorate([
|
|
1196
1677
|
Input(),
|
|
1197
1678
|
__metadata("design:type", String)
|
|
1198
|
-
],
|
|
1679
|
+
], AbstractInputComponent.prototype, "floatLabel", void 0);
|
|
1199
1680
|
__decorate([
|
|
1200
1681
|
Input(),
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
], ActivityActionsComponent.prototype, "cancelCommand", void 0);
|
|
1682
|
+
__metadata("design:type", String)
|
|
1683
|
+
], AbstractInputComponent.prototype, "hint", void 0);
|
|
1204
1684
|
__decorate([
|
|
1205
1685
|
Input(),
|
|
1206
1686
|
__metadata("design:type", String)
|
|
1207
|
-
],
|
|
1687
|
+
], AbstractInputComponent.prototype, "placeholder", void 0);
|
|
1208
1688
|
__decorate([
|
|
1209
|
-
|
|
1210
|
-
__metadata("design:type",
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
],
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1689
|
+
Input('command.focus'),
|
|
1690
|
+
__metadata("design:type", Command)
|
|
1691
|
+
], AbstractInputComponent.prototype, "focusCommand", void 0);
|
|
1692
|
+
__decorate([
|
|
1693
|
+
Input('command.blur'),
|
|
1694
|
+
__metadata("design:type", Command)
|
|
1695
|
+
], AbstractInputComponent.prototype, "blurCommand", void 0);
|
|
1696
|
+
__decorate([
|
|
1697
|
+
Input('command.enter'),
|
|
1698
|
+
__metadata("design:type", Command)
|
|
1699
|
+
], AbstractInputComponent.prototype, "enterCommand", void 0);
|
|
1700
|
+
__decorate([
|
|
1701
|
+
Input('command.escape'),
|
|
1702
|
+
__metadata("design:type", Command)
|
|
1703
|
+
], AbstractInputComponent.prototype, "escapeCommand", void 0);
|
|
1704
|
+
__decorate([
|
|
1705
|
+
Input('command.click'),
|
|
1706
|
+
__metadata("design:type", Command)
|
|
1707
|
+
], AbstractInputComponent.prototype, "clickCommand", void 0);
|
|
1708
|
+
__decorate([
|
|
1709
|
+
Output(),
|
|
1710
|
+
__metadata("design:type", Object)
|
|
1711
|
+
], AbstractInputComponent.prototype, "focus", void 0);
|
|
1712
|
+
__decorate([
|
|
1713
|
+
Output(),
|
|
1714
|
+
__metadata("design:type", Object)
|
|
1715
|
+
], AbstractInputComponent.prototype, "blur", void 0);
|
|
1716
|
+
__decorate([
|
|
1717
|
+
Output(),
|
|
1718
|
+
__metadata("design:type", Object)
|
|
1719
|
+
], AbstractInputComponent.prototype, "enterKey", void 0);
|
|
1720
|
+
__decorate([
|
|
1721
|
+
Output(),
|
|
1722
|
+
__metadata("design:type", Object)
|
|
1723
|
+
], AbstractInputComponent.prototype, "escapeKey", void 0);
|
|
1724
|
+
__decorate([
|
|
1725
|
+
HostBinding('class'),
|
|
1726
|
+
__metadata("design:type", Object)
|
|
1727
|
+
], AbstractInputComponent.prototype, "baseClassName", void 0);
|
|
1728
|
+
__decorate([
|
|
1729
|
+
HostListener('click'),
|
|
1730
|
+
__metadata("design:type", Function),
|
|
1731
|
+
__metadata("design:paramtypes", []),
|
|
1732
|
+
__metadata("design:returntype", void 0)
|
|
1733
|
+
], AbstractInputComponent.prototype, "notifyClick", null);
|
|
1734
|
+
__decorate([
|
|
1735
|
+
HostListener('focusin'),
|
|
1736
|
+
__metadata("design:type", Function),
|
|
1737
|
+
__metadata("design:paramtypes", []),
|
|
1738
|
+
__metadata("design:returntype", void 0)
|
|
1739
|
+
], AbstractInputComponent.prototype, "notifyFocusIn", null);
|
|
1740
|
+
__decorate([
|
|
1741
|
+
HostListener('focusout'),
|
|
1742
|
+
__metadata("design:type", Function),
|
|
1743
|
+
__metadata("design:paramtypes", []),
|
|
1744
|
+
__metadata("design:returntype", void 0)
|
|
1745
|
+
], AbstractInputComponent.prototype, "notifyFocusOut", null);
|
|
1746
|
+
AbstractInputComponent = __decorate([
|
|
1747
|
+
Component({ template: '' }),
|
|
1748
|
+
__metadata("design:paramtypes", [])
|
|
1749
|
+
], AbstractInputComponent);
|
|
1258
1750
|
|
|
1259
|
-
let
|
|
1260
|
-
constructor(
|
|
1751
|
+
let CheckboxInputComponent = class CheckboxInputComponent extends AbstractInputComponent {
|
|
1752
|
+
constructor() {
|
|
1261
1753
|
super();
|
|
1262
|
-
this.
|
|
1754
|
+
this.color = 'accent';
|
|
1755
|
+
this.labelPosition = 'after';
|
|
1263
1756
|
}
|
|
1264
1757
|
ngOnInit() {
|
|
1265
1758
|
}
|
|
1266
1759
|
};
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1760
|
+
__decorate([
|
|
1761
|
+
Input(), TrackExternal({ delegateTo: 'delegatingFormValueModel' }),
|
|
1762
|
+
__metadata("design:type", Object)
|
|
1763
|
+
], CheckboxInputComponent.prototype, "valueModel", void 0);
|
|
1764
|
+
__decorate([
|
|
1765
|
+
Input(),
|
|
1766
|
+
__metadata("design:type", String)
|
|
1767
|
+
], CheckboxInputComponent.prototype, "color", void 0);
|
|
1768
|
+
__decorate([
|
|
1769
|
+
Input(),
|
|
1770
|
+
__metadata("design:type", String)
|
|
1771
|
+
], CheckboxInputComponent.prototype, "labelPosition", void 0);
|
|
1772
|
+
CheckboxInputComponent = __decorate([
|
|
1271
1773
|
Component({
|
|
1272
|
-
selector: 'aup-
|
|
1273
|
-
template: "
|
|
1274
|
-
styles: [":host{display:
|
|
1774
|
+
selector: 'aup-checkbox-input',
|
|
1775
|
+
template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [(ngModel)]=\"valueModel.value\"\n [color]=\"color\"\n [labelPosition]=\"labelPosition\"\n [disabled]=\"!isEnabled()\"\n>{{label}}</mat-checkbox>\n<mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n<mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n",
|
|
1776
|
+
styles: [":host{display:inline-flex;flex-direction:column;margin-top:24px;margin-bottom:16px}mat-error,mat-hint{margin-top:4px;margin-left:24px;font-size:12px;font-weight:400;line-height:13.5px}"]
|
|
1275
1777
|
}),
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
], AlertDialogComponent);
|
|
1778
|
+
__metadata("design:paramtypes", [])
|
|
1779
|
+
], CheckboxInputComponent);
|
|
1279
1780
|
|
|
1280
|
-
let
|
|
1281
|
-
constructor(
|
|
1781
|
+
let NumberInputComponent = class NumberInputComponent extends AbstractInputComponent {
|
|
1782
|
+
constructor() {
|
|
1282
1783
|
super();
|
|
1283
|
-
this.
|
|
1284
|
-
|
|
1784
|
+
this.min = Number.MIN_SAFE_INTEGER;
|
|
1785
|
+
this.max = Number.MAX_SAFE_INTEGER;
|
|
1285
1786
|
}
|
|
1286
1787
|
ngOnInit() {
|
|
1287
1788
|
}
|
|
1288
|
-
get confirm() {
|
|
1289
|
-
return this.config.confirm;
|
|
1290
|
-
}
|
|
1291
|
-
isDestructive() {
|
|
1292
|
-
return this.confirm.destructive && this.confirm.destructive();
|
|
1293
|
-
}
|
|
1294
|
-
onConfirm() {
|
|
1295
|
-
this.interactionContext.startActivity(this.config.activityType, this.config.data)
|
|
1296
|
-
.then((result) => this.done(result))
|
|
1297
|
-
.catch(error => this.cancel(error));
|
|
1298
|
-
}
|
|
1299
1789
|
};
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1790
|
+
__decorate([
|
|
1791
|
+
Input(), TrackExternal({ delegateTo: 'delegatingFormValueModel' }),
|
|
1792
|
+
__metadata("design:type", Object)
|
|
1793
|
+
], NumberInputComponent.prototype, "valueModel", void 0);
|
|
1794
|
+
__decorate([
|
|
1795
|
+
Input(),
|
|
1796
|
+
__metadata("design:type", Object)
|
|
1797
|
+
], NumberInputComponent.prototype, "min", void 0);
|
|
1798
|
+
__decorate([
|
|
1799
|
+
Input(),
|
|
1800
|
+
__metadata("design:type", Object)
|
|
1801
|
+
], NumberInputComponent.prototype, "max", void 0);
|
|
1802
|
+
NumberInputComponent = __decorate([
|
|
1304
1803
|
Component({
|
|
1305
|
-
selector: 'aup-
|
|
1306
|
-
template: "<
|
|
1307
|
-
styles: [":host{display:block
|
|
1804
|
+
selector: 'aup-number-input',
|
|
1805
|
+
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"number\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"delegatingFormValueModel?.focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
|
|
1806
|
+
styles: [":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}:host-context(aup-table-cell-renderer) mat-form-field div.mat-form-field-infix{width:auto}"]
|
|
1308
1807
|
}),
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
], ConfirmThenDialogComponent);
|
|
1808
|
+
__metadata("design:paramtypes", [])
|
|
1809
|
+
], NumberInputComponent);
|
|
1312
1810
|
|
|
1313
|
-
let
|
|
1314
|
-
constructor(
|
|
1811
|
+
let PasswordInputComponent = class PasswordInputComponent extends AbstractInputComponent {
|
|
1812
|
+
constructor() {
|
|
1315
1813
|
super();
|
|
1316
|
-
this.confirm = confirm;
|
|
1317
|
-
assert.notNil(confirm);
|
|
1318
1814
|
}
|
|
1319
1815
|
ngOnInit() {
|
|
1320
1816
|
}
|
|
1321
|
-
isDestructive() {
|
|
1322
|
-
return this.confirm.destructive && this.confirm.destructive();
|
|
1323
|
-
}
|
|
1324
1817
|
};
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1818
|
+
__decorate([
|
|
1819
|
+
Input(), TrackExternal({ delegateTo: "delegatingFormValueModel" }),
|
|
1820
|
+
__metadata("design:type", Object)
|
|
1821
|
+
], PasswordInputComponent.prototype, "valueModel", void 0);
|
|
1822
|
+
PasswordInputComponent = __decorate([
|
|
1329
1823
|
Component({
|
|
1330
|
-
selector: 'aup-
|
|
1331
|
-
template: "<
|
|
1332
|
-
styles: [":host{display:block
|
|
1824
|
+
selector: 'aup-password-input',
|
|
1825
|
+
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"password\"\n matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"delegatingFormValueModel.focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
|
|
1826
|
+
styles: [":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}:host-context(aup-table-cell-renderer) mat-form-field div.mat-form-field-infix{width:auto}"]
|
|
1333
1827
|
}),
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
], ConfirmationDialogComponent);
|
|
1337
|
-
|
|
1338
|
-
class AbstractInteractionContext {
|
|
1339
|
-
startActivity(activityType, data) {
|
|
1340
|
-
return this.createAndLaunchActivity(activityType, data, false);
|
|
1341
|
-
}
|
|
1342
|
-
confirm(confirm) {
|
|
1343
|
-
// Important: we have to implement confirmOrReject as the main entry point
|
|
1344
|
-
// as the canDeactivation guards need to be able to cancel an interaction
|
|
1345
|
-
// without caring about returning a value.
|
|
1346
|
-
return this.confirmOrReject(confirm).then(() => true).catch(() => false);
|
|
1347
|
-
}
|
|
1348
|
-
alert(alert) {
|
|
1349
|
-
// TODO: Test disableClose === false
|
|
1350
|
-
return this.createAndLaunchActivity(AlertDialogComponent, alert, false);
|
|
1351
|
-
}
|
|
1352
|
-
confirmOrReject(confirm) {
|
|
1353
|
-
return this.createAndLaunchActivity(ConfirmationDialogComponent, confirm, true);
|
|
1354
|
-
}
|
|
1355
|
-
/**
|
|
1356
|
-
* Presents the confirmation to the user and runs the activity only if the user confirms.
|
|
1357
|
-
* @param confirm:Confirm the confirmation to display.
|
|
1358
|
-
* @param activityType the activity to run if confirmed.
|
|
1359
|
-
* @param data the activity data.
|
|
1360
|
-
*/
|
|
1361
|
-
confirmThen(confirm, activityType, data) {
|
|
1362
|
-
return this.createAndLaunchActivity(ConfirmThenDialogComponent, {
|
|
1363
|
-
confirm,
|
|
1364
|
-
activityType: activityType,
|
|
1365
|
-
data: data
|
|
1366
|
-
}, true);
|
|
1367
|
-
}
|
|
1368
|
-
}
|
|
1369
|
-
|
|
1370
|
-
class ActivityRef {
|
|
1371
|
-
constructor(activityClass, activityData, onComplete) {
|
|
1372
|
-
this.activityClass = activityClass;
|
|
1373
|
-
this.activityData = activityData;
|
|
1374
|
-
this.onComplete = onComplete;
|
|
1375
|
-
this._complete = false;
|
|
1376
|
-
this.deferredResult = Deferred.defer();
|
|
1377
|
-
}
|
|
1378
|
-
isActivityRealised() {
|
|
1379
|
-
return !!this._activity;
|
|
1380
|
-
}
|
|
1381
|
-
isComplete() {
|
|
1382
|
-
return this._complete;
|
|
1383
|
-
}
|
|
1384
|
-
get activity() {
|
|
1385
|
-
assert.isTruthy(this.isActivityRealised());
|
|
1386
|
-
return this._activity;
|
|
1387
|
-
}
|
|
1388
|
-
notifyActivityCreated(activity, nestedInteractionContext) {
|
|
1389
|
-
assert.isNil(this._activity);
|
|
1390
|
-
this._activity = activity;
|
|
1391
|
-
const self = this;
|
|
1392
|
-
this._activity.initialise(nestedInteractionContext, {
|
|
1393
|
-
onDone(result) {
|
|
1394
|
-
self.finishActivity(deferred => deferred.resolve(result));
|
|
1395
|
-
},
|
|
1396
|
-
onCancel(error) {
|
|
1397
|
-
self.finishActivity(deferred => deferred.reject(error));
|
|
1398
|
-
}
|
|
1399
|
-
});
|
|
1400
|
-
}
|
|
1401
|
-
finishActivity(resolveOrReject) {
|
|
1402
|
-
assert.isFalsey(this.isComplete());
|
|
1403
|
-
resolveOrReject(this.deferredResult);
|
|
1404
|
-
this._complete = true;
|
|
1405
|
-
this.onComplete(this);
|
|
1406
|
-
}
|
|
1407
|
-
cancel() {
|
|
1408
|
-
this.activity.cancel();
|
|
1409
|
-
}
|
|
1410
|
-
get activityResult() {
|
|
1411
|
-
return this.deferredResult.promise;
|
|
1412
|
-
}
|
|
1413
|
-
}
|
|
1828
|
+
__metadata("design:paramtypes", [])
|
|
1829
|
+
], PasswordInputComponent);
|
|
1414
1830
|
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
let ActivityOutletComponent = class ActivityOutletComponent {
|
|
1420
|
-
constructor(componentFactoryResolver, viewContainerRef, injector) {
|
|
1421
|
-
this.componentFactoryResolver = componentFactoryResolver;
|
|
1422
|
-
this.viewContainerRef = viewContainerRef;
|
|
1423
|
-
this.injector = injector;
|
|
1831
|
+
let SelectInputComponent = class SelectInputComponent extends AbstractInputComponent {
|
|
1832
|
+
constructor() {
|
|
1833
|
+
super();
|
|
1834
|
+
this.optionLabelFormat = (option) => (option && this.optionLabel) ? option[this.optionLabel] : option;
|
|
1424
1835
|
}
|
|
1425
|
-
|
|
1426
|
-
if (this.activityRef && !this.activityRef.isComplete()) {
|
|
1427
|
-
lang$1.illegalState("changing activity before previous one has completed");
|
|
1428
|
-
}
|
|
1429
|
-
this._activityRef = activityRef;
|
|
1430
|
-
this.loadActivity(activityRef);
|
|
1836
|
+
ngOnInit() {
|
|
1431
1837
|
}
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1838
|
+
};
|
|
1839
|
+
__decorate([
|
|
1840
|
+
Input(), TrackExternal({ delegateTo: "delegatingFormValueModel" }),
|
|
1841
|
+
__metadata("design:type", Object)
|
|
1842
|
+
], SelectInputComponent.prototype, "valueModel", void 0);
|
|
1843
|
+
__decorate([
|
|
1844
|
+
Input(), TrackExternal(),
|
|
1845
|
+
__metadata("design:type", ListModel)
|
|
1846
|
+
], SelectInputComponent.prototype, "optionsModel", void 0);
|
|
1847
|
+
__decorate([
|
|
1848
|
+
Input(), StoreInListModel('optionsModel'),
|
|
1849
|
+
__metadata("design:type", Array)
|
|
1850
|
+
], SelectInputComponent.prototype, "options", void 0);
|
|
1851
|
+
__decorate([
|
|
1852
|
+
Input(),
|
|
1853
|
+
__metadata("design:type", Object)
|
|
1854
|
+
], SelectInputComponent.prototype, "optionLabel", void 0);
|
|
1855
|
+
__decorate([
|
|
1856
|
+
Input(),
|
|
1857
|
+
__metadata("design:type", Boolean)
|
|
1858
|
+
], SelectInputComponent.prototype, "allowNil", void 0);
|
|
1859
|
+
__decorate([
|
|
1860
|
+
ContentChild("optionTemplate"),
|
|
1861
|
+
__metadata("design:type", TemplateRef)
|
|
1862
|
+
], SelectInputComponent.prototype, "optionTemplateRef", void 0);
|
|
1863
|
+
__decorate([
|
|
1864
|
+
ContentChild("nilOptionTemplate"),
|
|
1865
|
+
__metadata("design:type", TemplateRef)
|
|
1866
|
+
], SelectInputComponent.prototype, "nilOptionTemplateRef", void 0);
|
|
1867
|
+
__decorate([
|
|
1868
|
+
Input(),
|
|
1869
|
+
__metadata("design:type", Function)
|
|
1870
|
+
], SelectInputComponent.prototype, "optionLabelFormat", void 0);
|
|
1871
|
+
SelectInputComponent = __decorate([
|
|
1872
|
+
Component({
|
|
1873
|
+
selector: 'aup-select-input',
|
|
1874
|
+
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"delegatingFormValueModel.focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngIf=\"allowNil\">{{placeholder}}</mat-option>\n <mat-option *ngFor=\"let option of optionsModel.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=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
|
|
1875
|
+
styles: [":host{display:inline-block}mat-form-field{width:100%}"]
|
|
1876
|
+
}),
|
|
1877
|
+
__metadata("design:paramtypes", [])
|
|
1878
|
+
], SelectInputComponent);
|
|
1879
|
+
|
|
1880
|
+
let StringInputActivity = class StringInputActivity extends AbstractInputActivity {
|
|
1881
|
+
};
|
|
1882
|
+
StringInputActivity = __decorate([
|
|
1883
|
+
Component({
|
|
1884
|
+
selector: 'aup-string-input-activity',
|
|
1885
|
+
template: `
|
|
1886
|
+
<aup-string-input [valueModel]="valueModel"
|
|
1887
|
+
[label]="data.label"
|
|
1888
|
+
[placeholder]="data.placeholder"
|
|
1889
|
+
[command.enter]="confirmCommand"
|
|
1890
|
+
[command.escape]="cancelCommand"></aup-string-input>
|
|
1891
|
+
<aup-activity-actions align="end"
|
|
1892
|
+
[confirmCommand]="confirmCommand"
|
|
1893
|
+
[cancelCommand]="cancelCommand"></aup-activity-actions>
|
|
1894
|
+
`
|
|
1895
|
+
})
|
|
1896
|
+
], StringInputActivity);
|
|
1897
|
+
|
|
1898
|
+
let StringInputComponent = class StringInputComponent extends AbstractInputComponent {
|
|
1899
|
+
constructor() {
|
|
1900
|
+
super();
|
|
1901
|
+
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
1902
|
+
this.clearCommand = Command.create(() => {
|
|
1903
|
+
this.valueModel.value = null;
|
|
1904
|
+
});
|
|
1905
|
+
this.clearCommand.disableWhile(chain.stringValue(this.valueModel).isBlank());
|
|
1435
1906
|
}
|
|
1436
1907
|
ngOnInit() {
|
|
1437
1908
|
}
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1909
|
+
};
|
|
1910
|
+
__decorate([
|
|
1911
|
+
Input(), TrackExternal({ delegateTo: 'delegatingFormValueModel' }),
|
|
1912
|
+
__metadata("design:type", Object)
|
|
1913
|
+
], StringInputComponent.prototype, "valueModel", void 0);
|
|
1914
|
+
__decorate([
|
|
1915
|
+
Input(), TrackExternal({ defaultValue: false }),
|
|
1916
|
+
__metadata("design:type", ValueModel)
|
|
1917
|
+
], StringInputComponent.prototype, "enableClearModel", void 0);
|
|
1918
|
+
__decorate([
|
|
1919
|
+
Input(), StoreInValueModel('enableClearModel'),
|
|
1920
|
+
__metadata("design:type", Boolean)
|
|
1921
|
+
], StringInputComponent.prototype, "enableClear", void 0);
|
|
1922
|
+
StringInputComponent = __decorate([
|
|
1923
|
+
Component({
|
|
1924
|
+
selector: 'aup-string-input',
|
|
1925
|
+
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"delegatingFormValueModel.focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n <button mat-button mat-icon-button matSuffix *ngIf=\"enableClear\" [pectinCommand]=\"clearCommand\">\n <mat-icon>close</mat-icon>\n </button>\n</mat-form-field>\n\n",
|
|
1926
|
+
styles: [":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}:host-context(aup-table-cell-renderer) mat-form-field div.mat-form-field-infix{width:auto}button[disabled]{visibility:hidden}"]
|
|
1927
|
+
}),
|
|
1928
|
+
__metadata("design:paramtypes", [])
|
|
1929
|
+
], StringInputComponent);
|
|
1930
|
+
|
|
1931
|
+
let TextInputComponent = class TextInputComponent extends AbstractInputComponent {
|
|
1932
|
+
constructor() {
|
|
1933
|
+
super();
|
|
1934
|
+
this.rows = 2;
|
|
1935
|
+
// const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
1450
1936
|
}
|
|
1451
|
-
|
|
1452
|
-
return this.activityComponentRef.instance;
|
|
1937
|
+
ngOnInit() {
|
|
1453
1938
|
}
|
|
1454
1939
|
};
|
|
1455
|
-
|
|
1456
|
-
{
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
];
|
|
1940
|
+
__decorate([
|
|
1941
|
+
Input(), TrackExternal({ delegateTo: 'delegatingFormValueModel' }),
|
|
1942
|
+
__metadata("design:type", Object)
|
|
1943
|
+
], TextInputComponent.prototype, "valueModel", void 0);
|
|
1460
1944
|
__decorate([
|
|
1461
1945
|
Input(),
|
|
1462
1946
|
__metadata("design:type", Object)
|
|
1463
|
-
],
|
|
1947
|
+
], TextInputComponent.prototype, "rows", void 0);
|
|
1464
1948
|
__decorate([
|
|
1465
1949
|
Input(),
|
|
1466
|
-
__metadata("design:type",
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
ActivityOutletComponent = __decorate([
|
|
1950
|
+
__metadata("design:type", Number)
|
|
1951
|
+
], TextInputComponent.prototype, "cols", void 0);
|
|
1952
|
+
TextInputComponent = __decorate([
|
|
1470
1953
|
Component({
|
|
1471
|
-
selector: 'aup-
|
|
1472
|
-
template:
|
|
1473
|
-
styles: [":host{display:block}"]
|
|
1954
|
+
selector: 'aup-text-input',
|
|
1955
|
+
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <textarea matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"valueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"delegatingFormValueModel.focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n >\n </textarea>\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
|
|
1956
|
+
styles: [":host{display:block}input,mat-form-field{width:100%}input mat-hint.faux-error,mat-form-field mat-hint.faux-error{color:#f44336}:host-context(aup-table-cell-renderer) mat-form-field div.mat-form-field-infix{width:auto}button[disabled]{visibility:hidden}textarea{overflow:auto}"]
|
|
1474
1957
|
}),
|
|
1475
|
-
__metadata("design:paramtypes", [
|
|
1476
|
-
|
|
1477
|
-
Injector])
|
|
1478
|
-
], ActivityOutletComponent);
|
|
1958
|
+
__metadata("design:paramtypes", [])
|
|
1959
|
+
], TextInputComponent);
|
|
1479
1960
|
|
|
1480
|
-
let
|
|
1961
|
+
let NoopComponent = class NoopComponent {
|
|
1481
1962
|
constructor() {
|
|
1482
|
-
super();
|
|
1483
|
-
this.dynamicHeight = false;
|
|
1484
|
-
this.activityTabs = [];
|
|
1485
|
-
this.garbage = new GarbageCollector();
|
|
1486
1963
|
}
|
|
1964
|
+
};
|
|
1965
|
+
NoopComponent = __decorate([
|
|
1966
|
+
Component({
|
|
1967
|
+
selector: 'aup-noop',
|
|
1968
|
+
template: "",
|
|
1969
|
+
styles: [":host{display:block}"]
|
|
1970
|
+
}),
|
|
1971
|
+
__metadata("design:paramtypes", [])
|
|
1972
|
+
], NoopComponent);
|
|
1973
|
+
|
|
1974
|
+
let ScrollContainerComponent = class ScrollContainerComponent {
|
|
1975
|
+
constructor() { }
|
|
1487
1976
|
ngOnInit() {
|
|
1488
1977
|
}
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
isInitialised() {
|
|
1504
|
-
return !!this.identifier;
|
|
1505
|
-
}
|
|
1506
|
-
/**
|
|
1507
|
-
* Returns true if an activity is currently running.
|
|
1508
|
-
*/
|
|
1509
|
-
isActive() {
|
|
1510
|
-
return this.getActiveActivityCount() > 0;
|
|
1511
|
-
}
|
|
1512
|
-
registerDisposable(disposable) {
|
|
1513
|
-
return this.garbage.registerDisposable(disposable);
|
|
1514
|
-
}
|
|
1515
|
-
dispose() {
|
|
1516
|
-
// TODO: think about auto cancelling any outstanding activity on dispose.
|
|
1517
|
-
// See NavigationState.Navigating for a use-case.
|
|
1518
|
-
assert.isFalsey(this.isActive());
|
|
1519
|
-
this.garbage.dispose();
|
|
1520
|
-
}
|
|
1521
|
-
getActiveActivityRef() {
|
|
1522
|
-
if (!this.isActive()) {
|
|
1523
|
-
lang$1.illegalState('no activity in progress');
|
|
1524
|
-
}
|
|
1525
|
-
return ___default.findLast(this.activityTabs, tab => !tab.isComplete());
|
|
1526
|
-
}
|
|
1527
|
-
/**
|
|
1528
|
-
* Cancels the current activity and returns true the context is no longer active, false if
|
|
1529
|
-
* there is still another activity running.
|
|
1530
|
-
*/
|
|
1531
|
-
// @Trace()
|
|
1532
|
-
cancelActiveActivity() {
|
|
1533
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
1534
|
-
const activity = this.getActiveActivityRef();
|
|
1535
|
-
activity.cancel();
|
|
1536
|
-
if (this.isCleaningUp()) {
|
|
1537
|
-
return this.waitForInteractionContextCleanupToFinish();
|
|
1538
|
-
}
|
|
1539
|
-
else {
|
|
1540
|
-
return !this.isActive();
|
|
1541
|
-
}
|
|
1542
|
-
});
|
|
1543
|
-
}
|
|
1544
|
-
// TODO: this handling of multiple nested activities is only used by the activity component and is not a general case.
|
|
1545
|
-
// @Trace()
|
|
1546
|
-
createAndLaunchActivity(activityType, data, disableClose) {
|
|
1547
|
-
assert.isTruthy(this.isInitialised()); // make sure we've been initialised
|
|
1548
|
-
const activityRef = new ActivityRef(activityType, data, () => {
|
|
1549
|
-
const activeActivityCount = this.getActiveActivityCount() > 0;
|
|
1550
|
-
if (activeActivityCount) {
|
|
1551
|
-
this.triggerTabSynchronisation();
|
|
1552
|
-
}
|
|
1553
|
-
else {
|
|
1554
|
-
this.finishAndStartCleanup();
|
|
1555
|
-
}
|
|
1556
|
-
});
|
|
1557
|
-
this.launchActivity(activityRef);
|
|
1558
|
-
// if this is the first activity let the interaction service know.
|
|
1559
|
-
if (this.activityTabs.length === 1) {
|
|
1560
|
-
// console.log('Now active!!!');
|
|
1561
|
-
this.interactionServiceApi.notifyActive(this);
|
|
1562
|
-
}
|
|
1563
|
-
return activityRef.activityResult;
|
|
1564
|
-
}
|
|
1565
|
-
getActiveActivityCount() {
|
|
1566
|
-
return this.activityTabs.filter(ref => !ref.isComplete()).length;
|
|
1978
|
+
};
|
|
1979
|
+
ScrollContainerComponent = __decorate([
|
|
1980
|
+
Component({
|
|
1981
|
+
selector: 'aup-scroll-container',
|
|
1982
|
+
template: "<div class=\"container\">\n <ng-content></ng-content>\n</div>\n",
|
|
1983
|
+
styles: [":host{display:flex;flex-direction:column;min-height:0;align-items:stretch}.container{display:flex;flex-direction:column;flex:1;flex-basis:0;overflow-y:scroll;align-items:stretch}"]
|
|
1984
|
+
}),
|
|
1985
|
+
__metadata("design:paramtypes", [])
|
|
1986
|
+
], ScrollContainerComponent);
|
|
1987
|
+
|
|
1988
|
+
var SwitchCaseWhenDirective_1, SwitchCaseDefaultDirective_1;
|
|
1989
|
+
class SwitchCaseOption {
|
|
1990
|
+
constructor(templateRef) {
|
|
1991
|
+
this.templateRef = templateRef;
|
|
1567
1992
|
}
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
* for all the infrastructure (including route updates) to be completed.
|
|
1571
|
-
*/
|
|
1572
|
-
isCleaningUp() {
|
|
1573
|
-
return !!this._deferredCleanUp;
|
|
1993
|
+
get name() {
|
|
1994
|
+
return this.constructor.name;
|
|
1574
1995
|
}
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
});
|
|
1996
|
+
}
|
|
1997
|
+
let SwitchCaseWhenDirective = SwitchCaseWhenDirective_1 = class SwitchCaseWhenDirective extends SwitchCaseOption {
|
|
1998
|
+
constructor(templateRef) {
|
|
1999
|
+
super(templateRef);
|
|
2000
|
+
this.isDefault = false;
|
|
1581
2001
|
}
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
if (!this._deferredCleanUp) {
|
|
1585
|
-
const promise = this.interactionServiceApi.notifyFinished(this);
|
|
1586
|
-
this._deferredCleanUp = promise
|
|
1587
|
-
.finally(() => {
|
|
1588
|
-
this._deferredCleanUp = null;
|
|
1589
|
-
});
|
|
1590
|
-
}
|
|
2002
|
+
matches(value) {
|
|
2003
|
+
return this.aupSwitchCaseWhen === value;
|
|
1591
2004
|
}
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
2005
|
+
};
|
|
2006
|
+
SwitchCaseWhenDirective.ctorParameters = () => [
|
|
2007
|
+
{ type: TemplateRef }
|
|
2008
|
+
];
|
|
2009
|
+
__decorate([
|
|
2010
|
+
Input(),
|
|
2011
|
+
__metadata("design:type", Object)
|
|
2012
|
+
], SwitchCaseWhenDirective.prototype, "aupSwitchCaseWhen", void 0);
|
|
2013
|
+
SwitchCaseWhenDirective = SwitchCaseWhenDirective_1 = __decorate([
|
|
2014
|
+
Directive({
|
|
2015
|
+
selector: '[aupSwitchCaseWhen]',
|
|
2016
|
+
providers: [{ provide: SwitchCaseOption, useExisting: SwitchCaseWhenDirective_1 }]
|
|
2017
|
+
}),
|
|
2018
|
+
__metadata("design:paramtypes", [TemplateRef])
|
|
2019
|
+
], SwitchCaseWhenDirective);
|
|
2020
|
+
let SwitchCaseDefaultDirective = SwitchCaseDefaultDirective_1 = class SwitchCaseDefaultDirective extends SwitchCaseOption {
|
|
2021
|
+
constructor(templateRef) {
|
|
2022
|
+
super(templateRef);
|
|
2023
|
+
this.isDefault = true;
|
|
1597
2024
|
}
|
|
1598
|
-
|
|
1599
|
-
return
|
|
2025
|
+
matches(value) {
|
|
2026
|
+
return false;
|
|
1600
2027
|
}
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
2028
|
+
};
|
|
2029
|
+
SwitchCaseDefaultDirective.ctorParameters = () => [
|
|
2030
|
+
{ type: TemplateRef }
|
|
2031
|
+
];
|
|
2032
|
+
SwitchCaseDefaultDirective = SwitchCaseDefaultDirective_1 = __decorate([
|
|
2033
|
+
Directive({
|
|
2034
|
+
selector: '[aupSwitchCaseDefault]',
|
|
2035
|
+
providers: [{ provide: SwitchCaseOption, useExisting: SwitchCaseDefaultDirective_1 }]
|
|
2036
|
+
}),
|
|
2037
|
+
__metadata("design:paramtypes", [TemplateRef])
|
|
2038
|
+
], SwitchCaseDefaultDirective);
|
|
2039
|
+
let SwitchCaseComponent = class SwitchCaseComponent extends DisposableComponent {
|
|
2040
|
+
constructor(cdr) {
|
|
2041
|
+
super();
|
|
2042
|
+
this.cdr = cdr;
|
|
2043
|
+
this.selectedIndex = 0;
|
|
1606
2044
|
}
|
|
1607
|
-
|
|
1608
|
-
* Synchronises the selected tab index. Returns true if there was no change to the selected index.
|
|
1609
|
-
*/
|
|
1610
|
-
// @Trace()
|
|
1611
|
-
synchroniseSelectedTabIndex() {
|
|
1612
|
-
const previousIndex = this.tabs.selectedIndex;
|
|
1613
|
-
const newIndex = this.getActiveActivityCount() - 1;
|
|
1614
|
-
this.tabs.selectedIndex = newIndex;
|
|
1615
|
-
return previousIndex === newIndex;
|
|
2045
|
+
ngOnInit() {
|
|
1616
2046
|
}
|
|
1617
|
-
|
|
1618
|
-
|
|
2047
|
+
ngAfterContentInit() {
|
|
2048
|
+
const subscription = this.switchCaseOptions.changes.subscribe(change => this.updateSelection());
|
|
2049
|
+
this.onDispose(() => subscription.unsubscribe());
|
|
2050
|
+
const { chain, when } = Dsl.disposeWith(this);
|
|
2051
|
+
when.valueOf(this.switchModel).changes(() => this.updateSelection(), { initialValue: 'triggerChange' });
|
|
2052
|
+
this.cdr.detectChanges();
|
|
1619
2053
|
}
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
2054
|
+
updateSelection() {
|
|
2055
|
+
const matchingIndicies = [];
|
|
2056
|
+
this.switchCaseOptions.forEach((option, index) => {
|
|
2057
|
+
if (option.matches(this.switchModel.value)) {
|
|
2058
|
+
matchingIndicies.push(index);
|
|
2059
|
+
}
|
|
2060
|
+
});
|
|
2061
|
+
if (matchingIndicies.length > 1) {
|
|
2062
|
+
console.warn(`found ${matchingIndicies.length} matching case values, displaying the first.`);
|
|
2063
|
+
}
|
|
2064
|
+
if (matchingIndicies.length === 0) {
|
|
2065
|
+
this.switchCaseOptions.forEach((option, index) => {
|
|
2066
|
+
matchingIndicies.push(index);
|
|
2067
|
+
});
|
|
2068
|
+
if (matchingIndicies.length > 1) {
|
|
2069
|
+
console.warn(`found ${matchingIndicies.length} default case values, displaying the first.`);
|
|
2070
|
+
}
|
|
2071
|
+
}
|
|
2072
|
+
if (matchingIndicies.length > 0) {
|
|
2073
|
+
this.selectedIndex = matchingIndicies[0];
|
|
2074
|
+
}
|
|
2075
|
+
else {
|
|
2076
|
+
console.warn(`found no matching or default case values.`);
|
|
2077
|
+
this.selectedIndex = -1;
|
|
1624
2078
|
}
|
|
1625
|
-
this.syncSelectedTabTimeout = setTimeout(() => {
|
|
1626
|
-
this.syncSelectedTabTimeout = null;
|
|
1627
|
-
this.synchroniseSelectedTabIndex();
|
|
1628
|
-
}, 75);
|
|
1629
2079
|
}
|
|
1630
2080
|
};
|
|
2081
|
+
SwitchCaseComponent.ctorParameters = () => [
|
|
2082
|
+
{ type: ChangeDetectorRef }
|
|
2083
|
+
];
|
|
1631
2084
|
__decorate([
|
|
1632
|
-
Input(),
|
|
1633
|
-
__metadata("design:type",
|
|
1634
|
-
],
|
|
2085
|
+
Input(), TrackExternal(),
|
|
2086
|
+
__metadata("design:type", ValueModel)
|
|
2087
|
+
], SwitchCaseComponent.prototype, "switchModel", void 0);
|
|
1635
2088
|
__decorate([
|
|
1636
|
-
|
|
1637
|
-
__metadata("design:type",
|
|
1638
|
-
],
|
|
2089
|
+
Input(), StoreInValueModel('switchModel'),
|
|
2090
|
+
__metadata("design:type", Object)
|
|
2091
|
+
], SwitchCaseComponent.prototype, "switch", void 0);
|
|
1639
2092
|
__decorate([
|
|
1640
|
-
|
|
2093
|
+
ContentChildren(SwitchCaseOption),
|
|
1641
2094
|
__metadata("design:type", QueryList)
|
|
1642
|
-
],
|
|
1643
|
-
__decorate([
|
|
1644
|
-
Trace(),
|
|
1645
|
-
__metadata("design:type", Function),
|
|
1646
|
-
__metadata("design:paramtypes", []),
|
|
1647
|
-
__metadata("design:returntype", void 0)
|
|
1648
|
-
], ActivityContainerComponent.prototype, "dispose", null);
|
|
1649
|
-
ActivityContainerComponent = __decorate([
|
|
2095
|
+
], SwitchCaseComponent.prototype, "switchCaseOptions", void 0);
|
|
2096
|
+
SwitchCaseComponent = __decorate([
|
|
1650
2097
|
Component({
|
|
1651
|
-
selector: 'aup-
|
|
1652
|
-
template: "<mat-tab-group
|
|
1653
|
-
styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}"]
|
|
2098
|
+
selector: 'aup-switch-case',
|
|
2099
|
+
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",
|
|
2100
|
+
styles: [":host{display:flex;flex-direction:column;align-items:stretch}mat-tab-group{flex:1}"]
|
|
1654
2101
|
}),
|
|
1655
|
-
__metadata("design:paramtypes", [])
|
|
1656
|
-
],
|
|
2102
|
+
__metadata("design:paramtypes", [ChangeDetectorRef])
|
|
2103
|
+
], SwitchCaseComponent);
|
|
1657
2104
|
|
|
1658
|
-
class
|
|
1659
|
-
constructor(
|
|
1660
|
-
this.activeInteractionContextIds = activeInteractionContextIds;
|
|
1661
|
-
this.activeModalContext = activeModalContext;
|
|
1662
|
-
this.createExclusiveInteractionContext = createExclusiveInteractionContext;
|
|
2105
|
+
let DefaultCellRendererComponent = class DefaultCellRendererComponent {
|
|
2106
|
+
constructor() {
|
|
1663
2107
|
}
|
|
1664
|
-
|
|
1665
|
-
|
|
2108
|
+
set value(value) {
|
|
2109
|
+
this._value = value;
|
|
1666
2110
|
}
|
|
1667
|
-
|
|
1668
|
-
return
|
|
2111
|
+
get value() {
|
|
2112
|
+
return this._value;
|
|
1669
2113
|
}
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
2114
|
+
};
|
|
2115
|
+
__decorate([
|
|
2116
|
+
Input(),
|
|
2117
|
+
__metadata("design:type", Object),
|
|
2118
|
+
__metadata("design:paramtypes", [Object])
|
|
2119
|
+
], DefaultCellRendererComponent.prototype, "value", null);
|
|
2120
|
+
DefaultCellRendererComponent = __decorate([
|
|
2121
|
+
Component({
|
|
2122
|
+
selector: 'aup-default-cell-renderer',
|
|
2123
|
+
template: "{{value}}\n",
|
|
2124
|
+
styles: [""]
|
|
2125
|
+
}),
|
|
2126
|
+
__metadata("design:paramtypes", [])
|
|
2127
|
+
], DefaultCellRendererComponent);
|
|
2128
|
+
|
|
2129
|
+
let DefaultHeaderCellRendererComponent = class DefaultHeaderCellRendererComponent {
|
|
2130
|
+
constructor() {
|
|
1673
2131
|
}
|
|
1674
|
-
|
|
1675
|
-
|
|
2132
|
+
};
|
|
2133
|
+
__decorate([
|
|
2134
|
+
Input(),
|
|
2135
|
+
__metadata("design:type", ColumnModel)
|
|
2136
|
+
], DefaultHeaderCellRendererComponent.prototype, "columnModel", void 0);
|
|
2137
|
+
DefaultHeaderCellRendererComponent = __decorate([
|
|
2138
|
+
Component({
|
|
2139
|
+
selector: 'aup-default-header-renderer',
|
|
2140
|
+
template: "{{columnModel.getHeaderText()}}\n",
|
|
2141
|
+
styles: [""]
|
|
2142
|
+
}),
|
|
2143
|
+
__metadata("design:paramtypes", [])
|
|
2144
|
+
], DefaultHeaderCellRendererComponent);
|
|
2145
|
+
|
|
2146
|
+
var TableModel_1;
|
|
2147
|
+
// export type StringPropertiesOf<T> = { [K in keyof T]: T[K] extends string ? K : never }[keyof T];
|
|
2148
|
+
// export type NumberPropertiesOf<T> = { [K in keyof T]: T[K] extends number ? K : never }[keyof T];
|
|
2149
|
+
/**
|
|
2150
|
+
* Example:
|
|
2151
|
+
* @example
|
|
2152
|
+
* const model = TableModel.fromList(heroList, table => {
|
|
2153
|
+
* table.pluck("firstName");
|
|
2154
|
+
* table.pluck("lastName");
|
|
2155
|
+
* table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
|
|
2156
|
+
* });
|
|
2157
|
+
*
|
|
2158
|
+
* Editable tables
|
|
2159
|
+
* @example
|
|
2160
|
+
* const saveCommand = UnaryCommand.create((form: Form<Hero>) => {
|
|
2161
|
+
* if (form.validate()) {
|
|
2162
|
+
* // normal form save stuff
|
|
2163
|
+
* return true; // finish editing
|
|
2164
|
+
* }
|
|
2165
|
+
* return false; // continue editiing
|
|
2166
|
+
* }
|
|
2167
|
+
* const colorsNames: ListModel<string> = ...;
|
|
2168
|
+
* const model = TableModel.fromList(heroList, table => {
|
|
2169
|
+
* table.pluck("firstName").cellEditor(StringInputComponent); <-- interface CellEditor { valueModel: FormValueModel<string> | ValueModel<string>; }
|
|
2170
|
+
* table.pluck("lastName").cellEditor(StringInputComponent, {
|
|
2171
|
+
* validators: [Validator.present("We need a last name")]
|
|
2172
|
+
* });
|
|
2173
|
+
* table.pluck("age").cellEditor(NumberInputComponent);
|
|
2174
|
+
* table.pluck("favoriteColor").cellEditor(SelectInputComponent, {
|
|
2175
|
+
* initialiseComponent(component: SelectInputComponent) {
|
|
2176
|
+
* selectInput.optionsModel = colorsNames; // <- initialise our component
|
|
2177
|
+
* }
|
|
2178
|
+
* });
|
|
2179
|
+
* table.addEditControls(saveCommand); // <- required to enable editing
|
|
2180
|
+
* });
|
|
2181
|
+
*
|
|
2182
|
+
* Selection models
|
|
2183
|
+
* @example
|
|
2184
|
+
* const model = TableModel.fromList(heroList, table => {
|
|
2185
|
+
* table.addSelectionColumn(selectionModel); // <- can be single or multiple selection model
|
|
2186
|
+
* table.pluck("firstName");
|
|
2187
|
+
* table.pluck("lastName");
|
|
2188
|
+
* });
|
|
2189
|
+
*
|
|
2190
|
+
* Custom cell renderers and editors
|
|
2191
|
+
* @example
|
|
2192
|
+
* const model = TableModel.fromList(heroList, table => {
|
|
2193
|
+
* table.pluck("favoriteColor")
|
|
2194
|
+
* .cellHeaderRenderer(CellHeaderRendererComponent, (component, column) => {
|
|
2195
|
+
* // configure your component with what ever you need.
|
|
2196
|
+
* });
|
|
2197
|
+
* .cellRenderer(CellRendererComponent) // <-- interface CellEditor { value: string; }
|
|
2198
|
+
* .cellEditor(CellEditorComponent.); // <-- interface CellEditor { valueModel: FormValueModel<string> | ValueModel<string>; }
|
|
2199
|
+
* table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
|
|
2200
|
+
* });
|
|
2201
|
+
*
|
|
2202
|
+
* I18n
|
|
2203
|
+
* @example
|
|
2204
|
+
* [table.yml]
|
|
2205
|
+
* table:
|
|
2206
|
+
* columns(ColumnTextProperties[]):
|
|
2207
|
+
* firstName:
|
|
2208
|
+
* headerText: "First Name"
|
|
2209
|
+
* fullName:
|
|
2210
|
+
* headerText: "Full Name"
|
|
2211
|
+
*
|
|
2212
|
+
* const model = TableModel.fromList(heroList, table => {
|
|
2213
|
+
* table.pluck("favoriteColor").cellRenderer(...).cellEditor(...);
|
|
2214
|
+
* table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
|
|
2215
|
+
*
|
|
2216
|
+
* table.columnTextProperties(I18n.table.columns); // <- configures all columns
|
|
2217
|
+
* });
|
|
2218
|
+
*/
|
|
2219
|
+
let TableModel = TableModel_1 = class TableModel {
|
|
2220
|
+
constructor(sourceOfTruth) {
|
|
2221
|
+
this.sourceOfTruth = sourceOfTruth;
|
|
2222
|
+
this._garbage = new GarbageCollector();
|
|
2223
|
+
this._columns = new MutableListModel();
|
|
2224
|
+
this._editorSessions = new MutableListModel();
|
|
2225
|
+
this.identityOf = sourceOfTruth.identityOf;
|
|
2226
|
+
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this._garbage);
|
|
2227
|
+
this._columnsById = chain(this._columns).indexBy('columnId');
|
|
2228
|
+
this._rowsBeingEdited = new MutableListModel([], {
|
|
2229
|
+
identifiedWith: this.identityOf
|
|
2230
|
+
});
|
|
2231
|
+
this._editorSessionByRowId = chain(this._editorSessions).indexBy('rowId');
|
|
2232
|
+
this.editing = chain(this._editorSessions).count().isGreaterThan(0);
|
|
2233
|
+
this.dataSource = chain(this.sourceOfTruth).replaceAll(this.rowsBeingEdited);
|
|
1676
2234
|
}
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
2235
|
+
static fromList(sourceOfTruth, builder) {
|
|
2236
|
+
const model = new TableModel_1(sourceOfTruth);
|
|
2237
|
+
builder(model);
|
|
2238
|
+
return model;
|
|
1680
2239
|
}
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
return component.interactionContext.cancelActiveActivity();
|
|
2240
|
+
get rowsBeingEdited() {
|
|
2241
|
+
return this._rowsBeingEdited.readonly;
|
|
1684
2242
|
}
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1688
|
-
}
|
|
1689
|
-
|
|
1690
|
-
var InteractionService_1;
|
|
1691
|
-
let inplaceMonitorCount = 0;
|
|
1692
|
-
let InteractionService = InteractionService_1 = class InteractionService {
|
|
1693
|
-
constructor(modelInteractionContextFactory) {
|
|
1694
|
-
this.modelInteractionContextFactory = modelInteractionContextFactory;
|
|
1695
|
-
this.garbage = new GarbageCollector();
|
|
1696
|
-
// private readonly _activeModalContext = new MutableValueModel<InteractionContext>();
|
|
1697
|
-
// private readonly _activeInlineContext = new MutableValueModel<InteractionContext>();
|
|
1698
|
-
// private readonly _activeContext: ValueModelChain<InteractionContext>;
|
|
1699
|
-
this._navigationInProgress = new DelegatingValueModel().withDefault(false);
|
|
1700
|
-
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this.garbage);
|
|
1701
|
-
this.exclusiveInteractionRegistry = new InteractionService_1.ContextRegistry();
|
|
1702
|
-
this.modalInteractionRegistry = new InteractionService_1.ContextRegistry();
|
|
1703
|
-
this.inPlaceInteractionRegistry = new InteractionService_1.ContextRegistry();
|
|
1704
|
-
this.modalInteractionRegistry.disableWhen(valueOf.any(this.exclusiveInteractionRegistry.active, this.modalInteractionRegistry.active).areTruthy());
|
|
1705
|
-
this.inPlaceInteractionRegistry.disableWhen(valueOf.any(this.exclusiveInteractionRegistry.active, this.modalInteractionRegistry.active, this.inPlaceInteractionRegistry.active).areTruthy());
|
|
1706
|
-
this.active = valueOf.any(this.inPlaceInteractionRegistry.active, this.modalInteractionRegistry.active).areTruthy();
|
|
1707
|
-
// TODO: chain.concat(listOrValueModels) would be nice.
|
|
1708
|
-
this.activeInteractionContextIds = chain(this.inPlaceInteractionRegistry.interactionContextIds)
|
|
1709
|
-
.concat(this.modalInteractionRegistry.interactionContextIds);
|
|
1710
|
-
this.activeModalContext = chain(this.modalInteractionRegistry.interactionContexts).first();
|
|
1711
|
-
this.inModalInteraction = chain(this.activeModalContext).isNotNil();
|
|
2243
|
+
getTrackByFunction() {
|
|
2244
|
+
return (index, item) => {
|
|
2245
|
+
return this.identityOf ? this.identityOf(item) : index;
|
|
2246
|
+
};
|
|
1712
2247
|
}
|
|
1713
|
-
|
|
1714
|
-
return this.
|
|
2248
|
+
get columns() {
|
|
2249
|
+
return this._columns.readonly;
|
|
1715
2250
|
}
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
* @param disposable
|
|
1719
|
-
*/
|
|
1720
|
-
createModalInteractionContextFor(disposable) {
|
|
1721
|
-
return this.createModalInteractionContextDisposedWith(disposable);
|
|
2251
|
+
pluck(property) {
|
|
2252
|
+
return this.addColumn(new PropertyColumnModel(property, this));
|
|
1722
2253
|
}
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
* @param disposable
|
|
1726
|
-
*/
|
|
1727
|
-
createModalInteractionContextDisposedWith(disposable) {
|
|
1728
|
-
// TODO: look at making the registry the factory..
|
|
1729
|
-
return this.modelInteractionContextFactory.createInteractionContext('modal', new InteractionService_1.ApiAdapter(this.placeRouter, this.modalInteractionRegistry));
|
|
2254
|
+
addSelectionColumn(selectionModel) {
|
|
2255
|
+
return this.addColumn(new SelectionColumnModel('selection', this, selectionModel));
|
|
1730
2256
|
}
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
// Todo: allow multiple inplace interactions..
|
|
1735
|
-
interactionContext.initialise(`ip${++inplaceMonitorCount}`, new InteractionService_1.ApiAdapter(this.placeRouter, this.inPlaceInteractionRegistry));
|
|
2257
|
+
addEditControls(saveCommand) {
|
|
2258
|
+
this.saveCommand = saveCommand;
|
|
2259
|
+
return this.addColumn(new EditorControlColumnModel('editControls', saveCommand, this));
|
|
1736
2260
|
}
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
* activity until it is disposed. This is intended for use by the router for passing
|
|
1740
|
-
* to PlaceComponent.canDeactivate(interactionContext). This ensures components don't
|
|
1741
|
-
* try and interact in a way that we can't track and synchronise with the browser back
|
|
1742
|
-
* button.
|
|
1743
|
-
*/
|
|
1744
|
-
registerPlaceRouter(router) {
|
|
1745
|
-
assert$1.isFalsey(this.placeRouter);
|
|
1746
|
-
this.placeRouter = router;
|
|
1747
|
-
this._navigationInProgress.setDelegate(this.placeRouter.navigationInProgress);
|
|
1748
|
-
const self = this;
|
|
1749
|
-
return new InteractionServiceRoutingAdapter(this.activeInteractionContextIds, this.activeModalContext, () => {
|
|
1750
|
-
return self.modelInteractionContextFactory.createInteractionContext('exclusive', new InteractionService_1.ApiAdapter(this.placeRouter, this.exclusiveInteractionRegistry));
|
|
1751
|
-
});
|
|
2261
|
+
addCustomColumn(columnId, dataAccessor) {
|
|
2262
|
+
return this.addColumn(new CustomValueColumnModel(columnId, this, dataAccessor));
|
|
1752
2263
|
}
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
];
|
|
1757
|
-
InteractionService.ɵprov = ɵɵdefineInjectable({ factory: function InteractionService_Factory() { return new InteractionService(ɵɵinject(ModalInteractionContextFactory)); }, token: InteractionService, providedIn: "root" });
|
|
1758
|
-
InteractionService = InteractionService_1 = __decorate([
|
|
1759
|
-
Injectable({
|
|
1760
|
-
providedIn: 'root'
|
|
1761
|
-
}),
|
|
1762
|
-
__metadata("design:paramtypes", [ModalInteractionContextFactory])
|
|
1763
|
-
], InteractionService);
|
|
1764
|
-
(function (InteractionService) {
|
|
1765
|
-
/**
|
|
1766
|
-
* Provides a mechanism for the service to keep track of what the API adapters are doing to
|
|
1767
|
-
* ensure the rules are followed, i.e. modal or in-place interaction aren't started while
|
|
1768
|
-
* an exclusive routing interaction is active.
|
|
1769
|
-
*/
|
|
1770
|
-
class ContextRegistry extends GarbageCollector {
|
|
1771
|
-
constructor() {
|
|
1772
|
-
super();
|
|
1773
|
-
this._interactions = new MutableListModel();
|
|
1774
|
-
this._disabledDelegate = new DelegatingValueModel().withDefault(false);
|
|
1775
|
-
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
1776
|
-
this.active = chain(this._interactions).isNotEmpty();
|
|
1777
|
-
this.interactionContextIds = chain(this._interactions).pluck("identifier");
|
|
1778
|
-
}
|
|
1779
|
-
get interactionContexts() {
|
|
1780
|
-
return this._interactions.readonly;
|
|
1781
|
-
}
|
|
1782
|
-
start(context) {
|
|
1783
|
-
this._interactions.push(context);
|
|
2264
|
+
addColumn(column) {
|
|
2265
|
+
if (this._columnsById.get(column.columnId)) {
|
|
2266
|
+
lang.illegalState(`Column with id=${column.columnId} already exists`);
|
|
1784
2267
|
}
|
|
1785
|
-
|
|
1786
|
-
this.
|
|
1787
|
-
}
|
|
1788
|
-
isActive() {
|
|
1789
|
-
return this.active.value;
|
|
1790
|
-
}
|
|
1791
|
-
disableWhen(disabled) {
|
|
1792
|
-
this._disabledDelegate.setDelegate(disabled);
|
|
2268
|
+
else {
|
|
2269
|
+
this._columns.push(column);
|
|
1793
2270
|
}
|
|
2271
|
+
return column;
|
|
1794
2272
|
}
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
return
|
|
2273
|
+
columnTextProperties(columnTextProperties) {
|
|
2274
|
+
this._columnTextPropertiesLookup = columnTextProperties;
|
|
2275
|
+
}
|
|
2276
|
+
getColumnTextProperties(column) {
|
|
2277
|
+
const factory = this._columnTextPropertiesLookup[column.columnId];
|
|
2278
|
+
return factory ? factory() : undefined;
|
|
2279
|
+
}
|
|
2280
|
+
startEditSession(row) {
|
|
2281
|
+
const rowId = this.identityOf(row);
|
|
2282
|
+
if (this._rowsBeingEdited.query().indexOf(row) > -1) {
|
|
2283
|
+
return lang.illegalState(`Row with id=${rowId} already being edited`);
|
|
1806
2284
|
}
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
2285
|
+
else {
|
|
2286
|
+
const editSession = new TableModel_1.EditSession(rowId, row, this.saveCommand);
|
|
2287
|
+
const { when } = Dsl.disposeWith(editSession);
|
|
2288
|
+
when.valueOf(editSession.rowValueModel).changes((editedValue) => {
|
|
2289
|
+
this._rowsBeingEdited.replaceOrPush(editedValue);
|
|
2290
|
+
}, { initialValue: 'triggerChangeUnlessNil' });
|
|
2291
|
+
this._editorSessions.push(editSession);
|
|
2292
|
+
editSession.onDispose(() => {
|
|
2293
|
+
this._rowsBeingEdited.remove(editSession.rowValueModel.value);
|
|
2294
|
+
this._editorSessions.remove(editSession);
|
|
2295
|
+
});
|
|
2296
|
+
return editSession;
|
|
1810
2297
|
}
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
2298
|
+
}
|
|
2299
|
+
getEditSessionFor(row) {
|
|
2300
|
+
return this._editorSessionByRowId.get(this.identityOf(row));
|
|
2301
|
+
}
|
|
2302
|
+
cancelAllEditorSessions() {
|
|
2303
|
+
this._editorSessions.runInTransaction((draft) => {
|
|
2304
|
+
this._rowsBeingEdited.runInTransaction(() => {
|
|
2305
|
+
draft.value.forEach(session => session.dispose());
|
|
2306
|
+
});
|
|
2307
|
+
});
|
|
2308
|
+
}
|
|
2309
|
+
};
|
|
2310
|
+
TableModel.ctorParameters = () => [
|
|
2311
|
+
{ type: ListModel }
|
|
2312
|
+
];
|
|
2313
|
+
TableModel = TableModel_1 = __decorate([
|
|
2314
|
+
TrackExternal.Strategy(new TrackExternal.OneTimeBinding()),
|
|
2315
|
+
__metadata("design:paramtypes", [ListModel])
|
|
2316
|
+
], TableModel);
|
|
2317
|
+
(function (TableModel) {
|
|
2318
|
+
class EditSession extends GarbageCollector {
|
|
2319
|
+
constructor(rowId, row, saveCommand) {
|
|
2320
|
+
super();
|
|
2321
|
+
this.rowId = rowId;
|
|
2322
|
+
this.saveCommand = saveCommand;
|
|
2323
|
+
this._editorValue = new MutableValueModel();
|
|
2324
|
+
this.rowValueModel = this._editorValue.readonly;
|
|
2325
|
+
this.form = new Form();
|
|
2326
|
+
this.form.load(row);
|
|
2327
|
+
this._editorValue.value = row;
|
|
2328
|
+
this.form.onEdit(() => {
|
|
2329
|
+
this._editorValue.value = produce(this._editorValue.value, draft => {
|
|
2330
|
+
this.form.writeDirtyStateTo(draft);
|
|
2331
|
+
});
|
|
2332
|
+
});
|
|
1822
2333
|
}
|
|
1823
2334
|
}
|
|
1824
|
-
|
|
1825
|
-
})(
|
|
2335
|
+
TableModel.EditSession = EditSession;
|
|
2336
|
+
})(TableModel || (TableModel = {}));
|
|
1826
2337
|
|
|
1827
|
-
let
|
|
1828
|
-
constructor(
|
|
2338
|
+
let EditRowControls = class EditRowControls extends DisposableComponent {
|
|
2339
|
+
constructor() {
|
|
1829
2340
|
super();
|
|
1830
|
-
this.
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
2341
|
+
this.saveCommand = Command.create(() => {
|
|
2342
|
+
this.editSession.saveCommand.execute(this.editSession.form)
|
|
2343
|
+
.then((finished) => {
|
|
2344
|
+
if (finished) {
|
|
2345
|
+
this.editSession.dispose();
|
|
2346
|
+
}
|
|
2347
|
+
});
|
|
2348
|
+
});
|
|
2349
|
+
this.cancelCommand = Command.create(() => {
|
|
2350
|
+
this.editSession.dispose();
|
|
2351
|
+
});
|
|
1837
2352
|
}
|
|
1838
|
-
|
|
2353
|
+
ngOnInit() {
|
|
2354
|
+
}
|
|
2355
|
+
get form() {
|
|
1839
2356
|
var _a;
|
|
1840
|
-
return
|
|
2357
|
+
return (_a = this.editSession) === null || _a === void 0 ? void 0 : _a.form;
|
|
1841
2358
|
}
|
|
1842
|
-
|
|
1843
|
-
|
|
2359
|
+
};
|
|
2360
|
+
__decorate([
|
|
2361
|
+
Input(),
|
|
2362
|
+
__metadata("design:type", Object)
|
|
2363
|
+
], EditRowControls.prototype, "row", void 0);
|
|
2364
|
+
__decorate([
|
|
2365
|
+
Input(),
|
|
2366
|
+
TrackExternal(),
|
|
2367
|
+
__metadata("design:type", Command)
|
|
2368
|
+
], EditRowControls.prototype, "editRowCommand", void 0);
|
|
2369
|
+
__decorate([
|
|
2370
|
+
Input(),
|
|
2371
|
+
__metadata("design:type", TableModel.EditSession)
|
|
2372
|
+
], EditRowControls.prototype, "editSession", void 0);
|
|
2373
|
+
EditRowControls = __decorate([
|
|
2374
|
+
Component({
|
|
2375
|
+
selector: 'aup-row-editor-controls',
|
|
2376
|
+
template: "<button *ngIf=\"!editSession\" mat-icon-button [pectinCommand]=\"editRowCommand\" class=\"edit-button\"><mat-icon>edit</mat-icon></button>\n<button *ngIf=\"editSession\" mat-icon-button [pectinCommand]=\"saveCommand\"><mat-icon>done</mat-icon></button>\n<button *ngIf=\"editSession\" mat-icon-button [pectinCommand]=\"cancelCommand\"><mat-icon>clear</mat-icon></button>\n",
|
|
2377
|
+
styles: [":host{display:block;width:80px}.edit-button{visibility:hidden}:host-context(tr:hover) .edit-button{visibility:visible}"]
|
|
2378
|
+
}),
|
|
2379
|
+
__metadata("design:paramtypes", [])
|
|
2380
|
+
], EditRowControls);
|
|
2381
|
+
|
|
2382
|
+
let SelectCellRendererComponent = class SelectCellRendererComponent extends DisposableComponent {
|
|
2383
|
+
constructor() {
|
|
2384
|
+
super();
|
|
2385
|
+
this.selectCommand = Command.create(() => {
|
|
2386
|
+
this.selectionModel.selectCommand.execute(this.row);
|
|
2387
|
+
});
|
|
1844
2388
|
}
|
|
1845
|
-
|
|
1846
|
-
this.
|
|
2389
|
+
set row(value) {
|
|
2390
|
+
this._row = value;
|
|
1847
2391
|
}
|
|
1848
|
-
get
|
|
1849
|
-
return this.
|
|
2392
|
+
get row() {
|
|
2393
|
+
return this._row;
|
|
1850
2394
|
}
|
|
1851
|
-
|
|
1852
|
-
return this.
|
|
2395
|
+
isSelected() {
|
|
2396
|
+
return this.selectionModel.isSelected(this.row);
|
|
1853
2397
|
}
|
|
1854
|
-
|
|
1855
|
-
|
|
2398
|
+
};
|
|
2399
|
+
__decorate([
|
|
2400
|
+
Input(),
|
|
2401
|
+
__metadata("design:type", Object),
|
|
2402
|
+
__metadata("design:paramtypes", [Object])
|
|
2403
|
+
], SelectCellRendererComponent.prototype, "row", null);
|
|
2404
|
+
__decorate([
|
|
2405
|
+
Input(),
|
|
2406
|
+
__metadata("design:type", Object)
|
|
2407
|
+
], SelectCellRendererComponent.prototype, "selectionModel", void 0);
|
|
2408
|
+
SelectCellRendererComponent = __decorate([
|
|
2409
|
+
Component({
|
|
2410
|
+
selector: 'aup-select-cell-renderer',
|
|
2411
|
+
template: "<mat-checkbox [pectinCommand]=\"selectCommand\" [checked]=\"isSelected()\"></mat-checkbox>\n",
|
|
2412
|
+
styles: [""]
|
|
2413
|
+
}),
|
|
2414
|
+
__metadata("design:paramtypes", [])
|
|
2415
|
+
], SelectCellRendererComponent);
|
|
2416
|
+
|
|
2417
|
+
let SelectHeaderCellRendererComponent = class SelectHeaderCellRendererComponent extends DisposableComponent {
|
|
2418
|
+
constructor() {
|
|
2419
|
+
super();
|
|
2420
|
+
this.selectCommand = Command.create(() => {
|
|
2421
|
+
this.selectionModel.toggleAllCommand.execute();
|
|
2422
|
+
});
|
|
1856
2423
|
}
|
|
1857
|
-
|
|
1858
|
-
return this.
|
|
2424
|
+
isSelected() {
|
|
2425
|
+
return this.selectionModel.allSelected.value;
|
|
1859
2426
|
}
|
|
1860
|
-
|
|
1861
|
-
return this.
|
|
2427
|
+
isIntermediate() {
|
|
2428
|
+
return this.selectionModel.someSelected.value;
|
|
1862
2429
|
}
|
|
1863
|
-
|
|
1864
|
-
|
|
2430
|
+
};
|
|
2431
|
+
__decorate([
|
|
2432
|
+
Input(),
|
|
2433
|
+
__metadata("design:type", MultipleSelectionModel)
|
|
2434
|
+
], SelectHeaderCellRendererComponent.prototype, "selectionModel", void 0);
|
|
2435
|
+
SelectHeaderCellRendererComponent = __decorate([
|
|
2436
|
+
Component({
|
|
2437
|
+
selector: 'aup-select-header-cell-renderer',
|
|
2438
|
+
template: "<mat-checkbox [pectinCommand]=\"selectCommand\" [checked]=\"isSelected()\" [indeterminate]=\"this.isIntermediate()\"></mat-checkbox>\n",
|
|
2439
|
+
styles: [""]
|
|
2440
|
+
}),
|
|
2441
|
+
__metadata("design:paramtypes", [])
|
|
2442
|
+
], SelectHeaderCellRendererComponent);
|
|
2443
|
+
|
|
2444
|
+
class ColumnModel {
|
|
2445
|
+
constructor(columnId, defaults) {
|
|
2446
|
+
this.columnId = columnId;
|
|
2447
|
+
this.defaults = defaults;
|
|
2448
|
+
this.cellHeaderRenderer(DefaultHeaderCellRendererComponent, (component, column) => {
|
|
2449
|
+
component.columnModel = column;
|
|
2450
|
+
});
|
|
1865
2451
|
}
|
|
1866
|
-
|
|
1867
|
-
|
|
2452
|
+
getHeaderText() {
|
|
2453
|
+
var _a;
|
|
2454
|
+
return ((_a = this.getColumnTextProperties()) === null || _a === void 0 ? void 0 : _a.headerText()) || this.getDefaultHeaderText();
|
|
1868
2455
|
}
|
|
1869
|
-
|
|
1870
|
-
return this.
|
|
2456
|
+
getDefaultHeaderText() {
|
|
2457
|
+
return this.columnId;
|
|
2458
|
+
}
|
|
2459
|
+
getColumnTextProperties() {
|
|
2460
|
+
return this._columnTextProperties || this.defaults.getColumnTextProperties(this);
|
|
2461
|
+
}
|
|
2462
|
+
textProperties(columnTextProperties) {
|
|
2463
|
+
this._columnTextProperties = columnTextProperties;
|
|
2464
|
+
return this;
|
|
2465
|
+
}
|
|
2466
|
+
setCellRenderer(cellRenderer, initialiser) {
|
|
2467
|
+
this._cellRendererConfig = {
|
|
2468
|
+
portal: new ComponentPortal(cellRenderer),
|
|
2469
|
+
pushState: initialiser
|
|
2470
|
+
};
|
|
2471
|
+
}
|
|
2472
|
+
cellHeaderRenderer(cellRenderer, initialiser) {
|
|
2473
|
+
this._columnHeaderConfig = {
|
|
2474
|
+
portal: new ComponentPortal(cellRenderer),
|
|
2475
|
+
initialiseComponent: initialiser
|
|
2476
|
+
};
|
|
2477
|
+
}
|
|
2478
|
+
setCellEditor(cellEditor) {
|
|
2479
|
+
this._cellEditorConfig = cellEditor;
|
|
2480
|
+
}
|
|
2481
|
+
get cellRendererPortal() {
|
|
2482
|
+
return this._cellRendererConfig.portal;
|
|
2483
|
+
}
|
|
2484
|
+
get columnHeaderCellRendererPortal() {
|
|
2485
|
+
return this._columnHeaderConfig.portal;
|
|
2486
|
+
}
|
|
2487
|
+
get cellEditorPortal() {
|
|
2488
|
+
var _a;
|
|
2489
|
+
return (_a = this._cellEditorConfig) === null || _a === void 0 ? void 0 : _a.portal;
|
|
2490
|
+
}
|
|
2491
|
+
hasEditor() {
|
|
2492
|
+
return !!this._cellEditorConfig;
|
|
2493
|
+
}
|
|
2494
|
+
updateCellRenderer(component, row, editRowCommand, editSession) {
|
|
2495
|
+
this._cellRendererConfig.pushState(component, row, editRowCommand, editSession);
|
|
2496
|
+
}
|
|
2497
|
+
initialiseHeader(component) {
|
|
2498
|
+
this._columnHeaderConfig.initialiseComponent(component, this);
|
|
2499
|
+
}
|
|
2500
|
+
initialiseEditor(component, editSession) {
|
|
2501
|
+
this._cellEditorConfig.initialiseComponent(component, editSession);
|
|
2502
|
+
}
|
|
2503
|
+
}
|
|
2504
|
+
__decorate([
|
|
2505
|
+
Memoize(),
|
|
2506
|
+
__metadata("design:type", Function),
|
|
2507
|
+
__metadata("design:paramtypes", []),
|
|
2508
|
+
__metadata("design:returntype", String)
|
|
2509
|
+
], ColumnModel.prototype, "getHeaderText", null);
|
|
2510
|
+
__decorate([
|
|
2511
|
+
Memoize(),
|
|
2512
|
+
__metadata("design:type", Function),
|
|
2513
|
+
__metadata("design:paramtypes", []),
|
|
2514
|
+
__metadata("design:returntype", Object)
|
|
2515
|
+
], ColumnModel.prototype, "getColumnTextProperties", null);
|
|
2516
|
+
class PropertyColumnModel extends ColumnModel {
|
|
2517
|
+
constructor(property, defaults) {
|
|
2518
|
+
super(property.toString(), defaults);
|
|
2519
|
+
this.property = property;
|
|
2520
|
+
this.cellRenderer(DefaultCellRendererComponent);
|
|
2521
|
+
}
|
|
2522
|
+
cellRenderer(componentType) {
|
|
2523
|
+
this.setCellRenderer(componentType, (component, row) => {
|
|
2524
|
+
component.value = row[this.property];
|
|
2525
|
+
});
|
|
2526
|
+
}
|
|
2527
|
+
cellEditor(editor, options) {
|
|
2528
|
+
this.setCellEditor({
|
|
2529
|
+
portal: new ComponentPortal(editor),
|
|
2530
|
+
initialiseComponent: (component, editSession) => {
|
|
2531
|
+
const formValueModel = editSession.form.pluck(this.property);
|
|
2532
|
+
if (options === null || options === void 0 ? void 0 : options.validators) {
|
|
2533
|
+
formValueModel.validateUsing(options.validators);
|
|
2534
|
+
}
|
|
2535
|
+
component.valueModel = formValueModel;
|
|
2536
|
+
if (options === null || options === void 0 ? void 0 : options.initialiseComponent) {
|
|
2537
|
+
options.initialiseComponent(component);
|
|
2538
|
+
}
|
|
2539
|
+
}
|
|
2540
|
+
});
|
|
2541
|
+
return this;
|
|
2542
|
+
}
|
|
2543
|
+
}
|
|
2544
|
+
class CustomValueColumnModel extends ColumnModel {
|
|
2545
|
+
constructor(columnId, defaults, getValue) {
|
|
2546
|
+
super(columnId, defaults);
|
|
2547
|
+
this.getValue = getValue;
|
|
2548
|
+
this.cellRenderer(DefaultCellRendererComponent);
|
|
2549
|
+
}
|
|
2550
|
+
cellRenderer(componentType) {
|
|
2551
|
+
this.setCellRenderer(componentType, (component, row) => {
|
|
2552
|
+
component.value = this.getValue(row);
|
|
2553
|
+
});
|
|
2554
|
+
}
|
|
2555
|
+
}
|
|
2556
|
+
class EditorControlColumnModel extends ColumnModel {
|
|
2557
|
+
constructor(columnId, saveCommand, defaults) {
|
|
2558
|
+
super(columnId, defaults);
|
|
2559
|
+
this.cellRenderer(EditRowControls);
|
|
2560
|
+
}
|
|
2561
|
+
cellRenderer(componentType) {
|
|
2562
|
+
this.setCellRenderer(componentType, (component, row, editRowCommand, editSession) => {
|
|
2563
|
+
component.row = row;
|
|
2564
|
+
component.editSession = editSession;
|
|
2565
|
+
component.editRowCommand = editRowCommand;
|
|
2566
|
+
});
|
|
2567
|
+
}
|
|
2568
|
+
getDefaultHeaderText() {
|
|
2569
|
+
return '';
|
|
2570
|
+
}
|
|
2571
|
+
}
|
|
2572
|
+
class CustomTemplateColumnModel extends ColumnModel {
|
|
2573
|
+
constructor(columnId, defaults, component) {
|
|
2574
|
+
super(columnId, defaults);
|
|
2575
|
+
}
|
|
2576
|
+
}
|
|
2577
|
+
class SelectionColumnModel extends ColumnModel {
|
|
2578
|
+
constructor(columnId, defaults, selectionModel) {
|
|
2579
|
+
super(columnId, defaults);
|
|
2580
|
+
if (selectionModel instanceof MultipleSelectionModel) {
|
|
2581
|
+
this.cellHeaderRenderer(SelectHeaderCellRendererComponent, (component) => {
|
|
2582
|
+
component.selectionModel = selectionModel;
|
|
2583
|
+
});
|
|
2584
|
+
}
|
|
2585
|
+
this.setCellRenderer(SelectCellRendererComponent, (component, row, editRowCommand, editSession) => {
|
|
2586
|
+
component.row = row;
|
|
2587
|
+
component.selectionModel = selectionModel;
|
|
2588
|
+
});
|
|
2589
|
+
}
|
|
2590
|
+
getDefaultHeaderText() {
|
|
2591
|
+
return '';
|
|
2592
|
+
}
|
|
2593
|
+
}
|
|
2594
|
+
|
|
2595
|
+
/**
|
|
2596
|
+
* Create your model:
|
|
2597
|
+
* @example
|
|
2598
|
+
* this.heroTableModel = TableModel.fromList(heroList, table => {
|
|
2599
|
+
* table.pluck("firstName");
|
|
2600
|
+
* table.pluck("lastName");
|
|
2601
|
+
* table.addCustomColumn("fullName", hero => `${hero.firstName} ${hero.lastName}`);
|
|
2602
|
+
* });
|
|
2603
|
+
*
|
|
2604
|
+
* Create your table
|
|
2605
|
+
* @example
|
|
2606
|
+
* <aup-table [tableModel]="heroTableModel"></aup-table>
|
|
2607
|
+
*
|
|
2608
|
+
* Styling
|
|
2609
|
+
* @example
|
|
2610
|
+
* aup-table {
|
|
2611
|
+
* --column-gap: 10px; // defaults to 24px
|
|
2612
|
+
* aup-table-cell-renderer {
|
|
2613
|
+
* &:first-column {
|
|
2614
|
+
* // do stuff
|
|
2615
|
+
* }
|
|
2616
|
+
* &:last-column {
|
|
2617
|
+
* // do stuff
|
|
2618
|
+
* }
|
|
2619
|
+
* }
|
|
2620
|
+
* }
|
|
2621
|
+
*/
|
|
2622
|
+
let TableComponent = class TableComponent extends DisposableComponent {
|
|
2623
|
+
constructor() {
|
|
2624
|
+
super();
|
|
2625
|
+
}
|
|
2626
|
+
ngOnInit() {
|
|
2627
|
+
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
2628
|
+
this.columns = chain(this.tableModel.columns);
|
|
2629
|
+
this.columnIds = chain(this.columns).pluck('columnId');
|
|
2630
|
+
}
|
|
2631
|
+
isEditing(row) {
|
|
2632
|
+
return !!this.tableModel.getEditSessionFor(row);
|
|
1871
2633
|
}
|
|
1872
2634
|
};
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
2635
|
+
__decorate([
|
|
2636
|
+
Input(),
|
|
2637
|
+
TrackExternal(),
|
|
2638
|
+
__metadata("design:type", TableModel)
|
|
2639
|
+
], TableComponent.prototype, "tableModel", void 0);
|
|
2640
|
+
TableComponent = __decorate([
|
|
2641
|
+
Component({
|
|
2642
|
+
selector: 'aup-table',
|
|
2643
|
+
template: "<table mat-table [dataSource]=\"tableModel.dataSource.value\" [trackBy]=\"tableModel.getTrackByFunction()\">\n\n <ng-container *ngFor=\"let column of columns.value; index as index; first as first; last as last\" matColumnDef=\"{{column.columnId}}\">\n <th mat-header-cell *matHeaderCellDef>\n <aup-table-header-cell-renderer [column]=\"column\"\n [attr.column-index]=\"index\"\n [class.first-column]=\"first\"\n [class.last-column]=\"last\"\n ></aup-table-header-cell-renderer>\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <aup-table-cell-renderer [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"tableModel\"\n [editSession]=\"tableModel.getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [class.first-column]=\"first\"\n [class.last-column]=\"last\"\n ></aup-table-cell-renderer>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"columnIds.value\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: columnIds.value;\"></tr>\n\n</table>\n",
|
|
2644
|
+
styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{flex:1}"]
|
|
2645
|
+
}),
|
|
2646
|
+
__metadata("design:paramtypes", [])
|
|
2647
|
+
], TableComponent);
|
|
2648
|
+
|
|
2649
|
+
let ColumnTemplateDirective = class ColumnTemplateDirective {
|
|
2650
|
+
constructor(host, templateRef, viewContainer) {
|
|
2651
|
+
this.templateRef = templateRef;
|
|
2652
|
+
this.viewContainer = viewContainer;
|
|
2653
|
+
}
|
|
2654
|
+
};
|
|
2655
|
+
ColumnTemplateDirective.ctorParameters = () => [
|
|
2656
|
+
{ type: TableComponent },
|
|
2657
|
+
{ type: TemplateRef },
|
|
2658
|
+
{ type: ViewContainerRef }
|
|
1876
2659
|
];
|
|
2660
|
+
ColumnTemplateDirective = __decorate([
|
|
2661
|
+
Directive({
|
|
2662
|
+
selector: '[aupColumnTemplate]'
|
|
2663
|
+
}),
|
|
2664
|
+
__metadata("design:paramtypes", [TableComponent,
|
|
2665
|
+
TemplateRef,
|
|
2666
|
+
ViewContainerRef])
|
|
2667
|
+
], ColumnTemplateDirective);
|
|
2668
|
+
|
|
2669
|
+
let TableCellRendererComponent = class TableCellRendererComponent {
|
|
2670
|
+
constructor() {
|
|
2671
|
+
this.defaultClassNames = "aup-header-cell-renderer";
|
|
2672
|
+
this.editRowCommand = Command.create(() => {
|
|
2673
|
+
this.tableModel.startEditSession(this.row);
|
|
2674
|
+
});
|
|
2675
|
+
}
|
|
2676
|
+
initialiseRenderer(instance) {
|
|
2677
|
+
if (this.renderer !== instance) {
|
|
2678
|
+
this.renderer = instance;
|
|
2679
|
+
this.column.updateCellRenderer(this.renderer, this.row, this.editRowCommand, this.editSession);
|
|
2680
|
+
}
|
|
2681
|
+
}
|
|
2682
|
+
initialiseEditor(instance) {
|
|
2683
|
+
if (this.editor !== instance) {
|
|
2684
|
+
this.editor = instance;
|
|
2685
|
+
this.column.initialiseEditor(this.editor, this.editSession);
|
|
2686
|
+
}
|
|
2687
|
+
}
|
|
2688
|
+
ngOnChanges(changes) {
|
|
2689
|
+
if (this.renderer) {
|
|
2690
|
+
this.column.updateCellRenderer(this.renderer, this.row, this.editRowCommand, this.editSession);
|
|
2691
|
+
this.renderer.editSession = this.editSession;
|
|
2692
|
+
}
|
|
2693
|
+
}
|
|
2694
|
+
hasActiveEditor() {
|
|
2695
|
+
return this.editSession && this.column.hasEditor();
|
|
2696
|
+
}
|
|
2697
|
+
};
|
|
1877
2698
|
__decorate([
|
|
1878
|
-
|
|
1879
|
-
__metadata("design:type",
|
|
1880
|
-
],
|
|
2699
|
+
Input(),
|
|
2700
|
+
__metadata("design:type", Object)
|
|
2701
|
+
], TableCellRendererComponent.prototype, "row", void 0);
|
|
2702
|
+
__decorate([
|
|
2703
|
+
Input(),
|
|
2704
|
+
__metadata("design:type", ColumnModel)
|
|
2705
|
+
], TableCellRendererComponent.prototype, "column", void 0);
|
|
2706
|
+
__decorate([
|
|
2707
|
+
Input(),
|
|
2708
|
+
__metadata("design:type", TableModel.EditSession)
|
|
2709
|
+
], TableCellRendererComponent.prototype, "editSession", void 0);
|
|
1881
2710
|
__decorate([
|
|
1882
2711
|
Input(),
|
|
2712
|
+
__metadata("design:type", TableModel)
|
|
2713
|
+
], TableCellRendererComponent.prototype, "tableModel", void 0);
|
|
2714
|
+
__decorate([
|
|
2715
|
+
HostBinding('class'),
|
|
1883
2716
|
__metadata("design:type", Object)
|
|
1884
|
-
],
|
|
1885
|
-
|
|
2717
|
+
], TableCellRendererComponent.prototype, "defaultClassNames", void 0);
|
|
2718
|
+
TableCellRendererComponent = __decorate([
|
|
1886
2719
|
Component({
|
|
1887
|
-
selector: 'aup-
|
|
1888
|
-
template: "<
|
|
1889
|
-
styles: [":host{display:flex;flex-direction:column
|
|
2720
|
+
selector: 'aup-table-cell-renderer',
|
|
2721
|
+
template: "<ng-container *ngIf=\"!hasActiveEditor()\" [cdkPortalOutlet]=\"column.cellRendererPortal\" (attached)=\"initialiseRenderer($event.instance)\"></ng-container>\n<ng-container *ngIf=\"hasActiveEditor()\" [cdkPortalOutlet]=\"column.cellEditorPortal\" (attached)=\"initialiseEditor($event.instance)\"></ng-container>\n",
|
|
2722
|
+
styles: [":host{display:flex;flex-direction:column;align-items:stretch}"]
|
|
1890
2723
|
}),
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
], InPlaceInteractionContextComponent);
|
|
2724
|
+
__metadata("design:paramtypes", [])
|
|
2725
|
+
], TableCellRendererComponent);
|
|
1894
2726
|
|
|
1895
|
-
|
|
1896
|
-
constructor(
|
|
1897
|
-
|
|
1898
|
-
this.identifier = identifier;
|
|
1899
|
-
this.api = api;
|
|
1900
|
-
this.dialogService = dialogService;
|
|
1901
|
-
this.config = config;
|
|
1902
|
-
this.garbage = new GarbageCollector();
|
|
1903
|
-
assert$1.notNil(dialogService);
|
|
2727
|
+
let TableHeaderCellRendererComponent = class TableHeaderCellRendererComponent {
|
|
2728
|
+
constructor() {
|
|
2729
|
+
this.defaultClassNames = "aup-header-cell-renderer";
|
|
1904
2730
|
}
|
|
1905
|
-
|
|
1906
|
-
|
|
2731
|
+
initialiseHeader(instance) {
|
|
2732
|
+
if (this.renderer !== instance) {
|
|
2733
|
+
this.renderer = instance;
|
|
2734
|
+
this.column.initialiseHeader(this.renderer);
|
|
2735
|
+
}
|
|
2736
|
+
}
|
|
2737
|
+
};
|
|
2738
|
+
__decorate([
|
|
2739
|
+
Input(),
|
|
2740
|
+
__metadata("design:type", ColumnModel)
|
|
2741
|
+
], TableHeaderCellRendererComponent.prototype, "column", void 0);
|
|
2742
|
+
__decorate([
|
|
2743
|
+
HostBinding('class'),
|
|
2744
|
+
__metadata("design:type", Object)
|
|
2745
|
+
], TableHeaderCellRendererComponent.prototype, "defaultClassNames", void 0);
|
|
2746
|
+
TableHeaderCellRendererComponent = __decorate([
|
|
2747
|
+
Component({
|
|
2748
|
+
selector: 'aup-table-header-cell-renderer',
|
|
2749
|
+
template: "<ng-container [cdkPortalOutlet]=\"column.columnHeaderCellRendererPortal\" (attached)=\"initialiseHeader($event.instance)\"></ng-container>\n",
|
|
2750
|
+
styles: [":host{display:flex;flex-direction:column;align-items:stretch}"]
|
|
2751
|
+
}),
|
|
2752
|
+
__metadata("design:paramtypes", [])
|
|
2753
|
+
], TableHeaderCellRendererComponent);
|
|
2754
|
+
|
|
2755
|
+
let VerticalFocusContainerComponent = class VerticalFocusContainerComponent extends FocusContainerComponent {
|
|
2756
|
+
constructor(focusManager) {
|
|
2757
|
+
super(focusManager);
|
|
2758
|
+
this.focusManager = focusManager;
|
|
1907
2759
|
}
|
|
1908
|
-
|
|
1909
|
-
if (this.
|
|
1910
|
-
|
|
2760
|
+
arrowLeft(event) {
|
|
2761
|
+
if (this.leftArrowCommand.enabled.value) {
|
|
2762
|
+
event.preventDefault();
|
|
2763
|
+
event.stopPropagation();
|
|
2764
|
+
this.leftArrowCommand.execute();
|
|
1911
2765
|
}
|
|
1912
|
-
this.garbage.dispose();
|
|
1913
|
-
}
|
|
1914
|
-
registerDisposable(disposable) {
|
|
1915
|
-
return this.garbage.registerDisposable(disposable);
|
|
1916
2766
|
}
|
|
1917
|
-
|
|
1918
|
-
|
|
2767
|
+
arrowRight(event) {
|
|
2768
|
+
if (this.rightArrowCommand.enabled.value) {
|
|
2769
|
+
event.preventDefault();
|
|
2770
|
+
event.stopPropagation();
|
|
2771
|
+
this.rightArrowCommand.execute();
|
|
2772
|
+
}
|
|
1919
2773
|
}
|
|
1920
|
-
|
|
1921
|
-
|
|
1922
|
-
|
|
1923
|
-
|
|
1924
|
-
panelClass: 'dialog-interaction-context'
|
|
1925
|
-
});
|
|
1926
|
-
const self = this;
|
|
1927
|
-
const matDialogRef = this.dialogService.open(ActivityContainerComponent, config);
|
|
1928
|
-
const activityContainer = this.activityContainer = matDialogRef.componentInstance;
|
|
1929
|
-
this.activityContainer.initialise(this.identifier, this.api);
|
|
1930
|
-
const activityResult = this.activityContainer.startActivity(activityType, data);
|
|
1931
|
-
activityResult.finally(() => matDialogRef.close());
|
|
1932
|
-
// we need to check if our onDone/onCancel methods above we called or if we were
|
|
1933
|
-
// closed by the user clicking the backdrop. If the later then we need to cancel our
|
|
1934
|
-
// activity.
|
|
1935
|
-
matDialogRef.afterClosed().subscribe(promiseAlreadyFinished => {
|
|
1936
|
-
if (activityContainer.isActive()) {
|
|
1937
|
-
activityContainer.cancelActiveActivity();
|
|
1938
|
-
}
|
|
1939
|
-
this.activityContainer = null;
|
|
1940
|
-
});
|
|
1941
|
-
matDialogRef.updateSize();
|
|
1942
|
-
matDialogRef.afterOpened().subscribe(promiseAlreadyFinished => {
|
|
1943
|
-
matDialogRef.updateSize();
|
|
1944
|
-
});
|
|
1945
|
-
return activityResult;
|
|
2774
|
+
arrowDown(event) {
|
|
2775
|
+
event.preventDefault();
|
|
2776
|
+
event.stopPropagation();
|
|
2777
|
+
this.focusManager.focusNext();
|
|
1946
2778
|
}
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
constructor(dialogService, dialogServiceDefaults, matDialogDefaultConfig) {
|
|
1952
|
-
super();
|
|
1953
|
-
this.dialogService = dialogService;
|
|
1954
|
-
this.dialogServiceDefaults = dialogServiceDefaults;
|
|
1955
|
-
this.matDialogDefaultConfig = matDialogDefaultConfig;
|
|
1956
|
-
assert$1.notNil(dialogService);
|
|
2779
|
+
arrowUp(event) {
|
|
2780
|
+
event.preventDefault();
|
|
2781
|
+
event.stopPropagation();
|
|
2782
|
+
this.focusManager.focusPrevious();
|
|
1957
2783
|
}
|
|
1958
|
-
|
|
1959
|
-
const config = Object.assign(Object.assign({ autoFocus: false, hasBackdrop: true, closeOnNavigation: false }, this.matDialogDefaultConfig), this.dialogServiceDefaults);
|
|
1960
|
-
return new DialogInteractionContext(identifier, api, this.dialogService, config);
|
|
2784
|
+
ngOnInit() {
|
|
1961
2785
|
}
|
|
1962
2786
|
};
|
|
1963
|
-
|
|
1964
|
-
{ type:
|
|
1965
|
-
{ type: MatDialogConfig, decorators: [{ type: Optional }, { type: Inject, args: [DIALOG_INTERACTION_SERVICE_DEFAULTS,] }] },
|
|
1966
|
-
{ type: MatDialogConfig, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DIALOG_DEFAULT_OPTIONS,] }] }
|
|
2787
|
+
VerticalFocusContainerComponent.ctorParameters = () => [
|
|
2788
|
+
{ type: FocusManager, decorators: [{ type: Self }] }
|
|
1967
2789
|
];
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
2790
|
+
__decorate([
|
|
2791
|
+
Input('command.arrowRight'),
|
|
2792
|
+
TrackExternal(),
|
|
2793
|
+
__metadata("design:type", Command)
|
|
2794
|
+
], VerticalFocusContainerComponent.prototype, "rightArrowCommand", void 0);
|
|
2795
|
+
__decorate([
|
|
2796
|
+
Input('command.arrowLeft'),
|
|
2797
|
+
TrackExternal(),
|
|
2798
|
+
__metadata("design:type", Command)
|
|
2799
|
+
], VerticalFocusContainerComponent.prototype, "leftArrowCommand", void 0);
|
|
2800
|
+
__decorate([
|
|
2801
|
+
HostListener('keyup.arrowLeft', ['$event']),
|
|
2802
|
+
__metadata("design:type", Function),
|
|
2803
|
+
__metadata("design:paramtypes", [KeyboardEvent]),
|
|
2804
|
+
__metadata("design:returntype", void 0)
|
|
2805
|
+
], VerticalFocusContainerComponent.prototype, "arrowLeft", null);
|
|
2806
|
+
__decorate([
|
|
2807
|
+
HostListener('keyup.arrowRight', ['$event']),
|
|
2808
|
+
__metadata("design:type", Function),
|
|
2809
|
+
__metadata("design:paramtypes", [KeyboardEvent]),
|
|
2810
|
+
__metadata("design:returntype", void 0)
|
|
2811
|
+
], VerticalFocusContainerComponent.prototype, "arrowRight", null);
|
|
2812
|
+
__decorate([
|
|
2813
|
+
HostListener('keyup.arrowDown', ['$event']),
|
|
2814
|
+
__metadata("design:type", Function),
|
|
2815
|
+
__metadata("design:paramtypes", [KeyboardEvent]),
|
|
2816
|
+
__metadata("design:returntype", void 0)
|
|
2817
|
+
], VerticalFocusContainerComponent.prototype, "arrowDown", null);
|
|
2818
|
+
__decorate([
|
|
2819
|
+
HostListener('keyup.arrowUp', ['$event']),
|
|
2820
|
+
__metadata("design:type", Function),
|
|
2821
|
+
__metadata("design:paramtypes", [KeyboardEvent]),
|
|
2822
|
+
__metadata("design:returntype", void 0)
|
|
2823
|
+
], VerticalFocusContainerComponent.prototype, "arrowUp", null);
|
|
2824
|
+
VerticalFocusContainerComponent = __decorate([
|
|
2825
|
+
Component({
|
|
2826
|
+
selector: 'aup-vertical-focus-container',
|
|
2827
|
+
template: "<ng-content></ng-content>\n",
|
|
2828
|
+
providers: [
|
|
2829
|
+
{ provide: FocusManager }
|
|
2830
|
+
],
|
|
2831
|
+
styles: [":host{display:block}"]
|
|
1972
2832
|
}),
|
|
1973
|
-
__param(
|
|
1974
|
-
|
|
1975
|
-
|
|
1976
|
-
MatDialogConfig,
|
|
1977
|
-
MatDialogConfig])
|
|
1978
|
-
], DialogInteractionContextFactory);
|
|
2833
|
+
__param(0, Self()),
|
|
2834
|
+
__metadata("design:paramtypes", [FocusManager])
|
|
2835
|
+
], VerticalFocusContainerComponent);
|
|
1979
2836
|
|
|
1980
2837
|
/**
|
|
1981
2838
|
* @file Automatically generated by barrelsby.
|
|
1982
2839
|
*/
|
|
1983
2840
|
|
|
1984
|
-
let
|
|
2841
|
+
let ActivityActionsComponent = class ActivityActionsComponent extends DisposableComponent {
|
|
1985
2842
|
constructor() {
|
|
1986
|
-
super();
|
|
1987
|
-
this.
|
|
1988
|
-
this.clickCommand = Command.create((context) => {
|
|
1989
|
-
if (this.activityClass) {
|
|
1990
|
-
this.startActivity(this.activityClass, this.activityData).catch(e => {
|
|
1991
|
-
// don't care.
|
|
1992
|
-
});
|
|
1993
|
-
}
|
|
1994
|
-
else {
|
|
1995
|
-
this.addCommand.withContext(context).execute();
|
|
1996
|
-
}
|
|
1997
|
-
});
|
|
1998
|
-
}
|
|
1999
|
-
get active() {
|
|
2000
|
-
return this.interactionContext ? this.interactionContext.isActive() : false;
|
|
2843
|
+
super(...arguments);
|
|
2844
|
+
this.align = 'start';
|
|
2001
2845
|
}
|
|
2002
|
-
|
|
2003
|
-
return this.
|
|
2846
|
+
get alignEnd() {
|
|
2847
|
+
return this.align === 'end';
|
|
2004
2848
|
}
|
|
2005
2849
|
ngOnInit() {
|
|
2006
2850
|
}
|
|
2851
|
+
hasConfirmText() {
|
|
2852
|
+
return !___default.isEmpty(this.confirmText);
|
|
2853
|
+
}
|
|
2007
2854
|
};
|
|
2008
2855
|
__decorate([
|
|
2009
2856
|
Input(),
|
|
2010
|
-
|
|
2011
|
-
|
|
2012
|
-
|
|
2013
|
-
Input(),
|
|
2014
|
-
__metadata("design:type", Object)
|
|
2015
|
-
], AddItemInteractionContextComponent.prototype, "activityClass", void 0);
|
|
2857
|
+
TrackExternal(),
|
|
2858
|
+
__metadata("design:type", Command)
|
|
2859
|
+
], ActivityActionsComponent.prototype, "confirmCommand", void 0);
|
|
2016
2860
|
__decorate([
|
|
2017
2861
|
Input(),
|
|
2018
|
-
__metadata("design:type",
|
|
2019
|
-
],
|
|
2862
|
+
__metadata("design:type", String)
|
|
2863
|
+
], ActivityActionsComponent.prototype, "confirmText", void 0);
|
|
2020
2864
|
__decorate([
|
|
2021
2865
|
Input(),
|
|
2022
2866
|
TrackExternal(),
|
|
2023
2867
|
__metadata("design:type", Command)
|
|
2024
|
-
],
|
|
2868
|
+
], ActivityActionsComponent.prototype, "cancelCommand", void 0);
|
|
2025
2869
|
__decorate([
|
|
2026
|
-
|
|
2027
|
-
__metadata("design:type",
|
|
2028
|
-
],
|
|
2870
|
+
Input(),
|
|
2871
|
+
__metadata("design:type", String)
|
|
2872
|
+
], ActivityActionsComponent.prototype, "align", void 0);
|
|
2029
2873
|
__decorate([
|
|
2030
|
-
HostBinding('class.
|
|
2874
|
+
HostBinding('class.align-end'),
|
|
2031
2875
|
__metadata("design:type", Boolean),
|
|
2032
2876
|
__metadata("design:paramtypes", [])
|
|
2033
|
-
],
|
|
2034
|
-
__decorate([
|
|
2035
|
-
HostBinding('tabindex'),
|
|
2036
|
-
__metadata("design:type", Object)
|
|
2037
|
-
], AddItemInteractionContextComponent.prototype, "tabindex", void 0);
|
|
2038
|
-
AddItemInteractionContextComponent = __decorate([
|
|
2877
|
+
], ActivityActionsComponent.prototype, "alignEnd", null);
|
|
2878
|
+
ActivityActionsComponent = __decorate([
|
|
2039
2879
|
Component({
|
|
2040
|
-
selector: 'aup-
|
|
2041
|
-
template: "<
|
|
2042
|
-
styles: [":host{
|
|
2043
|
-
})
|
|
2044
|
-
|
|
2045
|
-
], AddItemInteractionContextComponent);
|
|
2880
|
+
selector: 'aup-activity-actions',
|
|
2881
|
+
template: "<button class=\"cancel\" mat-icon-button [pectinCommand]=\"cancelCommand\">\n <mat-icon>clear</mat-icon>\n</button>\n<button class=\"confirm\" *ngIf=\"!hasConfirmText()\" mat-icon-button [pectinCommand]=\"confirmCommand\">\n <mat-icon>done</mat-icon>\n</button>\n<button class=\"confirm\" *ngIf=\"hasConfirmText()\" mat-button [pectinCommand]=\"confirmCommand\">{{confirmText}}</button>\n<div class=\"content\">\n <ng-content></ng-content>\n</div>\n",
|
|
2882
|
+
styles: [":host{display:-ms-grid;display:grid;grid-template-areas:\"cancel confirm content\";-ms-grid-columns:auto auto 1fr;grid-template-columns:auto auto 1fr;-ms-grid-rows:auto;grid-template-rows:auto;align-items:center;justify-content:end}:host.align-end{grid-template-areas:\"content cancel confirm\";-ms-grid-columns:1fr auto auto;grid-template-columns:1fr auto auto}.cancel{-ms-grid-row:1;-ms-grid-column:1;grid-area:cancel}:host.align-end>.cancel{-ms-grid-row:1;-ms-grid-column:2}.confirm{-ms-grid-row:1;-ms-grid-column:2;grid-area:confirm}:host.align-end>.confirm{-ms-grid-row:1;-ms-grid-column:3}.content{-ms-grid-row:1;-ms-grid-column:3;grid-area:content;text-align:left}:host.align-end>.content{-ms-grid-row:1;-ms-grid-column:1}"]
|
|
2883
|
+
})
|
|
2884
|
+
], ActivityActionsComponent);
|
|
2046
2885
|
|
|
2047
2886
|
let InteractionModule = class InteractionModule {
|
|
2048
2887
|
};
|
|
@@ -2056,7 +2895,9 @@ InteractionModule = __decorate([
|
|
|
2056
2895
|
PortalModule,
|
|
2057
2896
|
RouterModule,
|
|
2058
2897
|
MatIconModule,
|
|
2059
|
-
DirectivesModule
|
|
2898
|
+
DirectivesModule,
|
|
2899
|
+
FlexModule,
|
|
2900
|
+
GridModule
|
|
2060
2901
|
],
|
|
2061
2902
|
declarations: [
|
|
2062
2903
|
ActivityContainerComponent,
|
|
@@ -2066,14 +2907,18 @@ InteractionModule = __decorate([
|
|
|
2066
2907
|
ActivityOutletComponent,
|
|
2067
2908
|
InPlaceInteractionContextComponent,
|
|
2068
2909
|
AddItemInteractionContextComponent,
|
|
2069
|
-
ActivityActionsComponent
|
|
2910
|
+
ActivityActionsComponent,
|
|
2911
|
+
PopupInteractionContextComponent,
|
|
2912
|
+
InteractionContextTriggerFor
|
|
2070
2913
|
],
|
|
2071
2914
|
exports: [
|
|
2072
2915
|
ActivityContainerComponent,
|
|
2073
2916
|
ActivityOutletComponent,
|
|
2074
2917
|
InPlaceInteractionContextComponent,
|
|
2075
2918
|
AddItemInteractionContextComponent,
|
|
2076
|
-
ActivityActionsComponent
|
|
2919
|
+
ActivityActionsComponent,
|
|
2920
|
+
PopupInteractionContextComponent,
|
|
2921
|
+
InteractionContextTriggerFor
|
|
2077
2922
|
],
|
|
2078
2923
|
entryComponents: [
|
|
2079
2924
|
ActivityContainerComponent,
|
|
@@ -2082,11 +2927,89 @@ InteractionModule = __decorate([
|
|
|
2082
2927
|
AlertDialogComponent
|
|
2083
2928
|
],
|
|
2084
2929
|
providers: [
|
|
2085
|
-
InteractionService
|
|
2930
|
+
InteractionService
|
|
2931
|
+
// {
|
|
2932
|
+
// provide: MAT_TABS_CONFIG, useValue: { animationDuration: "2s" }
|
|
2933
|
+
// }
|
|
2086
2934
|
]
|
|
2087
2935
|
})
|
|
2088
2936
|
], InteractionModule);
|
|
2089
2937
|
|
|
2938
|
+
let ComponentsModule = class ComponentsModule {
|
|
2939
|
+
};
|
|
2940
|
+
ComponentsModule = __decorate([
|
|
2941
|
+
NgModule({
|
|
2942
|
+
declarations: [
|
|
2943
|
+
AbstractInputComponent,
|
|
2944
|
+
AbstractInputActivity,
|
|
2945
|
+
NumberInputComponent,
|
|
2946
|
+
StringInputComponent,
|
|
2947
|
+
StringInputActivity,
|
|
2948
|
+
TextInputComponent,
|
|
2949
|
+
PasswordInputComponent,
|
|
2950
|
+
SelectInputComponent,
|
|
2951
|
+
CheckboxInputComponent,
|
|
2952
|
+
ScrollContainerComponent,
|
|
2953
|
+
NoopComponent,
|
|
2954
|
+
SwitchCaseComponent,
|
|
2955
|
+
SwitchCaseWhenDirective,
|
|
2956
|
+
SwitchCaseDefaultDirective,
|
|
2957
|
+
FocusContainerComponent,
|
|
2958
|
+
VerticalFocusContainerComponent,
|
|
2959
|
+
FocusableComponent,
|
|
2960
|
+
CardContainerComponent,
|
|
2961
|
+
TableComponent,
|
|
2962
|
+
EditRowControls,
|
|
2963
|
+
ColumnTemplateDirective,
|
|
2964
|
+
DefaultCellRendererComponent,
|
|
2965
|
+
TableCellRendererComponent,
|
|
2966
|
+
SelectCellRendererComponent,
|
|
2967
|
+
SelectHeaderCellRendererComponent,
|
|
2968
|
+
DefaultHeaderCellRendererComponent,
|
|
2969
|
+
TableHeaderCellRendererComponent
|
|
2970
|
+
],
|
|
2971
|
+
imports: [
|
|
2972
|
+
CommonModule,
|
|
2973
|
+
BrowserAnimationsModule,
|
|
2974
|
+
FormsModule,
|
|
2975
|
+
MatInputModule,
|
|
2976
|
+
MatFormFieldModule,
|
|
2977
|
+
MatSelectModule,
|
|
2978
|
+
MatTabsModule,
|
|
2979
|
+
DirectivesModule,
|
|
2980
|
+
MatIconModule,
|
|
2981
|
+
MatButtonModule,
|
|
2982
|
+
MatCheckboxModule,
|
|
2983
|
+
InteractionModule,
|
|
2984
|
+
MatTableModule,
|
|
2985
|
+
PortalModule
|
|
2986
|
+
],
|
|
2987
|
+
exports: [
|
|
2988
|
+
NumberInputComponent,
|
|
2989
|
+
StringInputComponent,
|
|
2990
|
+
TextInputComponent,
|
|
2991
|
+
PasswordInputComponent,
|
|
2992
|
+
CheckboxInputComponent,
|
|
2993
|
+
SelectInputComponent,
|
|
2994
|
+
ScrollContainerComponent,
|
|
2995
|
+
NoopComponent,
|
|
2996
|
+
SwitchCaseComponent,
|
|
2997
|
+
SwitchCaseWhenDirective,
|
|
2998
|
+
SwitchCaseDefaultDirective,
|
|
2999
|
+
FocusContainerComponent,
|
|
3000
|
+
VerticalFocusContainerComponent,
|
|
3001
|
+
FocusableComponent,
|
|
3002
|
+
CardContainerComponent,
|
|
3003
|
+
TableComponent,
|
|
3004
|
+
EditRowControls,
|
|
3005
|
+
ColumnTemplateDirective
|
|
3006
|
+
],
|
|
3007
|
+
providers: [
|
|
3008
|
+
FocusBindingFactory,
|
|
3009
|
+
]
|
|
3010
|
+
})
|
|
3011
|
+
], ComponentsModule);
|
|
3012
|
+
|
|
2090
3013
|
class ParameterDefinition {
|
|
2091
3014
|
constructor(propertyName, options, urlFormat) {
|
|
2092
3015
|
this.propertyName = propertyName;
|
|
@@ -4560,5 +5483,5 @@ function VisitParameterList(options) {
|
|
|
4560
5483
|
* Generated bundle index. Do not edit.
|
|
4561
5484
|
*/
|
|
4562
5485
|
|
|
4563
|
-
export { ACTIVITY_DATA, AUP_PLACE_CONFIG, AbstractInputComponent, AbstractInteractionContext, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, Activity, ActivityActionsComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, AddItemInteractionContextComponent, AlertDialogComponent, AngularUiPowerupsModule, Bounds, BusyOverlayComponent, CardContainerComponent, CheckboxInputComponent, CommandDirective, ComponentsModule, ConfirmThenDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EmptyStateComponent, EventCleanUpSession, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, InPlaceInteractionContextComponent, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, LEFT_RIGHT_PLACE_ANIMATION, ListPlaceNavComponent, ModalInteractionContextFactory, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NumberInputComponent, ParameterDefinition, PasswordInputComponent, Place, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, RouteId, ScrollContainerComponent, SelectInputComponent, SidePlaceNavigationComponent, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TextInputComponent, UrlService, UrlSnapshot, VerticalFocusContainerComponent, Visit, VisitParameter, VisitParameterList, VisitSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, DirectivesModule as ɵa, CommandDirective as ɵb,
|
|
5486
|
+
export { ACTIVITY_DATA, AUP_PLACE_CONFIG, AbstractInputActivity, AbstractInputComponent, AbstractInteractionContext, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, Activity, ActivityActionsComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, AddItemInteractionContextComponent, AlertDialogComponent, AngularUiPowerupsModule, Bounds, BusyOverlayComponent, CardContainerComponent, CheckboxInputComponent, ColumnModel, ColumnTemplateDirective, CommandDirective, ComponentsModule, ConfirmThenDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControls, EditorControlColumnModel, EmptyStateComponent, EventCleanUpSession, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, InPlaceInteractionContextComponent, InteractionContextTriggerFor, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, LEFT_RIGHT_PLACE_ANIMATION, ListPlaceNavComponent, ModalInteractionContextFactory, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NumberInputComponent, ParameterDefinition, PasswordInputComponent, Place, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupInteractionContextComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, RouteId, ScrollContainerComponent, SelectCellRendererComponent, SelectHeaderCellRendererComponent, SelectInputComponent, SelectionColumnModel, SidePlaceNavigationComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableCellRendererComponent, TableComponent, TableHeaderCellRendererComponent, TableModel, TextInputComponent, UrlService, UrlSnapshot, VerticalFocusContainerComponent, Visit, VisitParameter, VisitParameterList, VisitSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, DirectivesModule as ɵa, CommandDirective as ɵb, CardContainerComponent as ɵba, TableComponent as ɵbb, EditRowControls as ɵbc, ColumnTemplateDirective as ɵbd, DefaultCellRendererComponent as ɵbe, TableCellRendererComponent as ɵbf, SelectCellRendererComponent as ɵbg, SelectHeaderCellRendererComponent as ɵbh, DefaultHeaderCellRendererComponent as ɵbi, TableHeaderCellRendererComponent as ɵbj, InteractionModule as ɵbk, ActivityContainerComponent as ɵbl, AbstractInteractionContext as ɵbm, ActivityOutletComponent as ɵbn, ConfirmationDialogComponent as ɵbo, ACTIVITY_DATA as ɵbp, Activity as ɵbq, ConfirmThenDialogComponent as ɵbs, AlertDialogComponent as ɵbt, InPlaceInteractionContextComponent as ɵbv, InteractionService as ɵbw, ModalInteractionContextFactory as ɵbx, AddItemInteractionContextComponent as ɵby, DisposableComponent as ɵbz, FocusBindingDirective as ɵc, InPlaceInteractionContextComponent as ɵca, ActivityActionsComponent as ɵcb, PopupInteractionContextComponent as ɵcc, InteractionContextTriggerFor as ɵcd, PlaceModule as ɵce, EmptyStateComponent as ɵcf, BusyOverlayComponent as ɵcg, PlaceOutletComponent as ɵch, leftRightPlaceAnimation as ɵci, LEFT_RIGHT_PLACE_ANIMATION as ɵcj, AUP_PLACE_CONFIG as ɵck, PlaceRouter as ɵcm, UrlService as ɵcn, PlaceHistory as ɵco, TabbedPlaceNavigationComponent as ɵcp, AbstractPlaceNavigationComponent as ɵcq, ListPlaceNavComponent as ɵcr, SidePlaceNavigationComponent as ɵcs, DisposableComponent as ɵd, FocusBindingFactory as ɵe, ComponentsModule as ɵf, AbstractInputComponent as ɵg, AbstractInputActivity as ɵh, Activity as ɵi, ACTIVITY_DATA as ɵj, NumberInputComponent as ɵk, StringInputComponent as ɵl, StringInputActivity as ɵm, TextInputComponent as ɵn, PasswordInputComponent as ɵo, SelectInputComponent as ɵp, CheckboxInputComponent as ɵq, ScrollContainerComponent as ɵr, NoopComponent as ɵs, SwitchCaseOption as ɵt, SwitchCaseWhenDirective as ɵu, SwitchCaseDefaultDirective as ɵv, SwitchCaseComponent as ɵw, FocusContainerComponent as ɵx, VerticalFocusContainerComponent as ɵy, FocusableComponent as ɵz };
|
|
4564
5487
|
//# sourceMappingURL=coolon-angular-ui-powerups.js.map
|