@coolon/angular-ui-powerups 2.0.0-alpha.3 → 2.0.0-alpha.31
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 +191 -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 +1170 -326
- 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 +16 -8
- 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 +16 -2
- 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 +16 -8
- 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 +20 -2
- 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 +1016 -241
- package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
- package/fesm5/coolon-angular-ui-powerups.js +1085 -257
- 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/lib/interaction/components/activity-container/activity-outlet/activity-outlet.component.d.ts +3 -0
- 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, 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", [])
|
|
@@ -1971,6 +2706,81 @@ TableHeaderCellRendererComponent = __decorate([
|
|
|
1971
2706
|
__metadata("design:paramtypes", [])
|
|
1972
2707
|
], TableHeaderCellRendererComponent);
|
|
1973
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() {
|
|
2731
|
+
}
|
|
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;
|
|
2739
|
+
}
|
|
2740
|
+
closeMoreMenu() {
|
|
2741
|
+
this.menu.closeMenu();
|
|
2742
|
+
}
|
|
2743
|
+
};
|
|
2744
|
+
__decorate([
|
|
2745
|
+
Input(),
|
|
2746
|
+
__metadata("design:type", Object)
|
|
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([
|
|
2753
|
+
Component({
|
|
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
|
+
}`]
|
|
2780
|
+
}),
|
|
2781
|
+
__metadata("design:paramtypes", [])
|
|
2782
|
+
], TableRowMenuComponent);
|
|
2783
|
+
|
|
1974
2784
|
let VerticalFocusContainerComponent = class VerticalFocusContainerComponent extends FocusContainerComponent {
|
|
1975
2785
|
constructor(focusManager) {
|
|
1976
2786
|
super(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])
|
|
@@ -2501,15 +3260,23 @@ let ActivityOutletComponent = class ActivityOutletComponent {
|
|
|
2501
3260
|
this.componentFactoryResolver = componentFactoryResolver;
|
|
2502
3261
|
this.viewContainerRef = viewContainerRef;
|
|
2503
3262
|
this.injector = injector;
|
|
3263
|
+
this._disableAnimation = false;
|
|
2504
3264
|
}
|
|
2505
3265
|
set activityRef(activityRef) {
|
|
2506
3266
|
if (this.activityRef && !this.activityRef.isComplete()) {
|
|
2507
|
-
lang$1.illegalState(
|
|
3267
|
+
lang$1.illegalState('changing activity before previous one has completed');
|
|
2508
3268
|
}
|
|
2509
3269
|
this._activityRef = activityRef;
|
|
2510
3270
|
this.loadActivity(activityRef);
|
|
2511
3271
|
}
|
|
2512
3272
|
;
|
|
3273
|
+
set disableAnimation(value) {
|
|
3274
|
+
// console.log({disableAnimation: value});
|
|
3275
|
+
this._disableAnimation = value;
|
|
3276
|
+
}
|
|
3277
|
+
get disableAnimation() {
|
|
3278
|
+
return this._disableAnimation;
|
|
3279
|
+
}
|
|
2513
3280
|
get activityRef() {
|
|
2514
3281
|
return this._activityRef;
|
|
2515
3282
|
}
|
|
@@ -2546,6 +3313,12 @@ __decorate([
|
|
|
2546
3313
|
__metadata("design:type", ActivityRef),
|
|
2547
3314
|
__metadata("design:paramtypes", [ActivityRef])
|
|
2548
3315
|
], ActivityOutletComponent.prototype, "activityRef", null);
|
|
3316
|
+
__decorate([
|
|
3317
|
+
Input(),
|
|
3318
|
+
HostBinding('@.disabled'),
|
|
3319
|
+
__metadata("design:type", Boolean),
|
|
3320
|
+
__metadata("design:paramtypes", [Boolean])
|
|
3321
|
+
], ActivityOutletComponent.prototype, "disableAnimation", null);
|
|
2549
3322
|
ActivityOutletComponent = __decorate([
|
|
2550
3323
|
Component({
|
|
2551
3324
|
selector: 'aup-activity-outlet',
|
|
@@ -2563,6 +3336,11 @@ let ActivityContainerComponent = class ActivityContainerComponent extends Abstra
|
|
|
2563
3336
|
this.dynamicHeight = false;
|
|
2564
3337
|
this.activityTabs = [];
|
|
2565
3338
|
this.garbage = new GarbageCollector();
|
|
3339
|
+
// We have issues where angular is triggering a leave animation when an
|
|
3340
|
+
// activity is replaced by another, but is not running the enter animation
|
|
3341
|
+
// when it is scrolled back into view. So we track the tab changes and
|
|
3342
|
+
// disable all animations inside the tab while we're animating.
|
|
3343
|
+
this.inTabChange = new MutableValueModel(false);
|
|
2566
3344
|
}
|
|
2567
3345
|
ngOnInit() {
|
|
2568
3346
|
}
|
|
@@ -2594,6 +3372,7 @@ let ActivityContainerComponent = class ActivityContainerComponent extends Abstra
|
|
|
2594
3372
|
registerDisposable(disposable) {
|
|
2595
3373
|
return this.garbage.registerDisposable(disposable);
|
|
2596
3374
|
}
|
|
3375
|
+
// @Trace()
|
|
2597
3376
|
dispose() {
|
|
2598
3377
|
// TODO: think about auto cancelling any outstanding activity on dispose.
|
|
2599
3378
|
// See NavigationState.Navigating for a use-case.
|
|
@@ -2687,19 +3466,23 @@ let ActivityContainerComponent = class ActivityContainerComponent extends Abstra
|
|
|
2687
3466
|
return index;
|
|
2688
3467
|
}
|
|
2689
3468
|
;
|
|
3469
|
+
// @Trace()
|
|
2690
3470
|
onAnimationFinished() {
|
|
2691
3471
|
if (this.onAnimationFinishedJob) {
|
|
2692
3472
|
this.onAnimationFinishedJob();
|
|
2693
3473
|
this.onAnimationFinishedJob = undefined;
|
|
2694
3474
|
}
|
|
3475
|
+
this.inTabChange.value = false;
|
|
2695
3476
|
}
|
|
2696
3477
|
/**
|
|
2697
3478
|
* Synchronises the selected tab index.
|
|
2698
3479
|
*/
|
|
3480
|
+
// @Trace()
|
|
2699
3481
|
synchroniseSelectedTabIndex() {
|
|
2700
3482
|
const previousIndex = this.tabs.selectedIndex;
|
|
2701
3483
|
const newIndex = this.getActiveActivityCount() - 1;
|
|
2702
3484
|
if (previousIndex !== newIndex) {
|
|
3485
|
+
this.inTabChange.value = true;
|
|
2703
3486
|
this.tabs.selectedIndex = newIndex;
|
|
2704
3487
|
this.onAnimationFinishedJob = () => {
|
|
2705
3488
|
this.getSelectedOutlet().component.onActivityReady();
|
|
@@ -2711,6 +3494,10 @@ let ActivityContainerComponent = class ActivityContainerComponent extends Abstra
|
|
|
2711
3494
|
return this.activityOutlets.toArray()[this.tabs.selectedIndex];
|
|
2712
3495
|
}
|
|
2713
3496
|
// @Trace()
|
|
3497
|
+
getSelectedTabIndex() {
|
|
3498
|
+
return this.tabs.selectedIndex;
|
|
3499
|
+
}
|
|
3500
|
+
// @Trace()
|
|
2714
3501
|
triggerTabSynchronisation() {
|
|
2715
3502
|
if (this.syncSelectedTabTimeout) {
|
|
2716
3503
|
clearTimeout(this.syncSelectedTabTimeout);
|
|
@@ -2733,16 +3520,10 @@ __decorate([
|
|
|
2733
3520
|
ViewChildren(ActivityOutletComponent),
|
|
2734
3521
|
__metadata("design:type", QueryList)
|
|
2735
3522
|
], ActivityContainerComponent.prototype, "activityOutlets", void 0);
|
|
2736
|
-
__decorate([
|
|
2737
|
-
Trace(),
|
|
2738
|
-
__metadata("design:type", Function),
|
|
2739
|
-
__metadata("design:paramtypes", []),
|
|
2740
|
-
__metadata("design:returntype", void 0)
|
|
2741
|
-
], ActivityContainerComponent.prototype, "dispose", null);
|
|
2742
3523
|
ActivityContainerComponent = __decorate([
|
|
2743
3524
|
Component({
|
|
2744
3525
|
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\"
|
|
3526
|
+
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\">\n <aup-activity-outlet [nestedInteractionContext]=\"this\"\n [activityRef]=\"tab\"\n [disableAnimation]=\"inTabChange.value || i !== getSelectedTabIndex()\"></aup-activity-outlet>\n </mat-tab>\n</mat-tab-group>\n",
|
|
2746
3527
|
styles: [":host{display:flex;flex-direction:column}mat-tab-group{flex:1}"]
|
|
2747
3528
|
}),
|
|
2748
3529
|
__metadata("design:paramtypes", [])
|
|
@@ -3725,7 +4506,7 @@ let PlaceComponent = PlaceComponent_1 = class PlaceComponent extends DisposableC
|
|
|
3725
4506
|
assert.isNil(this.visitModel.value);
|
|
3726
4507
|
const { when } = Dsl.disposeWith(this);
|
|
3727
4508
|
this.visitModel.value = visit;
|
|
3728
|
-
DebugContext.
|
|
4509
|
+
DebugContext.getOrCreate(this.visitModel).tag(`${this.placeDefinition.component.name}.visitModel`);
|
|
3729
4510
|
this.placeDefinition.getVisitParameterDefs().forEach(parameterDef => this.installBinding(parameterDef));
|
|
3730
4511
|
when.valueOf(this.visitModel).changes((current, previous) => {
|
|
3731
4512
|
notifyVisitChanged(current, previous);
|
|
@@ -4765,70 +5546,6 @@ UrlService = __decorate([
|
|
|
4765
5546
|
__metadata("design:paramtypes", [Router, Location, UrlSerializer])
|
|
4766
5547
|
], UrlService);
|
|
4767
5548
|
|
|
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
5549
|
let PlaceRouter = class PlaceRouter extends GarbageCollector {
|
|
4833
5550
|
constructor(angularRouter, angularLocation, interactionService, urlService, placeHistory) {
|
|
4834
5551
|
super();
|
|
@@ -4990,6 +5707,7 @@ let PlaceRouter = class PlaceRouter extends GarbageCollector {
|
|
|
4990
5707
|
get activeVisits() {
|
|
4991
5708
|
return this._activeVisits.readonly;
|
|
4992
5709
|
}
|
|
5710
|
+
// @Trace()
|
|
4993
5711
|
pushVisitChangesToRoute(previous, next) {
|
|
4994
5712
|
return __awaiter(this, void 0, void 0, function* () {
|
|
4995
5713
|
this.placeHistory.updateVisit(next);
|
|
@@ -5086,12 +5804,6 @@ PlaceRouter.ctorParameters = () => [
|
|
|
5086
5804
|
{ type: PlaceHistory }
|
|
5087
5805
|
];
|
|
5088
5806
|
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
5807
|
PlaceRouter = __decorate([
|
|
5096
5808
|
Injectable({
|
|
5097
5809
|
providedIn: 'root'
|
|
@@ -5103,6 +5815,70 @@ PlaceRouter = __decorate([
|
|
|
5103
5815
|
PlaceHistory])
|
|
5104
5816
|
], PlaceRouter);
|
|
5105
5817
|
|
|
5818
|
+
class Visit {
|
|
5819
|
+
constructor(placeDefinition, visitParameters = {}) {
|
|
5820
|
+
this.placeDefinition = placeDefinition;
|
|
5821
|
+
this.visitParameters = visitParameters;
|
|
5822
|
+
}
|
|
5823
|
+
// @Trace()
|
|
5824
|
+
getRouteId() {
|
|
5825
|
+
return this.placeDefinition.getRouteIdFrom(this);
|
|
5826
|
+
}
|
|
5827
|
+
// @Trace()
|
|
5828
|
+
hasRouteId() {
|
|
5829
|
+
return !isNil(this.getRouteId());
|
|
5830
|
+
}
|
|
5831
|
+
/**
|
|
5832
|
+
* Returns the value of the place parameter with the specified name. The parameter
|
|
5833
|
+
* name is taken from the `as` option, e.g. {as: 'aCustomName'} otherwise it is the
|
|
5834
|
+
* same as the the ValueModel property name.
|
|
5835
|
+
* @param parameterName the field name of the property model or the `as` option if specified.
|
|
5836
|
+
*/
|
|
5837
|
+
getParameter(parameterName) {
|
|
5838
|
+
return this.visitParameters[parameterName];
|
|
5839
|
+
}
|
|
5840
|
+
// @Trace()
|
|
5841
|
+
hasParameter(parameterName) {
|
|
5842
|
+
return Object.keys(this.visitParameters).includes(parameterName);
|
|
5843
|
+
}
|
|
5844
|
+
replace(parameter, value) {
|
|
5845
|
+
return new Visit(this.placeDefinition, Object.assign(Object.assign({}, this.visitParameters), { [parameter.name]: value }));
|
|
5846
|
+
}
|
|
5847
|
+
mergeRouteParameters(routeParams) {
|
|
5848
|
+
// todo: whitelist parameters.
|
|
5849
|
+
const routeParameterKeys = Object.keys(routeParams);
|
|
5850
|
+
const params = {};
|
|
5851
|
+
this.placeDefinition.getVisitParameterDefs().forEach(def => {
|
|
5852
|
+
if (def.isRouteId || def.isRouteParameter) {
|
|
5853
|
+
if (routeParameterKeys.includes(def.name)) {
|
|
5854
|
+
params[def.name] = routeParams[def.name];
|
|
5855
|
+
}
|
|
5856
|
+
}
|
|
5857
|
+
else {
|
|
5858
|
+
// copy non route params as is, but only if they already exist otherwise we'll inject nil values and break the
|
|
5859
|
+
// defaults and remember sanitisation process.
|
|
5860
|
+
const value = this.getParameter(def.name);
|
|
5861
|
+
if (this.hasParameter(def.name)) {
|
|
5862
|
+
params[def.name] = value;
|
|
5863
|
+
}
|
|
5864
|
+
}
|
|
5865
|
+
});
|
|
5866
|
+
return new Visit(this.placeDefinition, params);
|
|
5867
|
+
}
|
|
5868
|
+
hasRoutingChangedFrom(other) {
|
|
5869
|
+
const samePlace = other.placeDefinition === this.placeDefinition;
|
|
5870
|
+
const sameRouteParameters = isEqual(this.placeDefinition.getFormattedRouteParameters(this, true), this.placeDefinition.getFormattedRouteParameters(other, true));
|
|
5871
|
+
return !samePlace || !sameRouteParameters;
|
|
5872
|
+
}
|
|
5873
|
+
hasChangedFrom(other) {
|
|
5874
|
+
const sameNonRouteParameters = isEqual(this.placeDefinition.getNonRouteParameters(this), this.placeDefinition.getNonRouteParameters(other));
|
|
5875
|
+
return !sameNonRouteParameters || this.hasRoutingChangedFrom(other);
|
|
5876
|
+
}
|
|
5877
|
+
toDebugString() {
|
|
5878
|
+
return Object.keys(this.visitParameters).map(k => `${k}=${this.visitParameters[k]}`).join(",");
|
|
5879
|
+
}
|
|
5880
|
+
}
|
|
5881
|
+
|
|
5106
5882
|
const AUP_PLACE_CONFIG = new InjectionToken('AUP_PLACE_CONFIG');
|
|
5107
5883
|
|
|
5108
5884
|
// Freezes the state of the components at the start of the animation.
|
|
@@ -5988,8 +6764,7 @@ function installMechanics(prototype, propertyKey, backingModel, tagPrefix, isEmp
|
|
|
5988
6764
|
binding: null
|
|
5989
6765
|
};
|
|
5990
6766
|
const tag = `${tagPrefix}(${prototype.constructor.name}.${propertyKey.toString()})`;
|
|
5991
|
-
DebugContext.
|
|
5992
|
-
Logger.get(mechanics.backingModel).tag(tag);
|
|
6767
|
+
DebugContext.getOrCreate(mechanics.backingModel).tag(tag);
|
|
5993
6768
|
Object.defineProperty(prototype, propertyKey, {
|
|
5994
6769
|
get: function () {
|
|
5995
6770
|
return mechanics.backingModel;
|
|
@@ -6051,5 +6826,5 @@ function VisitParameterList(options) {
|
|
|
6051
6826
|
* Generated bundle index. Do not edit.
|
|
6052
6827
|
*/
|
|
6053
6828
|
|
|
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,
|
|
6829
|
+
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
6830
|
//# sourceMappingURL=coolon-angular-ui-powerups.js.map
|