@coolon/angular-ui-powerups 2.0.0-alpha.3 → 2.0.0-alpha.30
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 +184 -0
- package/assets/commands.scss +3 -0
- package/assets/form.scss +5 -4
- package/assets/icons.scss +30 -0
- package/assets/styles.scss +2 -0
- package/bundles/coolon-angular-ui-powerups.umd.js +1168 -322
- 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 +64 -54
- package/coolon-angular-ui-powerups.metadata.json +1 -1
- package/esm2015/coolon-angular-ui-powerups.js +62 -52
- 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/commands/command-bar.component.js +51 -0
- package/esm2015/lib/components/commands/command-bar.component.js.map +1 -0
- package/esm2015/lib/components/commands/command-bar.component.metadata.json +1 -0
- package/esm2015/lib/components/commands/command-bar.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/commands/command-container.js +20 -0
- package/esm2015/lib/components/commands/command-container.js.map +1 -0
- package/esm2015/lib/components/commands/command-container.metadata.json +1 -0
- package/esm2015/lib/components/commands/command-face/command-face.component.js +91 -0
- package/esm2015/lib/components/commands/command-face/command-face.component.js.map +1 -0
- package/esm2015/lib/components/commands/command-face/command-face.component.metadata.json +1 -0
- package/esm2015/lib/components/commands/command-face/command-face.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/commands/command-face/command-face.component.scss.ngstyle.js.map +1 -0
- package/esm2015/lib/components/commands/command-face.js +74 -0
- package/esm2015/lib/components/commands/command-face.js.map +1 -0
- package/esm2015/lib/components/commands/command-face.metadata.json +1 -0
- package/esm2015/lib/components/commands/command.component.js +38 -0
- package/esm2015/lib/components/commands/command.component.js.map +1 -0
- package/esm2015/lib/components/commands/command.component.metadata.json +1 -0
- package/esm2015/lib/components/commands/command.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/commands/popup-menu/abstract-popup-menu.component.js +57 -0
- package/esm2015/lib/components/commands/popup-menu/abstract-popup-menu.component.js.map +1 -0
- package/esm2015/lib/components/commands/popup-menu/abstract-popup-menu.component.metadata.json +1 -0
- package/esm2015/lib/components/commands/popup-menu/abstract-popup-menu.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/commands/popup-menu/more-menu.component.js +40 -0
- package/esm2015/lib/components/commands/popup-menu/more-menu.component.js.map +1 -0
- package/esm2015/lib/components/commands/popup-menu/more-menu.component.metadata.json +1 -0
- package/esm2015/lib/components/commands/popup-menu/more-menu.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/commands/popup-menu/popup-menu.component.js +49 -0
- package/esm2015/lib/components/commands/popup-menu/popup-menu.component.js.map +1 -0
- package/esm2015/lib/components/commands/popup-menu/popup-menu.component.metadata.json +1 -0
- package/esm2015/lib/components/commands/popup-menu/popup-menu.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.js +62 -0
- package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.js.map +1 -0
- package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.metadata.json +1 -0
- package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.scss.shim.ngstyle.js.map +1 -0
- package/esm2015/lib/components/components.module.js +58 -14
- 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.component.js +12 -4
- 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/abstract-list-input.component.js +51 -6
- package/esm2015/lib/components/forms/abstract-list-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/abstract-list-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/abstract-value-input.component.js +47 -3
- package/esm2015/lib/components/forms/abstract-value-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/abstract-value-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js +70 -0
- package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.js.map +1 -0
- package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.metadata.json +1 -0
- package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/forms/autocomplete-input/autocomplete-input.component.scss.shim.ngstyle.js.map +1 -0
- package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.js +3 -6
- package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/checkbox-input/checkbox-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js +8 -13
- package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/multiple-select-input/multiple-select-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/number-input/number-input.component.js +3 -6
- package/esm2015/lib/components/forms/number-input/number-input.component.js.map +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 +4 -7
- package/esm2015/lib/components/forms/password-input/password-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/password-input/password-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/select-input/select-input.component.js +2 -5
- package/esm2015/lib/components/forms/select-input/select-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/select-input/select-input.component.metadata.json +1 -1
- package/esm2015/lib/components/forms/string-input/string-input.component.js +3 -7
- package/esm2015/lib/components/forms/string-input/string-input.component.js.map +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 +3 -6
- package/esm2015/lib/components/forms/text-input/text-input.component.js.map +1 -1
- package/esm2015/lib/components/forms/text-input/text-input.component.metadata.json +1 -1
- package/esm2015/lib/components/icon/icon.component.js +17 -4
- package/esm2015/lib/components/icon/icon.component.js.map +1 -1
- package/esm2015/lib/components/icon/icon.component.metadata.json +1 -1
- package/esm2015/lib/components/index.js +12 -1
- package/esm2015/lib/components/index.js.map +1 -1
- package/esm2015/lib/components/index.metadata.json +1 -1
- package/esm2015/lib/components/table/cell-editors.js.map +1 -1
- package/esm2015/lib/components/table/{cell-protal-ref.js → cell-portal-ref.js} +7 -3
- package/esm2015/lib/components/table/cell-portal-ref.js.map +1 -0
- package/esm2015/lib/components/table/{cell-protal-ref.metadata.json → cell-portal-ref.metadata.json} +1 -1
- package/esm2015/lib/components/table/column-model.js +66 -11
- package/esm2015/lib/components/table/column-model.js.map +1 -1
- package/esm2015/lib/components/table/column-model.metadata.json +1 -1
- package/esm2015/lib/components/table/mutable-cell-renderer.js +1 -0
- package/esm2015/lib/components/table/mutable-cell-renderer.js.map +1 -0
- package/esm2015/lib/components/table/mutable-cell-renderer.metadata.json +1 -0
- package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js +1 -1
- package/esm2015/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
- package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js +1 -1
- package/esm2015/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js.map +1 -1
- package/esm2015/lib/components/table/table-model.js +11 -10
- package/esm2015/lib/components/table/table-model.js.map +1 -1
- package/esm2015/lib/components/table/table-model.metadata.json +1 -1
- package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.js +82 -0
- package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.js.map +1 -0
- package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.metadata.json +1 -0
- package/esm2015/lib/components/table/table-row-menu/table-row-menu.component.ngfactory.js.map +1 -0
- package/esm2015/lib/components/table/table.component.js +1 -1
- package/esm2015/lib/components/table/table.component.js.map +1 -1
- package/esm2015/lib/components/table/table.component.metadata.json +1 -1
- package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +32 -4
- 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 +1 -1
- package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js.map +1 -1
- package/esm2015/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.metadata.json +1 -1
- package/esm2015/lib/interaction/interaction.module.ngfactory.js.map +1 -1
- package/esm2015/lib/place/place-component.js +1 -1
- package/esm2015/lib/place/place-component.js.map +1 -1
- package/esm2015/lib/place/place-router.js +2 -8
- package/esm2015/lib/place/place-router.js.map +1 -1
- package/esm2015/lib/place/place-router.metadata.json +1 -1
- package/esm2015/lib/place/place.module.ngfactory.js.map +1 -1
- package/esm2015/lib/place/route/parameter-decorators.js +2 -3
- package/esm2015/lib/place/route/parameter-decorators.js.map +1 -1
- package/esm2015/lib/place/route/parameter-decorators.metadata.json +1 -1
- package/esm5/coolon-angular-ui-powerups.js +62 -52
- 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/commands/command-bar.component.js +31 -0
- package/esm5/lib/components/commands/command-bar.component.js.map +1 -0
- package/esm5/lib/components/commands/command-bar.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/commands/command-container.js +30 -0
- package/esm5/lib/components/commands/command-container.js.map +1 -0
- package/esm5/lib/components/commands/command-face/command-face.component.js +122 -0
- package/esm5/lib/components/commands/command-face/command-face.component.js.map +1 -0
- package/esm5/lib/components/commands/command-face/command-face.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/commands/command-face/command-face.component.scss.ngstyle.js.map +1 -0
- package/esm5/lib/components/commands/command-face.js +103 -0
- package/esm5/lib/components/commands/command-face.js.map +1 -0
- package/esm5/lib/components/commands/command.component.js +41 -0
- package/esm5/lib/components/commands/command.component.js.map +1 -0
- package/esm5/lib/components/commands/command.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/commands/popup-menu/abstract-popup-menu.component.js +64 -0
- package/esm5/lib/components/commands/popup-menu/abstract-popup-menu.component.js.map +1 -0
- package/esm5/lib/components/commands/popup-menu/abstract-popup-menu.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/commands/popup-menu/more-menu.component.js +35 -0
- package/esm5/lib/components/commands/popup-menu/more-menu.component.js.map +1 -0
- package/esm5/lib/components/commands/popup-menu/more-menu.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/commands/popup-menu/popup-menu.component.js +45 -0
- package/esm5/lib/components/commands/popup-menu/popup-menu.component.js.map +1 -0
- package/esm5/lib/components/commands/popup-menu/popup-menu.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.js +66 -0
- package/esm5/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.js.map +1 -0
- package/esm5/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.scss.shim.ngstyle.js.map +1 -0
- package/esm5/lib/components/components.module.js +58 -14
- 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.component.js +12 -4
- package/esm5/lib/components/forms/abstract-input.component.js.map +1 -1
- package/esm5/lib/components/forms/abstract-list-input.component.js +56 -6
- package/esm5/lib/components/forms/abstract-list-input.component.js.map +1 -1
- package/esm5/lib/components/forms/abstract-value-input.component.js +52 -3
- package/esm5/lib/components/forms/abstract-value-input.component.js.map +1 -1
- package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.js +73 -0
- package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.js.map +1 -0
- package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/forms/autocomplete-input/autocomplete-input.component.scss.shim.ngstyle.js.map +1 -0
- package/esm5/lib/components/forms/checkbox-input/checkbox-input.component.js +3 -6
- package/esm5/lib/components/forms/checkbox-input/checkbox-input.component.js.map +1 -1
- package/esm5/lib/components/forms/multiple-select-input/multiple-select-input.component.js +8 -13
- package/esm5/lib/components/forms/multiple-select-input/multiple-select-input.component.js.map +1 -1
- package/esm5/lib/components/forms/number-input/number-input.component.js +3 -6
- package/esm5/lib/components/forms/number-input/number-input.component.js.map +1 -1
- package/esm5/lib/components/forms/password-input/password-input.component.js +4 -7
- package/esm5/lib/components/forms/password-input/password-input.component.js.map +1 -1
- package/esm5/lib/components/forms/select-input/select-input.component.js +2 -5
- package/esm5/lib/components/forms/select-input/select-input.component.js.map +1 -1
- package/esm5/lib/components/forms/string-input/string-input.component.js +3 -7
- package/esm5/lib/components/forms/string-input/string-input.component.js.map +1 -1
- package/esm5/lib/components/forms/text-input/text-input.component.js +3 -6
- package/esm5/lib/components/forms/text-input/text-input.component.js.map +1 -1
- package/esm5/lib/components/icon/icon.component.js +15 -3
- package/esm5/lib/components/icon/icon.component.js.map +1 -1
- package/esm5/lib/components/index.js +12 -1
- package/esm5/lib/components/index.js.map +1 -1
- package/esm5/lib/components/table/cell-editors.js.map +1 -1
- package/esm5/lib/components/table/{cell-protal-ref.js → cell-portal-ref.js} +7 -3
- package/esm5/lib/components/table/cell-portal-ref.js.map +1 -0
- package/esm5/lib/components/table/column-model.js +67 -11
- package/esm5/lib/components/table/column-model.js.map +1 -1
- package/esm5/lib/components/table/mutable-cell-renderer.js +1 -0
- package/esm5/lib/components/table/mutable-cell-renderer.js.map +1 -0
- package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js +1 -1
- package/esm5/lib/components/table/table-cell-renderer/table-cell-renderer.component.js.map +1 -1
- package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js +1 -1
- package/esm5/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.js.map +1 -1
- package/esm5/lib/components/table/table-model.js +11 -11
- package/esm5/lib/components/table/table-model.js.map +1 -1
- package/esm5/lib/components/table/table-row-menu/table-row-menu.component.js +66 -0
- package/esm5/lib/components/table/table-row-menu/table-row-menu.component.js.map +1 -0
- package/esm5/lib/components/table/table-row-menu/table-row-menu.component.ngfactory.js.map +1 -0
- package/esm5/lib/components/table/table.component.js +1 -1
- package/esm5/lib/components/table/table.component.js.map +1 -1
- package/esm5/lib/interaction/components/activity-container/activity-container.component.js +32 -4
- 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 +1 -1
- package/esm5/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.js.map +1 -1
- package/esm5/lib/interaction/interaction.module.ngfactory.js.map +1 -1
- package/esm5/lib/place/place-component.js +1 -1
- package/esm5/lib/place/place-component.js.map +1 -1
- package/esm5/lib/place/place-router.js +2 -8
- package/esm5/lib/place/place-router.js.map +1 -1
- package/esm5/lib/place/place.module.ngfactory.js.map +1 -1
- package/esm5/lib/place/route/parameter-decorators.js +2 -3
- package/esm5/lib/place/route/parameter-decorators.js.map +1 -1
- package/fesm2015/coolon-angular-ui-powerups.js +1034 -253
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +1083 -253
- package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
- package/lib/components/commands/command-bar.component.d.ts +10 -0
- package/lib/components/commands/command-container.d.ts +15 -0
- package/lib/components/commands/command-face/command-face.component.d.ts +29 -0
- package/lib/components/commands/command-face.d.ts +24 -0
- package/lib/components/commands/command.component.d.ts +15 -0
- package/lib/components/commands/popup-menu/abstract-popup-menu.component.d.ts +18 -0
- package/lib/components/commands/popup-menu/more-menu.component.d.ts +9 -0
- package/lib/components/commands/popup-menu/popup-menu.component.d.ts +14 -0
- package/lib/components/commands/popup-menu-renderer/popup-menu-renderer.component.d.ts +21 -0
- package/lib/components/forms/abstract-input.component.d.ts +8 -2
- package/lib/components/forms/abstract-list-input.component.d.ts +10 -3
- package/lib/components/forms/abstract-value-input.component.d.ts +9 -3
- package/lib/components/forms/autocomplete-input/autocomplete-input.component.d.ts +25 -0
- package/lib/components/forms/checkbox-input/checkbox-input.component.d.ts +0 -2
- package/lib/components/forms/multiple-select-input/multiple-select-input.component.d.ts +8 -4
- package/lib/components/forms/number-input/number-input.component.d.ts +0 -2
- package/lib/components/forms/password-input/password-input.component.d.ts +0 -2
- package/lib/components/forms/select-input/select-input.component.d.ts +2 -2
- package/lib/components/forms/string-input/string-input.component.d.ts +1 -2
- package/lib/components/forms/text-input/text-input.component.d.ts +0 -2
- package/lib/components/icon/icon.component.d.ts +15 -0
- package/lib/components/index.d.ts +13 -1
- package/lib/components/table/cell-editors.d.ts +3 -3
- package/lib/components/table/{cell-protal-ref.d.ts → cell-portal-ref.d.ts} +4 -4
- package/lib/components/table/column-model.d.ts +18 -12
- package/lib/components/table/mutable-cell-renderer.d.ts +6 -0
- package/lib/components/table/table-cell-renderer/table-cell-renderer.component.d.ts +1 -1
- package/lib/components/table/table-header-cell-renderer/table-header-cell-renderer.component.d.ts +1 -1
- package/lib/components/table/table-model.d.ts +12 -4
- package/lib/components/table/table-row-menu/table-row-menu.component.d.ts +25 -0
- package/lib/interaction/components/activity-container/activity-container.component.d.ts +3 -1
- package/package.json +4 -4
- package/esm2015/lib/components/table/cell-protal-ref.js.map +0 -1
- package/esm5/lib/components/table/cell-protal-ref.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
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, ContentChild, TemplateRef, Component,
|
|
3
|
+
import { ElementRef, Inject, Input, HostListener, Directive, NgZone, ɵɵdefineInjectable, ɵɵinject, Injectable, NgModule, ContentChild, TemplateRef, Component, forwardRef, Optional, HostBinding, ViewEncapsulation, EventEmitter, Output, ViewChild, ChangeDetectorRef, Self, ContentChildren, QueryList, ViewContainerRef, InjectionToken, Injector, ComponentFactoryResolver, ViewChildren, 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';
|
|
@@ -9,18 +9,21 @@ import { MatTabsModule, MatTabGroup, MAT_TABS_CONFIG } from '@angular/material/t
|
|
|
9
9
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
|
10
10
|
import { ComponentPortal, TemplatePortal, PortalModule } from '@angular/cdk/portal';
|
|
11
11
|
import { CdkScrollableModule } from '@angular/cdk/scrolling';
|
|
12
|
+
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
12
13
|
import { MatButtonModule } from '@angular/material/button';
|
|
13
14
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
14
15
|
import { MatIconModule } from '@angular/material/icon';
|
|
16
|
+
import { MatMenu, MatMenuTrigger, _MatMenuDirectivesModule, MatMenuModule } from '@angular/material/menu';
|
|
15
17
|
import { MatTableModule } from '@angular/material/table';
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
19
|
+
import { FaIconLibrary, FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
20
|
+
import { fas } from '@fortawesome/free-solid-svg-icons';
|
|
21
|
+
import { GarbageCollector, DelegatingValueModel, assert, UnaryCommand, lang, Dsl, Logger, TrackExternal, Command, MutableListModel, Disposable, MutableValueModel, StoreInValueModel, ListModel, FocusManager, EventListenerList, Form, Guard, Binding, DebugContext, StoreInListModel, ValueModel, MultipleSelectionModel, DirtyTrackingForm, DelegatingCommand, Deferred, Trace, Functions } from '@coolon/pectin';
|
|
18
22
|
import { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';
|
|
19
23
|
import ___default, { isEqual, isNil } from 'lodash';
|
|
24
|
+
import { Enum } from 'typescript-string-enums';
|
|
25
|
+
import { assert as assert$1, Opts, lang as lang$1, Klass } from '@coolon/typescript-utilities';
|
|
20
26
|
import produce from 'immer';
|
|
21
|
-
import { FaIconLibrary, FontAwesomeModule } from '@fortawesome/angular-fontawesome';
|
|
22
|
-
import { fas } from '@fortawesome/free-solid-svg-icons';
|
|
23
|
-
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
24
27
|
import { FlexModule, GridModule } from '@angular/flex-layout';
|
|
25
28
|
import { MatDialogModule, MatDialog, MatDialogConfig, MAT_DIALOG_DEFAULT_OPTIONS } from '@angular/material/dialog';
|
|
26
29
|
import { RouterModule, UrlSegment, Router, UrlSerializer, NavigationStart, NavigationEnd, NavigationError, NavigationCancel, RouterOutlet } from '@angular/router';
|
|
@@ -369,11 +372,446 @@ CardContainerComponent = __decorate([
|
|
|
369
372
|
Component({
|
|
370
373
|
selector: 'aup-card-container',
|
|
371
374
|
template: "<div class=\"card-container\">\n <ng-content></ng-content>\n\n <div class=\"add-card-container\" *ngIf=\"addCardCommand.enabled.value\" [pectinCommand]=\"addCardCommand\">\n <aup-icon icon=\"mat:add\"></aup-icon>\n </div>\n\n <div class=\"add-card-template\" *ngIf=\"addCardTemplate\">\n <ng-container [ngTemplateOutlet]=\"addCardTemplate\"></ng-container>\n </div>\n\n</div>\n",
|
|
372
|
-
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-input-component.dense mat-form-field .mat-form-field-infix{border-top:none}.aup-input-component.dense mat-form-field .mat-form-field-flex{padding-top:0}.aup-input-component.dense mat-form-field .mat-form-field-wrapper{padding-bottom:0;border-bottom:0}.aup-input-component.dense mat-form-field .mat-form-field-underline{bottom:0}.aup-input-component.dense mat-form-field.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label-wrapper{display:none}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);--resolved-row-hover-background-color:var(--row-hover-background-color, rgba(0, 0, 0, 0.05))}aup-table .mat-table td.mat-cell:first-of-type,aup-table .mat-table td.mat-footer-cell:first-of-type,aup-table .mat-table th.mat-header-cell:first-of-type{padding-left:0}aup-table .mat-table tr.enable-hover:hover{background-color:var(--resolved-row-hover-background-color)}aup-table .mat-table td.enable-cursor{cursor:pointer}aup-table aup-table-cell-renderer,aup-table aup-table-header-cell-renderer{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%;min-height:47px}aup-table aup-table-cell-renderer.first-column,aup-table aup-table-cell-renderer:not(.first-column),aup-table aup-table-header-cell-renderer.first-column,aup-table aup-table-header-cell-renderer:not(.first-column){padding-left:var(--default-column-gap)}aup-table aup-table-cell-renderer.fillCell{justify-content:stretch;padding-left:0!important}aup-table aup-table-cell-renderer.padChild>:first-child{padding-left:var(--default-column-gap);flex:1}: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}"]
|
|
375
|
+
styles: [":root{--aup-default-padding:var(--default-padding, 18px);--aup-default-background:white;--command-face-icon-gap:8px;--aup-icon-width:24px;--aup-fa-icon-width:18px}.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-input-component.dense mat-form-field .mat-form-field-infix{border-top:none}.aup-input-component.dense mat-form-field .mat-form-field-flex{padding-top:0}.aup-input-component.dense mat-form-field .mat-form-field-wrapper{padding-bottom:0;border-bottom:0}.aup-input-component.dense mat-form-field .mat-form-field-underline{bottom:0}.aup-input-component.dense mat-form-field.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label-wrapper{display:none}.aup-input-component.dense mat-form-field.mat-form-field-appearance-standard.mat-form-field-has-label .mat-select:not(.mat-select-empty) .mat-select-arrow-wrapper{transform:translateY(0)}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);--resolved-row-hover-background-color:var(--row-hover-background-color, rgba(0, 0, 0, 0.05))}aup-table .mat-table td.mat-cell:first-of-type,aup-table .mat-table td.mat-footer-cell:first-of-type,aup-table .mat-table th.mat-header-cell:first-of-type{padding-left:0}aup-table .mat-table tr.enable-hover:hover{background-color:var(--resolved-row-hover-background-color)}aup-table .mat-table td.enable-cursor{cursor:pointer}aup-table aup-table-cell-renderer,aup-table aup-table-header-cell-renderer{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%;min-height:47px}aup-table aup-table-cell-renderer.first-column,aup-table aup-table-cell-renderer:not(.first-column),aup-table aup-table-header-cell-renderer.first-column,aup-table aup-table-header-cell-renderer:not(.first-column){padding-left:var(--default-column-gap)}aup-table aup-table-cell-renderer.fillCell{justify-content:stretch;padding-left:0!important}aup-table aup-table-cell-renderer.padChild>:first-child{padding-left:var(--default-column-gap);flex:1}aup-icon{--fa-icon-offset:calc((var(--aup-icon-width) - var(--aup-fa-icon-width)) / 2);position:relative}aup-icon fa-icon .svg-inline--fa{position:absolute;top:var(--fa-icon-offset);left:var(--fa-icon-offset);width:var(--aup-fa-icon-width)!important;height:var(--aup-fa-icon-width)!important}.mat-menu-panel aup-icon .svg-inline--fa{opacity:.54}: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}"]
|
|
373
376
|
}),
|
|
374
377
|
__metadata("design:paramtypes", [])
|
|
375
378
|
], CardContainerComponent);
|
|
376
379
|
|
|
380
|
+
var CommandFace;
|
|
381
|
+
(function (CommandFace) {
|
|
382
|
+
let Position;
|
|
383
|
+
(function (Position) {
|
|
384
|
+
Position["START"] = "start";
|
|
385
|
+
Position["END"] = "end";
|
|
386
|
+
})(Position = CommandFace.Position || (CommandFace.Position = {}));
|
|
387
|
+
class Adapter {
|
|
388
|
+
constructor(face) {
|
|
389
|
+
this.face = face;
|
|
390
|
+
}
|
|
391
|
+
get text() {
|
|
392
|
+
return ___default.isFunction(this.face.text) ? this.face.text() : undefined;
|
|
393
|
+
}
|
|
394
|
+
get icon() {
|
|
395
|
+
return ___default.isFunction(this.face.icon) ? this.face.icon() : undefined;
|
|
396
|
+
}
|
|
397
|
+
get iconPosition() {
|
|
398
|
+
return ___default.isFunction(this.face.iconPosition) ? this.face.iconPosition() : undefined;
|
|
399
|
+
}
|
|
400
|
+
get tooltip() {
|
|
401
|
+
return ___default.isFunction(this.face.tooltip) ? this.face.tooltip() : undefined;
|
|
402
|
+
}
|
|
403
|
+
get iconPositionStart() {
|
|
404
|
+
return this.iconPosition === CommandFace.Position.START;
|
|
405
|
+
}
|
|
406
|
+
get iconPositionEnd() {
|
|
407
|
+
return this.iconPosition === CommandFace.Position.END;
|
|
408
|
+
}
|
|
409
|
+
get destructive() {
|
|
410
|
+
return ___default.isFunction(this.face.destructive) ? this.face.destructive() : false;
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
__decorate([
|
|
414
|
+
Memoize(),
|
|
415
|
+
__metadata("design:type", Object),
|
|
416
|
+
__metadata("design:paramtypes", [])
|
|
417
|
+
], Adapter.prototype, "text", null);
|
|
418
|
+
__decorate([
|
|
419
|
+
Memoize(),
|
|
420
|
+
__metadata("design:type", Object),
|
|
421
|
+
__metadata("design:paramtypes", [])
|
|
422
|
+
], Adapter.prototype, "icon", null);
|
|
423
|
+
__decorate([
|
|
424
|
+
Memoize(),
|
|
425
|
+
__metadata("design:type", Object),
|
|
426
|
+
__metadata("design:paramtypes", [])
|
|
427
|
+
], Adapter.prototype, "iconPosition", null);
|
|
428
|
+
__decorate([
|
|
429
|
+
Memoize(),
|
|
430
|
+
__metadata("design:type", Object),
|
|
431
|
+
__metadata("design:paramtypes", [])
|
|
432
|
+
], Adapter.prototype, "tooltip", null);
|
|
433
|
+
__decorate([
|
|
434
|
+
Memoize(),
|
|
435
|
+
__metadata("design:type", Boolean),
|
|
436
|
+
__metadata("design:paramtypes", [])
|
|
437
|
+
], Adapter.prototype, "iconPositionStart", null);
|
|
438
|
+
__decorate([
|
|
439
|
+
Memoize(),
|
|
440
|
+
__metadata("design:type", Boolean),
|
|
441
|
+
__metadata("design:paramtypes", [])
|
|
442
|
+
], Adapter.prototype, "iconPositionEnd", null);
|
|
443
|
+
__decorate([
|
|
444
|
+
Memoize(),
|
|
445
|
+
__metadata("design:type", Boolean),
|
|
446
|
+
__metadata("design:paramtypes", [])
|
|
447
|
+
], Adapter.prototype, "destructive", null);
|
|
448
|
+
CommandFace.Adapter = Adapter;
|
|
449
|
+
})(CommandFace || (CommandFace = {}));
|
|
450
|
+
|
|
451
|
+
class CommandContainer extends GarbageCollector {
|
|
452
|
+
constructor() {
|
|
453
|
+
super();
|
|
454
|
+
this._commandRegistrations = new MutableListModel();
|
|
455
|
+
}
|
|
456
|
+
get commandRegistrations() {
|
|
457
|
+
return this._commandRegistrations.readonly;
|
|
458
|
+
}
|
|
459
|
+
registerCommand(command, face) {
|
|
460
|
+
const registration = { command, faceAdapter: new CommandFace.Adapter(face) };
|
|
461
|
+
this._commandRegistrations.push(registration);
|
|
462
|
+
return Disposable.disposableThatRuns(() => this._commandRegistrations.remove(registration));
|
|
463
|
+
}
|
|
464
|
+
getDefaultIconPosition() {
|
|
465
|
+
return CommandFace.Position.START;
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
|
|
469
|
+
var CommandBarComponent_1;
|
|
470
|
+
/**
|
|
471
|
+
*
|
|
472
|
+
*/
|
|
473
|
+
let CommandBarComponent = CommandBarComponent_1 = class CommandBarComponent extends CommandContainer {
|
|
474
|
+
constructor() {
|
|
475
|
+
super();
|
|
476
|
+
}
|
|
477
|
+
ngOnInit() {
|
|
478
|
+
}
|
|
479
|
+
getButtonColor(registration) {
|
|
480
|
+
return registration.faceAdapter.destructive ? 'warn' : undefined;
|
|
481
|
+
}
|
|
482
|
+
};
|
|
483
|
+
CommandBarComponent = CommandBarComponent_1 = __decorate([
|
|
484
|
+
Component({
|
|
485
|
+
selector: 'aup-command-bar',
|
|
486
|
+
template: `
|
|
487
|
+
<ng-container *ngFor="let registration of commandRegistrations.value">
|
|
488
|
+
<button *ngIf="registration.faceAdapter.icon && !registration.faceAdapter.text"
|
|
489
|
+
mat-icon-button
|
|
490
|
+
[color]="getButtonColor(registration)"
|
|
491
|
+
[pectinCommand]="registration.command"
|
|
492
|
+
[matTooltip]="registration.faceAdapter.tooltip"
|
|
493
|
+
>
|
|
494
|
+
<aup-command-face [face]="registration.faceAdapter.face"></aup-command-face>
|
|
495
|
+
</button>
|
|
496
|
+
<button *ngIf="registration.faceAdapter.text"
|
|
497
|
+
[color]="getButtonColor(registration)"
|
|
498
|
+
mat-button
|
|
499
|
+
[pectinCommand]="registration.command"
|
|
500
|
+
[matTooltip]="registration.tooltip"
|
|
501
|
+
>
|
|
502
|
+
<aup-command-face [face]="registration.faceAdapter.face"></aup-command-face>
|
|
503
|
+
</button>
|
|
504
|
+
</ng-container>
|
|
505
|
+
`,
|
|
506
|
+
providers: [{ provide: CommandContainer, useExisting: forwardRef(() => CommandBarComponent_1) }],
|
|
507
|
+
styles: [`:host {
|
|
508
|
+
display: inline-flex;
|
|
509
|
+
flex-direction: row;
|
|
510
|
+
align-items: center;
|
|
511
|
+
}`]
|
|
512
|
+
}),
|
|
513
|
+
__metadata("design:paramtypes", [])
|
|
514
|
+
], CommandBarComponent);
|
|
515
|
+
|
|
516
|
+
/**
|
|
517
|
+
*
|
|
518
|
+
*/
|
|
519
|
+
let CommandFaceComponent = class CommandFaceComponent extends DisposableComponent {
|
|
520
|
+
constructor(commandContainer) {
|
|
521
|
+
super();
|
|
522
|
+
this.commandContainer = commandContainer;
|
|
523
|
+
this.faceModel = new MutableValueModel();
|
|
524
|
+
this.ignoreIcon = false;
|
|
525
|
+
this.ignoreText = false;
|
|
526
|
+
this.includeMissingIconInLayout = false;
|
|
527
|
+
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
528
|
+
// overkill /c: when all you have is a hammer...
|
|
529
|
+
const faceAdapter = chain(this.faceModel).map(face => new CommandFace.Adapter(face));
|
|
530
|
+
this.iconModel = faceAdapter.pluck('icon');
|
|
531
|
+
this.textModel = faceAdapter.pluck('text');
|
|
532
|
+
this.positionModel = faceAdapter.pluck('iconPosition');
|
|
533
|
+
this.destructiveModel = faceAdapter.pluck('destructive');
|
|
534
|
+
}
|
|
535
|
+
get requiresMissingIconInLayout() {
|
|
536
|
+
return this.includeMissingIconInLayout && !this.iconModel.value;
|
|
537
|
+
}
|
|
538
|
+
ngOnInit() {
|
|
539
|
+
}
|
|
540
|
+
get iconPosition() {
|
|
541
|
+
var _a, _b, _c;
|
|
542
|
+
return (_c = (_a = this.positionModel.value) !== null && _a !== void 0 ? _a : (_b = this.commandContainer) === null || _b === void 0 ? void 0 : _b.getDefaultIconPosition()) !== null && _c !== void 0 ? _c : CommandFace.Position.START;
|
|
543
|
+
}
|
|
544
|
+
get shouldIncludeIcon() {
|
|
545
|
+
return (!this.ignoreIcon && this.iconModel.value) || this.includeMissingIconInLayout;
|
|
546
|
+
}
|
|
547
|
+
get iconStart() {
|
|
548
|
+
return this.shouldIncludeIcon && this.iconPosition === CommandFace.Position.START;
|
|
549
|
+
}
|
|
550
|
+
get iconEnd() {
|
|
551
|
+
return this.shouldIncludeIcon && this.iconPosition === CommandFace.Position.END;
|
|
552
|
+
}
|
|
553
|
+
get text() {
|
|
554
|
+
return this.ignoreText ? undefined : this.textModel.value;
|
|
555
|
+
}
|
|
556
|
+
get destructive() {
|
|
557
|
+
return this.destructiveModel.value;
|
|
558
|
+
}
|
|
559
|
+
};
|
|
560
|
+
CommandFaceComponent.ctorParameters = () => [
|
|
561
|
+
{ type: CommandContainer, decorators: [{ type: Optional }] }
|
|
562
|
+
];
|
|
563
|
+
__decorate([
|
|
564
|
+
Input('face'), StoreInValueModel('faceModel'),
|
|
565
|
+
__metadata("design:type", Object)
|
|
566
|
+
], CommandFaceComponent.prototype, "_rawFace", void 0);
|
|
567
|
+
__decorate([
|
|
568
|
+
Input(),
|
|
569
|
+
__metadata("design:type", Object)
|
|
570
|
+
], CommandFaceComponent.prototype, "ignoreIcon", void 0);
|
|
571
|
+
__decorate([
|
|
572
|
+
Input(),
|
|
573
|
+
__metadata("design:type", Object)
|
|
574
|
+
], CommandFaceComponent.prototype, "ignoreText", void 0);
|
|
575
|
+
__decorate([
|
|
576
|
+
Input(),
|
|
577
|
+
__metadata("design:type", Object)
|
|
578
|
+
], CommandFaceComponent.prototype, "includeMissingIconInLayout", void 0);
|
|
579
|
+
__decorate([
|
|
580
|
+
HostBinding('class.hide-icon'),
|
|
581
|
+
__metadata("design:type", Object),
|
|
582
|
+
__metadata("design:paramtypes", [])
|
|
583
|
+
], CommandFaceComponent.prototype, "requiresMissingIconInLayout", null);
|
|
584
|
+
__decorate([
|
|
585
|
+
HostBinding('class.destructive'),
|
|
586
|
+
__metadata("design:type", Boolean),
|
|
587
|
+
__metadata("design:paramtypes", [])
|
|
588
|
+
], CommandFaceComponent.prototype, "destructive", null);
|
|
589
|
+
CommandFaceComponent = __decorate([
|
|
590
|
+
Component({
|
|
591
|
+
selector: 'aup-command-face',
|
|
592
|
+
template: "<aup-icon *ngIf=\"iconStart\" [icon]=\"iconModel.value\"></aup-icon>\n<span *ngIf=\"this.text\">{{this.text}}</span>\n<aup-icon *ngIf=\"iconEnd\" [icon]=\"iconModel.value\"></aup-icon>\n",
|
|
593
|
+
encapsulation: ViewEncapsulation.None,
|
|
594
|
+
styles: ["aup-command-face{--icon-gap:var(--command-face-icon-gap);display:inline-flex;flex-direction:row;align-items:center}aup-command-face *+*{margin-left:var(--icon-gap)}aup-command-face.hide-icon aup-icon{visibility:hidden}"]
|
|
595
|
+
}),
|
|
596
|
+
__param(0, Optional()),
|
|
597
|
+
__metadata("design:paramtypes", [CommandContainer])
|
|
598
|
+
], CommandFaceComponent);
|
|
599
|
+
|
|
600
|
+
/**
|
|
601
|
+
*
|
|
602
|
+
*/
|
|
603
|
+
let CommandComponent = class CommandComponent extends DisposableComponent {
|
|
604
|
+
constructor(commandContainer) {
|
|
605
|
+
super();
|
|
606
|
+
this.commandContainer = commandContainer;
|
|
607
|
+
}
|
|
608
|
+
ngOnInit() {
|
|
609
|
+
this.registerDisposable(this.commandContainer.registerCommand(this.command, this.face));
|
|
610
|
+
}
|
|
611
|
+
};
|
|
612
|
+
CommandComponent.ctorParameters = () => [
|
|
613
|
+
{ type: CommandContainer }
|
|
614
|
+
];
|
|
615
|
+
__decorate([
|
|
616
|
+
Input(), TrackExternal(),
|
|
617
|
+
__metadata("design:type", Command)
|
|
618
|
+
], CommandComponent.prototype, "command", void 0);
|
|
619
|
+
__decorate([
|
|
620
|
+
Input(),
|
|
621
|
+
__metadata("design:type", Object)
|
|
622
|
+
], CommandComponent.prototype, "face", void 0);
|
|
623
|
+
CommandComponent = __decorate([
|
|
624
|
+
Component({
|
|
625
|
+
selector: 'aup-command',
|
|
626
|
+
template: ``
|
|
627
|
+
}),
|
|
628
|
+
__metadata("design:paramtypes", [CommandContainer])
|
|
629
|
+
], CommandComponent);
|
|
630
|
+
|
|
631
|
+
/**
|
|
632
|
+
*
|
|
633
|
+
*/
|
|
634
|
+
let PopupMenuRendererComponent = class PopupMenuRendererComponent extends DisposableComponent {
|
|
635
|
+
constructor() {
|
|
636
|
+
super();
|
|
637
|
+
this.xPosition = 'after';
|
|
638
|
+
this.yPosition = 'below';
|
|
639
|
+
this.commandExecuted = new EventEmitter();
|
|
640
|
+
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
641
|
+
const registrations = chain(this.commandRegistrations);
|
|
642
|
+
const iconCount = registrations.select(r => !!r.faceAdapter.icon).count();
|
|
643
|
+
this.hasMixedIcons = valueOf.all(iconCount.isGreaterThan(0), iconCount.doesNotEqual(registrations.length)).areTruthy();
|
|
644
|
+
}
|
|
645
|
+
ngOnInit() {
|
|
646
|
+
}
|
|
647
|
+
getPopupMenuCommandFor(item) {
|
|
648
|
+
const { when } = Dsl.disposeWith(this);
|
|
649
|
+
when(item.command.busy).becomesFalsey(() => {
|
|
650
|
+
this.commandExecuted.emit();
|
|
651
|
+
});
|
|
652
|
+
return item.command;
|
|
653
|
+
}
|
|
654
|
+
getButtonColor(registration) {
|
|
655
|
+
return registration.faceAdapter.destructive ? 'warn' : undefined;
|
|
656
|
+
}
|
|
657
|
+
};
|
|
658
|
+
__decorate([
|
|
659
|
+
Input(), TrackExternal(),
|
|
660
|
+
__metadata("design:type", ListModel)
|
|
661
|
+
], PopupMenuRendererComponent.prototype, "commandRegistrations", void 0);
|
|
662
|
+
__decorate([
|
|
663
|
+
Input(),
|
|
664
|
+
__metadata("design:type", String)
|
|
665
|
+
], PopupMenuRendererComponent.prototype, "xPosition", void 0);
|
|
666
|
+
__decorate([
|
|
667
|
+
Input(),
|
|
668
|
+
__metadata("design:type", String)
|
|
669
|
+
], PopupMenuRendererComponent.prototype, "yPosition", void 0);
|
|
670
|
+
__decorate([
|
|
671
|
+
Output(),
|
|
672
|
+
__metadata("design:type", Object)
|
|
673
|
+
], PopupMenuRendererComponent.prototype, "commandExecuted", void 0);
|
|
674
|
+
__decorate([
|
|
675
|
+
ViewChild(MatMenu),
|
|
676
|
+
__metadata("design:type", MatMenu)
|
|
677
|
+
], PopupMenuRendererComponent.prototype, "matMenu", void 0);
|
|
678
|
+
PopupMenuRendererComponent = __decorate([
|
|
679
|
+
Component({
|
|
680
|
+
selector: 'aup-popup-menu-renderer',
|
|
681
|
+
template: "<mat-menu [xPosition]=\"xPosition\" [yPosition]=\"yPosition\" >\n <button *ngFor=\"let registration of commandRegistrations.value\"\n mat-menu-item\n [pectinCommand]=\"getPopupMenuCommandFor(registration)\"\n >\n <aup-command-face [face]=\"registration.faceAdapter.face\" [includeMissingIconInLayout]=\"hasMixedIcons.value\"></aup-command-face>\n </button>\n</mat-menu>\n",
|
|
682
|
+
styles: [":host{display:inline-flex;flex-direction:row;align-items:center}"]
|
|
683
|
+
}),
|
|
684
|
+
__metadata("design:paramtypes", [])
|
|
685
|
+
], PopupMenuRendererComponent);
|
|
686
|
+
|
|
687
|
+
/**
|
|
688
|
+
*
|
|
689
|
+
*/
|
|
690
|
+
let AbstractPopupMenuComponent = class AbstractPopupMenuComponent extends CommandContainer {
|
|
691
|
+
constructor(cdr) {
|
|
692
|
+
super();
|
|
693
|
+
this.cdr = cdr;
|
|
694
|
+
this.xPosition = 'after';
|
|
695
|
+
this.yPosition = 'below';
|
|
696
|
+
}
|
|
697
|
+
ngAfterViewInit() {
|
|
698
|
+
this.cdr.detectChanges();
|
|
699
|
+
}
|
|
700
|
+
get matMenuComponent() {
|
|
701
|
+
var _a;
|
|
702
|
+
return (_a = this.popupMenu) === null || _a === void 0 ? void 0 : _a.matMenu;
|
|
703
|
+
}
|
|
704
|
+
closeMenu() {
|
|
705
|
+
this.menuTrigger.closeMenu();
|
|
706
|
+
}
|
|
707
|
+
getButtonColor(registration) {
|
|
708
|
+
return registration.faceAdapter.destructive ? 'warn' : undefined;
|
|
709
|
+
}
|
|
710
|
+
};
|
|
711
|
+
AbstractPopupMenuComponent.ctorParameters = () => [
|
|
712
|
+
{ type: ChangeDetectorRef }
|
|
713
|
+
];
|
|
714
|
+
__decorate([
|
|
715
|
+
Input(),
|
|
716
|
+
__metadata("design:type", String)
|
|
717
|
+
], AbstractPopupMenuComponent.prototype, "xPosition", void 0);
|
|
718
|
+
__decorate([
|
|
719
|
+
Input(),
|
|
720
|
+
__metadata("design:type", String)
|
|
721
|
+
], AbstractPopupMenuComponent.prototype, "yPosition", void 0);
|
|
722
|
+
__decorate([
|
|
723
|
+
ViewChild(PopupMenuRendererComponent),
|
|
724
|
+
__metadata("design:type", PopupMenuRendererComponent)
|
|
725
|
+
], AbstractPopupMenuComponent.prototype, "popupMenu", void 0);
|
|
726
|
+
__decorate([
|
|
727
|
+
ViewChild(MatMenuTrigger),
|
|
728
|
+
__metadata("design:type", MatMenuTrigger)
|
|
729
|
+
], AbstractPopupMenuComponent.prototype, "menuTrigger", void 0);
|
|
730
|
+
AbstractPopupMenuComponent = __decorate([
|
|
731
|
+
Component({
|
|
732
|
+
selector: 'aup-abstract-popup-menu',
|
|
733
|
+
template: ''
|
|
734
|
+
}),
|
|
735
|
+
__metadata("design:paramtypes", [ChangeDetectorRef])
|
|
736
|
+
], AbstractPopupMenuComponent);
|
|
737
|
+
|
|
738
|
+
var PopupMenuComponent_1;
|
|
739
|
+
/**
|
|
740
|
+
*
|
|
741
|
+
*/
|
|
742
|
+
let PopupMenuComponent = PopupMenuComponent_1 = class PopupMenuComponent extends AbstractPopupMenuComponent {
|
|
743
|
+
constructor(cdr) {
|
|
744
|
+
super(cdr);
|
|
745
|
+
this.faceModel = new MutableValueModel();
|
|
746
|
+
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
747
|
+
const faceAdapterModel = chain(this.faceModel).map(face => new CommandFace.Adapter(face));
|
|
748
|
+
this.faceTooltipModel = faceAdapterModel.pluck('tooltip');
|
|
749
|
+
}
|
|
750
|
+
getTooltip() {
|
|
751
|
+
return this.faceTooltipModel.value;
|
|
752
|
+
}
|
|
753
|
+
ngOnInit() {
|
|
754
|
+
}
|
|
755
|
+
};
|
|
756
|
+
PopupMenuComponent.ctorParameters = () => [
|
|
757
|
+
{ type: ChangeDetectorRef }
|
|
758
|
+
];
|
|
759
|
+
__decorate([
|
|
760
|
+
Input(), StoreInValueModel('faceModel'),
|
|
761
|
+
__metadata("design:type", Object)
|
|
762
|
+
], PopupMenuComponent.prototype, "face", void 0);
|
|
763
|
+
PopupMenuComponent = PopupMenuComponent_1 = __decorate([
|
|
764
|
+
Component({
|
|
765
|
+
selector: 'aup-popup-menu',
|
|
766
|
+
template: `
|
|
767
|
+
<!-- we can only render the button after th popup menu has initialised and rendered it's menu component -->
|
|
768
|
+
<button *ngIf="matMenuComponent" mat-icon-button [matMenuTriggerFor]="matMenuComponent" [matTooltip]="getTooltip()">
|
|
769
|
+
<aup-command-face [face]="face"></aup-command-face>
|
|
770
|
+
</button>
|
|
771
|
+
<aup-popup-menu-renderer [commandRegistrations]="commandRegistrations" [yPosition]="yPosition"
|
|
772
|
+
[xPosition]="xPosition"
|
|
773
|
+
(commandExecuted)="closeMenu()"></aup-popup-menu-renderer>
|
|
774
|
+
`,
|
|
775
|
+
providers: [{ provide: CommandContainer, useExisting: forwardRef(() => PopupMenuComponent_1) }]
|
|
776
|
+
}),
|
|
777
|
+
__metadata("design:paramtypes", [ChangeDetectorRef])
|
|
778
|
+
], PopupMenuComponent);
|
|
779
|
+
|
|
780
|
+
var MoreMenuComponent_1;
|
|
781
|
+
/**
|
|
782
|
+
*
|
|
783
|
+
*/
|
|
784
|
+
let MoreMenuComponent = MoreMenuComponent_1 = class MoreMenuComponent extends AbstractPopupMenuComponent {
|
|
785
|
+
constructor(cdr) {
|
|
786
|
+
super(cdr);
|
|
787
|
+
this.xPosition = "before"; // this should be the default unless overriden by the user.
|
|
788
|
+
}
|
|
789
|
+
};
|
|
790
|
+
MoreMenuComponent.ctorParameters = () => [
|
|
791
|
+
{ type: ChangeDetectorRef }
|
|
792
|
+
];
|
|
793
|
+
__decorate([
|
|
794
|
+
Input(),
|
|
795
|
+
__metadata("design:type", String)
|
|
796
|
+
], MoreMenuComponent.prototype, "tooltip", void 0);
|
|
797
|
+
MoreMenuComponent = MoreMenuComponent_1 = __decorate([
|
|
798
|
+
Component({
|
|
799
|
+
selector: 'aup-more-menu',
|
|
800
|
+
template: `
|
|
801
|
+
<!-- we can only render the button after th popup menu has initialised and rendered it's menu component -->
|
|
802
|
+
<button *ngIf="matMenuComponent" mat-icon-button [matMenuTriggerFor]="matMenuComponent" [matTooltip]="tooltip">
|
|
803
|
+
<mat-icon>more_vert</mat-icon>
|
|
804
|
+
</button>
|
|
805
|
+
<aup-popup-menu-renderer [commandRegistrations]="commandRegistrations"
|
|
806
|
+
[xPosition]="xPosition"
|
|
807
|
+
[yPosition]="yPosition"
|
|
808
|
+
(commandExecuted)="closeMenu()"></aup-popup-menu-renderer>
|
|
809
|
+
`,
|
|
810
|
+
providers: [{ provide: CommandContainer, useExisting: forwardRef(() => MoreMenuComponent_1) }]
|
|
811
|
+
}),
|
|
812
|
+
__metadata("design:paramtypes", [ChangeDetectorRef])
|
|
813
|
+
], MoreMenuComponent);
|
|
814
|
+
|
|
377
815
|
let FocusContainerComponent = class FocusContainerComponent extends DisposableComponent {
|
|
378
816
|
constructor(focusManager) {
|
|
379
817
|
super();
|
|
@@ -467,6 +905,7 @@ FocusableComponent = __decorate([
|
|
|
467
905
|
let AbstractInputComponent = class AbstractInputComponent extends DisposableComponent {
|
|
468
906
|
constructor() {
|
|
469
907
|
super();
|
|
908
|
+
this.onValueEditedListeners = new EventListenerList();
|
|
470
909
|
this.dense = false;
|
|
471
910
|
// TODO: fix this.
|
|
472
911
|
// tslint:disable-next-line:no-output-native
|
|
@@ -515,19 +954,19 @@ let AbstractInputComponent = class AbstractInputComponent extends DisposableComp
|
|
|
515
954
|
return this.enabled.value;
|
|
516
955
|
}
|
|
517
956
|
get enabled() {
|
|
518
|
-
return this.
|
|
957
|
+
return this.formValueModel.enabled;
|
|
519
958
|
}
|
|
520
959
|
hasErrors() {
|
|
521
960
|
return !this.errorList.query().isEmpty();
|
|
522
961
|
}
|
|
523
962
|
get errorList() {
|
|
524
|
-
return this.
|
|
963
|
+
return this.formValueModel.errorList;
|
|
525
964
|
}
|
|
526
965
|
get firstError() {
|
|
527
966
|
return this.hasErrors() ? this.errorList.value[0] : null;
|
|
528
967
|
}
|
|
529
968
|
get focusContext() {
|
|
530
|
-
return this.
|
|
969
|
+
return this.formValueModel.focusContext;
|
|
531
970
|
}
|
|
532
971
|
get floatLabel() {
|
|
533
972
|
return this.dense ? 'never' : this.userFloatLabel;
|
|
@@ -535,6 +974,13 @@ let AbstractInputComponent = class AbstractInputComponent extends DisposableComp
|
|
|
535
974
|
get showHint() {
|
|
536
975
|
return this.dense ? false : !!this.hint;
|
|
537
976
|
}
|
|
977
|
+
/**
|
|
978
|
+
* Invokes the callback when this components value is changed by a user edit.
|
|
979
|
+
* @param callback
|
|
980
|
+
*/
|
|
981
|
+
onValueEdited(callback) {
|
|
982
|
+
return this.onValueEditedListeners.add(callback);
|
|
983
|
+
}
|
|
538
984
|
};
|
|
539
985
|
__decorate([
|
|
540
986
|
Input(),
|
|
@@ -622,7 +1068,7 @@ AbstractInputComponent = __decorate([
|
|
|
622
1068
|
|
|
623
1069
|
let AbstractListInputComponent = class AbstractListInputComponent extends AbstractInputComponent {
|
|
624
1070
|
constructor() {
|
|
625
|
-
super(
|
|
1071
|
+
super();
|
|
626
1072
|
/**
|
|
627
1073
|
* A backing model for all our @Input() valueModel properties which should be defined as follows.
|
|
628
1074
|
*
|
|
@@ -634,11 +1080,56 @@ let AbstractListInputComponent = class AbstractListInputComponent extends Abstra
|
|
|
634
1080
|
* gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).
|
|
635
1081
|
*/
|
|
636
1082
|
// We have to register it as a disposable so it ditches any listeners when we're disposed.
|
|
637
|
-
this.
|
|
1083
|
+
this.formValueModel = this.registerDisposable(new Form.DelegatingListModel());
|
|
1084
|
+
this.componentListModel = new MutableListModel();
|
|
1085
|
+
this.setValueIsInProgress = new Guard();
|
|
1086
|
+
this.valueChange = new EventEmitter();
|
|
1087
|
+
const { when, valueOf, chain } = Dsl.disposeWith(this);
|
|
1088
|
+
const binding = new Binding.Identity(this.formValueModel, this.componentListModel).writeRight();
|
|
1089
|
+
const inExternalChange = valueOf.any(this.setValueIsInProgress, chain(binding.direction).equals(Binding.Direction.RIGHT)).areTruthy();
|
|
1090
|
+
when(this.componentListModel).changes((is, was) => {
|
|
1091
|
+
this.valueChange.emit(is);
|
|
1092
|
+
this.onValueEditedListeners.fire(l => l(is, was));
|
|
1093
|
+
}, {
|
|
1094
|
+
initialValue: 'ignore',
|
|
1095
|
+
// we never fire events during an external changes to the value. This allows
|
|
1096
|
+
// the component to behave when used in the conventional angular
|
|
1097
|
+
// fashion, i.e. [(value)]="..."
|
|
1098
|
+
unless: inExternalChange
|
|
1099
|
+
});
|
|
1100
|
+
DebugContext.tag(this.formValueModel, `${this.constructor.name}.formValueModel`);
|
|
1101
|
+
}
|
|
1102
|
+
// We add support for simple direct display of values by allowing components to be used
|
|
1103
|
+
// by `component.value = ...` This use of the component without a value model in tables
|
|
1104
|
+
// and the like.
|
|
1105
|
+
set value(value) {
|
|
1106
|
+
this.setValueIsInProgress.whileTrue(() => {
|
|
1107
|
+
if (!this.listHolder) {
|
|
1108
|
+
this.listHolder = new MutableListModel(value);
|
|
1109
|
+
this.listModel = this.listHolder;
|
|
1110
|
+
}
|
|
1111
|
+
else {
|
|
1112
|
+
this.listHolder.value = value;
|
|
1113
|
+
}
|
|
1114
|
+
});
|
|
638
1115
|
}
|
|
639
1116
|
};
|
|
1117
|
+
__decorate([
|
|
1118
|
+
Input(), TrackExternal({ delegateTo: 'formValueModel' }),
|
|
1119
|
+
__metadata("design:type", Object)
|
|
1120
|
+
], AbstractListInputComponent.prototype, "listModel", void 0);
|
|
1121
|
+
__decorate([
|
|
1122
|
+
Input(),
|
|
1123
|
+
__metadata("design:type", Array),
|
|
1124
|
+
__metadata("design:paramtypes", [Array])
|
|
1125
|
+
], AbstractListInputComponent.prototype, "value", null);
|
|
1126
|
+
__decorate([
|
|
1127
|
+
Output(),
|
|
1128
|
+
__metadata("design:type", Object)
|
|
1129
|
+
], AbstractListInputComponent.prototype, "valueChange", void 0);
|
|
640
1130
|
AbstractListInputComponent = __decorate([
|
|
641
|
-
Component({ template: '' })
|
|
1131
|
+
Component({ template: '' }),
|
|
1132
|
+
__metadata("design:paramtypes", [])
|
|
642
1133
|
], AbstractListInputComponent);
|
|
643
1134
|
|
|
644
1135
|
let AbstractValueInputComponent = class AbstractValueInputComponent extends AbstractInputComponent {
|
|
@@ -655,27 +1146,133 @@ let AbstractValueInputComponent = class AbstractValueInputComponent extends Abst
|
|
|
655
1146
|
* gets told it's an Object and can't scan for a base type annotated with @DelegateUsing(..).
|
|
656
1147
|
*/
|
|
657
1148
|
// We have to register it as a disposable so it ditches any listeners when we're disposed.
|
|
658
|
-
this.
|
|
1149
|
+
this.formValueModel = this.registerDisposable(new Form.DelegatingValueModel());
|
|
1150
|
+
this.setValueInProgress = new Guard();
|
|
1151
|
+
this.componentValueModel = new MutableValueModel();
|
|
1152
|
+
this.valueChange = new EventEmitter();
|
|
1153
|
+
const { when, chain, valueOf } = Dsl.disposeWith(this);
|
|
1154
|
+
const binding = new Binding.Identity(this.formValueModel, this.componentValueModel).writeRight();
|
|
1155
|
+
const inExternalChange = valueOf.any(this.setValueInProgress, chain(binding.direction).equals(Binding.Direction.RIGHT)).areTruthy();
|
|
1156
|
+
when(this.componentValueModel).changes((is, was) => {
|
|
1157
|
+
this.valueChange.emit(is);
|
|
1158
|
+
this.onValueEditedListeners.fire(l => l(is, was));
|
|
1159
|
+
}, {
|
|
1160
|
+
initialValue: 'ignore',
|
|
1161
|
+
// we never fire events during an external set value operation. This allows
|
|
1162
|
+
// the component to behave when used in the conventional angular
|
|
1163
|
+
// fashion, i.e. [(value)]="..."
|
|
1164
|
+
unless: inExternalChange
|
|
1165
|
+
});
|
|
1166
|
+
DebugContext.tag(this.formValueModel, `${this.constructor.name}.formValueModel`);
|
|
1167
|
+
}
|
|
1168
|
+
// We add support for simple direct display of values by allowing components to be used
|
|
1169
|
+
// by `component.value = ...` This use of the component without a value model in tables
|
|
1170
|
+
// and the like.
|
|
1171
|
+
set value(value) {
|
|
1172
|
+
this.setValueInProgress.whileTrue(() => {
|
|
1173
|
+
if (!this.plainValueHolder) {
|
|
1174
|
+
this.plainValueHolder = new MutableValueModel(value);
|
|
1175
|
+
this.valueModel = this.plainValueHolder;
|
|
1176
|
+
}
|
|
1177
|
+
else {
|
|
1178
|
+
this.plainValueHolder.value = value;
|
|
1179
|
+
}
|
|
1180
|
+
});
|
|
659
1181
|
}
|
|
660
1182
|
};
|
|
1183
|
+
__decorate([
|
|
1184
|
+
Input(), TrackExternal({ delegateTo: 'formValueModel' }),
|
|
1185
|
+
__metadata("design:type", Object)
|
|
1186
|
+
], AbstractValueInputComponent.prototype, "valueModel", void 0);
|
|
1187
|
+
__decorate([
|
|
1188
|
+
Input(),
|
|
1189
|
+
__metadata("design:type", Object),
|
|
1190
|
+
__metadata("design:paramtypes", [Object])
|
|
1191
|
+
], AbstractValueInputComponent.prototype, "value", null);
|
|
1192
|
+
__decorate([
|
|
1193
|
+
Output(),
|
|
1194
|
+
__metadata("design:type", Object)
|
|
1195
|
+
], AbstractValueInputComponent.prototype, "valueChange", void 0);
|
|
661
1196
|
AbstractValueInputComponent = __decorate([
|
|
662
1197
|
Component({ template: '' }),
|
|
663
1198
|
__metadata("design:paramtypes", [])
|
|
664
1199
|
], AbstractValueInputComponent);
|
|
665
1200
|
|
|
1201
|
+
/**
|
|
1202
|
+
* Using templates (not only supported for nil values:
|
|
1203
|
+
* <aup-autocomplete-input [valueModel]="myModel" [options]="myOptions">
|
|
1204
|
+
* <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
|
|
1205
|
+
* </aup-autocomplete-input>
|
|
1206
|
+
*/
|
|
1207
|
+
let AutocompleteInputComponent = class AutocompleteInputComponent extends AbstractValueInputComponent {
|
|
1208
|
+
constructor() {
|
|
1209
|
+
super();
|
|
1210
|
+
this.filterValue = new MutableValueModel();
|
|
1211
|
+
this.optionLabelFormat = (option) => (option && this.optionLabel) ? option[this.optionLabel] : option;
|
|
1212
|
+
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
1213
|
+
const lowerCaseFilterValue = chain(this.filterValue)
|
|
1214
|
+
.map(v => ___default.isString(v) ? v.toLowerCase() : '');
|
|
1215
|
+
this.filteredOptions = chain(this.optionsModel)
|
|
1216
|
+
.select(option => {
|
|
1217
|
+
return ___default.isEmpty(this.filterValue.value) || this.optionLabelFormat(option).toString().toLowerCase().includes(lowerCaseFilterValue.value);
|
|
1218
|
+
}, { dependsOn: lowerCaseFilterValue });
|
|
1219
|
+
}
|
|
1220
|
+
ngOnInit() {
|
|
1221
|
+
}
|
|
1222
|
+
formatOption(option) {
|
|
1223
|
+
return this.optionLabelFormat(option);
|
|
1224
|
+
}
|
|
1225
|
+
updateFilter($event) {
|
|
1226
|
+
this.filterValue.value = $event;
|
|
1227
|
+
}
|
|
1228
|
+
onSelect($event) {
|
|
1229
|
+
this.valueModel.value = $event.option.value;
|
|
1230
|
+
}
|
|
1231
|
+
};
|
|
1232
|
+
__decorate([
|
|
1233
|
+
Input(), TrackExternal(),
|
|
1234
|
+
__metadata("design:type", ListModel)
|
|
1235
|
+
], AutocompleteInputComponent.prototype, "optionsModel", void 0);
|
|
1236
|
+
__decorate([
|
|
1237
|
+
Input(), StoreInListModel('optionsModel'),
|
|
1238
|
+
__metadata("design:type", Array)
|
|
1239
|
+
], AutocompleteInputComponent.prototype, "options", void 0);
|
|
1240
|
+
__decorate([
|
|
1241
|
+
Input(),
|
|
1242
|
+
__metadata("design:type", Object)
|
|
1243
|
+
], AutocompleteInputComponent.prototype, "optionLabel", void 0);
|
|
1244
|
+
__decorate([
|
|
1245
|
+
Input(),
|
|
1246
|
+
__metadata("design:type", Boolean)
|
|
1247
|
+
], AutocompleteInputComponent.prototype, "allowNil", void 0);
|
|
1248
|
+
__decorate([
|
|
1249
|
+
ContentChild('nilOptionTemplate'),
|
|
1250
|
+
__metadata("design:type", TemplateRef)
|
|
1251
|
+
], AutocompleteInputComponent.prototype, "nilOptionTemplateRef", void 0);
|
|
1252
|
+
__decorate([
|
|
1253
|
+
Input(),
|
|
1254
|
+
__metadata("design:type", Function)
|
|
1255
|
+
], AutocompleteInputComponent.prototype, "optionLabelFormat", void 0);
|
|
1256
|
+
AutocompleteInputComponent = __decorate([
|
|
1257
|
+
Component({
|
|
1258
|
+
selector: 'aup-autocomplete-input',
|
|
1259
|
+
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input type=\"string\"\n matInput\n [matAutocomplete]=\"autocomplete\"\n placeholder=\"{{placeholder}}\"\n [ngModel]=\"componentValueModel.value\"\n (ngModelChange)=\"updateFilter($event)\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-autocomplete #autocomplete [displayWith]=\"optionLabelFormat\" [autoActiveFirstOption]=\"true\" (optionSelected)=\"onSelect($event)\">\n <mat-option *ngFor=\"let option of filteredOptions.value; let i = index\"\n [value]=\"option\"\n >{{formatOption(option)}}</mat-option>\n <mat-option *ngIf=\"allowNil\">{{placeholder}}</mat-option>\n </mat-autocomplete>\n\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
|
|
1260
|
+
styles: [":host{display:inline-block}mat-form-field{width:100%}"]
|
|
1261
|
+
}),
|
|
1262
|
+
__metadata("design:paramtypes", [])
|
|
1263
|
+
], AutocompleteInputComponent);
|
|
1264
|
+
|
|
666
1265
|
let CheckboxInputComponent = class CheckboxInputComponent extends AbstractValueInputComponent {
|
|
667
1266
|
constructor() {
|
|
668
1267
|
super();
|
|
1268
|
+
// @Input() @TrackExternal({ delegateTo: 'inputModel' })
|
|
1269
|
+
// valueModel: Form.ValueModelBase<boolean> | IMutableValueModel<boolean>;
|
|
669
1270
|
this.color = 'accent';
|
|
670
1271
|
this.labelPosition = 'after';
|
|
671
1272
|
}
|
|
672
1273
|
ngOnInit() {
|
|
673
1274
|
}
|
|
674
1275
|
};
|
|
675
|
-
__decorate([
|
|
676
|
-
Input(), TrackExternal({ delegateTo: 'inputModel' }),
|
|
677
|
-
__metadata("design:type", Object)
|
|
678
|
-
], CheckboxInputComponent.prototype, "valueModel", void 0);
|
|
679
1276
|
__decorate([
|
|
680
1277
|
Input(),
|
|
681
1278
|
__metadata("design:type", String)
|
|
@@ -687,25 +1284,67 @@ __decorate([
|
|
|
687
1284
|
CheckboxInputComponent = __decorate([
|
|
688
1285
|
Component({
|
|
689
1286
|
selector: 'aup-checkbox-input',
|
|
690
|
-
template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [(ngModel)]=\"
|
|
1287
|
+
template: "<!-- TODO: add focus binding -->\n<mat-checkbox\n [(ngModel)]=\"componentValueModel.value\"\n [color]=\"color\"\n [labelPosition]=\"labelPosition\"\n [disabled]=\"!isEnabled()\"\n>{{label}}</mat-checkbox>\n<mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n<mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n",
|
|
691
1288
|
styles: [":host{display:inline-flex;flex-direction:column;padding:24px 0 16px}:host.dense{padding:6px 0 2px}mat-error,mat-hint{margin-top:4px;margin-left:24px;font-size:12px;font-weight:400;line-height:13.5px}"]
|
|
692
1289
|
}),
|
|
693
1290
|
__metadata("design:paramtypes", [])
|
|
694
1291
|
], CheckboxInputComponent);
|
|
695
1292
|
|
|
1293
|
+
/**
|
|
1294
|
+
* Using templates:
|
|
1295
|
+
* <aup-multiple-select-input [valueModel]="myModel" [options]="myOptions">
|
|
1296
|
+
* <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
|
|
1297
|
+
* <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
|
|
1298
|
+
* </aup-multiple-select_input>
|
|
1299
|
+
*/
|
|
1300
|
+
let MultipleSelectInputComponent = class MultipleSelectInputComponent extends AbstractListInputComponent {
|
|
1301
|
+
constructor() {
|
|
1302
|
+
super();
|
|
1303
|
+
this.optionLabelFormat = (option) => (option && this.optionLabel) ? option[this.optionLabel] : option;
|
|
1304
|
+
}
|
|
1305
|
+
ngOnInit() {
|
|
1306
|
+
}
|
|
1307
|
+
};
|
|
1308
|
+
__decorate([
|
|
1309
|
+
Input(), TrackExternal(),
|
|
1310
|
+
__metadata("design:type", ListModel)
|
|
1311
|
+
], MultipleSelectInputComponent.prototype, "optionsModel", void 0);
|
|
1312
|
+
__decorate([
|
|
1313
|
+
Input(), StoreInListModel('optionsModel'),
|
|
1314
|
+
__metadata("design:type", Array)
|
|
1315
|
+
], MultipleSelectInputComponent.prototype, "options", void 0);
|
|
1316
|
+
__decorate([
|
|
1317
|
+
Input(),
|
|
1318
|
+
__metadata("design:type", Object)
|
|
1319
|
+
], MultipleSelectInputComponent.prototype, "optionLabel", void 0);
|
|
1320
|
+
__decorate([
|
|
1321
|
+
ContentChild('optionTemplate'),
|
|
1322
|
+
__metadata("design:type", TemplateRef)
|
|
1323
|
+
], MultipleSelectInputComponent.prototype, "optionTemplateRef", void 0);
|
|
1324
|
+
__decorate([
|
|
1325
|
+
Input(),
|
|
1326
|
+
__metadata("design:type", Function)
|
|
1327
|
+
], MultipleSelectInputComponent.prototype, "optionLabelFormat", void 0);
|
|
1328
|
+
MultipleSelectInputComponent = __decorate([
|
|
1329
|
+
Component({
|
|
1330
|
+
selector: 'aup-multiple-select-input',
|
|
1331
|
+
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n multiple\n [(ngModel)]=\"componentListModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngFor=\"let option of 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=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
|
|
1332
|
+
styles: [":host{display:inline-block}mat-form-field{width:100%}"]
|
|
1333
|
+
}),
|
|
1334
|
+
__metadata("design:paramtypes", [])
|
|
1335
|
+
], MultipleSelectInputComponent);
|
|
1336
|
+
|
|
696
1337
|
let NumberInputComponent = class NumberInputComponent extends AbstractValueInputComponent {
|
|
697
1338
|
constructor() {
|
|
698
1339
|
super();
|
|
1340
|
+
// @Input() @TrackExternal({ delegateTo: 'inputModel' })
|
|
1341
|
+
// valueModel: Form.ValueModelBase<number> | IMutableValueModel<number>;
|
|
699
1342
|
this.min = Number.MIN_SAFE_INTEGER;
|
|
700
1343
|
this.max = Number.MAX_SAFE_INTEGER;
|
|
701
1344
|
}
|
|
702
1345
|
ngOnInit() {
|
|
703
1346
|
}
|
|
704
1347
|
};
|
|
705
|
-
__decorate([
|
|
706
|
-
Input(), TrackExternal({ delegateTo: 'inputModel' }),
|
|
707
|
-
__metadata("design:type", Object)
|
|
708
|
-
], NumberInputComponent.prototype, "valueModel", void 0);
|
|
709
1348
|
__decorate([
|
|
710
1349
|
Input(),
|
|
711
1350
|
__metadata("design:type", Object)
|
|
@@ -717,27 +1356,25 @@ __decorate([
|
|
|
717
1356
|
NumberInputComponent = __decorate([
|
|
718
1357
|
Component({
|
|
719
1358
|
selector: 'aup-number-input',
|
|
720
|
-
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)]=\"
|
|
1359
|
+
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)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [min]=\"min\"\n [max]=\"max\"\n >\n <mat-hint *ngIf=\"hint && !dense\" >{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
|
|
721
1360
|
styles: [""]
|
|
722
1361
|
}),
|
|
723
1362
|
__metadata("design:paramtypes", [])
|
|
724
1363
|
], NumberInputComponent);
|
|
725
1364
|
|
|
726
1365
|
let PasswordInputComponent = class PasswordInputComponent extends AbstractValueInputComponent {
|
|
1366
|
+
// @Input() @TrackExternal({ delegateTo: 'inputModel' })
|
|
1367
|
+
// valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;
|
|
727
1368
|
constructor() {
|
|
728
1369
|
super();
|
|
729
1370
|
}
|
|
730
1371
|
ngOnInit() {
|
|
731
1372
|
}
|
|
732
1373
|
};
|
|
733
|
-
__decorate([
|
|
734
|
-
Input(), TrackExternal({ delegateTo: 'inputModel' }),
|
|
735
|
-
__metadata("design:type", Object)
|
|
736
|
-
], PasswordInputComponent.prototype, "valueModel", void 0);
|
|
737
1374
|
PasswordInputComponent = __decorate([
|
|
738
1375
|
Component({
|
|
739
1376
|
selector: 'aup-password-input',
|
|
740
|
-
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)]=\"
|
|
1377
|
+
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)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
|
|
741
1378
|
styles: [""]
|
|
742
1379
|
}),
|
|
743
1380
|
__metadata("design:paramtypes", [])
|
|
@@ -747,6 +1384,7 @@ PasswordInputComponent = __decorate([
|
|
|
747
1384
|
* Using templates:
|
|
748
1385
|
* <aup-select-input [valueModel]="myModel" [options]="myOptions">
|
|
749
1386
|
* <ng-template #optionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
|
|
1387
|
+
* <ng-template #nilOptionTemplate let-option>{{option.thePropertyYouWant}}</ng-template>
|
|
750
1388
|
* </aup-select_input>
|
|
751
1389
|
*/
|
|
752
1390
|
let SelectInputComponent = class SelectInputComponent extends AbstractValueInputComponent {
|
|
@@ -757,10 +1395,6 @@ let SelectInputComponent = class SelectInputComponent extends AbstractValueInput
|
|
|
757
1395
|
ngOnInit() {
|
|
758
1396
|
}
|
|
759
1397
|
};
|
|
760
|
-
__decorate([
|
|
761
|
-
Input(), TrackExternal({ delegateTo: 'inputModel' }),
|
|
762
|
-
__metadata("design:type", Object)
|
|
763
|
-
], SelectInputComponent.prototype, "valueModel", void 0);
|
|
764
1398
|
__decorate([
|
|
765
1399
|
Input(), TrackExternal(),
|
|
766
1400
|
__metadata("design:type", ListModel)
|
|
@@ -792,7 +1426,7 @@ __decorate([
|
|
|
792
1426
|
SelectInputComponent = __decorate([
|
|
793
1427
|
Component({
|
|
794
1428
|
selector: 'aup-select-input',
|
|
795
|
-
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"
|
|
1429
|
+
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-option *ngIf=\"allowNil\">\n <ng-container *ngIf=\"!nilOptionTemplateRef\">{{placeholder}}</ng-container>\n <ng-container *ngIf=\"nilOptionTemplateRef\" [ngTemplateOutlet]=\"nilOptionTemplateRef\"></ng-container>\n </mat-option>\n <mat-option *ngFor=\"let option of 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=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
|
|
796
1430
|
styles: [":host{display:inline-block}mat-form-field{width:100%}"]
|
|
797
1431
|
}),
|
|
798
1432
|
__metadata("design:paramtypes", [])
|
|
@@ -803,17 +1437,13 @@ let StringInputComponent = class StringInputComponent extends AbstractValueInput
|
|
|
803
1437
|
super();
|
|
804
1438
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
805
1439
|
this.clearCommand = Command.create(() => {
|
|
806
|
-
this.
|
|
1440
|
+
this.componentValueModel.value = null;
|
|
807
1441
|
});
|
|
808
|
-
this.clearCommand.disableWhile(chain.stringValue(this.
|
|
1442
|
+
this.clearCommand.disableWhile(chain.stringValue(this.componentValueModel).isBlank());
|
|
809
1443
|
}
|
|
810
1444
|
ngOnInit() {
|
|
811
1445
|
}
|
|
812
1446
|
};
|
|
813
|
-
__decorate([
|
|
814
|
-
Input(), TrackExternal({ delegateTo: 'inputModel' }),
|
|
815
|
-
__metadata("design:type", Object)
|
|
816
|
-
], StringInputComponent.prototype, "valueModel", void 0);
|
|
817
1447
|
__decorate([
|
|
818
1448
|
Input(), TrackExternal({ defaultValue: false }),
|
|
819
1449
|
__metadata("design:type", ValueModel)
|
|
@@ -825,7 +1455,7 @@ __decorate([
|
|
|
825
1455
|
StringInputComponent = __decorate([
|
|
826
1456
|
Component({
|
|
827
1457
|
selector: 'aup-string-input',
|
|
828
|
-
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"
|
|
1458
|
+
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <input matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n >\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n <button mat-button mat-icon-button matSuffix *ngIf=\"enableClear\" [pectinCommand]=\"clearCommand\">\n <aup-icon icon=\"mat:close\"></aup-icon>\n </button>\n</mat-form-field>\n\n",
|
|
829
1459
|
styles: ["button[disabled]{visibility:hidden}"]
|
|
830
1460
|
}),
|
|
831
1461
|
__metadata("design:paramtypes", [])
|
|
@@ -834,16 +1464,14 @@ StringInputComponent = __decorate([
|
|
|
834
1464
|
let TextInputComponent = class TextInputComponent extends AbstractValueInputComponent {
|
|
835
1465
|
constructor() {
|
|
836
1466
|
super();
|
|
1467
|
+
// @Input() @TrackExternal({ delegateTo: 'inputModel' })
|
|
1468
|
+
// valueModel: Form.ValueModelBase<string> | IMutableValueModel<string>;
|
|
837
1469
|
this.rows = 2;
|
|
838
1470
|
// const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);
|
|
839
1471
|
}
|
|
840
1472
|
ngOnInit() {
|
|
841
1473
|
}
|
|
842
1474
|
};
|
|
843
|
-
__decorate([
|
|
844
|
-
Input(), TrackExternal({ delegateTo: 'inputModel' }),
|
|
845
|
-
__metadata("design:type", Object)
|
|
846
|
-
], TextInputComponent.prototype, "valueModel", void 0);
|
|
847
1475
|
__decorate([
|
|
848
1476
|
Input(),
|
|
849
1477
|
__metadata("design:type", Object)
|
|
@@ -855,12 +1483,59 @@ __decorate([
|
|
|
855
1483
|
TextInputComponent = __decorate([
|
|
856
1484
|
Component({
|
|
857
1485
|
selector: 'aup-text-input',
|
|
858
|
-
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <textarea matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"
|
|
1486
|
+
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <textarea matInput\n placeholder=\"{{placeholder}}\"\n [(ngModel)]=\"componentValueModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"focusContext\"\n [errorStateMatcher]=\"errorStateMatcher\"\n [rows]=\"rows\"\n [cols]=\"cols\"\n >\n </textarea>\n <mat-hint *ngIf=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n\n",
|
|
859
1487
|
styles: ["button[disabled]{visibility:hidden}textarea{overflow:auto}"]
|
|
860
1488
|
}),
|
|
861
1489
|
__metadata("design:paramtypes", [])
|
|
862
1490
|
], TextInputComponent);
|
|
863
1491
|
|
|
1492
|
+
var IconComponent_1;
|
|
1493
|
+
let IconComponent = IconComponent_1 = class IconComponent {
|
|
1494
|
+
constructor() {
|
|
1495
|
+
this.allowedPrefixes = Enum.values(IconComponent_1.IconPrefix).map(p => `${p}:`);
|
|
1496
|
+
this.iconPrefix = IconComponent_1.IconPrefix;
|
|
1497
|
+
}
|
|
1498
|
+
set icon(iconName) {
|
|
1499
|
+
this._icon = iconName;
|
|
1500
|
+
if (!iconName) {
|
|
1501
|
+
this.errorMessage = 'icon is nil';
|
|
1502
|
+
this.prefix = undefined;
|
|
1503
|
+
return;
|
|
1504
|
+
}
|
|
1505
|
+
const colonIndex = iconName.indexOf(':');
|
|
1506
|
+
if (colonIndex > 0) {
|
|
1507
|
+
this.prefix = this.icon.slice(0, colonIndex);
|
|
1508
|
+
this.suffix = this.icon.slice(colonIndex + 1);
|
|
1509
|
+
}
|
|
1510
|
+
if (this.prefix) {
|
|
1511
|
+
this.errorMessage = `Unknown icon "${iconName}"`;
|
|
1512
|
+
}
|
|
1513
|
+
this.errorMessage = `Unknown icon prefix, expected one of [${this.allowedPrefixes.join(',')}] got "${this.prefix}:"`;
|
|
1514
|
+
}
|
|
1515
|
+
get icon() {
|
|
1516
|
+
return this._icon;
|
|
1517
|
+
}
|
|
1518
|
+
};
|
|
1519
|
+
__decorate([
|
|
1520
|
+
Input(),
|
|
1521
|
+
__metadata("design:type", String),
|
|
1522
|
+
__metadata("design:paramtypes", [String])
|
|
1523
|
+
], IconComponent.prototype, "icon", null);
|
|
1524
|
+
IconComponent = IconComponent_1 = __decorate([
|
|
1525
|
+
Component({
|
|
1526
|
+
selector: 'aup-icon',
|
|
1527
|
+
template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"iconPrefix.SVG\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"iconPrefix.MATERIAL\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"iconPrefix.FONT_AWESOME\"\n class=\"faIconWrapper\">\n <fa-icon [icon]=\"suffix\">\n </fa-icon>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n",
|
|
1528
|
+
styles: [":host{display:inline-flex;width:24px}fa-icon{vertical-align:middle}.faIconWrapper{text-align:center;width:24px;height:24px}.svgIcon{width:24px;height:24px}:host(.mat-chip-remove) mat-icon{font-size:18px}mat-icon{width:inherit;height:inherit}"]
|
|
1529
|
+
})
|
|
1530
|
+
], IconComponent);
|
|
1531
|
+
(function (IconComponent) {
|
|
1532
|
+
IconComponent.IconPrefix = Enum({
|
|
1533
|
+
SVG: 'svg',
|
|
1534
|
+
FONT_AWESOME: 'fa',
|
|
1535
|
+
MATERIAL: 'mat'
|
|
1536
|
+
});
|
|
1537
|
+
})(IconComponent || (IconComponent = {}));
|
|
1538
|
+
|
|
864
1539
|
let NoopComponent = class NoopComponent {
|
|
865
1540
|
constructor() {
|
|
866
1541
|
}
|
|
@@ -1045,6 +1720,7 @@ class CellHeaderPortalRef extends CellPortalRef {
|
|
|
1045
1720
|
assert$1.isTruthy(host);
|
|
1046
1721
|
host[HEADER_CELL_RENDERER_PORTAL] = new ComponentPortal(this.componentType);
|
|
1047
1722
|
}
|
|
1723
|
+
// @Trace()
|
|
1048
1724
|
onPortalAttached(host, portalComponent) {
|
|
1049
1725
|
this.initialiseHeader(portalComponent, host.column);
|
|
1050
1726
|
}
|
|
@@ -1060,13 +1736,15 @@ class ComponentCellRendererPortalRef extends CellRendererPortalRef {
|
|
|
1060
1736
|
initialiseHost(host, columnModel) {
|
|
1061
1737
|
host[CELL_RENDERER_PORTAL] = new ComponentPortal(this.componentType);
|
|
1062
1738
|
}
|
|
1739
|
+
// @Trace()
|
|
1063
1740
|
onPortalAttached(host, portalComponent) {
|
|
1064
1741
|
host[PORTAL_RENDERER_COMPONENT] = portalComponent;
|
|
1065
|
-
this.updateComponent(portalComponent, host.getRowData());
|
|
1742
|
+
this.updateComponent(portalComponent, host.getRowData(), true);
|
|
1066
1743
|
}
|
|
1744
|
+
// @Trace()
|
|
1067
1745
|
pushState(host) {
|
|
1068
1746
|
if (host[PORTAL_RENDERER_COMPONENT]) {
|
|
1069
|
-
this.updateComponent(host[PORTAL_RENDERER_COMPONENT], host.getRowData());
|
|
1747
|
+
this.updateComponent(host[PORTAL_RENDERER_COMPONENT], host.getRowData(), false);
|
|
1070
1748
|
}
|
|
1071
1749
|
}
|
|
1072
1750
|
}
|
|
@@ -1103,6 +1781,7 @@ class TemplateCellRendererPortalRef extends CellRendererPortalRef {
|
|
|
1103
1781
|
onPortalAttached(host, portalComponent) {
|
|
1104
1782
|
// don't care
|
|
1105
1783
|
}
|
|
1784
|
+
// @Trace()
|
|
1106
1785
|
pushState(host) {
|
|
1107
1786
|
host[CELL_RENDERER_PORTAL] = this.createPortal(host.getRowData());
|
|
1108
1787
|
host.fillCell = this.fillCell;
|
|
@@ -1271,6 +1950,7 @@ SelectHeaderCellRendererComponent = __decorate([
|
|
|
1271
1950
|
const noop = () => {
|
|
1272
1951
|
};
|
|
1273
1952
|
const ɵ0 = noop;
|
|
1953
|
+
const CELL_RENDERER_COMPONENT_ROW_CACHE = Symbol("aup-cell-renderer:row-data-cache");
|
|
1274
1954
|
class ColumnModel {
|
|
1275
1955
|
constructor(columnId, defaults) {
|
|
1276
1956
|
this.columnId = columnId;
|
|
@@ -1359,21 +2039,62 @@ __decorate([
|
|
|
1359
2039
|
__metadata("design:returntype", Object)
|
|
1360
2040
|
], ColumnModel.prototype, "getColumnTextProperties", null);
|
|
1361
2041
|
class PropertyColumnModel extends ColumnModel {
|
|
1362
|
-
constructor(property, defaults) {
|
|
1363
|
-
super(
|
|
2042
|
+
constructor(id, property, defaults) {
|
|
2043
|
+
super(id, defaults);
|
|
1364
2044
|
this.property = property;
|
|
1365
2045
|
this._format = (value) => value;
|
|
1366
2046
|
this.cellRenderer(DefaultCellRendererComponent);
|
|
1367
2047
|
}
|
|
1368
|
-
cellRenderer(componentType) {
|
|
1369
|
-
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData) => {
|
|
2048
|
+
cellRenderer(componentType, onComponentInitOrOptions) {
|
|
2049
|
+
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
|
|
2050
|
+
if (firstTime) {
|
|
2051
|
+
if (___default.isFunction(onComponentInitOrOptions)) {
|
|
2052
|
+
onComponentInitOrOptions(component);
|
|
2053
|
+
}
|
|
2054
|
+
else {
|
|
2055
|
+
if (___default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
|
|
2056
|
+
onComponentInitOrOptions.onComponentInit(component);
|
|
2057
|
+
}
|
|
2058
|
+
}
|
|
2059
|
+
}
|
|
1370
2060
|
component.value = this._format(rowData.row[this.property]);
|
|
2061
|
+
if (!___default.isFunction(onComponentInitOrOptions) && ___default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
|
|
2062
|
+
onComponentInitOrOptions.onRowUpdate(component, rowData.row);
|
|
2063
|
+
}
|
|
1371
2064
|
}));
|
|
1372
2065
|
return this;
|
|
1373
2066
|
}
|
|
1374
|
-
|
|
2067
|
+
mutableCellRenderer(componentType, options) {
|
|
2068
|
+
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
|
|
2069
|
+
// keep a local copy most recent row value so it's available to teh
|
|
2070
|
+
// edit callback without having to add/remove subscribers all the time.
|
|
2071
|
+
component[CELL_RENDERER_COMPONENT_ROW_CACHE] = rowData.row;
|
|
2072
|
+
let disableEditCallback = false;
|
|
2073
|
+
if (firstTime) {
|
|
2074
|
+
if (___default.isFunction(options === null || options === void 0 ? void 0 : options.onComponentInit)) {
|
|
2075
|
+
options.onComponentInit(component);
|
|
2076
|
+
}
|
|
2077
|
+
// install our edit callback
|
|
2078
|
+
component.onValueEdited((is, was) => {
|
|
2079
|
+
if (!disableEditCallback) {
|
|
2080
|
+
options.onValueEdit(component[CELL_RENDERER_COMPONENT_ROW_CACHE], is, was);
|
|
2081
|
+
}
|
|
2082
|
+
});
|
|
2083
|
+
}
|
|
2084
|
+
// now push the value the component and disable the callback just incase the component misbehaves
|
|
2085
|
+
// and fires a value change during the operation.
|
|
2086
|
+
disableEditCallback = true;
|
|
2087
|
+
component.value = rowData.row[this.property];
|
|
2088
|
+
disableEditCallback = false;
|
|
2089
|
+
if (!___default.isFunction(options) && ___default.isFunction(options === null || options === void 0 ? void 0 : options.onRowUpdate)) {
|
|
2090
|
+
options.onRowUpdate(component, rowData.row);
|
|
2091
|
+
}
|
|
2092
|
+
}));
|
|
2093
|
+
return this;
|
|
2094
|
+
}
|
|
2095
|
+
cellEditor(editor, validatorsOrInitialiser, onComponentInit) {
|
|
1375
2096
|
const validators = Array.isArray(validatorsOrInitialiser) ? validatorsOrInitialiser : undefined;
|
|
1376
|
-
const initialiser = ___default.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser :
|
|
2097
|
+
const initialiser = ___default.isFunction(validatorsOrInitialiser) ? validatorsOrInitialiser : onComponentInit;
|
|
1377
2098
|
this.configureCellEditor(new CellEditorPortalRef(editor, (component, editSession) => {
|
|
1378
2099
|
const formValueModel = editSession.form.pluck(this.property);
|
|
1379
2100
|
if (validators) {
|
|
@@ -1396,8 +2117,8 @@ class PropertyColumnModel extends ColumnModel {
|
|
|
1396
2117
|
}
|
|
1397
2118
|
}
|
|
1398
2119
|
class ListPropertyColumnModel extends ColumnModel {
|
|
1399
|
-
constructor(property, defaults) {
|
|
1400
|
-
super(
|
|
2120
|
+
constructor(id, property, defaults) {
|
|
2121
|
+
super(id, defaults);
|
|
1401
2122
|
this.property = property;
|
|
1402
2123
|
this._format = (value) => value.map(v => v === null || v === void 0 ? void 0 : v.toString()).join(', ');
|
|
1403
2124
|
this.cellRenderer(DefaultCellRendererComponent);
|
|
@@ -1438,9 +2159,22 @@ class CustomValueColumnModel extends ColumnModel {
|
|
|
1438
2159
|
this.getValue = getValue;
|
|
1439
2160
|
this.cellRenderer(DefaultCellRendererComponent);
|
|
1440
2161
|
}
|
|
1441
|
-
cellRenderer(componentType) {
|
|
1442
|
-
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData) => {
|
|
2162
|
+
cellRenderer(componentType, onComponentInitOrOptions) {
|
|
2163
|
+
this.configureCellRenderer(new ComponentCellRendererPortalRef(componentType, (component, rowData, firstTime) => {
|
|
2164
|
+
if (firstTime) {
|
|
2165
|
+
if (___default.isFunction(onComponentInitOrOptions)) {
|
|
2166
|
+
onComponentInitOrOptions(component);
|
|
2167
|
+
}
|
|
2168
|
+
else {
|
|
2169
|
+
if (___default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onComponentInit)) {
|
|
2170
|
+
onComponentInitOrOptions.onComponentInit(component);
|
|
2171
|
+
}
|
|
2172
|
+
}
|
|
2173
|
+
}
|
|
1443
2174
|
component.value = this.getValue(rowData.row);
|
|
2175
|
+
if (!___default.isFunction(onComponentInitOrOptions) && ___default.isFunction(onComponentInitOrOptions === null || onComponentInitOrOptions === void 0 ? void 0 : onComponentInitOrOptions.onRowUpdate)) {
|
|
2176
|
+
onComponentInitOrOptions.onRowUpdate(component, rowData.row);
|
|
2177
|
+
}
|
|
1444
2178
|
}));
|
|
1445
2179
|
return this;
|
|
1446
2180
|
}
|
|
@@ -1602,6 +2336,9 @@ let TableModel = TableModel_1 = class TableModel {
|
|
|
1602
2336
|
this._editorSessions = new MutableListModel();
|
|
1603
2337
|
this.rowClassNamePredicates = [];
|
|
1604
2338
|
this._createForm = (row) => new DirtyTrackingForm();
|
|
2339
|
+
this.trackBy = (index, item) => {
|
|
2340
|
+
return this.identityOf ? this.identityOf(item) : index;
|
|
2341
|
+
};
|
|
1605
2342
|
this.identityOf = sourceOfTruth.identityOf;
|
|
1606
2343
|
const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this._garbage);
|
|
1607
2344
|
this._columnsById = chain(this._columns).indexBy('columnId');
|
|
@@ -1613,7 +2350,7 @@ let TableModel = TableModel_1 = class TableModel {
|
|
|
1613
2350
|
this.dataSource = chain(this.sourceOfTruth).replaceAll(this.rowsBeingEdited);
|
|
1614
2351
|
this.firstEditableColumn = chain(this.columns).select(c => c.hasEditorPortal()).first();
|
|
1615
2352
|
this.hasColumnsWithRowSelectionExplicitlyEnabled = chain(this._columns).findIndex(column => column.isRowSelectionExplicitlyEnabled()).isGreaterThanOrEqualTo(0);
|
|
1616
|
-
this.addRowClass(
|
|
2353
|
+
this.addRowClass('enable-hover', () => this.isRowSelectionEnabled());
|
|
1617
2354
|
}
|
|
1618
2355
|
static fromList(sourceOfTruth, builder) {
|
|
1619
2356
|
const model = new TableModel_1(sourceOfTruth);
|
|
@@ -1623,19 +2360,14 @@ let TableModel = TableModel_1 = class TableModel {
|
|
|
1623
2360
|
get rowsBeingEdited() {
|
|
1624
2361
|
return this._rowsBeingEdited.readonly;
|
|
1625
2362
|
}
|
|
1626
|
-
getTrackByFunction() {
|
|
1627
|
-
return (index, item) => {
|
|
1628
|
-
return this.identityOf ? this.identityOf(item) : index;
|
|
1629
|
-
};
|
|
1630
|
-
}
|
|
1631
2363
|
get columns() {
|
|
1632
2364
|
return this._columns.readonly;
|
|
1633
2365
|
}
|
|
1634
|
-
pluck(property) {
|
|
1635
|
-
return this.addColumn(new PropertyColumnModel(property, this));
|
|
2366
|
+
pluck(property, options) {
|
|
2367
|
+
return this.addColumn(new PropertyColumnModel((options === null || options === void 0 ? void 0 : options.columnId) || property.toString(), property, this));
|
|
1636
2368
|
}
|
|
1637
|
-
pluckList(property) {
|
|
1638
|
-
return this.addColumn(new ListPropertyColumnModel(property, this));
|
|
2369
|
+
pluckList(property, options) {
|
|
2370
|
+
return this.addColumn(new ListPropertyColumnModel((options === null || options === void 0 ? void 0 : options.columnId) || property.toString(), property, this));
|
|
1639
2371
|
}
|
|
1640
2372
|
addSelectionColumn(selectionModel) {
|
|
1641
2373
|
assert.isNil(this.selectionColumnModel);
|
|
@@ -1649,6 +2381,9 @@ let TableModel = TableModel_1 = class TableModel {
|
|
|
1649
2381
|
addCustomColumn(columnId, dataAccessor) {
|
|
1650
2382
|
return this.addColumn(new CustomValueColumnModel(columnId, this, dataAccessor));
|
|
1651
2383
|
}
|
|
2384
|
+
addComponentColumn(columnId, component, onComponentInitOrOptions) {
|
|
2385
|
+
return this.addColumn(new CustomValueColumnModel(columnId, this, row => row)).cellRenderer(component, onComponentInitOrOptions);
|
|
2386
|
+
}
|
|
1652
2387
|
addTemplateColumn(columnId) {
|
|
1653
2388
|
return this.addColumn(new CustomTemplateColumnModel(columnId, this));
|
|
1654
2389
|
}
|
|
@@ -1796,7 +2531,7 @@ __decorate([
|
|
|
1796
2531
|
TableComponent = __decorate([
|
|
1797
2532
|
Component({
|
|
1798
2533
|
selector: 'aup-table',
|
|
1799
|
-
template: "<table mat-table [dataSource]=\"tableModel.dataSource.value\" [trackBy]=\"tableModel.
|
|
2534
|
+
template: "<table mat-table [dataSource]=\"tableModel.dataSource.value\" [trackBy]=\"tableModel.trackBy\">\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 [attr.column-id]=\"column.columnId\"\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\" (click)=\"onCellClicked(column, row)\" [class.enable-cursor]=\"tableModel.isRowSelectionEnabledFor(column)\">\n <aup-table-cell-renderer [column]=\"column\"\n [row]=\"row\"\n [tableModel]=\"tableModel\"\n [editSession]=\"tableModel.getEditSessionFor(row)\"\n [attr.column-index]=\"index\"\n [attr.column-id]=\"column.columnId\"\n [class.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; let i = index\"\n [ngClass]=\"tableModel.getRowClasses(row)\" [attr.trackBy]=\"tableModel.trackBy(i, row)\"\n ></tr>\n\n</table>\n",
|
|
1800
2535
|
styles: [":host{display:flex;flex-direction:column;align-items:stretch}:host table{flex:1}"]
|
|
1801
2536
|
}),
|
|
1802
2537
|
__metadata("design:paramtypes", [])
|
|
@@ -1944,32 +2679,107 @@ let TableHeaderCellRendererComponent = class TableHeaderCellRendererComponent {
|
|
|
1944
2679
|
this.defaultClassNames = 'aup-header-cell-renderer';
|
|
1945
2680
|
}
|
|
1946
2681
|
ngOnInit() {
|
|
1947
|
-
this.column.attachHeaderCell(this);
|
|
2682
|
+
this.column.attachHeaderCell(this);
|
|
2683
|
+
}
|
|
2684
|
+
// @Trace()
|
|
2685
|
+
initialiseHeader(instance) {
|
|
2686
|
+
this.column.onHeaderAttached(this, instance);
|
|
2687
|
+
}
|
|
2688
|
+
getPortal() {
|
|
2689
|
+
return this[HEADER_CELL_RENDERER_PORTAL];
|
|
2690
|
+
}
|
|
2691
|
+
};
|
|
2692
|
+
__decorate([
|
|
2693
|
+
Input(),
|
|
2694
|
+
__metadata("design:type", ColumnModel)
|
|
2695
|
+
], TableHeaderCellRendererComponent.prototype, "column", void 0);
|
|
2696
|
+
__decorate([
|
|
2697
|
+
HostBinding('class'),
|
|
2698
|
+
__metadata("design:type", Object)
|
|
2699
|
+
], TableHeaderCellRendererComponent.prototype, "defaultClassNames", void 0);
|
|
2700
|
+
TableHeaderCellRendererComponent = __decorate([
|
|
2701
|
+
Component({
|
|
2702
|
+
selector: 'aup-table-header-cell-renderer',
|
|
2703
|
+
template: "<ng-container [cdkPortalOutlet]=\"getPortal()\" (attached)=\"initialiseHeader($event.instance)\"></ng-container>\n",
|
|
2704
|
+
styles: [":host{display:flex;flex-direction:column;align-items:stretch;justify-content:center;height:100%}"]
|
|
2705
|
+
}),
|
|
2706
|
+
__metadata("design:paramtypes", [])
|
|
2707
|
+
], TableHeaderCellRendererComponent);
|
|
2708
|
+
|
|
2709
|
+
class MenuItemData extends CommandFace.Adapter {
|
|
2710
|
+
constructor(factory, face) {
|
|
2711
|
+
super(face);
|
|
2712
|
+
this.factory = factory;
|
|
2713
|
+
}
|
|
2714
|
+
}
|
|
2715
|
+
/**
|
|
2716
|
+
*
|
|
2717
|
+
*/
|
|
2718
|
+
let TableRowMenuComponent = class TableRowMenuComponent extends DisposableComponent {
|
|
2719
|
+
constructor() {
|
|
2720
|
+
super();
|
|
2721
|
+
this.actions = [];
|
|
2722
|
+
this.moreActions = [];
|
|
2723
|
+
}
|
|
2724
|
+
registerAction(commandFactory, properties) {
|
|
2725
|
+
this.actions.push(new MenuItemData(commandFactory, properties));
|
|
2726
|
+
}
|
|
2727
|
+
registerMoreAction(commandFactory, properties) {
|
|
2728
|
+
this.moreActions.push(new MenuItemData(commandFactory, properties));
|
|
2729
|
+
}
|
|
2730
|
+
ngOnInit() {
|
|
1948
2731
|
}
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
2732
|
+
createMoreMenuCommand(item, value) {
|
|
2733
|
+
const { when } = Dsl.disposeWith(this);
|
|
2734
|
+
const command = item.factory.create(value);
|
|
2735
|
+
when(command.busy).becomesFalsey(() => {
|
|
2736
|
+
this.closeMoreMenu();
|
|
2737
|
+
});
|
|
2738
|
+
return command;
|
|
1952
2739
|
}
|
|
1953
|
-
|
|
1954
|
-
|
|
2740
|
+
closeMoreMenu() {
|
|
2741
|
+
this.menu.closeMenu();
|
|
1955
2742
|
}
|
|
1956
2743
|
};
|
|
1957
2744
|
__decorate([
|
|
1958
2745
|
Input(),
|
|
1959
|
-
__metadata("design:type", ColumnModel)
|
|
1960
|
-
], TableHeaderCellRendererComponent.prototype, "column", void 0);
|
|
1961
|
-
__decorate([
|
|
1962
|
-
HostBinding('class'),
|
|
1963
2746
|
__metadata("design:type", Object)
|
|
1964
|
-
],
|
|
1965
|
-
|
|
2747
|
+
], TableRowMenuComponent.prototype, "value", void 0);
|
|
2748
|
+
__decorate([
|
|
2749
|
+
ViewChild(MatMenuTrigger),
|
|
2750
|
+
__metadata("design:type", MatMenuTrigger)
|
|
2751
|
+
], TableRowMenuComponent.prototype, "menu", void 0);
|
|
2752
|
+
TableRowMenuComponent = __decorate([
|
|
1966
2753
|
Component({
|
|
1967
|
-
selector: 'aup-table-
|
|
1968
|
-
template:
|
|
1969
|
-
|
|
2754
|
+
selector: 'aup-table-row-menu',
|
|
2755
|
+
template: `
|
|
2756
|
+
<button mat-icon-button *ngFor="let action of actions" [pectinCommand]="action.factory.create(value)">
|
|
2757
|
+
<aup-icon [icon]="action.icon"></aup-icon>
|
|
2758
|
+
</button>
|
|
2759
|
+
<ng-container *ngIf="moreActions.length > 0">
|
|
2760
|
+
<button #trigger mat-icon-button [matMenuTriggerFor]="menu">
|
|
2761
|
+
<aup-icon icon="mat:more_vert"></aup-icon>
|
|
2762
|
+
</button>
|
|
2763
|
+
<mat-menu #menu="matMenu" xPosition="before" matTooltip="More options...">
|
|
2764
|
+
<button *ngFor="let action of moreActions"
|
|
2765
|
+
mat-menu-item
|
|
2766
|
+
[pectinCommand]="createMoreMenuCommand(action, value)"
|
|
2767
|
+
>
|
|
2768
|
+
<aup-icon *ngIf="action.icon && action.iconPositionStart" [icon]="action.icon"></aup-icon>
|
|
2769
|
+
{{action.text}}
|
|
2770
|
+
<aup-icon *ngIf="action.icon && action.iconPositionEnd" [icon]="action.icon"></aup-icon>
|
|
2771
|
+
</button>
|
|
2772
|
+
</mat-menu>
|
|
2773
|
+
</ng-container>
|
|
2774
|
+
`,
|
|
2775
|
+
styles: [`:host {
|
|
2776
|
+
display: inline-flex;
|
|
2777
|
+
flex-direction: row;
|
|
2778
|
+
align-items: center;
|
|
2779
|
+
}`]
|
|
1970
2780
|
}),
|
|
1971
2781
|
__metadata("design:paramtypes", [])
|
|
1972
|
-
],
|
|
2782
|
+
], TableRowMenuComponent);
|
|
1973
2783
|
|
|
1974
2784
|
let VerticalFocusContainerComponent = class VerticalFocusContainerComponent extends FocusContainerComponent {
|
|
1975
2785
|
constructor(focusManager) {
|
|
@@ -2053,90 +2863,6 @@ VerticalFocusContainerComponent = __decorate([
|
|
|
2053
2863
|
__metadata("design:paramtypes", [FocusManager])
|
|
2054
2864
|
], VerticalFocusContainerComponent);
|
|
2055
2865
|
|
|
2056
|
-
let MultipleSelectInputComponent = class MultipleSelectInputComponent extends AbstractListInputComponent {
|
|
2057
|
-
constructor() {
|
|
2058
|
-
super();
|
|
2059
|
-
this.optionLabelFormat = (option) => (option && this.optionLabel) ? option[this.optionLabel] : option;
|
|
2060
|
-
}
|
|
2061
|
-
ngOnInit() {
|
|
2062
|
-
}
|
|
2063
|
-
};
|
|
2064
|
-
__decorate([
|
|
2065
|
-
Input(), TrackExternal({ delegateTo: 'inputModel' }),
|
|
2066
|
-
__metadata("design:type", Object)
|
|
2067
|
-
], MultipleSelectInputComponent.prototype, "listModel", void 0);
|
|
2068
|
-
__decorate([
|
|
2069
|
-
Input(), TrackExternal(),
|
|
2070
|
-
__metadata("design:type", ListModel)
|
|
2071
|
-
], MultipleSelectInputComponent.prototype, "optionsModel", void 0);
|
|
2072
|
-
__decorate([
|
|
2073
|
-
Input(), StoreInListModel('optionsModel'),
|
|
2074
|
-
__metadata("design:type", Array)
|
|
2075
|
-
], MultipleSelectInputComponent.prototype, "options", void 0);
|
|
2076
|
-
__decorate([
|
|
2077
|
-
Input(),
|
|
2078
|
-
__metadata("design:type", Object)
|
|
2079
|
-
], MultipleSelectInputComponent.prototype, "optionLabel", void 0);
|
|
2080
|
-
__decorate([
|
|
2081
|
-
Input(),
|
|
2082
|
-
__metadata("design:type", Boolean)
|
|
2083
|
-
], MultipleSelectInputComponent.prototype, "allowNil", void 0);
|
|
2084
|
-
__decorate([
|
|
2085
|
-
ContentChild('optionTemplate'),
|
|
2086
|
-
__metadata("design:type", TemplateRef)
|
|
2087
|
-
], MultipleSelectInputComponent.prototype, "optionTemplateRef", void 0);
|
|
2088
|
-
__decorate([
|
|
2089
|
-
ContentChild('nilOptionTemplate'),
|
|
2090
|
-
__metadata("design:type", TemplateRef)
|
|
2091
|
-
], MultipleSelectInputComponent.prototype, "nilOptionTemplateRef", void 0);
|
|
2092
|
-
__decorate([
|
|
2093
|
-
Input(),
|
|
2094
|
-
__metadata("design:type", Function)
|
|
2095
|
-
], MultipleSelectInputComponent.prototype, "optionLabelFormat", void 0);
|
|
2096
|
-
MultipleSelectInputComponent = __decorate([
|
|
2097
|
-
Component({
|
|
2098
|
-
selector: 'aup-multiple-select-input',
|
|
2099
|
-
template: "<mat-form-field appearance=\"standard\" [floatLabel]=\"floatLabel\">\n <mat-label *ngIf=\"label\">{{label}}</mat-label>\n <mat-select placeholder=\"{{placeholder}}\"\n multiple\n [(ngModel)]=\"listModel.value\"\n [disabled]=\"!enabled.value\"\n (keydown.enter)=\"notifyEnterKey()\"\n (keydown.escape)=\"notifyEscapeKey()\"\n [pectinFocusBinding]=\"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=\"showHint\">{{hint}}</mat-hint>\n <mat-error *ngIf=\"hasErrors\">{{firstError}}</mat-error>\n</mat-form-field>\n",
|
|
2100
|
-
styles: [":host{display:inline-block}mat-form-field{width:100%}"]
|
|
2101
|
-
}),
|
|
2102
|
-
__metadata("design:paramtypes", [])
|
|
2103
|
-
], MultipleSelectInputComponent);
|
|
2104
|
-
|
|
2105
|
-
let IconComponent = class IconComponent {
|
|
2106
|
-
set icon(iconName) {
|
|
2107
|
-
this._icon = iconName;
|
|
2108
|
-
if (!iconName) {
|
|
2109
|
-
this.errorMessage = 'icon is nil';
|
|
2110
|
-
this.prefix = undefined;
|
|
2111
|
-
return;
|
|
2112
|
-
}
|
|
2113
|
-
const colonIndex = iconName.indexOf(':');
|
|
2114
|
-
if (colonIndex > 0) {
|
|
2115
|
-
this.prefix = this.icon.slice(0, colonIndex);
|
|
2116
|
-
this.suffix = this.icon.slice(colonIndex + 1);
|
|
2117
|
-
}
|
|
2118
|
-
if (this.prefix) {
|
|
2119
|
-
this.errorMessage = `Unknown icon "${iconName}"`;
|
|
2120
|
-
}
|
|
2121
|
-
this.errorMessage = `Unknown icon prefix "${this.prefix}"`;
|
|
2122
|
-
}
|
|
2123
|
-
get icon() {
|
|
2124
|
-
return this._icon;
|
|
2125
|
-
}
|
|
2126
|
-
};
|
|
2127
|
-
__decorate([
|
|
2128
|
-
Input(),
|
|
2129
|
-
__metadata("design:type", String),
|
|
2130
|
-
__metadata("design:paramtypes", [String])
|
|
2131
|
-
], IconComponent.prototype, "icon", null);
|
|
2132
|
-
IconComponent = __decorate([
|
|
2133
|
-
Component({
|
|
2134
|
-
selector: 'aup-icon',
|
|
2135
|
-
template: "<ng-container [ngSwitch]=\"prefix\">\n\n <mat-icon *ngSwitchCase=\"'svg'\"\n [svgIcon]=\"suffix\"\n class=\"svgIcon\">\n </mat-icon>\n\n <mat-icon *ngSwitchCase=\"'mat'\">\n {{suffix}}\n </mat-icon>\n\n <div *ngSwitchCase=\"'fab'\"\n class=\"faIconWrapper\">\n <fa-icon [icon]=\"suffix\">\n </fa-icon>\n </div>\n\n <mat-icon *ngSwitchDefault\n [matTooltip]=\"errorMessage\">\n bug_report\n </mat-icon>\n\n</ng-container>\n\n",
|
|
2136
|
-
styles: [":host{display:inline-flex;width:24px}fa-icon{vertical-align:middle}.faIconWrapper{text-align:center;width:24px;height:24px}.svgIcon{width:24px;height:24px}:host(.mat-chip-remove) mat-icon{font-size:18px}mat-icon{width:inherit;height:inherit}"]
|
|
2137
|
-
})
|
|
2138
|
-
], IconComponent);
|
|
2139
|
-
|
|
2140
2866
|
let ComponentsModule = class ComponentsModule {
|
|
2141
2867
|
constructor(faIconLibrary) {
|
|
2142
2868
|
faIconLibrary.addIconPacks(fas);
|
|
@@ -2156,6 +2882,8 @@ ComponentsModule = __decorate([
|
|
|
2156
2882
|
TextInputComponent,
|
|
2157
2883
|
PasswordInputComponent,
|
|
2158
2884
|
SelectInputComponent,
|
|
2885
|
+
MultipleSelectInputComponent,
|
|
2886
|
+
AutocompleteInputComponent,
|
|
2159
2887
|
CheckboxInputComponent,
|
|
2160
2888
|
ScrollContainerComponent,
|
|
2161
2889
|
NoopComponent,
|
|
@@ -2175,9 +2903,16 @@ ComponentsModule = __decorate([
|
|
|
2175
2903
|
SelectHeaderCellRendererComponent,
|
|
2176
2904
|
DefaultHeaderCellRendererComponent,
|
|
2177
2905
|
TableHeaderCellRendererComponent,
|
|
2178
|
-
MultipleSelectInputComponent,
|
|
2179
2906
|
IconComponent,
|
|
2180
|
-
SectionHeaderComponent
|
|
2907
|
+
SectionHeaderComponent,
|
|
2908
|
+
TableRowMenuComponent,
|
|
2909
|
+
CommandBarComponent,
|
|
2910
|
+
CommandComponent,
|
|
2911
|
+
PopupMenuComponent,
|
|
2912
|
+
CommandFaceComponent,
|
|
2913
|
+
AbstractPopupMenuComponent,
|
|
2914
|
+
PopupMenuRendererComponent,
|
|
2915
|
+
MoreMenuComponent
|
|
2181
2916
|
],
|
|
2182
2917
|
imports: [
|
|
2183
2918
|
CommonModule,
|
|
@@ -2195,7 +2930,10 @@ ComponentsModule = __decorate([
|
|
|
2195
2930
|
PortalModule,
|
|
2196
2931
|
CdkScrollableModule,
|
|
2197
2932
|
FontAwesomeModule,
|
|
2198
|
-
MatTooltipModule
|
|
2933
|
+
MatTooltipModule,
|
|
2934
|
+
MatAutocompleteModule,
|
|
2935
|
+
_MatMenuDirectivesModule,
|
|
2936
|
+
MatMenuModule
|
|
2199
2937
|
],
|
|
2200
2938
|
exports: [
|
|
2201
2939
|
NumberInputComponent,
|
|
@@ -2204,6 +2942,8 @@ ComponentsModule = __decorate([
|
|
|
2204
2942
|
PasswordInputComponent,
|
|
2205
2943
|
CheckboxInputComponent,
|
|
2206
2944
|
SelectInputComponent,
|
|
2945
|
+
MultipleSelectInputComponent,
|
|
2946
|
+
AutocompleteInputComponent,
|
|
2207
2947
|
ScrollContainerComponent,
|
|
2208
2948
|
NoopComponent,
|
|
2209
2949
|
SwitchCaseComponent,
|
|
@@ -2216,12 +2956,31 @@ ComponentsModule = __decorate([
|
|
|
2216
2956
|
TableComponent,
|
|
2217
2957
|
EditRowControls,
|
|
2218
2958
|
ColumnTemplateDirective,
|
|
2219
|
-
MultipleSelectInputComponent,
|
|
2220
2959
|
IconComponent,
|
|
2221
|
-
SectionHeaderComponent
|
|
2960
|
+
SectionHeaderComponent,
|
|
2961
|
+
TableRowMenuComponent,
|
|
2962
|
+
CommandBarComponent,
|
|
2963
|
+
CommandComponent,
|
|
2964
|
+
AbstractPopupMenuComponent,
|
|
2965
|
+
PopupMenuComponent,
|
|
2966
|
+
CommandFaceComponent,
|
|
2967
|
+
PopupMenuRendererComponent,
|
|
2968
|
+
MoreMenuComponent
|
|
2222
2969
|
],
|
|
2223
2970
|
providers: [
|
|
2224
|
-
FocusBindingFactory
|
|
2971
|
+
FocusBindingFactory
|
|
2972
|
+
// {
|
|
2973
|
+
// provide: CELL_EDITOR_REGISTRATION, useValue: {
|
|
2974
|
+
// type: 'string',
|
|
2975
|
+
// editorClass: StringInputComponent
|
|
2976
|
+
// }, multi: true
|
|
2977
|
+
// },
|
|
2978
|
+
// {
|
|
2979
|
+
// provide: CELL_EDITOR_REGISTRATION, useValue: {
|
|
2980
|
+
// type: 'number',
|
|
2981
|
+
// editorClass: NumberInputComponent
|
|
2982
|
+
// }, multi: true
|
|
2983
|
+
// }
|
|
2225
2984
|
]
|
|
2226
2985
|
}),
|
|
2227
2986
|
__metadata("design:paramtypes", [FaIconLibrary])
|
|
@@ -2504,7 +3263,7 @@ let ActivityOutletComponent = class ActivityOutletComponent {
|
|
|
2504
3263
|
}
|
|
2505
3264
|
set activityRef(activityRef) {
|
|
2506
3265
|
if (this.activityRef && !this.activityRef.isComplete()) {
|
|
2507
|
-
lang$1.illegalState(
|
|
3266
|
+
lang$1.illegalState('changing activity before previous one has completed');
|
|
2508
3267
|
}
|
|
2509
3268
|
this._activityRef = activityRef;
|
|
2510
3269
|
this.loadActivity(activityRef);
|
|
@@ -2563,6 +3322,11 @@ let ActivityContainerComponent = class ActivityContainerComponent extends Abstra
|
|
|
2563
3322
|
this.dynamicHeight = false;
|
|
2564
3323
|
this.activityTabs = [];
|
|
2565
3324
|
this.garbage = new GarbageCollector();
|
|
3325
|
+
// We have issues where angular is triggering a leave animation when an
|
|
3326
|
+
// activity is replaced by another, but is not running the enter animation
|
|
3327
|
+
// when it is scrolled back into view. So we track the tab changes and
|
|
3328
|
+
// disable all animations inside the tab while we're animating.
|
|
3329
|
+
this.inTabChange = new MutableValueModel(false);
|
|
2566
3330
|
}
|
|
2567
3331
|
ngOnInit() {
|
|
2568
3332
|
}
|
|
@@ -2594,6 +3358,7 @@ let ActivityContainerComponent = class ActivityContainerComponent extends Abstra
|
|
|
2594
3358
|
registerDisposable(disposable) {
|
|
2595
3359
|
return this.garbage.registerDisposable(disposable);
|
|
2596
3360
|
}
|
|
3361
|
+
// @Trace()
|
|
2597
3362
|
dispose() {
|
|
2598
3363
|
// TODO: think about auto cancelling any outstanding activity on dispose.
|
|
2599
3364
|
// See NavigationState.Navigating for a use-case.
|
|
@@ -2692,6 +3457,7 @@ let ActivityContainerComponent = class ActivityContainerComponent extends Abstra
|
|
|
2692
3457
|
this.onAnimationFinishedJob();
|
|
2693
3458
|
this.onAnimationFinishedJob = undefined;
|
|
2694
3459
|
}
|
|
3460
|
+
this.inTabChange.value = false;
|
|
2695
3461
|
}
|
|
2696
3462
|
/**
|
|
2697
3463
|
* Synchronises the selected tab index.
|
|
@@ -2700,6 +3466,7 @@ let ActivityContainerComponent = class ActivityContainerComponent extends Abstra
|
|
|
2700
3466
|
const previousIndex = this.tabs.selectedIndex;
|
|
2701
3467
|
const newIndex = this.getActiveActivityCount() - 1;
|
|
2702
3468
|
if (previousIndex !== newIndex) {
|
|
3469
|
+
this.inTabChange.value = true;
|
|
2703
3470
|
this.tabs.selectedIndex = newIndex;
|
|
2704
3471
|
this.onAnimationFinishedJob = () => {
|
|
2705
3472
|
this.getSelectedOutlet().component.onActivityReady();
|
|
@@ -2710,7 +3477,9 @@ let ActivityContainerComponent = class ActivityContainerComponent extends Abstra
|
|
|
2710
3477
|
getSelectedOutlet() {
|
|
2711
3478
|
return this.activityOutlets.toArray()[this.tabs.selectedIndex];
|
|
2712
3479
|
}
|
|
2713
|
-
|
|
3480
|
+
getSelectedTabIndex() {
|
|
3481
|
+
return this.tabs.selectedIndex;
|
|
3482
|
+
}
|
|
2714
3483
|
triggerTabSynchronisation() {
|
|
2715
3484
|
if (this.syncSelectedTabTimeout) {
|
|
2716
3485
|
clearTimeout(this.syncSelectedTabTimeout);
|
|
@@ -2738,11 +3507,29 @@ __decorate([
|
|
|
2738
3507
|
__metadata("design:type", Function),
|
|
2739
3508
|
__metadata("design:paramtypes", []),
|
|
2740
3509
|
__metadata("design:returntype", void 0)
|
|
2741
|
-
], ActivityContainerComponent.prototype, "
|
|
3510
|
+
], ActivityContainerComponent.prototype, "onAnimationFinished", null);
|
|
3511
|
+
__decorate([
|
|
3512
|
+
Trace(),
|
|
3513
|
+
__metadata("design:type", Function),
|
|
3514
|
+
__metadata("design:paramtypes", []),
|
|
3515
|
+
__metadata("design:returntype", void 0)
|
|
3516
|
+
], ActivityContainerComponent.prototype, "synchroniseSelectedTabIndex", null);
|
|
3517
|
+
__decorate([
|
|
3518
|
+
Trace(),
|
|
3519
|
+
__metadata("design:type", Function),
|
|
3520
|
+
__metadata("design:paramtypes", []),
|
|
3521
|
+
__metadata("design:returntype", void 0)
|
|
3522
|
+
], ActivityContainerComponent.prototype, "getSelectedTabIndex", null);
|
|
3523
|
+
__decorate([
|
|
3524
|
+
Trace(),
|
|
3525
|
+
__metadata("design:type", Function),
|
|
3526
|
+
__metadata("design:paramtypes", []),
|
|
3527
|
+
__metadata("design:returntype", void 0)
|
|
3528
|
+
], ActivityContainerComponent.prototype, "triggerTabSynchronisation", null);
|
|
2742
3529
|
ActivityContainerComponent = __decorate([
|
|
2743
3530
|
Component({
|
|
2744
3531
|
selector: 'aup-activity-container',
|
|
2745
|
-
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",
|
|
3532
|
+
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; let i = index; trackBy: activityIndex\" [@.disabled]=\"inTabChange.value\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\" [activityRef]=\"tab\"></aup-activity-outlet>\n </mat-tab>\n</mat-tab-group>\n",
|
|
2746
3533
|
styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}"]
|
|
2747
3534
|
}),
|
|
2748
3535
|
__metadata("design:paramtypes", [])
|
|
@@ -3725,7 +4512,7 @@ let PlaceComponent = PlaceComponent_1 = class PlaceComponent extends DisposableC
|
|
|
3725
4512
|
assert.isNil(this.visitModel.value);
|
|
3726
4513
|
const { when } = Dsl.disposeWith(this);
|
|
3727
4514
|
this.visitModel.value = visit;
|
|
3728
|
-
DebugContext.
|
|
4515
|
+
DebugContext.getOrCreate(this.visitModel).tag(`${this.placeDefinition.component.name}.visitModel`);
|
|
3729
4516
|
this.placeDefinition.getVisitParameterDefs().forEach(parameterDef => this.installBinding(parameterDef));
|
|
3730
4517
|
when.valueOf(this.visitModel).changes((current, previous) => {
|
|
3731
4518
|
notifyVisitChanged(current, previous);
|
|
@@ -4765,70 +5552,6 @@ UrlService = __decorate([
|
|
|
4765
5552
|
__metadata("design:paramtypes", [Router, Location, UrlSerializer])
|
|
4766
5553
|
], UrlService);
|
|
4767
5554
|
|
|
4768
|
-
class Visit {
|
|
4769
|
-
constructor(placeDefinition, visitParameters = {}) {
|
|
4770
|
-
this.placeDefinition = placeDefinition;
|
|
4771
|
-
this.visitParameters = visitParameters;
|
|
4772
|
-
}
|
|
4773
|
-
// @Trace()
|
|
4774
|
-
getRouteId() {
|
|
4775
|
-
return this.placeDefinition.getRouteIdFrom(this);
|
|
4776
|
-
}
|
|
4777
|
-
// @Trace()
|
|
4778
|
-
hasRouteId() {
|
|
4779
|
-
return !isNil(this.getRouteId());
|
|
4780
|
-
}
|
|
4781
|
-
/**
|
|
4782
|
-
* Returns the value of the place parameter with the specified name. The parameter
|
|
4783
|
-
* name is taken from the `as` option, e.g. {as: 'aCustomName'} otherwise it is the
|
|
4784
|
-
* same as the the ValueModel property name.
|
|
4785
|
-
* @param parameterName the field name of the property model or the `as` option if specified.
|
|
4786
|
-
*/
|
|
4787
|
-
getParameter(parameterName) {
|
|
4788
|
-
return this.visitParameters[parameterName];
|
|
4789
|
-
}
|
|
4790
|
-
// @Trace()
|
|
4791
|
-
hasParameter(parameterName) {
|
|
4792
|
-
return Object.keys(this.visitParameters).includes(parameterName);
|
|
4793
|
-
}
|
|
4794
|
-
replace(parameter, value) {
|
|
4795
|
-
return new Visit(this.placeDefinition, Object.assign(Object.assign({}, this.visitParameters), { [parameter.name]: value }));
|
|
4796
|
-
}
|
|
4797
|
-
mergeRouteParameters(routeParams) {
|
|
4798
|
-
// todo: whitelist parameters.
|
|
4799
|
-
const routeParameterKeys = Object.keys(routeParams);
|
|
4800
|
-
const params = {};
|
|
4801
|
-
this.placeDefinition.getVisitParameterDefs().forEach(def => {
|
|
4802
|
-
if (def.isRouteId || def.isRouteParameter) {
|
|
4803
|
-
if (routeParameterKeys.includes(def.name)) {
|
|
4804
|
-
params[def.name] = routeParams[def.name];
|
|
4805
|
-
}
|
|
4806
|
-
}
|
|
4807
|
-
else {
|
|
4808
|
-
// copy non route params as is, but only if they already exist otherwise we'll inject nil values and break the
|
|
4809
|
-
// defaults and remember sanitisation process.
|
|
4810
|
-
const value = this.getParameter(def.name);
|
|
4811
|
-
if (this.hasParameter(def.name)) {
|
|
4812
|
-
params[def.name] = value;
|
|
4813
|
-
}
|
|
4814
|
-
}
|
|
4815
|
-
});
|
|
4816
|
-
return new Visit(this.placeDefinition, params);
|
|
4817
|
-
}
|
|
4818
|
-
hasRoutingChangedFrom(other) {
|
|
4819
|
-
const samePlace = other.placeDefinition === this.placeDefinition;
|
|
4820
|
-
const sameRouteParameters = isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
|
|
4821
|
-
return !samePlace || !sameRouteParameters;
|
|
4822
|
-
}
|
|
4823
|
-
hasChangedFrom(other) {
|
|
4824
|
-
const sameNonRouteParameters = isEqual(this.placeDefinition.getNonRouteParameters(this), this.placeDefinition.getNonRouteParameters(other));
|
|
4825
|
-
return !sameNonRouteParameters || this.hasRoutingChangedFrom(other);
|
|
4826
|
-
}
|
|
4827
|
-
toDebugString() {
|
|
4828
|
-
return Object.keys(this.visitParameters).map(k => `${k}=${this.visitParameters[k]}`).join(",");
|
|
4829
|
-
}
|
|
4830
|
-
}
|
|
4831
|
-
|
|
4832
5555
|
let PlaceRouter = class PlaceRouter extends GarbageCollector {
|
|
4833
5556
|
constructor(angularRouter, angularLocation, interactionService, urlService, placeHistory) {
|
|
4834
5557
|
super();
|
|
@@ -4990,6 +5713,7 @@ let PlaceRouter = class PlaceRouter extends GarbageCollector {
|
|
|
4990
5713
|
get activeVisits() {
|
|
4991
5714
|
return this._activeVisits.readonly;
|
|
4992
5715
|
}
|
|
5716
|
+
// @Trace()
|
|
4993
5717
|
pushVisitChangesToRoute(previous, next) {
|
|
4994
5718
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4995
5719
|
this.placeHistory.updateVisit(next);
|
|
@@ -5086,12 +5810,6 @@ PlaceRouter.ctorParameters = () => [
|
|
|
5086
5810
|
{ type: PlaceHistory }
|
|
5087
5811
|
];
|
|
5088
5812
|
PlaceRouter.ɵprov = ɵɵdefineInjectable({ factory: function PlaceRouter_Factory() { return new PlaceRouter(ɵɵinject(Router), ɵɵinject(Location), ɵɵinject(InteractionService), ɵɵinject(UrlService), ɵɵinject(PlaceHistory)); }, token: PlaceRouter, providedIn: "root" });
|
|
5089
|
-
__decorate([
|
|
5090
|
-
Trace(),
|
|
5091
|
-
__metadata("design:type", Function),
|
|
5092
|
-
__metadata("design:paramtypes", [Visit, Visit]),
|
|
5093
|
-
__metadata("design:returntype", Promise)
|
|
5094
|
-
], PlaceRouter.prototype, "pushVisitChangesToRoute", null);
|
|
5095
5813
|
PlaceRouter = __decorate([
|
|
5096
5814
|
Injectable({
|
|
5097
5815
|
providedIn: 'root'
|
|
@@ -5103,6 +5821,70 @@ PlaceRouter = __decorate([
|
|
|
5103
5821
|
PlaceHistory])
|
|
5104
5822
|
], PlaceRouter);
|
|
5105
5823
|
|
|
5824
|
+
class Visit {
|
|
5825
|
+
constructor(placeDefinition, visitParameters = {}) {
|
|
5826
|
+
this.placeDefinition = placeDefinition;
|
|
5827
|
+
this.visitParameters = visitParameters;
|
|
5828
|
+
}
|
|
5829
|
+
// @Trace()
|
|
5830
|
+
getRouteId() {
|
|
5831
|
+
return this.placeDefinition.getRouteIdFrom(this);
|
|
5832
|
+
}
|
|
5833
|
+
// @Trace()
|
|
5834
|
+
hasRouteId() {
|
|
5835
|
+
return !isNil(this.getRouteId());
|
|
5836
|
+
}
|
|
5837
|
+
/**
|
|
5838
|
+
* Returns the value of the place parameter with the specified name. The parameter
|
|
5839
|
+
* name is taken from the `as` option, e.g. {as: 'aCustomName'} otherwise it is the
|
|
5840
|
+
* same as the the ValueModel property name.
|
|
5841
|
+
* @param parameterName the field name of the property model or the `as` option if specified.
|
|
5842
|
+
*/
|
|
5843
|
+
getParameter(parameterName) {
|
|
5844
|
+
return this.visitParameters[parameterName];
|
|
5845
|
+
}
|
|
5846
|
+
// @Trace()
|
|
5847
|
+
hasParameter(parameterName) {
|
|
5848
|
+
return Object.keys(this.visitParameters).includes(parameterName);
|
|
5849
|
+
}
|
|
5850
|
+
replace(parameter, value) {
|
|
5851
|
+
return new Visit(this.placeDefinition, Object.assign(Object.assign({}, this.visitParameters), { [parameter.name]: value }));
|
|
5852
|
+
}
|
|
5853
|
+
mergeRouteParameters(routeParams) {
|
|
5854
|
+
// todo: whitelist parameters.
|
|
5855
|
+
const routeParameterKeys = Object.keys(routeParams);
|
|
5856
|
+
const params = {};
|
|
5857
|
+
this.placeDefinition.getVisitParameterDefs().forEach(def => {
|
|
5858
|
+
if (def.isRouteId || def.isRouteParameter) {
|
|
5859
|
+
if (routeParameterKeys.includes(def.name)) {
|
|
5860
|
+
params[def.name] = routeParams[def.name];
|
|
5861
|
+
}
|
|
5862
|
+
}
|
|
5863
|
+
else {
|
|
5864
|
+
// copy non route params as is, but only if they already exist otherwise we'll inject nil values and break the
|
|
5865
|
+
// defaults and remember sanitisation process.
|
|
5866
|
+
const value = this.getParameter(def.name);
|
|
5867
|
+
if (this.hasParameter(def.name)) {
|
|
5868
|
+
params[def.name] = value;
|
|
5869
|
+
}
|
|
5870
|
+
}
|
|
5871
|
+
});
|
|
5872
|
+
return new Visit(this.placeDefinition, params);
|
|
5873
|
+
}
|
|
5874
|
+
hasRoutingChangedFrom(other) {
|
|
5875
|
+
const samePlace = other.placeDefinition === this.placeDefinition;
|
|
5876
|
+
const sameRouteParameters = isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
|
|
5877
|
+
return !samePlace || !sameRouteParameters;
|
|
5878
|
+
}
|
|
5879
|
+
hasChangedFrom(other) {
|
|
5880
|
+
const sameNonRouteParameters = isEqual(this.placeDefinition.getNonRouteParameters(this), this.placeDefinition.getNonRouteParameters(other));
|
|
5881
|
+
return !sameNonRouteParameters || this.hasRoutingChangedFrom(other);
|
|
5882
|
+
}
|
|
5883
|
+
toDebugString() {
|
|
5884
|
+
return Object.keys(this.visitParameters).map(k => `${k}=${this.visitParameters[k]}`).join(",");
|
|
5885
|
+
}
|
|
5886
|
+
}
|
|
5887
|
+
|
|
5106
5888
|
const AUP_PLACE_CONFIG = new InjectionToken('AUP_PLACE_CONFIG');
|
|
5107
5889
|
|
|
5108
5890
|
// Freezes the state of the components at the start of the animation.
|
|
@@ -5988,8 +6770,7 @@ function installMechanics(prototype, propertyKey, backingModel, tagPrefix, isEmp
|
|
|
5988
6770
|
binding: null
|
|
5989
6771
|
};
|
|
5990
6772
|
const tag = `${tagPrefix}(${prototype.constructor.name}.${propertyKey.toString()})`;
|
|
5991
|
-
DebugContext.
|
|
5992
|
-
Logger.get(mechanics.backingModel).tag(tag);
|
|
6773
|
+
DebugContext.getOrCreate(mechanics.backingModel).tag(tag);
|
|
5993
6774
|
Object.defineProperty(prototype, propertyKey, {
|
|
5994
6775
|
get: function () {
|
|
5995
6776
|
return mechanics.backingModel;
|
|
@@ -6051,5 +6832,5 @@ function VisitParameterList(options) {
|
|
|
6051
6832
|
* Generated bundle index. Do not edit.
|
|
6052
6833
|
*/
|
|
6053
6834
|
|
|
6054
|
-
export { ACTIVITY_DATA, AUP_PLACE_CONFIG, AbstractInputActivity, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, AddItemInteractionContextComponent, AlertDialogComponent, AngularUiPowerupsModule, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnModel, ColumnTemplateDirective, CommandDirective, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControls, EditSession, EditorControlColumnModel, EmptyStateComponent, EventCleanUpSession, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, HEADER_CELL_RENDERER_PORTAL, IconComponent, InPlaceInteractionContextComponent, InteractionContextTriggerFor, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, LEFT_RIGHT_PLACE_ANIMATION, ListPlaceNavComponent, ListPropertyColumnModel, ModalInteractionContextFactory, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NumberInputComponent, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, ParameterDefinition, PasswordInputComponent, Place, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupInteractionContextComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, RouteId, ScrollContainerComponent, SectionHeaderComponent, SelectCellRendererComponent, SelectHeaderCellRendererComponent, SelectInputActivity, SelectInputComponent, SelectionColumnModel, SidePlaceNavigationComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableCellRendererComponent, TableComponent, TableHeaderCellRendererComponent, TableModel, TemplateCellRendererPortalRef, TextInputComponent, UrlService, UrlSnapshot, VerticalFocusContainerComponent, Visit, VisitParameter, VisitParameterList, VisitSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, ɵ0, DirectivesModule as ɵa, CommandDirective as ɵb,
|
|
6835
|
+
export { ACTIVITY_DATA, AUP_PLACE_CONFIG, AbstractInputActivity, AbstractInputComponent, AbstractInteractionContext, AbstractListInputComponent, AbstractPlaceNavigationComponent, AbstractPopStateNavigation, AbstractPopupMenuComponent, AbstractValueInputComponent, Activity, ActivityActionsComponent, ActivityContainerComponent, ActivityOutletComponent, ActivityRef, AddItemInteractionContextComponent, AlertDialogComponent, AngularUiPowerupsModule, AutocompleteInputComponent, Bounds, BusyOverlayComponent, CELL_EDITOR_PORTAL, CELL_RENDERER_PORTAL, CardContainerComponent, CellEditorPortalRef, CellHeaderPortalRef, CellPortalRef, CellRendererPortalRef, CheckboxInputComponent, ColumnModel, ColumnTemplateDirective, CommandBarComponent, CommandComponent, CommandContainer, CommandDirective, CommandFace, CommandFaceComponent, ComponentCellRendererPortalRef, ComponentsModule, ConfirmThenDialogComponent, ConfirmationDialogComponent, ConsolidatedParameterMap, CustomTemplateColumnModel, CustomValueColumnModel, DEFINITION_META_DATA_KEY, DIALOG_INTERACTION_SERVICE_DEFAULTS, DefaultCellRendererComponent, DefaultHeaderCellRendererComponent, DialogInteractionContext, DialogInteractionContextFactory, Dimension, DirectivesModule, DisposableComponent, EditRowControls, EditSession, EditorControlColumnModel, EmptyStateComponent, EventCleanUpSession, FocusBinding, FocusBindingDirective, FocusBindingFactory, FocusContainerComponent, FocusableComponent, Formatter, HEADER_CELL_RENDERER_PORTAL, IconComponent, InPlaceInteractionContextComponent, InteractionContextTriggerFor, InteractionModule, InteractionService, InteractionServiceRoutingAdapter, LEFT_RIGHT_PLACE_ANIMATION, ListPlaceNavComponent, ListPropertyColumnModel, ModalInteractionContextFactory, MoreMenuComponent, MultipleSelectInputComponent, Navigating, NavigatingDuringInteraction, NavigationContext, NavigationSession, NoopAuthGuard, NoopComponent, NumberInputComponent, PORTAL_EDITOR_COMPONENT, PORTAL_RENDERER_COMPONENT, ParameterDefinition, PasswordInputComponent, Place, PlaceComponent, PlaceComponentDeactivationHandler, PlaceDefinition, PlaceGuard, PlaceHistory, PlaceModule, PlaceOutletComponent, PlaceRouter, Point, PopStateDuringInteractionNavigation, PopStateNavigation, PopupInteractionContextComponent, PopupMenuComponent, PopupMenuRendererComponent, PropertyColumnModel, ROUTE_PARAMETER_LIST_KEY, RemoveLastInteractionFromUrlNavigationSession, ResizeAwareComponent, RouteId, ScrollContainerComponent, SectionHeaderComponent, SelectCellRendererComponent, SelectHeaderCellRendererComponent, SelectInputActivity, SelectInputComponent, SelectionColumnModel, SidePlaceNavigationComponent, StringInputActivity, StringInputComponent, SwitchCaseComponent, SwitchCaseDefaultDirective, SwitchCaseOption, SwitchCaseWhenDirective, SynchroniseInteractionContextIdsWithRoute, TabbedPlaceNavigationComponent, TableCellRendererComponent, TableComponent, TableHeaderCellRendererComponent, TableModel, TableRowMenuComponent, TemplateCellRendererPortalRef, TextInputComponent, UrlService, UrlSnapshot, VerticalFocusContainerComponent, Visit, VisitParameter, VisitParameterList, VisitSanitiser, WaitUntilLeavingInteractionTransitionCancelled, WaitUntilLinkTriggeredNavigationInteractionCancellationEventsFinish, WaitUntilPopStateDuringCanDeactivateInteractionFinishes, leftRightPlaceAnimation, slideDownOnEnterAnimation, slideRightOnEnterAnimation, ɵ0, 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, IconComponent as ɵbk, SectionHeaderComponent as ɵbl, TableRowMenuComponent as ɵbm, CommandBarComponent as ɵbn, CommandContainer as ɵbo, CommandComponent as ɵbp, PopupMenuComponent as ɵbq, AbstractPopupMenuComponent as ɵbr, PopupMenuRendererComponent as ɵbs, CommandFaceComponent as ɵbt, MoreMenuComponent as ɵbu, PlaceModule as ɵbv, ComponentsModule as ɵbw, EmptyStateComponent as ɵbx, BusyOverlayComponent as ɵby, PlaceOutletComponent as ɵbz, FocusBindingDirective as ɵc, leftRightPlaceAnimation as ɵca, LEFT_RIGHT_PLACE_ANIMATION as ɵcb, AUP_PLACE_CONFIG as ɵcc, PlaceRouter as ɵce, InteractionService as ɵcf, ModalInteractionContextFactory as ɵcg, UrlService as ɵch, PlaceHistory as ɵci, TabbedPlaceNavigationComponent as ɵcj, AbstractPlaceNavigationComponent as ɵck, ListPlaceNavComponent as ɵcl, SidePlaceNavigationComponent as ɵcm, InteractionModule as ɵcn, ActivityContainerComponent as ɵco, AbstractInteractionContext as ɵcp, ActivityOutletComponent as ɵcq, ConfirmationDialogComponent as ɵcr, ACTIVITY_DATA as ɵcs, Activity as ɵct, ConfirmThenDialogComponent as ɵcv, AlertDialogComponent as ɵcw, InPlaceInteractionContextComponent as ɵcy, AddItemInteractionContextComponent as ɵcz, DisposableComponent as ɵd, ActivityActionsComponent as ɵda, PopupInteractionContextComponent as ɵdb, StringInputActivity as ɵdc, AbstractInputActivity as ɵdd, SelectInputActivity as ɵde, InteractionContextTriggerFor as ɵdf, FocusBindingFactory as ɵe, ComponentsModule as ɵf, AbstractInputComponent as ɵg, AbstractValueInputComponent as ɵh, AbstractListInputComponent as ɵi, NumberInputComponent as ɵj, StringInputComponent as ɵk, TextInputComponent as ɵl, PasswordInputComponent as ɵm, SelectInputComponent as ɵn, MultipleSelectInputComponent as ɵo, AutocompleteInputComponent 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 };
|
|
6055
6836
|
//# sourceMappingURL=coolon-angular-ui-powerups.js.map
|