@wavemaker/app-ng-runtime 11.8.0-rc.5627 → 12.0.0-next.44002

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.
Files changed (23) hide show
  1. app-ng-runtime/components/basic/default/bundles/index.umd.js +2 -2
  2. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +3 -3
  3. app-ng-runtime/components/basic/default/fesm2022/index.mjs +2 -2
  4. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  5. app-ng-runtime/components/basic/progress/bundles/index.umd.js +4 -4
  6. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +3 -3
  7. app-ng-runtime/components/basic/progress/esm2022/progress-circle/progress-circle.component.mjs +3 -3
  8. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +4 -4
  9. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  10. app-ng-runtime/components/input/epoch/bundles/index.umd.js +16 -4
  11. app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +5 -4
  12. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +13 -2
  13. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +16 -4
  14. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  15. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +1 -1
  16. app-ng-runtime/components/navigation/menu/esm2022/menu.component.mjs +2 -2
  17. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs +1 -1
  18. app-ng-runtime/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  19. app-ng-runtime/package.json +1 -1
  20. app-ng-runtime/runtime/base/bundles/index.umd.js +1 -0
  21. app-ng-runtime/runtime/base/esm2022/services/i18n.service.mjs +2 -2
  22. app-ng-runtime/runtime/base/fesm2022/index.mjs +1 -1
  23. app-ng-runtime/runtime/base/fesm2022/index.mjs.map +1 -1
@@ -392,7 +392,7 @@
392
392
  else if (eventAction === KEY_MOVEMENTS.ON_ENTER || (eventAction === KEY_MOVEMENTS.ON_MOUSE_ENTER && this.showonhover)) {
393
393
  this.bsDropdown.toggle(true);
394
394
  }
395
- else if (_.includes([KEY_MOVEMENTS.MOVE_UP, KEY_MOVEMENTS.MOVE_LEFT], eventAction) || (eventAction == KEY_MOVEMENTS.ON_MOUSE_LEAVE && this.autoclose == i5.AUTOCLOSE_TYPE.ALWAYS)) {
395
+ else if (_.includes([KEY_MOVEMENTS.MOVE_UP, KEY_MOVEMENTS.MOVE_LEFT], eventAction) || (eventAction == KEY_MOVEMENTS.ON_MOUSE_LEAVE && this.autoclose == i5.AUTOCLOSE_TYPE.ALWAYS && this.showonhover)) {
396
396
  this.bsDropdown.hide();
397
397
  }
398
398
  $event.preventDefault();
@@ -140,7 +140,7 @@ export class MenuComponent extends DatasetAwareNavComponent {
140
140
  else if (eventAction === KEY_MOVEMENTS.ON_ENTER || (eventAction === KEY_MOVEMENTS.ON_MOUSE_ENTER && this.showonhover)) {
141
141
  this.bsDropdown.toggle(true);
142
142
  }
143
- else if (_.includes([KEY_MOVEMENTS.MOVE_UP, KEY_MOVEMENTS.MOVE_LEFT], eventAction) || (eventAction == KEY_MOVEMENTS.ON_MOUSE_LEAVE && this.autoclose == AUTOCLOSE_TYPE.ALWAYS)) {
143
+ else if (_.includes([KEY_MOVEMENTS.MOVE_UP, KEY_MOVEMENTS.MOVE_LEFT], eventAction) || (eventAction == KEY_MOVEMENTS.ON_MOUSE_LEAVE && this.autoclose == AUTOCLOSE_TYPE.ALWAYS && this.showonhover)) {
144
144
  this.bsDropdown.hide();
145
145
  }
146
146
  $event.preventDefault();
@@ -315,4 +315,4 @@ export class MenuComponent extends DatasetAwareNavComponent {
315
315
  type: HostListener,
316
316
  args: ['keydown.enter', ['$event', '"ENTER"']]
317
317
  }] }); })();
318
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvbmF2aWdhdGlvbi9tZW51L3NyYy9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9uYXZpZ2F0aW9uL21lbnUvc3JjL21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFHUixRQUFRLEVBQ1IsSUFBSSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV2QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUUzRCxPQUFPLEVBQ0gsVUFBVSxFQUNWLFFBQVEsRUFDUixHQUFHLEVBQ0gsV0FBVyxFQUNYLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsMkJBQTJCLEVBQzlCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFDSCxjQUFjLEVBQ2Qsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsTUFBTSxFQUNULE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRWpELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7OztJQ2hDdkMsaUNBV3lDO0lBQ3JDLDBCQUFpRTtJQUNyRSxpQkFBUzs7O0lBUkQsa0ZBQW9EO0lBRHBELG1EQUFrQztJQVFKLGVBQXVCO0lBQXZCLHNFQUF1Qjs7O0lBSzdELG9CQUFzQyxjQUFBLFdBQUE7OztJQUFuQyw0REFBOEI7SUFDWCxlQUF1QjtJQUF2Qiw0Q0FBdUI7SUFDdkMsZUFBeUM7SUFBekMs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QTlCLFlBQVk7bUJBQUMsU0FBUztZQVNHLE1BQU07a0JBQS9CLFlBQVk7bUJBQUMsVUFBVTtZQWU4QixTQUFTO2tCQU45RCxZQUFZO21CQUFDLGlCQUFpQixFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQzs7a0JBQ3hELFlBQVk7bUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQzs7a0JBQ3RELFlBQVk7bUJBQUMsWUFBWSxFQUFFLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQzs7a0JBQ3RELFlBQVk7bUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDOztrQkFDNUQsWUFBWTttQkFBQyxvQkFBb0IsRUFBRSxDQUFDLFFBQVEsRUFBRSxlQUFlLENBQUM7O2tCQUM5RCxZQUFZO21CQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQzs7a0JBQzVELFlBQVk7bUJBQUMsZUFBZSxFQUFFLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBBdHRyaWJ1dGUsXG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RMaXN0ZW5lcixcbiAgICBJbmplY3RvcixcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIFNlbGZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHtCc0Ryb3Bkb3duRGlyZWN0aXZlfSBmcm9tICduZ3gtYm9vdHN0cmFwL2Ryb3Bkb3duJztcblxuaW1wb3J0IHtcbiAgICAkYXBwRGlnZXN0LFxuICAgIGFkZENsYXNzLFxuICAgIEFwcCxcbiAgICByZW1vdmVDbGFzcyxcbiAgICB0b2dnbGVDbGFzcyxcbiAgICB0cmlnZ2VySXRlbUFjdGlvbixcbiAgICBVc2VyRGVmaW5lZEV4ZWN1dGlvbkNvbnRleHRcbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBVVRPQ0xPU0VfVFlQRSxcbiAgICBEYXRhc2V0QXdhcmVOYXZDb21wb25lbnQsXG4gICAgaGFzTGlua1RvQ3VycmVudFBhZ2UsXG4gICAgcHJvdmlkZUFzV2lkZ2V0UmVmLFxuICAgIHN0eWxlclxufSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7TmF2Q29tcG9uZW50fSBmcm9tICcuL25hdi9uYXYuY29tcG9uZW50JztcblxuaW1wb3J0IHtyZWdpc3RlclByb3BzfSBmcm9tICcuL21lbnUucHJvcHMnO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5cbmV4cG9ydCBjb25zdCBLRVlCT0FSRF9NT1ZFTUVOVFMgPSB7XG4gICAgTU9WRV9VUDogJ1VQLUFSUk9XJyxcbiAgICBNT1ZFX0xFRlQ6ICdMRUZULUFSUk9XJyxcbiAgICBNT1ZFX1JJR0hUOiAnUklHSFQtQVJST1cnLFxuICAgIE1PVkVfRE9XTjogJ0RPV04tQVJST1cnLFxuICAgIE9OX0VOVEVSOiAnRU5URVInLFxuICAgIE9OX01PVVNFX0VOVEVSOiAnTU9VU0UtRU5URVInLFxuICAgIE9OX01PVVNFX0xFQVZFOiAnTU9VU0UtTEVBVkUnLFxuICAgIE9OX1RBQjogJ1RBQicsXG4gICAgT05fU0hJRlRfVEFCOiAnU0hJRlQtVEFCJyxcbiAgICBPTl9FU0NBUEU6ICdFU0MnXG59O1xuXG5leHBvcnQgY29uc3QgTUVOVV9QT1NJVElPTiA9IHtcbiAgICBVUF9MRUZUOiAndXAsbGVmdCcsXG4gICAgVVBfUklHSFQ6ICd1cCxyaWdodCcsXG4gICAgRE9XTl9MRUZUOiAnZG93bixsZWZ0JyxcbiAgICBET1dOX1JJR0hUOiAnZG93bixyaWdodCcsXG4gICAgSU5MSU5FOiAnaW5saW5lJ1xufTtcblxuY29uc3QgUE9TSVRJT04gPSB7XG4gICAgRE9XTl9SSUdIVDogJ2Rvd24scmlnaHQnLFxuICAgIERPV05fTEVGVDogJ2Rvd24sbGVmdCcsXG4gICAgVVBfUklHSFQ6ICd1cCxyaWdodCcsXG4gICAgVVBfTEVGVDogJ3VwLGxlZnQnLFxuICAgIElOTElORTogJ2lubGluZSdcbn07XG5jb25zdCBDQVJFVF9DTFMgPSB7XG4gICAgVVA6ICdmYS1jYXJldC11cCcsXG4gICAgRE9XTjogJ2ZhLWNhcmV0LWRvd24nXG59O1xuY29uc3QgUFVMTF9DTFMgPSB7XG4gICAgTEVGVDogJ3B1bGwtbGVmdCcsXG4gICAgUklHSFQ6ICdwdWxsLXJpZ2h0J1xufTtcblxuY29uc3QgQVVUT19PUEVOID0ge1xuICAgIE5FVkVSOiAnbmV2ZXInLFxuICAgIEFDVElWRV9QQUdFOiAnYWN0aXZlcGFnZScsXG4gICAgQUxXQVlTOiAnYWx3YXlzJ1xufTtcblxuY29uc3QgV0lER0VUX0NPTkZJRyA9IHsgd2lkZ2V0VHlwZTogJ3dtLW1lbnUnLCBob3N0Q2xhc3M6ICdkcm9wZG93biBhcHAtbWVudScgfTtcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnW3dtTWVudV0nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKE1lbnVDb21wb25lbnQpXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IGV4dGVuZHMgRGF0YXNldEF3YXJlTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICBwdWJsaWMgbWVudWFsaWduOiBzdHJpbmc7XG4gICAgcHVibGljIG1lbnVwb3NpdGlvbjogc3RyaW5nO1xuICAgIHB1YmxpYyBtZW51bGF5b3V0OiBzdHJpbmc7XG4gICAgcHVibGljIG1lbnVjbGFzczogc3RyaW5nO1xuICAgIHB1YmxpYyBsaW5rdGFyZ2V0OiBzdHJpbmc7XG4gICAgcHVibGljIGljb25jbGFzczogc3RyaW5nO1xuICAgIHB1YmxpYyBhbmltYXRlaXRlbXM6IHN0cmluZztcbiAgICBwdWJsaWMgZGlzYWJsZU1lbnVDb250ZXh0OiBib29sZWFuO1xuICAgIHB1YmxpYyBzaG93b25ob3ZlcjogYm9vbGVhbjtcbiAgICBwdWJsaWMgYXV0b2Nsb3NlOiBzdHJpbmc7XG4gICAgcHVibGljIGF1dG9vcGVuOiBzdHJpbmc7XG4gICAgcHVibGljIGhpbnQ6IHN0cmluZztcblxuICAgIHByaXZhdGUgaXRlbUFjdGlvbkZuOiBGdW5jdGlvbjtcbiAgICBwcml2YXRlIG1lbnVDYXJldCA9ICdmYS1jYXJldC1kb3duJztcbiAgICBwcml2YXRlIF9zZWxlY3RGaXJzdEl0ZW0gPSBmYWxzZTtcblxuICAgIHB1YmxpYyB0eXBlOiBhbnk7XG4gICAgcHVibGljIF9tZW51cG9zaXRpb246IHN0cmluZztcblxuICAgIEBIb3N0TGlzdGVuZXIoJ29uU2hvd24nKSBvblNob3coKSB7XG4gICAgICAgIHRoaXMuX21lbnVwb3NpdGlvbiA9IHRoaXMubWVudXBvc2l0aW9uO1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0Rmlyc3RJdGVtKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLiRlbGVtZW50LmZpbmQoJz4gdWxbd21tZW51ZHJvcGRvd25dIGxpLmFwcC1tZW51LWl0ZW0nKS5maXJzdCgpLmZpbmQoJz4gYScpLmZvY3VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICAkYXBwRGlnZXN0KCk7XG4gICAgfVxuICAgIEBIb3N0TGlzdGVuZXIoJ29uSGlkZGVuJykgb25IaWRlKCkge1xuICAgICAgICB0aGlzLiRlbGVtZW50LmZpbmQoJ2xpJykucmVtb3ZlQ2xhc3MoJ29wZW4nKTtcbiAgICAgICAgdGhpcy5fc2VsZWN0Rmlyc3RJdGVtID0gZmFsc2U7XG4gICAgICAgIC8vIHJlc2V0IHRoZSBtZW51cG9zaXRpb24gd2hlbiBkcm9wZG93biBpcyBjbG9zZWRcbiAgICAgICAgdGhpcy5tZW51cG9zaXRpb24gPSB0aGlzLl9tZW51cG9zaXRpb24gPyB0aGlzLl9tZW51cG9zaXRpb24gOiBNRU5VX1BPU0lUSU9OLkRPV05fUklHSFQ7XG4gICAgICAgIHRoaXMuc2V0TWVudVBvc2l0aW9uKCk7XG4gICAgICAgICRhcHBEaWdlc3QoKTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93dXAnLCBbJyRldmVudCcsICdcIlVQLUFSUk9XXCInXSlcbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJywgWyckZXZlbnQnLCAnXCJNT1VTRS1FTlRFUlwiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScsIFsnJGV2ZW50JywgJ1wiTU9VU0UtTEVBVkVcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dkb3duJywgWyckZXZlbnQnLCAnXCJET1dOLUFSUk9XXCInXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93cmlnaHQnLCBbJyRldmVudCcsICdcIlJJR0hULUFSUk9XXCInXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93bGVmdCcsIFsnJGV2ZW50JywgJ1wiTEVGVC1BUlJPV1wiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lbnRlcicsIFsnJGV2ZW50JywgJ1wiRU5URVJcIiddKSBvbktleURvd24oJGV2ZW50LCBldmVudEFjdGlvbikge1xuICAgICAgICBjb25zdCBLRVlfTU9WRU1FTlRTID0gXy5jbG9uZShLRVlCT0FSRF9NT1ZFTUVOVFMpO1xuICAgICAgICBpZiAodGhpcy5tZW51cG9zaXRpb24gPT09IE1FTlVfUE9TSVRJT04uVVBfUklHSFQpIHtcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9VUCA9ICdET1dOLUFSUk9XJztcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9ET1dOID0gJ1VQLUFSUk9XJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1lbnVwb3NpdGlvbiA9PT0gTUVOVV9QT1NJVElPTi5VUF9MRUZUKSB7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfVVAgPSAnRE9XTi1BUlJPVyc7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfRE9XTiA9ICdVUC1BUlJPVyc7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfTEVGVCA9ICdSSUdIVC1BUlJPVyc7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfUklHSFQgPSAnTEVGVC1BUlJPVyc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5tZW51cG9zaXRpb24gPT09IE1FTlVfUE9TSVRJT04uRE9XTl9MRUZUKSB7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfTEVGVCA9ICdSSUdIVC1BUlJPVyc7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfUklHSFQgPSAnTEVGVC1BUlJPVyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXy5pbmNsdWRlcyhbS0VZX01PVkVNRU5UUy5NT1ZFX0RPV04sIEtFWV9NT1ZFTUVOVFMuTU9WRV9SSUdIVF0sIGV2ZW50QWN0aW9uKSkge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmJzRHJvcGRvd24uaXNPcGVuKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2VsZWN0Rmlyc3RJdGVtID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLmJzRHJvcGRvd24uc2hvdygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRlbGVtZW50LmZpbmQoJz4gdWxbd21tZW51ZHJvcGRvd25dIGxpLmFwcC1tZW51LWl0ZW0nKS5maXJzdCgpLmZpbmQoJz4gYScpLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuT05fRU5URVIgfHwgKGV2ZW50QWN0aW9uID09PSBLRVlfTU9WRU1FTlRTLk9OX01PVVNFX0VOVEVSICYmIHRoaXMuc2hvd29uaG92ZXIpKSB7XG4gICAgICAgICAgICB0aGlzLmJzRHJvcGRvd24udG9nZ2xlKHRydWUpO1xuICAgICAgICB9IGVsc2UgaWYgKF8uaW5jbHVkZXMoW0tFWV9NT1ZFTUVOVFMuTU9WRV9VUCwgS0VZX01PVkVNRU5UUy5NT1ZFX0xFRlRdLCBldmVudEFjdGlvbikgfHwgKGV2ZW50QWN0aW9uID09ICBLRVlfTU9WRU1FTlRTLk9OX01PVVNFX0xFQVZFICYmIHRoaXMuYXV0b2Nsb3NlID09IEFVVE9DTE9TRV9UWVBFLkFMV0FZUykpIHtcbiAgICAgICAgICAgIHRoaXMuYnNEcm9wZG93bi5oaWRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGluajogSW5qZWN0b3IsXG4gICAgICAgIHB1YmxpYyByb3V0ZTogUm91dGVyLFxuICAgICAgICBwcml2YXRlIHVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dDogVXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICBwcml2YXRlIGFwcDogQXBwLFxuICAgICAgICBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBic0Ryb3Bkb3duOiBCc0Ryb3Bkb3duRGlyZWN0aXZlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHBhcmVudE5hdjogTmF2Q29tcG9uZW50LFxuICAgICAgICBAQXR0cmlidXRlKCdzZWxlY3QuZXZlbnQnKSBwdWJsaWMgc2VsZWN0RXZlbnRDQjogc3RyaW5nXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0NPTkZJRyk7XG4gICAgICAgIGlmIChwYXJlbnROYXYpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZU1lbnVDb250ZXh0ID0gISFwYXJlbnROYXYuZGlzYWJsZU1lbnVDb250ZXh0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kaXNhYmxlTWVudUNvbnRleHQgPSAhIXNlbGVjdEV2ZW50Q0I7XG4gICAgICAgIH1cbiAgICAgICAgLy8gRm9yIHNlbGVjdGluZyB0aGUgaXRlbSBvbiBsb2FkXG4gICAgICAgIGNvbnN0IGRhdGFzZXRTdWJzY3JpcHRpb24gPSB0aGlzLm5vZGVzJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFfLmlzRW1wdHkodGhpcy5ub2RlcykpIHtcbiAgICAgICAgICAgICAgICBpZiAoaGFzTGlua1RvQ3VycmVudFBhZ2UodGhpcy5ub2RlcywgdGhpcy5yb3V0ZS51cmwpKSB7XG4gICAgICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZHJvcGRvd24tdG9nZ2xlJykgYXMgSFRNTEVsZW1lbnQsICdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gSWYgbWVudSB3aWRnZXQgaXMgaW5zaWRlIG5hdiB3aWRnZXQgdGhlbiBkb250IGNoZWNrIGZvciBpdGVtIGlzYWN0aXZlIHByb3BlcnR5IGJlY2F1c2UgdGhlc2Ugd2lsbCBiZSBoYW5kbGVkIGZvcm0gbmF2IHdpZGdldC5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYXJlbnROYXYpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgaXRlbUZvdW5kID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgY29uc3QgZ2V0SXRlbSA9IChub2RlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBfLmZvckVhY2gobm9kZXMsIChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXRlbUZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW0uaXNhY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtRm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMub25NZW51SXRlbVNlbGVjdCh7ICRldmVudDoge30sICRpdGVtOiBpdGVtIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRyaWdnZXIgdGhlIGFjdGlvbiBhc3NvY2lhdGVkIHdpdGggYWN0aXZlIGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VySXRlbUFjdGlvbih0aGlzLCBpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIV8uaXNFbXB0eShpdGVtLmNoaWxkcmVuKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEl0ZW0oaXRlbS5jaGlsZHJlbik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBnZXRJdGVtKHRoaXMubm9kZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiBkYXRhc2V0U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc2V0Tm9kZXMoKSB7XG4gICAgICAgIHN1cGVyLnJlc2V0Tm9kZXMoKTtcbiAgICAgICAgLy8gb3BlbiB0aGUgbWVudSBpZiBhbnkgb2YgaXRzIG1lbnUgaXRlbXMgaGFzIGxpbmsgdG8gY3VycmVudCBwYWdlIGFuZCBpZiBhdXRvb3BlbiB2YWx1ZSBpcyAnYWN0aXZlIHBhZ2UnXG4gICAgICAgIGlmICgodGhpcy5hdXRvb3BlbiA9PT0gQVVUT19PUEVOLkFDVElWRV9QQUdFICYmIGhhc0xpbmtUb0N1cnJlbnRQYWdlKHRoaXMubm9kZXMsIHRoaXMucm91dGUudXJsKSkgfHwgdGhpcy5hdXRvb3BlbiA9PT0gQVVUT19PUEVOLkFMV0FZUykge1xuICAgICAgICAgICAgdGhpcy5ic0Ryb3Bkb3duLnNob3coKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnNldE1lbnVQb3NpdGlvbigpO1xuXG4gICAgICAgIGNvbnN0IGNhbmNlbFN1YnNjcmlwdGlvbiA9IHRoaXMuYXBwLnN1YnNjcmliZShcImhpZ2hsaWdodEFjdGl2ZUxpbmtcIiwgKGRhdGEpID0+IHtcbiAgICAgICAgICAgIHRvZ2dsZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZHJvcGRvd24tdG9nZ2xlJykgYXMgSFRNTEVsZW1lbnQsICdhY3RpdmUnLCBoYXNMaW5rVG9DdXJyZW50UGFnZSh0aGlzLm5vZGVzLCB0aGlzLnJvdXRlLnVybCApKTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gY2FuY2VsU3Vic2NyaXB0aW9uKCkpO1xuICAgIH1cblxuICAgIG9uUHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ3RhYmluZGV4Jykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGtleSA9PT0gJ2F1dG9jbG9zZScpIHtcbiAgICAgICAgICAgIHRoaXMuYnNEcm9wZG93bi5hdXRvQ2xvc2UgPSBudiAhPT0gQVVUT0NMT1NFX1RZUEUuRElTQUJMRUQ7XG4gICAgICAgICAgICB0aGlzLmF1dG9jbG9zZSA9IG52O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3VwZXIub25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0TWVudVBvc2l0aW9uKCkge1xuICAgICAgICBzd2l0Y2ggKHRoaXMubWVudXBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIFBPU0lUSU9OLkRPV05fUklHSFQ6XG4gICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnZHJvcHVwJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSBQVUxMX0NMUy5MRUZUO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUNhcmV0ID0gQ0FSRVRfQ0xTLkRPV047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBPU0lUSU9OLkRPV05fTEVGVDpcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdkcm9wdXAnKTtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVhbGlnbiA9IFBVTExfQ0xTLlJJR0hUO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUNhcmV0ID0gQ0FSRVRfQ0xTLkRPV047XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBPU0lUSU9OLlVQX0xFRlQ6XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnZHJvcHVwJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSBQVUxMX0NMUy5SSUdIVDtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVDYXJldCA9IENBUkVUX0NMUy5VUDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgUE9TSVRJT04uVVBfUklHSFQ6XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnZHJvcHVwJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSBQVUxMX0NMUy5MRUZUO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudUNhcmV0ID0gQ0FSRVRfQ0xTLlVQO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBQT1NJVElPTi5JTkxJTkU6XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSAnZHJvcGlubGluZS1tZW51JztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbk1lbnVJdGVtU2VsZWN0KGFyZ3MpIHtcbiAgICAgICAgY29uc3QgeyAkZXZlbnQgfSA9IGFyZ3M7XG4gICAgICAgIGNvbnN0ICRpdGVtID0gYXJncy4kaXRlbS52YWx1ZTtcbiAgICAgICAgdGhpcy5pbnZva2VFdmVudENhbGxiYWNrKCdzZWxlY3QnLCB7ICRldmVudCwgJGl0ZW0gfSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICAgICAgc3R5bGVyKHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuZHJvcGRvd24tdG9nZ2xlJykgYXMgSFRNTEVsZW1lbnQsIHRoaXMpO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjbWVudVRlbXBsYXRlPlxuICAgIDxidXR0b24gd21CdXR0b25cbiAgICAgICAgICAgIGRyb3Bkb3duVG9nZ2xlXG4gICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJoaW50IHx8ICdNZW51J1wiXG4gICAgICAgICAgICBjbGFzcz1cImJ0biBhcHAtYnV0dG9uIGRyb3Bkb3duLXRvZ2dsZSB7e21lbnVjbGFzc319XCJcbiAgICAgICAgICAgIGhpbnQuYmluZD1cImhpbnRcIlxuICAgICAgICAgICAgc2hvcnRjdXRrZXkuYmluZD1cInNob3J0Y3V0a2V5XCJcbiAgICAgICAgICAgIHRhYmluZGV4LmJpbmQ9XCJ0YWJpbmRleFwiXG4gICAgICAgICAgICBjYXB0aW9uLmJpbmQ9XCJjYXB0aW9uXCJcbiAgICAgICAgICAgIGljb25jbGFzcy5iaW5kPVwiaWNvbmNsYXNzXCJcbiAgICAgICAgICAgIGljb25wb3NpdGlvbi5iaW5kPVwiaWNvbnBvc2l0aW9uXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicHVsbC1yaWdodCBjYXJldCBmYVwiIFtuZ0NsYXNzXT1cIlttZW51Q2FyZXRdXCI+PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNpbm5lclRlbXBsYXRlPlxuICAgIDxpIGNsYXNzPVwiYXBwLWljb24ge3tpY29uY2xhc3N9fVwiPjwvaT5cbiAgICA8c3BhbiBjbGFzcz1cImNhcHRpb25cIiBbdGV4dENvbnRlbnRdPVwiY2FwdGlvblwiPjwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cInB1bGwtcmlnaHQgY2FyZXQgZmEge3ttZW51Q2FyZXR9fVwiPjwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnYW5jaG9yJzsgZWxzZSBtZW51VGVtcGxhdGVcIj5cbiAgICA8YSB3bUFuY2hvclxuICAgICAgIGRyb3Bkb3duVG9nZ2xlXG5cbiAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApO1wiXG4gICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG5cbiAgICAgICBoaW50LmJpbmQ9XCJoaW50XCJcbiAgICAgICBjbGFzcz1cImRyb3Bkb3duLXRvZ2dsZSB7e21lbnVjbGFzc319XCJcbiAgICAgICBzaG9ydGN1dGtleS5iaW5kPVwic2hvcnRjdXRrZXlcIlxuICAgICAgIHRhYmluZGV4LmJpbmQ9XCJ0YWJpbmRleFwiXG4gICAgICAgY2FwdGlvbi5iaW5kPVwiY2FwdGlvblwiXG4gICAgICAgaWNvbmNsYXNzLmJpbmQ9XCJpY29uY2xhc3NcIlxuICAgICAgIGljb25wb3NpdGlvbi5iaW5kPVwiaWNvbnBvc2l0aW9uXCJcbiAgICAgICBiYWRnZXZhbHVlLmJpbmQ9XCJiYWRnZXZhbHVlXCJcbiAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicHVsbC1yaWdodCBjYXJldCBmYVwiIFtuZ0NsYXNzXT1cIlttZW51Q2FyZXRdXCI+PC9zcGFuPlxuICAgIDwvYT5cbjwvbmctY29udGFpbmVyPlxuXG48dWwgd21NZW51RHJvcGRvd24gW2l0ZW1zXT1cIm5vZGVzXCIgW25nQ2xhc3NdPVwibWVudWxheW91dFwiIGNsYXNzPVwiaWNvbi1wb3NpdGlvbi17e2ljb25wb3NpdGlvbn19XCIgKmRyb3Bkb3duTWVudSBhcmlhLWxhYmVsbGVkYnk9XCJkcm9wZG93bm1lbnVcIiByb2xlPVwibWVudWJhclwiPjwvdWw+XG4iXX0=
318
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvbmF2aWdhdGlvbi9tZW51L3NyYy9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9uYXZpZ2F0aW9uL21lbnUvc3JjL21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFDVCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFFBQVEsRUFHUixRQUFRLEVBQ1IsSUFBSSxFQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUV2QyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUUzRCxPQUFPLEVBQ0gsVUFBVSxFQUNWLFFBQVEsRUFDUixHQUFHLEVBQ0gsV0FBVyxFQUNYLFdBQVcsRUFDWCxpQkFBaUIsRUFDakIsMkJBQTJCLEVBQzlCLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFDSCxjQUFjLEVBQ2Qsd0JBQXdCLEVBQ3hCLG9CQUFvQixFQUNwQixrQkFBa0IsRUFDbEIsTUFBTSxFQUNULE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRWpELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7OztJQ2hDdkMsaUNBV3lDO0lBQ3JDLDBCQUFpRTtJQUNyRSxpQkFBUzs7O0lBUkQsa0ZBQW9EO0lBRHBELG1EQUFrQztJQVFKLGVBQXVCO0lBQXZCLHNFQUF1Qjs7O0lBSzdELG9CQUFzQyxjQUFBLFdBQUE7OztJQUFuQyw0REFBOEI7SUFDWCxlQUF1QjtJQUF2Qiw0Q0FBdUI7SUFDdkMsZUFBeUM7SUFBekMs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Y0FBYzt3QkE3REosTUFBTTtrQkFBOUIsWUFBWTttQkFBQyxTQUFTO1lBU0csTUFBTTtrQkFBL0IsWUFBWTttQkFBQyxVQUFVO1lBZThCLFNBQVM7a0JBTjlELFlBQVk7bUJBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDOztrQkFDeEQsWUFBWTttQkFBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDOztrQkFDdEQsWUFBWTttQkFBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDOztrQkFDdEQsWUFBWTttQkFBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUM7O2tCQUM1RCxZQUFZO21CQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQzs7a0JBQzlELFlBQVk7bUJBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDOztrQkFDNUQsWUFBWTttQkFBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIEF0dHJpYnV0ZSxcbiAgICBDb21wb25lbnQsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdG9yLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge0JzRHJvcGRvd25EaXJlY3RpdmV9IGZyb20gJ25neC1ib290c3RyYXAvZHJvcGRvd24nO1xuXG5pbXBvcnQge1xuICAgICRhcHBEaWdlc3QsXG4gICAgYWRkQ2xhc3MsXG4gICAgQXBwLFxuICAgIHJlbW92ZUNsYXNzLFxuICAgIHRvZ2dsZUNsYXNzLFxuICAgIHRyaWdnZXJJdGVtQWN0aW9uLFxuICAgIFVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dFxufSBmcm9tICdAd20vY29yZSc7XG5pbXBvcnQge1xuICAgIEFVVE9DTE9TRV9UWVBFLFxuICAgIERhdGFzZXRBd2FyZU5hdkNvbXBvbmVudCxcbiAgICBoYXNMaW5rVG9DdXJyZW50UGFnZSxcbiAgICBwcm92aWRlQXNXaWRnZXRSZWYsXG4gICAgc3R5bGVyXG59IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHtOYXZDb21wb25lbnR9IGZyb20gJy4vbmF2L25hdi5jb21wb25lbnQnO1xuXG5pbXBvcnQge3JlZ2lzdGVyUHJvcHN9IGZyb20gJy4vbWVudS5wcm9wcyc7XG5cbmRlY2xhcmUgY29uc3QgXztcblxuZXhwb3J0IGNvbnN0IEtFWUJPQVJEX01PVkVNRU5UUyA9IHtcbiAgICBNT1ZFX1VQOiAnVVAtQVJST1cnLFxuICAgIE1PVkVfTEVGVDogJ0xFRlQtQVJST1cnLFxuICAgIE1PVkVfUklHSFQ6ICdSSUdIVC1BUlJPVycsXG4gICAgTU9WRV9ET1dOOiAnRE9XTi1BUlJPVycsXG4gICAgT05fRU5URVI6ICdFTlRFUicsXG4gICAgT05fTU9VU0VfRU5URVI6ICdNT1VTRS1FTlRFUicsXG4gICAgT05fTU9VU0VfTEVBVkU6ICdNT1VTRS1MRUFWRScsXG4gICAgT05fVEFCOiAnVEFCJyxcbiAgICBPTl9TSElGVF9UQUI6ICdTSElGVC1UQUInLFxuICAgIE9OX0VTQ0FQRTogJ0VTQydcbn07XG5cbmV4cG9ydCBjb25zdCBNRU5VX1BPU0lUSU9OID0ge1xuICAgIFVQX0xFRlQ6ICd1cCxsZWZ0JyxcbiAgICBVUF9SSUdIVDogJ3VwLHJpZ2h0JyxcbiAgICBET1dOX0xFRlQ6ICdkb3duLGxlZnQnLFxuICAgIERPV05fUklHSFQ6ICdkb3duLHJpZ2h0JyxcbiAgICBJTkxJTkU6ICdpbmxpbmUnXG59O1xuXG5jb25zdCBQT1NJVElPTiA9IHtcbiAgICBET1dOX1JJR0hUOiAnZG93bixyaWdodCcsXG4gICAgRE9XTl9MRUZUOiAnZG93bixsZWZ0JyxcbiAgICBVUF9SSUdIVDogJ3VwLHJpZ2h0JyxcbiAgICBVUF9MRUZUOiAndXAsbGVmdCcsXG4gICAgSU5MSU5FOiAnaW5saW5lJ1xufTtcbmNvbnN0IENBUkVUX0NMUyA9IHtcbiAgICBVUDogJ2ZhLWNhcmV0LXVwJyxcbiAgICBET1dOOiAnZmEtY2FyZXQtZG93bidcbn07XG5jb25zdCBQVUxMX0NMUyA9IHtcbiAgICBMRUZUOiAncHVsbC1sZWZ0JyxcbiAgICBSSUdIVDogJ3B1bGwtcmlnaHQnXG59O1xuXG5jb25zdCBBVVRPX09QRU4gPSB7XG4gICAgTkVWRVI6ICduZXZlcicsXG4gICAgQUNUSVZFX1BBR0U6ICdhY3RpdmVwYWdlJyxcbiAgICBBTFdBWVM6ICdhbHdheXMnXG59O1xuXG5jb25zdCBXSURHRVRfQ09ORklHID0geyB3aWRnZXRUeXBlOiAnd20tbWVudScsIGhvc3RDbGFzczogJ2Ryb3Bkb3duIGFwcC1tZW51JyB9O1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbd21NZW51XScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoTWVudUNvbXBvbmVudClcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVDb21wb25lbnQgZXh0ZW5kcyBEYXRhc2V0QXdhcmVOYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIHB1YmxpYyBtZW51YWxpZ246IHN0cmluZztcbiAgICBwdWJsaWMgbWVudXBvc2l0aW9uOiBzdHJpbmc7XG4gICAgcHVibGljIG1lbnVsYXlvdXQ6IHN0cmluZztcbiAgICBwdWJsaWMgbWVudWNsYXNzOiBzdHJpbmc7XG4gICAgcHVibGljIGxpbmt0YXJnZXQ6IHN0cmluZztcbiAgICBwdWJsaWMgaWNvbmNsYXNzOiBzdHJpbmc7XG4gICAgcHVibGljIGFuaW1hdGVpdGVtczogc3RyaW5nO1xuICAgIHB1YmxpYyBkaXNhYmxlTWVudUNvbnRleHQ6IGJvb2xlYW47XG4gICAgcHVibGljIHNob3dvbmhvdmVyOiBib29sZWFuO1xuICAgIHB1YmxpYyBhdXRvY2xvc2U6IHN0cmluZztcbiAgICBwdWJsaWMgYXV0b29wZW46IHN0cmluZztcbiAgICBwdWJsaWMgaGludDogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBpdGVtQWN0aW9uRm46IEZ1bmN0aW9uO1xuICAgIHByaXZhdGUgbWVudUNhcmV0ID0gJ2ZhLWNhcmV0LWRvd24nO1xuICAgIHByaXZhdGUgX3NlbGVjdEZpcnN0SXRlbSA9IGZhbHNlO1xuXG4gICAgcHVibGljIHR5cGU6IGFueTtcbiAgICBwdWJsaWMgX21lbnVwb3NpdGlvbjogc3RyaW5nO1xuXG4gICAgQEhvc3RMaXN0ZW5lcignb25TaG93bicpIG9uU2hvdygpIHtcbiAgICAgICAgdGhpcy5fbWVudXBvc2l0aW9uID0gdGhpcy5tZW51cG9zaXRpb247XG4gICAgICAgIGlmICh0aGlzLl9zZWxlY3RGaXJzdEl0ZW0pIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnPiB1bFt3bW1lbnVkcm9wZG93bl0gbGkuYXBwLW1lbnUtaXRlbScpLmZpcnN0KCkuZmluZCgnPiBhJykuZm9jdXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgICRhcHBEaWdlc3QoKTtcbiAgICB9XG4gICAgQEhvc3RMaXN0ZW5lcignb25IaWRkZW4nKSBvbkhpZGUoKSB7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnbGknKS5yZW1vdmVDbGFzcygnb3BlbicpO1xuICAgICAgICB0aGlzLl9zZWxlY3RGaXJzdEl0ZW0gPSBmYWxzZTtcbiAgICAgICAgLy8gcmVzZXQgdGhlIG1lbnVwb3NpdGlvbiB3aGVuIGRyb3Bkb3duIGlzIGNsb3NlZFxuICAgICAgICB0aGlzLm1lbnVwb3NpdGlvbiA9IHRoaXMuX21lbnVwb3NpdGlvbiA/IHRoaXMuX21lbnVwb3NpdGlvbiA6IE1FTlVfUE9TSVRJT04uRE9XTl9SSUdIVDtcbiAgICAgICAgdGhpcy5zZXRNZW51UG9zaXRpb24oKTtcbiAgICAgICAgJGFwcERpZ2VzdCgpO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3d1cCcsIFsnJGV2ZW50JywgJ1wiVVAtQVJST1dcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInLCBbJyRldmVudCcsICdcIk1PVVNFLUVOVEVSXCInXSlcbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJywgWyckZXZlbnQnLCAnXCJNT1VTRS1MRUFWRVwiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2Rvd24nLCBbJyRldmVudCcsICdcIkRPV04tQVJST1dcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dyaWdodCcsIFsnJGV2ZW50JywgJ1wiUklHSFQtQVJST1dcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dsZWZ0JywgWyckZXZlbnQnLCAnXCJMRUZULUFSUk9XXCInXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJywgWyckZXZlbnQnLCAnXCJFTlRFUlwiJ10pIG9uS2V5RG93bigkZXZlbnQsIGV2ZW50QWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IEtFWV9NT1ZFTUVOVFMgPSBfLmNsb25lKEtFWUJPQVJEX01PVkVNRU5UUyk7XG4gICAgICAgIGlmICh0aGlzLm1lbnVwb3NpdGlvbiA9PT0gTUVOVV9QT1NJVElPTi5VUF9SSUdIVCkge1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX1VQID0gJ0RPV04tQVJST1cnO1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0RPV04gPSAnVVAtQVJST1cnO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWVudXBvc2l0aW9uID09PSBNRU5VX1BPU0lUSU9OLlVQX0xFRlQpIHtcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9VUCA9ICdET1dOLUFSUk9XJztcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9ET1dOID0gJ1VQLUFSUk9XJztcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9MRUZUID0gJ1JJR0hULUFSUk9XJztcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9SSUdIVCA9ICdMRUZULUFSUk9XJztcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLm1lbnVwb3NpdGlvbiA9PT0gTUVOVV9QT1NJVElPTi5ET1dOX0xFRlQpIHtcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9MRUZUID0gJ1JJR0hULUFSUk9XJztcbiAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9SSUdIVCA9ICdMRUZULUFSUk9XJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfLmluY2x1ZGVzKFtLRVlfTU9WRU1FTlRTLk1PVkVfRE9XTiwgS0VZX01PVkVNRU5UUy5NT1ZFX1JJR0hUXSwgZXZlbnRBY3Rpb24pKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuYnNEcm9wZG93bi5pc09wZW4pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RGaXJzdEl0ZW0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuYnNEcm9wZG93bi5zaG93KCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuZmluZCgnPiB1bFt3bW1lbnVkcm9wZG93bl0gbGkuYXBwLW1lbnUtaXRlbScpLmZpcnN0KCkuZmluZCgnPiBhJykuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChldmVudEFjdGlvbiA9PT0gS0VZX01PVkVNRU5UUy5PTl9FTlRFUiB8fCAoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuT05fTU9VU0VfRU5URVIgJiYgdGhpcy5zaG93b25ob3ZlcikpIHtcbiAgICAgICAgICAgIHRoaXMuYnNEcm9wZG93bi50b2dnbGUodHJ1ZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoXy5pbmNsdWRlcyhbS0VZX01PVkVNRU5UUy5NT1ZFX1VQLCBLRVlfTU9WRU1FTlRTLk1PVkVfTEVGVF0sIGV2ZW50QWN0aW9uKSB8fCAoZXZlbnRBY3Rpb24gPT0gIEtFWV9NT1ZFTUVOVFMuT05fTU9VU0VfTEVBVkUgJiYgdGhpcy5hdXRvY2xvc2UgPT0gQVVUT0NMT1NFX1RZUEUuQUxXQVlTICYmIHRoaXMuc2hvd29uaG92ZXIpKSB7XG4gICAgICAgICAgICB0aGlzLmJzRHJvcGRvd24uaGlkZSgpO1xuICAgICAgICB9XG4gICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBwdWJsaWMgcm91dGU6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSB1c2VyRGVmaW5lZEV4ZWN1dGlvbkNvbnRleHQ6IFVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgcHJpdmF0ZSBhcHA6IEFwcCxcbiAgICAgICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwdWJsaWMgYnNEcm9wZG93bjogQnNEcm9wZG93bkRpcmVjdGl2ZSxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnROYXY6IE5hdkNvbXBvbmVudCxcbiAgICAgICAgQEF0dHJpYnV0ZSgnc2VsZWN0LmV2ZW50JykgcHVibGljIHNlbGVjdEV2ZW50Q0I6IHN0cmluZ1xuICAgICkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcpO1xuICAgICAgICBpZiAocGFyZW50TmF2KSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVNZW51Q29udGV4dCA9ICEhcGFyZW50TmF2LmRpc2FibGVNZW51Q29udGV4dDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZU1lbnVDb250ZXh0ID0gISFzZWxlY3RFdmVudENCO1xuICAgICAgICB9XG4gICAgICAgIC8vIEZvciBzZWxlY3RpbmcgdGhlIGl0ZW0gb24gbG9hZFxuICAgICAgICBjb25zdCBkYXRhc2V0U3Vic2NyaXB0aW9uID0gdGhpcy5ub2RlcyQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICghXy5pc0VtcHR5KHRoaXMubm9kZXMpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGhhc0xpbmtUb0N1cnJlbnRQYWdlKHRoaXMubm9kZXMsIHRoaXMucm91dGUudXJsKSkge1xuICAgICAgICAgICAgICAgICAgICBhZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duLXRvZ2dsZScpIGFzIEhUTUxFbGVtZW50LCAnYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIElmIG1lbnUgd2lkZ2V0IGlzIGluc2lkZSBuYXYgd2lkZ2V0IHRoZW4gZG9udCBjaGVjayBmb3IgaXRlbSBpc2FjdGl2ZSBwcm9wZXJ0eSBiZWNhdXNlIHRoZXNlIHdpbGwgYmUgaGFuZGxlZCBmb3JtIG5hdiB3aWRnZXQuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50TmF2KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IGl0ZW1Gb3VuZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGdldEl0ZW0gPSAobm9kZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgXy5mb3JFYWNoKG5vZGVzLCAoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGl0ZW1Gb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpdGVtLmlzYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbUZvdW5kID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm9uTWVudUl0ZW1TZWxlY3QoeyAkZXZlbnQ6IHt9LCAkaXRlbTogaXRlbSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUcmlnZ2VyIHRoZSBhY3Rpb24gYXNzb2NpYXRlZCB3aXRoIGFjdGl2ZSBpdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlckl0ZW1BY3Rpb24odGhpcywgaXRlbSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFfLmlzRW1wdHkoaXRlbS5jaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRJdGVtKGl0ZW0uY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZ2V0SXRlbSh0aGlzLm5vZGVzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gZGF0YXNldFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcblxuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNldE5vZGVzKCkge1xuICAgICAgICBzdXBlci5yZXNldE5vZGVzKCk7XG4gICAgICAgIC8vIG9wZW4gdGhlIG1lbnUgaWYgYW55IG9mIGl0cyBtZW51IGl0ZW1zIGhhcyBsaW5rIHRvIGN1cnJlbnQgcGFnZSBhbmQgaWYgYXV0b29wZW4gdmFsdWUgaXMgJ2FjdGl2ZSBwYWdlJ1xuICAgICAgICBpZiAoKHRoaXMuYXV0b29wZW4gPT09IEFVVE9fT1BFTi5BQ1RJVkVfUEFHRSAmJiBoYXNMaW5rVG9DdXJyZW50UGFnZSh0aGlzLm5vZGVzLCB0aGlzLnJvdXRlLnVybCkpIHx8IHRoaXMuYXV0b29wZW4gPT09IEFVVE9fT1BFTi5BTFdBWVMpIHtcbiAgICAgICAgICAgIHRoaXMuYnNEcm9wZG93bi5zaG93KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5zZXRNZW51UG9zaXRpb24oKTtcblxuICAgICAgICBjb25zdCBjYW5jZWxTdWJzY3JpcHRpb24gPSB0aGlzLmFwcC5zdWJzY3JpYmUoXCJoaWdobGlnaHRBY3RpdmVMaW5rXCIsIChkYXRhKSA9PiB7XG4gICAgICAgICAgICB0b2dnbGVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duLXRvZ2dsZScpIGFzIEhUTUxFbGVtZW50LCAnYWN0aXZlJywgaGFzTGlua1RvQ3VycmVudFBhZ2UodGhpcy5ub2RlcywgdGhpcy5yb3V0ZS51cmwgKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKCgpID0+IGNhbmNlbFN1YnNjcmlwdGlvbigpKTtcbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudjogYW55LCBvdj86IGFueSkge1xuXG4gICAgICAgIGlmIChrZXkgPT09ICd0YWJpbmRleCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChrZXkgPT09ICdhdXRvY2xvc2UnKSB7XG4gICAgICAgICAgICB0aGlzLmJzRHJvcGRvd24uYXV0b0Nsb3NlID0gbnYgIT09IEFVVE9DTE9TRV9UWVBFLkRJU0FCTEVEO1xuICAgICAgICAgICAgdGhpcy5hdXRvY2xvc2UgPSBudjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIHNldE1lbnVQb3NpdGlvbigpIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLm1lbnVwb3NpdGlvbikge1xuICAgICAgICAgICAgY2FzZSBQT1NJVElPTi5ET1dOX1JJR0hUOlxuICAgICAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2Ryb3B1cCcpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudWFsaWduID0gUFVMTF9DTFMuTEVGVDtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVDYXJldCA9IENBUkVUX0NMUy5ET1dOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBQT1NJVElPTi5ET1dOX0xFRlQ6XG4gICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnZHJvcHVwJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51YWxpZ24gPSBQVUxMX0NMUy5SSUdIVDtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVDYXJldCA9IENBUkVUX0NMUy5ET1dOO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBQT1NJVElPTi5VUF9MRUZUOlxuICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2Ryb3B1cCcpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudWFsaWduID0gUFVMTF9DTFMuUklHSFQ7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51Q2FyZXQgPSBDQVJFVF9DTFMuVVA7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFBPU0lUSU9OLlVQX1JJR0hUOlxuICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2Ryb3B1cCcpO1xuICAgICAgICAgICAgICAgIHRoaXMubWVudWFsaWduID0gUFVMTF9DTFMuTEVGVDtcbiAgICAgICAgICAgICAgICB0aGlzLm1lbnVDYXJldCA9IENBUkVUX0NMUy5VUDtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgUE9TSVRJT04uSU5MSU5FOlxuICAgICAgICAgICAgICAgIHRoaXMubWVudWFsaWduID0gJ2Ryb3BpbmxpbmUtbWVudSc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgb25NZW51SXRlbVNlbGVjdChhcmdzKSB7XG4gICAgICAgIGNvbnN0IHsgJGV2ZW50IH0gPSBhcmdzO1xuICAgICAgICBjb25zdCAkaXRlbSA9IGFyZ3MuJGl0ZW0udmFsdWU7XG4gICAgICAgIHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnc2VsZWN0JywgeyAkZXZlbnQsICRpdGVtIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmRyb3Bkb3duLXRvZ2dsZScpIGFzIEhUTUxFbGVtZW50LCB0aGlzKTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgI21lbnVUZW1wbGF0ZT5cbiAgICA8YnV0dG9uIHdtQnV0dG9uXG4gICAgICAgICAgICBkcm9wZG93blRvZ2dsZVxuICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgYXJpYS1leHBhbmRlZD1cImZhbHNlXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaGludCB8fCAnTWVudSdcIlxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYXBwLWJ1dHRvbiBkcm9wZG93bi10b2dnbGUge3ttZW51Y2xhc3N9fVwiXG4gICAgICAgICAgICBoaW50LmJpbmQ9XCJoaW50XCJcbiAgICAgICAgICAgIHNob3J0Y3V0a2V5LmJpbmQ9XCJzaG9ydGN1dGtleVwiXG4gICAgICAgICAgICB0YWJpbmRleC5iaW5kPVwidGFiaW5kZXhcIlxuICAgICAgICAgICAgY2FwdGlvbi5iaW5kPVwiY2FwdGlvblwiXG4gICAgICAgICAgICBpY29uY2xhc3MuYmluZD1cImljb25jbGFzc1wiXG4gICAgICAgICAgICBpY29ucG9zaXRpb24uYmluZD1cImljb25wb3NpdGlvblwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInB1bGwtcmlnaHQgY2FyZXQgZmFcIiBbbmdDbGFzc109XCJbbWVudUNhcmV0XVwiPjwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5uZXJUZW1wbGF0ZT5cbiAgICA8aSBjbGFzcz1cImFwcC1pY29uIHt7aWNvbmNsYXNzfX1cIj48L2k+XG4gICAgPHNwYW4gY2xhc3M9XCJjYXB0aW9uXCIgW3RleHRDb250ZW50XT1cImNhcHRpb25cIj48L3NwYW4+XG4gICAgPHNwYW4gY2xhc3M9XCJwdWxsLXJpZ2h0IGNhcmV0IGZhIHt7bWVudUNhcmV0fX1cIj48L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwidHlwZSA9PT0gJ2FuY2hvcic7IGVsc2UgbWVudVRlbXBsYXRlXCI+XG4gICAgPGEgd21BbmNob3JcbiAgICAgICBkcm9wZG93blRvZ2dsZVxuXG4gICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKTtcIlxuICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICBhcmlhLWV4cGFuZGVkPVwiZmFsc2VcIlxuXG4gICAgICAgaGludC5iaW5kPVwiaGludFwiXG4gICAgICAgY2xhc3M9XCJkcm9wZG93bi10b2dnbGUge3ttZW51Y2xhc3N9fVwiXG4gICAgICAgc2hvcnRjdXRrZXkuYmluZD1cInNob3J0Y3V0a2V5XCJcbiAgICAgICB0YWJpbmRleC5iaW5kPVwidGFiaW5kZXhcIlxuICAgICAgIGNhcHRpb24uYmluZD1cImNhcHRpb25cIlxuICAgICAgIGljb25jbGFzcy5iaW5kPVwiaWNvbmNsYXNzXCJcbiAgICAgICBpY29ucG9zaXRpb24uYmluZD1cImljb25wb3NpdGlvblwiXG4gICAgICAgYmFkZ2V2YWx1ZS5iaW5kPVwiYmFkZ2V2YWx1ZVwiXG4gICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInB1bGwtcmlnaHQgY2FyZXQgZmFcIiBbbmdDbGFzc109XCJbbWVudUNhcmV0XVwiPjwvc3Bhbj5cbiAgICA8L2E+XG48L25nLWNvbnRhaW5lcj5cblxuPHVsIHdtTWVudURyb3Bkb3duIFtpdGVtc109XCJub2Rlc1wiIFtuZ0NsYXNzXT1cIm1lbnVsYXlvdXRcIiBjbGFzcz1cImljb24tcG9zaXRpb24te3tpY29ucG9zaXRpb259fVwiICpkcm9wZG93bk1lbnUgYXJpYS1sYWJlbGxlZGJ5PVwiZHJvcGRvd25tZW51XCIgcm9sZT1cIm1lbnViYXJcIj48L3VsPlxuIl19
@@ -376,7 +376,7 @@ class MenuComponent extends DatasetAwareNavComponent {
376
376
  else if (eventAction === KEY_MOVEMENTS.ON_ENTER || (eventAction === KEY_MOVEMENTS.ON_MOUSE_ENTER && this.showonhover)) {
377
377
  this.bsDropdown.toggle(true);
378
378
  }
379
- else if (_.includes([KEY_MOVEMENTS.MOVE_UP, KEY_MOVEMENTS.MOVE_LEFT], eventAction) || (eventAction == KEY_MOVEMENTS.ON_MOUSE_LEAVE && this.autoclose == AUTOCLOSE_TYPE.ALWAYS)) {
379
+ else if (_.includes([KEY_MOVEMENTS.MOVE_UP, KEY_MOVEMENTS.MOVE_LEFT], eventAction) || (eventAction == KEY_MOVEMENTS.ON_MOUSE_LEAVE && this.autoclose == AUTOCLOSE_TYPE.ALWAYS && this.showonhover)) {
380
380
  this.bsDropdown.hide();
381
381
  }
382
382
  $event.preventDefault();
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/navigation/menu/src/nav/nav.props.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/nav.component.html","../../../../../projects/components/widgets/navigation/menu/src/nav/nav.component.ts","../../../../../projects/components/widgets/navigation/menu/src/menu.props.ts","../../../../../projects/components/widgets/navigation/menu/src/menu.component.html","../../../../../projects/components/widgets/navigation/menu/src/menu.component.ts","../../../../../projects/components/widgets/navigation/menu/src/menu-dropdown-item/menu-dropdown-item.component.html","../../../../../projects/components/widgets/navigation/menu/src/menu-dropdown-item/menu-dropdown-item.component.ts","../../../../../projects/components/widgets/navigation/menu/src/menu-dropdown/menu-dropdown.component.html","../../../../../projects/components/widgets/navigation/menu/src/menu-dropdown/menu-dropdown.component.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/nav-item/nav-item.props.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/nav-item/nav-item.directive.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/navigation-control.directive.ts","../../../../../projects/components/widgets/navigation/menu/src/menu.module.ts","../../../../../projects/components/widgets/navigation/menu/src/menu-adapator.component.ts","../../../../../projects/components/widgets/navigation/menu/src/index.ts"],"sourcesContent":["import {PROP_ANY, PROP_BOOLEAN, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-nav',\n new Map(\n [\n ['autoclose', {value: 'always', ...PROP_STRING}],\n ['autoopen', {value: 'never', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['dataset', PROP_ANY],\n ['iconposition', {value: 'left', ...PROP_STRING}],\n ['isactive', PROP_STRING],\n ['itemlabel', PROP_STRING],\n ['itemlink', PROP_STRING],\n ['itemicon', PROP_STRING],\n ['itemclass', PROP_STRING],\n ['itemchildren', PROP_STRING],\n ['itemaction', PROP_STRING],\n ['itembadge', PROP_STRING],\n ['itemtarget', PROP_STRING],\n ['layout', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showonhover', {value: false, ...PROP_BOOLEAN}],\n ['type', PROP_STRING],\n ['userrole', PROP_STRING]\n ]\n )\n );\n};\n","<ng-template #menuRef let-item=\"item\" let-index=\"index\">\n <div wmMenu dropdown\n type=\"anchor\"\n autoclose.bind=\"autoclose\"\n iconclass.bind=\"item.icon\"\n autoopen.bind=\"autoopen\"\n caption.bind=\"item.label\"\n dataset.bind=\"item.children\"\n badgevalue.bind=\"item.badge\"\n iconposition.bind=\"iconposition\"\n showonhover.bind=\"showonhover\"\n select.event=\"onMenuItemSelect($event, widget, $item)\"></div>\n</ng-template>\n\n<ng-template #anchorRef let-item=\"item\" let-index=\"index\" let-liRef=\"liRef\">\n <a wmAnchor\n [disableMenuContext]=\"disableMenuContext || !!item.action\"\n [wmNavigationControl]=\"item.link\"\n [attr.aria-current]=\"item._selected || (!isactive && item.link === '#/' + activePageName) ? 'page' : ''\"\n caption.bind=\"item.label\"\n iconclass.bind=\"item.icon\"\n badgevalue.bind=\"item.badge\"\n iconposition.bind=\"iconposition\"\n click.event=\"onNavSelect($event, item, liRef)\"></a>\n</ng-template>\n\n<li class=\"app-nav-item {{item.class}}\" *ngFor=\"let item of nodes; let index = index;\" #liRef [ngClass]=\"{active: item._selected || (!isactive && item.link === '#/' + activePageName)}\">\n <ng-container [ngTemplateOutlet]=\"anchorRef\" [ngTemplateOutletContext]=\"{item: item, index:index, liRef: liRef}\" *ngIf=\"!item.children.length\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"menuRef\" [ngTemplateOutletContext]=\"{item: item, index:index}\" *ngIf=\"item.children.length\"></ng-container>\n</li>\n\n<ng-content *ngIf=\"!nodes.length\" select=\"[wmNavItem]\"></ng-content>\n","import {Attribute, ChangeDetectorRef, Component, Injector, OnInit} from '@angular/core';\nimport {Router} from '@angular/router';\n\nimport {addClass, App, removeClass, triggerItemAction, UserDefinedExecutionContext} from '@wm/core';\nimport {APPLY_STYLES_TYPE, DatasetAwareNavComponent, provideAsWidgetRef, styler} from '@wm/components/base';\n\nimport {registerProps} from './nav.props';\n\ndeclare const _;\n\nconst DEFAULT_CLS = 'nav app-nav';\nconst WIDGET_CONFIG = {widgetType: 'wm-nav', hostClass: DEFAULT_CLS};\n\nconst NavClassMap = {\n pills: 'nav-pills',\n tabs: 'nav-tabs',\n navbar: 'navbar-nav'\n};\n\n@Component({\n selector: '[wmNav]',\n templateUrl: './nav.component.html',\n providers: [\n provideAsWidgetRef(NavComponent)\n ]\n})\nexport class NavComponent extends DatasetAwareNavComponent implements OnInit {\n static initializeProps = registerProps();\n\n public selecteditem;\n public type;\n public disableMenuContext: boolean;\n public layout;\n public showonhover: boolean;\n private activeNavLINode: HTMLElement;\n private itemActionFn: Function;\n private pageScope: any;\n private get activePageName() {\n return this.app.activePageName;\n }\n\n constructor(\n inj: Injector,\n private cdRef: ChangeDetectorRef,\n private route: Router,\n private userDefinedExecutionContext: UserDefinedExecutionContext,\n private app: App,\n @Attribute('select.event') selectEventCB\n ) {\n super(inj, WIDGET_CONFIG);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n this.disableMenuContext = !!selectEventCB;\n this.pageScope = this.viewParent;\n // For selecting the item on load\n const datasetSubscription = this.nodes$.subscribe(() => {\n if (!_.isEmpty(this.nodes)) {\n let itemFound = false;\n const getItem = (nodes, isMenuWidget?) => {\n _.forEach(nodes, (item) => {\n if (itemFound) {\n return;\n }\n if (item.isactive || item.link == '#/'+this.activePageName) {\n itemFound = true;\n this.selecteditem = isMenuWidget ? _.omit(item, ['children', 'value']) : item.value;\n this.invokeEventCallback('select', {$event: {}, $item: item.value});\n // Trigger the action associated with active item\n triggerItemAction(this, item);\n // _selected is used to add active class for nav item. If we have children inside nav widget then it is not required.\n if (!isMenuWidget) {\n item._selected = true;\n }\n return false;\n }\n if (!_.isEmpty(item.children)) {\n getItem(item.children, 'menu');\n }\n });\n };\n getItem(this.nodes);\n }\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n }\n\n\n private setNavType(type) {\n addClass(this.nativeElement, NavClassMap[type]);\n }\n\n private setNavLayout(layout) {\n addClass(this.nativeElement, `nav-${layout}`);\n }\n\n public onNavSelect($event: Event, item: any, liRef: HTMLElement) {\n $event.preventDefault();\n\n const selectedItem = _.find(this.nodes, '_selected');\n if (selectedItem) {\n delete selectedItem._selected;\n }\n\n if (this.activeNavLINode) {\n removeClass(this.activeNavLINode, 'active');\n }\n\n this.activeNavLINode = liRef;\n\n addClass(liRef, 'active');\n\n this.selecteditem = item.value;\n\n this.invokeEventCallback('select', {$event, $item: item.value});\n // Trigger the action associated with active item\n triggerItemAction(this, item);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.setNavType(this.type);\n this.setNavLayout(this.layout);\n }\n\n /**\n * invoked from the menu widget when a menu item is selected.\n * @param $event\n * @param widget\n * @param $item\n */\n onMenuItemSelect($event, widget, $item) {\n this.selecteditem = _.omit($item, ['children', 'value']);\n this.invokeEventCallback('select', {$event, $item: this.selecteditem});\n }\n}\n","import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-menu',\n new Map(\n [\n ['accessroles', {value: 'Everyone', ...PROP_STRING}],\n ['animateitems', PROP_STRING],\n ['autoclose', {value: 'always', ...PROP_STRING}],\n ['autoopen', {value: 'never', ...PROP_STRING}],\n ['caption', PROP_STRING],\n ['class', PROP_STRING],\n ['dataset', {value: 'Menu Item 1, Menu Item 2, Menu Item 3', ...PROP_ANY}],\n ['hint', {value: '', ...PROP_STRING}],\n ['isactive', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['iconposition', {value: 'left', ...PROP_STRING}],\n ['itemaction', PROP_STRING],\n ['itemchildren', PROP_STRING],\n ['itemclass', PROP_STRING],\n ['itemicon', PROP_STRING],\n ['itemlabel', PROP_STRING],\n ['itemlink', PROP_STRING],\n ['itemtarget', PROP_STRING],\n ['linktarget', {value: '_self', ...PROP_STRING}],\n ['menuclass', PROP_STRING],\n ['menulayout', PROP_STRING],\n ['menuposition', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showonhover', {value: false, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'menu', ...PROP_STRING}],\n ['userrole', PROP_STRING]\n ]\n )\n );\n};\n","<ng-template #menuTemplate>\n <button wmButton\n dropdownToggle\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n [attr.aria-label]=\"hint || 'Menu'\"\n class=\"btn app-button dropdown-toggle {{menuclass}}\"\n hint.bind=\"hint\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n caption.bind=\"caption\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\">\n <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n </button>\n</ng-template>\n\n<ng-template #innerTemplate>\n <i class=\"app-icon {{iconclass}}\"></i>\n <span class=\"caption\" [textContent]=\"caption\"></span>\n <span class=\"pull-right caret fa {{menuCaret}}\"></span>\n</ng-template>\n\n<ng-container *ngIf=\"type === 'anchor'; else menuTemplate\">\n <a wmAnchor\n dropdownToggle\n\n href=\"javascript:void(0);\"\n role=\"button\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n\n hint.bind=\"hint\"\n class=\"dropdown-toggle {{menuclass}}\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n caption.bind=\"caption\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\"\n badgevalue.bind=\"badgevalue\"\n >\n <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n </a>\n</ng-container>\n\n<ul wmMenuDropdown [items]=\"nodes\" [ngClass]=\"menulayout\" class=\"icon-position-{{iconposition}}\" *dropdownMenu aria-labelledby=\"dropdownmenu\" role=\"menubar\"></ul>\n","import {\n AfterViewInit,\n Attribute,\n Component,\n HostListener,\n Injector,\n OnDestroy,\n OnInit,\n Optional,\n Self\n} from '@angular/core';\nimport {Router} from '@angular/router';\n\nimport {BsDropdownDirective} from 'ngx-bootstrap/dropdown';\n\nimport {\n $appDigest,\n addClass,\n App,\n removeClass,\n toggleClass,\n triggerItemAction,\n UserDefinedExecutionContext\n} from '@wm/core';\nimport {\n AUTOCLOSE_TYPE,\n DatasetAwareNavComponent,\n hasLinkToCurrentPage,\n provideAsWidgetRef,\n styler\n} from '@wm/components/base';\nimport {NavComponent} from './nav/nav.component';\n\nimport {registerProps} from './menu.props';\n\ndeclare const _;\n\nexport const KEYBOARD_MOVEMENTS = {\n MOVE_UP: 'UP-ARROW',\n MOVE_LEFT: 'LEFT-ARROW',\n MOVE_RIGHT: 'RIGHT-ARROW',\n MOVE_DOWN: 'DOWN-ARROW',\n ON_ENTER: 'ENTER',\n ON_MOUSE_ENTER: 'MOUSE-ENTER',\n ON_MOUSE_LEAVE: 'MOUSE-LEAVE',\n ON_TAB: 'TAB',\n ON_SHIFT_TAB: 'SHIFT-TAB',\n ON_ESCAPE: 'ESC'\n};\n\nexport const MENU_POSITION = {\n UP_LEFT: 'up,left',\n UP_RIGHT: 'up,right',\n DOWN_LEFT: 'down,left',\n DOWN_RIGHT: 'down,right',\n INLINE: 'inline'\n};\n\nconst POSITION = {\n DOWN_RIGHT: 'down,right',\n DOWN_LEFT: 'down,left',\n UP_RIGHT: 'up,right',\n UP_LEFT: 'up,left',\n INLINE: 'inline'\n};\nconst CARET_CLS = {\n UP: 'fa-caret-up',\n DOWN: 'fa-caret-down'\n};\nconst PULL_CLS = {\n LEFT: 'pull-left',\n RIGHT: 'pull-right'\n};\n\nconst AUTO_OPEN = {\n NEVER: 'never',\n ACTIVE_PAGE: 'activepage',\n ALWAYS: 'always'\n};\n\nconst WIDGET_CONFIG = { widgetType: 'wm-menu', hostClass: 'dropdown app-menu' };\n@Component({\n selector: '[wmMenu]',\n templateUrl: './menu.component.html',\n providers: [\n provideAsWidgetRef(MenuComponent)\n ]\n})\nexport class MenuComponent extends DatasetAwareNavComponent implements OnInit, OnDestroy, AfterViewInit {\n static initializeProps = registerProps();\n\n public menualign: string;\n public menuposition: string;\n public menulayout: string;\n public menuclass: string;\n public linktarget: string;\n public iconclass: string;\n public animateitems: string;\n public disableMenuContext: boolean;\n public showonhover: boolean;\n public autoclose: string;\n public autoopen: string;\n public hint: string;\n\n private itemActionFn: Function;\n private menuCaret = 'fa-caret-down';\n private _selectFirstItem = false;\n\n public type: any;\n public _menuposition: string;\n\n @HostListener('onShown') onShow() {\n this._menuposition = this.menuposition;\n if (this._selectFirstItem) {\n setTimeout(() => {\n this.$element.find('> ul[wmmenudropdown] li.app-menu-item').first().find('> a').focus();\n });\n }\n $appDigest();\n }\n @HostListener('onHidden') onHide() {\n this.$element.find('li').removeClass('open');\n this._selectFirstItem = false;\n // reset the menuposition when dropdown is closed\n this.menuposition = this._menuposition ? this._menuposition : MENU_POSITION.DOWN_RIGHT;\n this.setMenuPosition();\n $appDigest();\n }\n\n @HostListener('keydown.arrowup', ['$event', '\"UP-ARROW\"'])\n @HostListener('mouseenter', ['$event', '\"MOUSE-ENTER\"'])\n @HostListener('mouseleave', ['$event', '\"MOUSE-LEAVE\"'])\n @HostListener('keydown.arrowdown', ['$event', '\"DOWN-ARROW\"'])\n @HostListener('keydown.arrowright', ['$event', '\"RIGHT-ARROW\"'])\n @HostListener('keydown.arrowleft', ['$event', '\"LEFT-ARROW\"'])\n @HostListener('keydown.enter', ['$event', '\"ENTER\"']) onKeyDown($event, eventAction) {\n const KEY_MOVEMENTS = _.clone(KEYBOARD_MOVEMENTS);\n if (this.menuposition === MENU_POSITION.UP_RIGHT) {\n KEY_MOVEMENTS.MOVE_UP = 'DOWN-ARROW';\n KEY_MOVEMENTS.MOVE_DOWN = 'UP-ARROW';\n } else if (this.menuposition === MENU_POSITION.UP_LEFT) {\n KEY_MOVEMENTS.MOVE_UP = 'DOWN-ARROW';\n KEY_MOVEMENTS.MOVE_DOWN = 'UP-ARROW';\n KEY_MOVEMENTS.MOVE_LEFT = 'RIGHT-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'LEFT-ARROW';\n } else if (this.menuposition === MENU_POSITION.DOWN_LEFT) {\n KEY_MOVEMENTS.MOVE_LEFT = 'RIGHT-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'LEFT-ARROW';\n }\n\n if (_.includes([KEY_MOVEMENTS.MOVE_DOWN, KEY_MOVEMENTS.MOVE_RIGHT], eventAction)) {\n if (!this.bsDropdown.isOpen) {\n this._selectFirstItem = true;\n this.bsDropdown.show();\n } else {\n this.$element.find('> ul[wmmenudropdown] li.app-menu-item').first().find('> a').focus();\n }\n } else if (eventAction === KEY_MOVEMENTS.ON_ENTER || (eventAction === KEY_MOVEMENTS.ON_MOUSE_ENTER && this.showonhover)) {\n this.bsDropdown.toggle(true);\n } else if (_.includes([KEY_MOVEMENTS.MOVE_UP, KEY_MOVEMENTS.MOVE_LEFT], eventAction) || (eventAction == KEY_MOVEMENTS.ON_MOUSE_LEAVE && this.autoclose == AUTOCLOSE_TYPE.ALWAYS)) {\n this.bsDropdown.hide();\n }\n $event.preventDefault();\n }\n\n constructor(\n inj: Injector,\n public route: Router,\n private userDefinedExecutionContext: UserDefinedExecutionContext,\n private app: App,\n @Self() @Optional() public bsDropdown: BsDropdownDirective,\n @Optional() private parentNav: NavComponent,\n @Attribute('select.event') public selectEventCB: string\n ) {\n super(inj, WIDGET_CONFIG);\n if (parentNav) {\n this.disableMenuContext = !!parentNav.disableMenuContext;\n } else {\n this.disableMenuContext = !!selectEventCB;\n }\n // For selecting the item on load\n const datasetSubscription = this.nodes$.subscribe(() => {\n if (!_.isEmpty(this.nodes)) {\n if (hasLinkToCurrentPage(this.nodes, this.route.url)) {\n addClass(this.nativeElement.querySelector('.dropdown-toggle') as HTMLElement, 'active');\n }\n // If menu widget is inside nav widget then dont check for item isactive property because these will be handled form nav widget.\n if (this.parentNav) {\n return;\n }\n let itemFound = false;\n const getItem = (nodes) => {\n _.forEach(nodes, (item) => {\n if (itemFound) {\n return;\n }\n if (item.isactive) {\n itemFound = true;\n this.onMenuItemSelect({ $event: {}, $item: item });\n // Trigger the action associated with active item\n triggerItemAction(this, item);\n return false;\n }\n if (!_.isEmpty(item.children)) {\n getItem(item.children);\n }\n\n });\n };\n getItem(this.nodes);\n }\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n }\n\n protected resetNodes() {\n super.resetNodes();\n // open the menu if any of its menu items has link to current page and if autoopen value is 'active page'\n if ((this.autoopen === AUTO_OPEN.ACTIVE_PAGE && hasLinkToCurrentPage(this.nodes, this.route.url)) || this.autoopen === AUTO_OPEN.ALWAYS) {\n this.bsDropdown.show();\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.setMenuPosition();\n\n const cancelSubscription = this.app.subscribe(\"highlightActiveLink\", (data) => {\n toggleClass(this.nativeElement.querySelector('.dropdown-toggle') as HTMLElement, 'active', hasLinkToCurrentPage(this.nodes, this.route.url ));\n });\n this.registerDestroyListener(() => cancelSubscription());\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n\n if (key === 'tabindex') {\n return;\n }\n\n if (key === 'autoclose') {\n this.bsDropdown.autoClose = nv !== AUTOCLOSE_TYPE.DISABLED;\n this.autoclose = nv;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n public setMenuPosition() {\n switch (this.menuposition) {\n case POSITION.DOWN_RIGHT:\n removeClass(this.nativeElement, 'dropup');\n this.menualign = PULL_CLS.LEFT;\n this.menuCaret = CARET_CLS.DOWN;\n break;\n case POSITION.DOWN_LEFT:\n removeClass(this.nativeElement, 'dropup');\n this.menualign = PULL_CLS.RIGHT;\n this.menuCaret = CARET_CLS.DOWN;\n break;\n case POSITION.UP_LEFT:\n addClass(this.nativeElement, 'dropup');\n this.menualign = PULL_CLS.RIGHT;\n this.menuCaret = CARET_CLS.UP;\n break;\n case POSITION.UP_RIGHT:\n addClass(this.nativeElement, 'dropup');\n this.menualign = PULL_CLS.LEFT;\n this.menuCaret = CARET_CLS.UP;\n break;\n case POSITION.INLINE:\n this.menualign = 'dropinline-menu';\n break;\n }\n }\n\n public onMenuItemSelect(args) {\n const { $event } = args;\n const $item = args.$item.value;\n this.invokeEventCallback('select', { $event, $item });\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.nativeElement.querySelector('.dropdown-toggle') as HTMLElement, this);\n }\n}\n","<a href=\"javascript:void(0);\" [title]=\"item.label\" [wmNavigationControl]=\"item.link\" [disableMenuContext]=\"menuRef.disableMenuContext || !!item.action\">\n <span *ngIf=\"item.children.length\" class=\"pull-right fa caret {{menualign}}\"></span>\n <i class=\"app-icon {{item.icon}}\"></i>\n <span class=\"anchor-caption\">{{item.label}}</span>\n <span *ngIf=\"item.badge\" class=\"badge pull-right\" [textContent]=\"item.badge\"></span>\n</a>\n<ng-container [ngTemplateOutlet]=\"nestedMenuDropdown\" *ngIf=\"item.children.length\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\n\n<ng-template #nestedMenuDropdown let-item=\"item\">\n <ul wmMenuDropdown [items]=\"item.children\"></ul>\n</ng-template>\n","import { Component, ElementRef, HostListener, Input, OnDestroy, OnInit, Optional } from '@angular/core';\n\nimport { addClass, triggerItemAction, UserDefinedExecutionContext, App, toggleClass } from '@wm/core';\nimport { hasLinkToCurrentPage } from '@wm/components/base';\nimport { NavComponent } from '../nav/nav.component';\n\nimport { KEYBOARD_MOVEMENTS, MENU_POSITION, MenuComponent } from '../menu.component';\n\ndeclare const _, $;\n\nconst menuAlignClass = {\n 'pull-right' : 'fa-caret-left',\n 'dropinline-menu' : 'fa-caret-down',\n 'pull-left' : 'fa-caret-right'\n};\n\nconst MENU_LAYOUT_TYPE = {\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical'\n};\n\n@Component({\n selector: 'li[wmMenuDropdownItem]',\n templateUrl: './menu-dropdown-item.component.html',\n})\nexport class MenuDropdownItemComponent implements OnInit, OnDestroy {\n\n public menualign: string;\n\n private itemActionFn: Function;\n\n @Input() item;\n\n private readonly nativeElement;\n private highlightActiveLinkSubscription: () => void;\n\n constructor(\n private app: App,\n public menuRef: MenuComponent,\n private userDefinedExecutionContext: UserDefinedExecutionContext,\n @Optional() private parentNav: NavComponent,\n elRef: ElementRef,\n ) {\n this.nativeElement = elRef.nativeElement;\n addClass(this.nativeElement, 'app-menu-item');\n\n this.menualign = menuAlignClass[this.menuRef.menualign] || menuAlignClass['pull-left'];\n }\n\n ngOnInit() {\n // add active class to the item only if it is in nav component.\n if (this.parentNav) {\n if (hasLinkToCurrentPage([this.item], this.menuRef.route.url)) {\n // add active class to the li, if the menu item's link is same as the current page name.\n addClass(this.nativeElement, 'active');\n }\n this.highlightActiveLinkSubscription = this.app.subscribe(\"highlightActiveLink\", (data) => {\n toggleClass(this.nativeElement, 'active', hasLinkToCurrentPage([this.item], this.menuRef.route.url));\n });\n }\n }\n\n getInitialKeyMovements() {\n const KEY_MOVEMENTS = _.clone(KEYBOARD_MOVEMENTS);\n if (this.menuRef.menulayout === MENU_LAYOUT_TYPE.HORIZONTAL) {\n KEY_MOVEMENTS.MOVE_UP = 'LEFT-ARROW';\n KEY_MOVEMENTS.MOVE_LEFT = 'UP-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'DOWN-ARROW';\n KEY_MOVEMENTS.MOVE_DOWN = 'RIGHT-ARROW';\n } else {\n if (this.menuRef.menuposition === MENU_POSITION.DOWN_LEFT || this.menuRef.menuposition === MENU_POSITION.UP_LEFT) {\n KEY_MOVEMENTS.MOVE_LEFT = 'RIGHT-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'LEFT-ARROW';\n } else if (this.menuRef.menuposition === 'inline') {\n KEY_MOVEMENTS.MOVE_UP = 'LEFT-ARROW';\n KEY_MOVEMENTS.MOVE_LEFT = 'UP-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'DOWN-ARROW';\n KEY_MOVEMENTS.MOVE_DOWN = 'RIGHT-ARROW';\n }\n }\n return KEY_MOVEMENTS;\n }\n\n @HostListener('keydown.tab', ['$event', '\"TAB\"'])\n @HostListener('keydown.shift.tab', ['$event', '\"SHIFT-TAB\"'])\n @HostListener('keydown.escape', ['$event', '\"ESC\"'])\n @HostListener('keydown.enter', ['$event', '\"ENTER\"'])\n @HostListener('keydown.arrowup', ['$event', '\"UP-ARROW\"'])\n @HostListener('keydown.arrowdown', ['$event', '\"DOWN-ARROW\"'])\n @HostListener('keydown.arrowright', ['$event', '\"RIGHT-ARROW\"'])\n @HostListener('keydown.arrowleft', ['$event', '\"LEFT-ARROW\"'])\n onKeyDown($event, eventAction) {\n const $li = $(this.nativeElement);\n const $ul = $(this.nativeElement).closest('ul.dropdown-menu');\n const $parentUl = this.menuRef.$element.find('> ul.dropdown-menu');\n const ARROW_KEYS = ['LEFT-ARROW', 'RIGHT-ARROW', 'UP-ARROW', 'DOWN-ARROW'];\n const KEY_MOVEMENTS = this.getInitialKeyMovements();\n\n if (_.includes(ARROW_KEYS, eventAction)) {\n // preventing from page scroll when up/down arrow is pressed, in case of menu is opened.\n $event.preventDefault();\n }\n\n if ((eventAction === KEY_MOVEMENTS.ON_TAB && $parentUl.children().last()[0] === this.nativeElement)\n || (eventAction === KEY_MOVEMENTS.ON_SHIFT_TAB && $parentUl.children().first()[0] === this.nativeElement)\n || eventAction === KEY_MOVEMENTS.ON_ESCAPE) {\n /*closing all the children elements when\n * 1. Tab is clicked on the last $element\n * 2. Shift Tab is clicked on the first $element\n * 3. When Escape key is clicked*/\n $event.preventDefault();\n this.menuRef.bsDropdown.hide();\n } else if ((eventAction === KEY_MOVEMENTS.ON_ENTER && !this.item.link) || eventAction === KEY_MOVEMENTS.MOVE_RIGHT) {\n // when there is no link for the menu, on enter open the inner child elements and focus the first $element\n $event.stopPropagation();\n if (this.item.children.length) {\n $li.toggleClass('open');\n $li.find('li').first().find('> a').focus();\n } else {\n $li.find('> a').focus();\n }\n } else if (eventAction === KEY_MOVEMENTS.MOVE_LEFT\n || (eventAction === KEY_MOVEMENTS.ON_TAB && $ul.children().last()[0] === this.nativeElement)\n || (eventAction === KEY_MOVEMENTS.ON_SHIFT_TAB && $ul.children().first()[0] === this.nativeElement)) {\n if ($parentUl[0] !== $ul[0]) {\n const $parentItem = $ul.parent();\n $parentItem.toggleClass('open').find('li.open').removeClass('open');\n $parentItem.find('> a').focus();\n $event.preventDefault();\n $event.stopPropagation();\n }\n } else if (eventAction === KEY_MOVEMENTS.MOVE_UP) {\n if ($parentUl[0] !== $ul[0] || $parentUl.find('> li').first()[0] !== this.nativeElement) {\n $event.stopPropagation();\n $li.prev().find('> a').focus();\n }\n } else if (eventAction === KEY_MOVEMENTS.MOVE_DOWN) {\n $event.stopPropagation();\n if ($parentUl.find('> li').last()[0] === this.nativeElement\n && (this.menuRef.menulayout !== MENU_LAYOUT_TYPE.HORIZONTAL\n && this.menuRef.menuposition === MENU_POSITION.UP_RIGHT\n || this.menuRef.menuposition === MENU_POSITION.UP_LEFT)) {\n this.menuRef.bsDropdown.hide();\n } else {\n $li.next().find('> a').focus();\n }\n } else if (eventAction === KEY_MOVEMENTS.ON_ENTER) {\n this.onSelect($event, this.item);\n } else {\n $event.stopPropagation();\n }\n }\n\n @HostListener('click', ['$event', 'item'])\n onSelect = ($event, item) => {\n if (this.nativeElement !== $($event.target).closest('.app-menu-item').get(0)) {\n return;\n }\n // prevent event event propagation if auto close is outside click.\n if (this.menuRef.autoclose === 'outsideClick') {\n $event.stopPropagation();\n }\n\n $event.preventDefault();\n const args = {$event, $item: item};\n this.menuRef.onMenuItemSelect(args);\n const selectedItem = _.clone(item);\n selectedItem.target = selectedItem.target || this.menuRef.linktarget;\n // Trigger the action associated with active item\n triggerItemAction(this, selectedItem);\n }\n\n ngOnDestroy(): void {\n if(this.highlightActiveLinkSubscription) {\n this.highlightActiveLinkSubscription();\n }\n }\n}\n","<li wmMenuDropdownItem *ngFor=\"let item of items\"\n [item]=\"item\"\n [ngClass]=\"{disabled: item.disabled, 'dropdown-submenu': item.children.length > 0}\"\n class=\"{{item.class}}\"\n role=\"menuitem\">\n</li>\n","import { AfterViewInit, Component, ElementRef, Input } from '@angular/core';\n\nimport { addClass } from '@wm/core';\n\nimport { MenuComponent } from '../menu.component';\n\nconst animationClasses = {\n scale: {\n 'name': 'wmScaleInLeft',\n 'down,right': 'wmScaleInLeft',\n 'down,left': 'wmScaleInRight',\n 'up,right': 'wmScaleInTopLeft',\n 'up,left': 'wmScaleInTopRight'\n },\n fade: {\n 'name': 'fadeIn',\n 'down,right': 'fadeIn',\n 'down,left': 'fadeIn',\n 'up,right': 'fadeIn',\n 'up,left': 'fadeIn'\n },\n slide: {\n 'name': 'wmSlideInDown',\n 'down,right': 'wmSlideInDown',\n 'down,left': 'wmSlideInDown',\n 'up,right': 'wmSlideInUp',\n 'up,left': 'wmSlideInUp'\n }\n};\n\nconst DEFAULT_CLS = 'dropdown-menu';\n\n@Component({\n selector: 'ul[wmMenuDropdown]',\n templateUrl: './menu-dropdown.component.html'\n})\nexport class MenuDropdownComponent implements AfterViewInit {\n private readonly nativeElement;\n private hasExecutedCallback;\n @Input() items;\n\n constructor(elRef: ElementRef, private menuRef: MenuComponent) {\n this.nativeElement = elRef.nativeElement;\n this.hasExecutedCallback = false;\n addClass(this.nativeElement, DEFAULT_CLS);\n }\n\n ngAfterViewInit() {\n const animateItems = this.menuRef.animateitems;\n let animationClass = '';\n if (animateItems) {\n animationClass = `animated ${(animationClasses[animateItems][this.menuRef.menuposition] || animationClasses[animateItems].name)}`;\n }\n addClass(this.nativeElement, `dropdown-menu ${this.menuRef.menualign} ${animationClass}`, true);\n this.getParentWidget();\n }\n // Function to check if the menu widget is present inside other widgets like table, tabs, dialog, nav, list, tile, panel, accordion\n // if true then call createObserver() which internally calculates dropown height\n getParentWidget() {\n const closestWidget = $(this.menuRef.nativeElement).closest('table, ul.list-group');\n\n // Check if the closest table is the parent of the menu widget\n if (closestWidget && $(closestWidget).has(this.menuRef.nativeElement).length > 0) {\n this.createObserver(this, this.callback);\n }\n }\n // function which changes the position of the menu dropdown dynamically if it exceeds viewport height\n callback(entries, observer) {\n if (!this.hasExecutedCallback) {\n const self = this;\n const positions = this.menuRef.menuposition?.split(',') || [];\n entries.forEach(entry => {\n if(entry.isIntersecting) {\n positions[0]='down';\n self.menuRef.menuposition= positions.length > 1 ? positions.join() : 'down,right';\n self.nativeElement.parentElement?.classList.add('dropdown');\n self.menuRef.setMenuPosition();\n } else {\n positions[0]='up';\n self.menuRef.menuposition = positions.length > 1 ? positions.join() : 'up,right';\n self.nativeElement.parentElement?.classList.add('dropup');\n self.menuRef.setMenuPosition();\n // when container=\"body\" is added to menu dropdown, the dropdown menu ul is attached directly to body.\n // so adding a class name inorder to adjust the styling of the dropdown\n const dropdownContainer = self.nativeElement.parentElement?.parentElement;\n if (dropdownContainer.tagName.toUpperCase() === \"BS-DROPDOWN-CONTAINER\") {\n // The parent element is <bs-dropdown-container>\n self.nativeElement.parentElement?.parentElement?.classList.add('parent-position');\n }\n\n }\n });\n this.hasExecutedCallback = true;\n }\n }\n\n // function which checks if the dropdown is within the viewport height or exceeds viewport height\n createObserver(target, callback) {\n const options = {\n root: null,\n threshold: 1,\n once: true\n };\n const observer = new IntersectionObserver(callback.bind(this), options);\n observer.observe(target.nativeElement);\n }\n\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-nav-item',\n new Map(\n [\n ['class', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","import {ContentChild, Directive, HostListener, Injector, AfterViewInit, Optional} from '@angular/core';\n\nimport {addClass, removeClass} from '@wm/core';\nimport { APPLY_STYLES_TYPE, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { AnchorComponent } from '@wm/components/basic';\n\nimport { registerProps } from './nav-item.props';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-nav-item';\nconst WIDGET_CONFIG = {widgetType: 'wm-nav-item', hostClass: DEFAULT_CLS};\n\n@Directive({\n selector: '[wmNavItem]',\n providers: [\n provideAsWidgetRef(NavItemDirective)\n ]\n})\nexport class NavItemDirective extends StylableComponent implements AfterViewInit{\n static initializeProps = registerProps();\n @ContentChild(AnchorComponent) innerLink;\n\n @HostListener('click')\n @HostListener('keydown.enter')\n makeActive() {\n const parentNode = this.nativeElement.parentNode;\n $(parentNode as HTMLElement).find('> li.active').removeClass('active');\n if (this.isAttached) {\n addClass(this.nativeElement, 'active');\n }\n }\n\n constructor(inj: Injector) {\n super(inj, WIDGET_CONFIG);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n\n public ngAfterViewInit() {\n if (this.innerLink) {\n this.innerLink.onActive(() => this.makeActive());\n }\n }\n\n public ngOnDetach() {\n removeClass(this.nativeElement, 'active', true);\n super.ngOnDetach();\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\n\nimport { setAttr } from '@wm/core';\n\nexport const disableContextMenu = ($event: Event) => {\n $event.preventDefault();\n};\n\n@Directive({selector: '[wmNavigationControl]'})\nexport class NavigationControlDirective {\n\n private nativeElement: HTMLElement;\n private _link: string;\n\n @Input() disableMenuContext: boolean;\n\n @Input() set wmNavigationControl(val) {\n this._link = val;\n if (val && !this.disableMenuContext) {\n setAttr(this.nativeElement, 'href', val);\n this.nativeElement.removeEventListener('contextmenu', disableContextMenu);\n } else {\n setAttr(this.nativeElement, 'href', 'javascript:void(0)');\n this.nativeElement.addEventListener('contextmenu', disableContextMenu);\n }\n }\n\n constructor(eleRef: ElementRef) {\n this.nativeElement = eleRef.nativeElement;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\n\nimport { WmComponentsModule } from '@wm/components/base';\nimport { BasicModule } from '@wm/components/basic';\nimport { InputModule } from '@wm/components/input';\n\nimport { MenuComponent } from './menu.component';\nimport { MenuDropdownComponent } from './menu-dropdown/menu-dropdown.component';\nimport { MenuDropdownItemComponent } from './menu-dropdown-item/menu-dropdown-item.component';\nimport { NavComponent } from './nav/nav.component';\nimport { NavItemDirective } from './nav/nav-item/nav-item.directive';\nimport { NavigationControlDirective } from './nav/navigation-control.directive';\n\nconst components = [\n MenuComponent,\n MenuDropdownComponent,\n MenuDropdownItemComponent,\n NavigationControlDirective,\n NavComponent,\n NavItemDirective\n];\n\n@NgModule({\n imports: [\n BasicModule,\n BsDropdownModule,\n CommonModule,\n InputModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class MenuModule {\n}\n","import {AfterViewInit, QueryList, ViewChildren, Directive, Optional} from '@angular/core';\n\nimport { StylableComponent } from '@wm/components/base';\nimport { MenuComponent } from './menu.component';\nimport {BaseContainerComponent} from '@wm/components/base';\n\ndeclare const _;\n\nconst menuProps = ['itemlabel', 'itemicon', 'itemlink', 'itemaction', 'itemchildren', 'userrole'];\n\n@Directive()\nexport class MenuAdapterComponent extends BaseContainerComponent implements AfterViewInit {\n\n private itemlabel;\n private menuRef;\n private pageScope;\n\n private binditemlabel;\n private binditemicon;\n private binditemaction;\n private binditemchildren;\n private binditemlink;\n private binduserrole;\n\n @ViewChildren(MenuComponent) private menuRefQL: QueryList<MenuComponent>;\n\n constructor(\n inj,\n WIDGET_CONFIG,\n ) {\n super(inj, WIDGET_CONFIG);\n\n this.pageScope = this.viewParent;\n this.binditemlabel = this.nativeElement.getAttribute('itemlabel.bind');\n this.binditemicon = this.nativeElement.getAttribute('itemicon.bind');\n this.binditemaction = this.nativeElement.getAttribute('itemaction.bind');\n this.binditemlink = this.nativeElement.getAttribute('itemlink.bind');\n this.binduserrole = this.nativeElement.getAttribute('userrole.bind');\n this.binditemchildren = this.nativeElement.getAttribute('itemchildren.bind');\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (_.includes(menuProps, key) && this.menuRef) {\n this.menuRef.itemlabel = nv;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n const subscriber = this.menuRefQL.changes.subscribe((menuRefQL: QueryList<MenuComponent>) => {\n if (menuRefQL.first) {\n this.menuRef = menuRefQL.first;\n menuProps.forEach((prop) => {\n const bindProp = `bind${prop}`;\n if (this[bindProp]) {\n this.menuRef[bindProp] = this[bindProp];\n }\n this.menuRef[prop] = this[prop];\n });\n subscriber.unsubscribe();\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","_c1","DEFAULT_CLS","WIDGET_CONFIG","_c0","i1","i2.MenuComponent","i3.NavComponent","i1.MenuComponent"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/navigation/menu/src/nav/nav.props.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/nav.component.html","../../../../../projects/components/widgets/navigation/menu/src/nav/nav.component.ts","../../../../../projects/components/widgets/navigation/menu/src/menu.props.ts","../../../../../projects/components/widgets/navigation/menu/src/menu.component.html","../../../../../projects/components/widgets/navigation/menu/src/menu.component.ts","../../../../../projects/components/widgets/navigation/menu/src/menu-dropdown-item/menu-dropdown-item.component.html","../../../../../projects/components/widgets/navigation/menu/src/menu-dropdown-item/menu-dropdown-item.component.ts","../../../../../projects/components/widgets/navigation/menu/src/menu-dropdown/menu-dropdown.component.html","../../../../../projects/components/widgets/navigation/menu/src/menu-dropdown/menu-dropdown.component.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/nav-item/nav-item.props.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/nav-item/nav-item.directive.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/navigation-control.directive.ts","../../../../../projects/components/widgets/navigation/menu/src/menu.module.ts","../../../../../projects/components/widgets/navigation/menu/src/menu-adapator.component.ts","../../../../../projects/components/widgets/navigation/menu/src/index.ts"],"sourcesContent":["import {PROP_ANY, PROP_BOOLEAN, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-nav',\n new Map(\n [\n ['autoclose', {value: 'always', ...PROP_STRING}],\n ['autoopen', {value: 'never', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['dataset', PROP_ANY],\n ['iconposition', {value: 'left', ...PROP_STRING}],\n ['isactive', PROP_STRING],\n ['itemlabel', PROP_STRING],\n ['itemlink', PROP_STRING],\n ['itemicon', PROP_STRING],\n ['itemclass', PROP_STRING],\n ['itemchildren', PROP_STRING],\n ['itemaction', PROP_STRING],\n ['itembadge', PROP_STRING],\n ['itemtarget', PROP_STRING],\n ['layout', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showonhover', {value: false, ...PROP_BOOLEAN}],\n ['type', PROP_STRING],\n ['userrole', PROP_STRING]\n ]\n )\n );\n};\n","<ng-template #menuRef let-item=\"item\" let-index=\"index\">\n <div wmMenu dropdown\n type=\"anchor\"\n autoclose.bind=\"autoclose\"\n iconclass.bind=\"item.icon\"\n autoopen.bind=\"autoopen\"\n caption.bind=\"item.label\"\n dataset.bind=\"item.children\"\n badgevalue.bind=\"item.badge\"\n iconposition.bind=\"iconposition\"\n showonhover.bind=\"showonhover\"\n select.event=\"onMenuItemSelect($event, widget, $item)\"></div>\n</ng-template>\n\n<ng-template #anchorRef let-item=\"item\" let-index=\"index\" let-liRef=\"liRef\">\n <a wmAnchor\n [disableMenuContext]=\"disableMenuContext || !!item.action\"\n [wmNavigationControl]=\"item.link\"\n [attr.aria-current]=\"item._selected || (!isactive && item.link === '#/' + activePageName) ? 'page' : ''\"\n caption.bind=\"item.label\"\n iconclass.bind=\"item.icon\"\n badgevalue.bind=\"item.badge\"\n iconposition.bind=\"iconposition\"\n click.event=\"onNavSelect($event, item, liRef)\"></a>\n</ng-template>\n\n<li class=\"app-nav-item {{item.class}}\" *ngFor=\"let item of nodes; let index = index;\" #liRef [ngClass]=\"{active: item._selected || (!isactive && item.link === '#/' + activePageName)}\">\n <ng-container [ngTemplateOutlet]=\"anchorRef\" [ngTemplateOutletContext]=\"{item: item, index:index, liRef: liRef}\" *ngIf=\"!item.children.length\"></ng-container>\n <ng-container [ngTemplateOutlet]=\"menuRef\" [ngTemplateOutletContext]=\"{item: item, index:index}\" *ngIf=\"item.children.length\"></ng-container>\n</li>\n\n<ng-content *ngIf=\"!nodes.length\" select=\"[wmNavItem]\"></ng-content>\n","import {Attribute, ChangeDetectorRef, Component, Injector, OnInit} from '@angular/core';\nimport {Router} from '@angular/router';\n\nimport {addClass, App, removeClass, triggerItemAction, UserDefinedExecutionContext} from '@wm/core';\nimport {APPLY_STYLES_TYPE, DatasetAwareNavComponent, provideAsWidgetRef, styler} from '@wm/components/base';\n\nimport {registerProps} from './nav.props';\n\ndeclare const _;\n\nconst DEFAULT_CLS = 'nav app-nav';\nconst WIDGET_CONFIG = {widgetType: 'wm-nav', hostClass: DEFAULT_CLS};\n\nconst NavClassMap = {\n pills: 'nav-pills',\n tabs: 'nav-tabs',\n navbar: 'navbar-nav'\n};\n\n@Component({\n selector: '[wmNav]',\n templateUrl: './nav.component.html',\n providers: [\n provideAsWidgetRef(NavComponent)\n ]\n})\nexport class NavComponent extends DatasetAwareNavComponent implements OnInit {\n static initializeProps = registerProps();\n\n public selecteditem;\n public type;\n public disableMenuContext: boolean;\n public layout;\n public showonhover: boolean;\n private activeNavLINode: HTMLElement;\n private itemActionFn: Function;\n private pageScope: any;\n private get activePageName() {\n return this.app.activePageName;\n }\n\n constructor(\n inj: Injector,\n private cdRef: ChangeDetectorRef,\n private route: Router,\n private userDefinedExecutionContext: UserDefinedExecutionContext,\n private app: App,\n @Attribute('select.event') selectEventCB\n ) {\n super(inj, WIDGET_CONFIG);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n this.disableMenuContext = !!selectEventCB;\n this.pageScope = this.viewParent;\n // For selecting the item on load\n const datasetSubscription = this.nodes$.subscribe(() => {\n if (!_.isEmpty(this.nodes)) {\n let itemFound = false;\n const getItem = (nodes, isMenuWidget?) => {\n _.forEach(nodes, (item) => {\n if (itemFound) {\n return;\n }\n if (item.isactive || item.link == '#/'+this.activePageName) {\n itemFound = true;\n this.selecteditem = isMenuWidget ? _.omit(item, ['children', 'value']) : item.value;\n this.invokeEventCallback('select', {$event: {}, $item: item.value});\n // Trigger the action associated with active item\n triggerItemAction(this, item);\n // _selected is used to add active class for nav item. If we have children inside nav widget then it is not required.\n if (!isMenuWidget) {\n item._selected = true;\n }\n return false;\n }\n if (!_.isEmpty(item.children)) {\n getItem(item.children, 'menu');\n }\n });\n };\n getItem(this.nodes);\n }\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n }\n\n\n private setNavType(type) {\n addClass(this.nativeElement, NavClassMap[type]);\n }\n\n private setNavLayout(layout) {\n addClass(this.nativeElement, `nav-${layout}`);\n }\n\n public onNavSelect($event: Event, item: any, liRef: HTMLElement) {\n $event.preventDefault();\n\n const selectedItem = _.find(this.nodes, '_selected');\n if (selectedItem) {\n delete selectedItem._selected;\n }\n\n if (this.activeNavLINode) {\n removeClass(this.activeNavLINode, 'active');\n }\n\n this.activeNavLINode = liRef;\n\n addClass(liRef, 'active');\n\n this.selecteditem = item.value;\n\n this.invokeEventCallback('select', {$event, $item: item.value});\n // Trigger the action associated with active item\n triggerItemAction(this, item);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.setNavType(this.type);\n this.setNavLayout(this.layout);\n }\n\n /**\n * invoked from the menu widget when a menu item is selected.\n * @param $event\n * @param widget\n * @param $item\n */\n onMenuItemSelect($event, widget, $item) {\n this.selecteditem = _.omit($item, ['children', 'value']);\n this.invokeEventCallback('select', {$event, $item: this.selecteditem});\n }\n}\n","import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-menu',\n new Map(\n [\n ['accessroles', {value: 'Everyone', ...PROP_STRING}],\n ['animateitems', PROP_STRING],\n ['autoclose', {value: 'always', ...PROP_STRING}],\n ['autoopen', {value: 'never', ...PROP_STRING}],\n ['caption', PROP_STRING],\n ['class', PROP_STRING],\n ['dataset', {value: 'Menu Item 1, Menu Item 2, Menu Item 3', ...PROP_ANY}],\n ['hint', {value: '', ...PROP_STRING}],\n ['isactive', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['iconposition', {value: 'left', ...PROP_STRING}],\n ['itemaction', PROP_STRING],\n ['itemchildren', PROP_STRING],\n ['itemclass', PROP_STRING],\n ['itemicon', PROP_STRING],\n ['itemlabel', PROP_STRING],\n ['itemlink', PROP_STRING],\n ['itemtarget', PROP_STRING],\n ['linktarget', {value: '_self', ...PROP_STRING}],\n ['menuclass', PROP_STRING],\n ['menulayout', PROP_STRING],\n ['menuposition', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showonhover', {value: false, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'menu', ...PROP_STRING}],\n ['userrole', PROP_STRING]\n ]\n )\n );\n};\n","<ng-template #menuTemplate>\n <button wmButton\n dropdownToggle\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n [attr.aria-label]=\"hint || 'Menu'\"\n class=\"btn app-button dropdown-toggle {{menuclass}}\"\n hint.bind=\"hint\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n caption.bind=\"caption\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\">\n <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n </button>\n</ng-template>\n\n<ng-template #innerTemplate>\n <i class=\"app-icon {{iconclass}}\"></i>\n <span class=\"caption\" [textContent]=\"caption\"></span>\n <span class=\"pull-right caret fa {{menuCaret}}\"></span>\n</ng-template>\n\n<ng-container *ngIf=\"type === 'anchor'; else menuTemplate\">\n <a wmAnchor\n dropdownToggle\n\n href=\"javascript:void(0);\"\n role=\"button\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n\n hint.bind=\"hint\"\n class=\"dropdown-toggle {{menuclass}}\"\n shortcutkey.bind=\"shortcutkey\"\n tabindex.bind=\"tabindex\"\n caption.bind=\"caption\"\n iconclass.bind=\"iconclass\"\n iconposition.bind=\"iconposition\"\n badgevalue.bind=\"badgevalue\"\n >\n <span class=\"pull-right caret fa\" [ngClass]=\"[menuCaret]\"></span>\n </a>\n</ng-container>\n\n<ul wmMenuDropdown [items]=\"nodes\" [ngClass]=\"menulayout\" class=\"icon-position-{{iconposition}}\" *dropdownMenu aria-labelledby=\"dropdownmenu\" role=\"menubar\"></ul>\n","import {\n AfterViewInit,\n Attribute,\n Component,\n HostListener,\n Injector,\n OnDestroy,\n OnInit,\n Optional,\n Self\n} from '@angular/core';\nimport {Router} from '@angular/router';\n\nimport {BsDropdownDirective} from 'ngx-bootstrap/dropdown';\n\nimport {\n $appDigest,\n addClass,\n App,\n removeClass,\n toggleClass,\n triggerItemAction,\n UserDefinedExecutionContext\n} from '@wm/core';\nimport {\n AUTOCLOSE_TYPE,\n DatasetAwareNavComponent,\n hasLinkToCurrentPage,\n provideAsWidgetRef,\n styler\n} from '@wm/components/base';\nimport {NavComponent} from './nav/nav.component';\n\nimport {registerProps} from './menu.props';\n\ndeclare const _;\n\nexport const KEYBOARD_MOVEMENTS = {\n MOVE_UP: 'UP-ARROW',\n MOVE_LEFT: 'LEFT-ARROW',\n MOVE_RIGHT: 'RIGHT-ARROW',\n MOVE_DOWN: 'DOWN-ARROW',\n ON_ENTER: 'ENTER',\n ON_MOUSE_ENTER: 'MOUSE-ENTER',\n ON_MOUSE_LEAVE: 'MOUSE-LEAVE',\n ON_TAB: 'TAB',\n ON_SHIFT_TAB: 'SHIFT-TAB',\n ON_ESCAPE: 'ESC'\n};\n\nexport const MENU_POSITION = {\n UP_LEFT: 'up,left',\n UP_RIGHT: 'up,right',\n DOWN_LEFT: 'down,left',\n DOWN_RIGHT: 'down,right',\n INLINE: 'inline'\n};\n\nconst POSITION = {\n DOWN_RIGHT: 'down,right',\n DOWN_LEFT: 'down,left',\n UP_RIGHT: 'up,right',\n UP_LEFT: 'up,left',\n INLINE: 'inline'\n};\nconst CARET_CLS = {\n UP: 'fa-caret-up',\n DOWN: 'fa-caret-down'\n};\nconst PULL_CLS = {\n LEFT: 'pull-left',\n RIGHT: 'pull-right'\n};\n\nconst AUTO_OPEN = {\n NEVER: 'never',\n ACTIVE_PAGE: 'activepage',\n ALWAYS: 'always'\n};\n\nconst WIDGET_CONFIG = { widgetType: 'wm-menu', hostClass: 'dropdown app-menu' };\n@Component({\n selector: '[wmMenu]',\n templateUrl: './menu.component.html',\n providers: [\n provideAsWidgetRef(MenuComponent)\n ]\n})\nexport class MenuComponent extends DatasetAwareNavComponent implements OnInit, OnDestroy, AfterViewInit {\n static initializeProps = registerProps();\n\n public menualign: string;\n public menuposition: string;\n public menulayout: string;\n public menuclass: string;\n public linktarget: string;\n public iconclass: string;\n public animateitems: string;\n public disableMenuContext: boolean;\n public showonhover: boolean;\n public autoclose: string;\n public autoopen: string;\n public hint: string;\n\n private itemActionFn: Function;\n private menuCaret = 'fa-caret-down';\n private _selectFirstItem = false;\n\n public type: any;\n public _menuposition: string;\n\n @HostListener('onShown') onShow() {\n this._menuposition = this.menuposition;\n if (this._selectFirstItem) {\n setTimeout(() => {\n this.$element.find('> ul[wmmenudropdown] li.app-menu-item').first().find('> a').focus();\n });\n }\n $appDigest();\n }\n @HostListener('onHidden') onHide() {\n this.$element.find('li').removeClass('open');\n this._selectFirstItem = false;\n // reset the menuposition when dropdown is closed\n this.menuposition = this._menuposition ? this._menuposition : MENU_POSITION.DOWN_RIGHT;\n this.setMenuPosition();\n $appDigest();\n }\n\n @HostListener('keydown.arrowup', ['$event', '\"UP-ARROW\"'])\n @HostListener('mouseenter', ['$event', '\"MOUSE-ENTER\"'])\n @HostListener('mouseleave', ['$event', '\"MOUSE-LEAVE\"'])\n @HostListener('keydown.arrowdown', ['$event', '\"DOWN-ARROW\"'])\n @HostListener('keydown.arrowright', ['$event', '\"RIGHT-ARROW\"'])\n @HostListener('keydown.arrowleft', ['$event', '\"LEFT-ARROW\"'])\n @HostListener('keydown.enter', ['$event', '\"ENTER\"']) onKeyDown($event, eventAction) {\n const KEY_MOVEMENTS = _.clone(KEYBOARD_MOVEMENTS);\n if (this.menuposition === MENU_POSITION.UP_RIGHT) {\n KEY_MOVEMENTS.MOVE_UP = 'DOWN-ARROW';\n KEY_MOVEMENTS.MOVE_DOWN = 'UP-ARROW';\n } else if (this.menuposition === MENU_POSITION.UP_LEFT) {\n KEY_MOVEMENTS.MOVE_UP = 'DOWN-ARROW';\n KEY_MOVEMENTS.MOVE_DOWN = 'UP-ARROW';\n KEY_MOVEMENTS.MOVE_LEFT = 'RIGHT-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'LEFT-ARROW';\n } else if (this.menuposition === MENU_POSITION.DOWN_LEFT) {\n KEY_MOVEMENTS.MOVE_LEFT = 'RIGHT-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'LEFT-ARROW';\n }\n\n if (_.includes([KEY_MOVEMENTS.MOVE_DOWN, KEY_MOVEMENTS.MOVE_RIGHT], eventAction)) {\n if (!this.bsDropdown.isOpen) {\n this._selectFirstItem = true;\n this.bsDropdown.show();\n } else {\n this.$element.find('> ul[wmmenudropdown] li.app-menu-item').first().find('> a').focus();\n }\n } else if (eventAction === KEY_MOVEMENTS.ON_ENTER || (eventAction === KEY_MOVEMENTS.ON_MOUSE_ENTER && this.showonhover)) {\n this.bsDropdown.toggle(true);\n } else if (_.includes([KEY_MOVEMENTS.MOVE_UP, KEY_MOVEMENTS.MOVE_LEFT], eventAction) || (eventAction == KEY_MOVEMENTS.ON_MOUSE_LEAVE && this.autoclose == AUTOCLOSE_TYPE.ALWAYS && this.showonhover)) {\n this.bsDropdown.hide();\n }\n $event.preventDefault();\n }\n\n constructor(\n inj: Injector,\n public route: Router,\n private userDefinedExecutionContext: UserDefinedExecutionContext,\n private app: App,\n @Self() @Optional() public bsDropdown: BsDropdownDirective,\n @Optional() private parentNav: NavComponent,\n @Attribute('select.event') public selectEventCB: string\n ) {\n super(inj, WIDGET_CONFIG);\n if (parentNav) {\n this.disableMenuContext = !!parentNav.disableMenuContext;\n } else {\n this.disableMenuContext = !!selectEventCB;\n }\n // For selecting the item on load\n const datasetSubscription = this.nodes$.subscribe(() => {\n if (!_.isEmpty(this.nodes)) {\n if (hasLinkToCurrentPage(this.nodes, this.route.url)) {\n addClass(this.nativeElement.querySelector('.dropdown-toggle') as HTMLElement, 'active');\n }\n // If menu widget is inside nav widget then dont check for item isactive property because these will be handled form nav widget.\n if (this.parentNav) {\n return;\n }\n let itemFound = false;\n const getItem = (nodes) => {\n _.forEach(nodes, (item) => {\n if (itemFound) {\n return;\n }\n if (item.isactive) {\n itemFound = true;\n this.onMenuItemSelect({ $event: {}, $item: item });\n // Trigger the action associated with active item\n triggerItemAction(this, item);\n return false;\n }\n if (!_.isEmpty(item.children)) {\n getItem(item.children);\n }\n\n });\n };\n getItem(this.nodes);\n }\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n }\n\n protected resetNodes() {\n super.resetNodes();\n // open the menu if any of its menu items has link to current page and if autoopen value is 'active page'\n if ((this.autoopen === AUTO_OPEN.ACTIVE_PAGE && hasLinkToCurrentPage(this.nodes, this.route.url)) || this.autoopen === AUTO_OPEN.ALWAYS) {\n this.bsDropdown.show();\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.setMenuPosition();\n\n const cancelSubscription = this.app.subscribe(\"highlightActiveLink\", (data) => {\n toggleClass(this.nativeElement.querySelector('.dropdown-toggle') as HTMLElement, 'active', hasLinkToCurrentPage(this.nodes, this.route.url ));\n });\n this.registerDestroyListener(() => cancelSubscription());\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n\n if (key === 'tabindex') {\n return;\n }\n\n if (key === 'autoclose') {\n this.bsDropdown.autoClose = nv !== AUTOCLOSE_TYPE.DISABLED;\n this.autoclose = nv;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n public setMenuPosition() {\n switch (this.menuposition) {\n case POSITION.DOWN_RIGHT:\n removeClass(this.nativeElement, 'dropup');\n this.menualign = PULL_CLS.LEFT;\n this.menuCaret = CARET_CLS.DOWN;\n break;\n case POSITION.DOWN_LEFT:\n removeClass(this.nativeElement, 'dropup');\n this.menualign = PULL_CLS.RIGHT;\n this.menuCaret = CARET_CLS.DOWN;\n break;\n case POSITION.UP_LEFT:\n addClass(this.nativeElement, 'dropup');\n this.menualign = PULL_CLS.RIGHT;\n this.menuCaret = CARET_CLS.UP;\n break;\n case POSITION.UP_RIGHT:\n addClass(this.nativeElement, 'dropup');\n this.menualign = PULL_CLS.LEFT;\n this.menuCaret = CARET_CLS.UP;\n break;\n case POSITION.INLINE:\n this.menualign = 'dropinline-menu';\n break;\n }\n }\n\n public onMenuItemSelect(args) {\n const { $event } = args;\n const $item = args.$item.value;\n this.invokeEventCallback('select', { $event, $item });\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.nativeElement.querySelector('.dropdown-toggle') as HTMLElement, this);\n }\n}\n","<a href=\"javascript:void(0);\" [title]=\"item.label\" [wmNavigationControl]=\"item.link\" [disableMenuContext]=\"menuRef.disableMenuContext || !!item.action\">\n <span *ngIf=\"item.children.length\" class=\"pull-right fa caret {{menualign}}\"></span>\n <i class=\"app-icon {{item.icon}}\"></i>\n <span class=\"anchor-caption\">{{item.label}}</span>\n <span *ngIf=\"item.badge\" class=\"badge pull-right\" [textContent]=\"item.badge\"></span>\n</a>\n<ng-container [ngTemplateOutlet]=\"nestedMenuDropdown\" *ngIf=\"item.children.length\" [ngTemplateOutletContext]=\"{item: item}\"></ng-container>\n\n<ng-template #nestedMenuDropdown let-item=\"item\">\n <ul wmMenuDropdown [items]=\"item.children\"></ul>\n</ng-template>\n","import { Component, ElementRef, HostListener, Input, OnDestroy, OnInit, Optional } from '@angular/core';\n\nimport { addClass, triggerItemAction, UserDefinedExecutionContext, App, toggleClass } from '@wm/core';\nimport { hasLinkToCurrentPage } from '@wm/components/base';\nimport { NavComponent } from '../nav/nav.component';\n\nimport { KEYBOARD_MOVEMENTS, MENU_POSITION, MenuComponent } from '../menu.component';\n\ndeclare const _, $;\n\nconst menuAlignClass = {\n 'pull-right' : 'fa-caret-left',\n 'dropinline-menu' : 'fa-caret-down',\n 'pull-left' : 'fa-caret-right'\n};\n\nconst MENU_LAYOUT_TYPE = {\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical'\n};\n\n@Component({\n selector: 'li[wmMenuDropdownItem]',\n templateUrl: './menu-dropdown-item.component.html',\n})\nexport class MenuDropdownItemComponent implements OnInit, OnDestroy {\n\n public menualign: string;\n\n private itemActionFn: Function;\n\n @Input() item;\n\n private readonly nativeElement;\n private highlightActiveLinkSubscription: () => void;\n\n constructor(\n private app: App,\n public menuRef: MenuComponent,\n private userDefinedExecutionContext: UserDefinedExecutionContext,\n @Optional() private parentNav: NavComponent,\n elRef: ElementRef,\n ) {\n this.nativeElement = elRef.nativeElement;\n addClass(this.nativeElement, 'app-menu-item');\n\n this.menualign = menuAlignClass[this.menuRef.menualign] || menuAlignClass['pull-left'];\n }\n\n ngOnInit() {\n // add active class to the item only if it is in nav component.\n if (this.parentNav) {\n if (hasLinkToCurrentPage([this.item], this.menuRef.route.url)) {\n // add active class to the li, if the menu item's link is same as the current page name.\n addClass(this.nativeElement, 'active');\n }\n this.highlightActiveLinkSubscription = this.app.subscribe(\"highlightActiveLink\", (data) => {\n toggleClass(this.nativeElement, 'active', hasLinkToCurrentPage([this.item], this.menuRef.route.url));\n });\n }\n }\n\n getInitialKeyMovements() {\n const KEY_MOVEMENTS = _.clone(KEYBOARD_MOVEMENTS);\n if (this.menuRef.menulayout === MENU_LAYOUT_TYPE.HORIZONTAL) {\n KEY_MOVEMENTS.MOVE_UP = 'LEFT-ARROW';\n KEY_MOVEMENTS.MOVE_LEFT = 'UP-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'DOWN-ARROW';\n KEY_MOVEMENTS.MOVE_DOWN = 'RIGHT-ARROW';\n } else {\n if (this.menuRef.menuposition === MENU_POSITION.DOWN_LEFT || this.menuRef.menuposition === MENU_POSITION.UP_LEFT) {\n KEY_MOVEMENTS.MOVE_LEFT = 'RIGHT-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'LEFT-ARROW';\n } else if (this.menuRef.menuposition === 'inline') {\n KEY_MOVEMENTS.MOVE_UP = 'LEFT-ARROW';\n KEY_MOVEMENTS.MOVE_LEFT = 'UP-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'DOWN-ARROW';\n KEY_MOVEMENTS.MOVE_DOWN = 'RIGHT-ARROW';\n }\n }\n return KEY_MOVEMENTS;\n }\n\n @HostListener('keydown.tab', ['$event', '\"TAB\"'])\n @HostListener('keydown.shift.tab', ['$event', '\"SHIFT-TAB\"'])\n @HostListener('keydown.escape', ['$event', '\"ESC\"'])\n @HostListener('keydown.enter', ['$event', '\"ENTER\"'])\n @HostListener('keydown.arrowup', ['$event', '\"UP-ARROW\"'])\n @HostListener('keydown.arrowdown', ['$event', '\"DOWN-ARROW\"'])\n @HostListener('keydown.arrowright', ['$event', '\"RIGHT-ARROW\"'])\n @HostListener('keydown.arrowleft', ['$event', '\"LEFT-ARROW\"'])\n onKeyDown($event, eventAction) {\n const $li = $(this.nativeElement);\n const $ul = $(this.nativeElement).closest('ul.dropdown-menu');\n const $parentUl = this.menuRef.$element.find('> ul.dropdown-menu');\n const ARROW_KEYS = ['LEFT-ARROW', 'RIGHT-ARROW', 'UP-ARROW', 'DOWN-ARROW'];\n const KEY_MOVEMENTS = this.getInitialKeyMovements();\n\n if (_.includes(ARROW_KEYS, eventAction)) {\n // preventing from page scroll when up/down arrow is pressed, in case of menu is opened.\n $event.preventDefault();\n }\n\n if ((eventAction === KEY_MOVEMENTS.ON_TAB && $parentUl.children().last()[0] === this.nativeElement)\n || (eventAction === KEY_MOVEMENTS.ON_SHIFT_TAB && $parentUl.children().first()[0] === this.nativeElement)\n || eventAction === KEY_MOVEMENTS.ON_ESCAPE) {\n /*closing all the children elements when\n * 1. Tab is clicked on the last $element\n * 2. Shift Tab is clicked on the first $element\n * 3. When Escape key is clicked*/\n $event.preventDefault();\n this.menuRef.bsDropdown.hide();\n } else if ((eventAction === KEY_MOVEMENTS.ON_ENTER && !this.item.link) || eventAction === KEY_MOVEMENTS.MOVE_RIGHT) {\n // when there is no link for the menu, on enter open the inner child elements and focus the first $element\n $event.stopPropagation();\n if (this.item.children.length) {\n $li.toggleClass('open');\n $li.find('li').first().find('> a').focus();\n } else {\n $li.find('> a').focus();\n }\n } else if (eventAction === KEY_MOVEMENTS.MOVE_LEFT\n || (eventAction === KEY_MOVEMENTS.ON_TAB && $ul.children().last()[0] === this.nativeElement)\n || (eventAction === KEY_MOVEMENTS.ON_SHIFT_TAB && $ul.children().first()[0] === this.nativeElement)) {\n if ($parentUl[0] !== $ul[0]) {\n const $parentItem = $ul.parent();\n $parentItem.toggleClass('open').find('li.open').removeClass('open');\n $parentItem.find('> a').focus();\n $event.preventDefault();\n $event.stopPropagation();\n }\n } else if (eventAction === KEY_MOVEMENTS.MOVE_UP) {\n if ($parentUl[0] !== $ul[0] || $parentUl.find('> li').first()[0] !== this.nativeElement) {\n $event.stopPropagation();\n $li.prev().find('> a').focus();\n }\n } else if (eventAction === KEY_MOVEMENTS.MOVE_DOWN) {\n $event.stopPropagation();\n if ($parentUl.find('> li').last()[0] === this.nativeElement\n && (this.menuRef.menulayout !== MENU_LAYOUT_TYPE.HORIZONTAL\n && this.menuRef.menuposition === MENU_POSITION.UP_RIGHT\n || this.menuRef.menuposition === MENU_POSITION.UP_LEFT)) {\n this.menuRef.bsDropdown.hide();\n } else {\n $li.next().find('> a').focus();\n }\n } else if (eventAction === KEY_MOVEMENTS.ON_ENTER) {\n this.onSelect($event, this.item);\n } else {\n $event.stopPropagation();\n }\n }\n\n @HostListener('click', ['$event', 'item'])\n onSelect = ($event, item) => {\n if (this.nativeElement !== $($event.target).closest('.app-menu-item').get(0)) {\n return;\n }\n // prevent event event propagation if auto close is outside click.\n if (this.menuRef.autoclose === 'outsideClick') {\n $event.stopPropagation();\n }\n\n $event.preventDefault();\n const args = {$event, $item: item};\n this.menuRef.onMenuItemSelect(args);\n const selectedItem = _.clone(item);\n selectedItem.target = selectedItem.target || this.menuRef.linktarget;\n // Trigger the action associated with active item\n triggerItemAction(this, selectedItem);\n }\n\n ngOnDestroy(): void {\n if(this.highlightActiveLinkSubscription) {\n this.highlightActiveLinkSubscription();\n }\n }\n}\n","<li wmMenuDropdownItem *ngFor=\"let item of items\"\n [item]=\"item\"\n [ngClass]=\"{disabled: item.disabled, 'dropdown-submenu': item.children.length > 0}\"\n class=\"{{item.class}}\"\n role=\"menuitem\">\n</li>\n","import { AfterViewInit, Component, ElementRef, Input } from '@angular/core';\n\nimport { addClass } from '@wm/core';\n\nimport { MenuComponent } from '../menu.component';\n\nconst animationClasses = {\n scale: {\n 'name': 'wmScaleInLeft',\n 'down,right': 'wmScaleInLeft',\n 'down,left': 'wmScaleInRight',\n 'up,right': 'wmScaleInTopLeft',\n 'up,left': 'wmScaleInTopRight'\n },\n fade: {\n 'name': 'fadeIn',\n 'down,right': 'fadeIn',\n 'down,left': 'fadeIn',\n 'up,right': 'fadeIn',\n 'up,left': 'fadeIn'\n },\n slide: {\n 'name': 'wmSlideInDown',\n 'down,right': 'wmSlideInDown',\n 'down,left': 'wmSlideInDown',\n 'up,right': 'wmSlideInUp',\n 'up,left': 'wmSlideInUp'\n }\n};\n\nconst DEFAULT_CLS = 'dropdown-menu';\n\n@Component({\n selector: 'ul[wmMenuDropdown]',\n templateUrl: './menu-dropdown.component.html'\n})\nexport class MenuDropdownComponent implements AfterViewInit {\n private readonly nativeElement;\n private hasExecutedCallback;\n @Input() items;\n\n constructor(elRef: ElementRef, private menuRef: MenuComponent) {\n this.nativeElement = elRef.nativeElement;\n this.hasExecutedCallback = false;\n addClass(this.nativeElement, DEFAULT_CLS);\n }\n\n ngAfterViewInit() {\n const animateItems = this.menuRef.animateitems;\n let animationClass = '';\n if (animateItems) {\n animationClass = `animated ${(animationClasses[animateItems][this.menuRef.menuposition] || animationClasses[animateItems].name)}`;\n }\n addClass(this.nativeElement, `dropdown-menu ${this.menuRef.menualign} ${animationClass}`, true);\n this.getParentWidget();\n }\n // Function to check if the menu widget is present inside other widgets like table, tabs, dialog, nav, list, tile, panel, accordion\n // if true then call createObserver() which internally calculates dropown height\n getParentWidget() {\n const closestWidget = $(this.menuRef.nativeElement).closest('table, ul.list-group');\n\n // Check if the closest table is the parent of the menu widget\n if (closestWidget && $(closestWidget).has(this.menuRef.nativeElement).length > 0) {\n this.createObserver(this, this.callback);\n }\n }\n // function which changes the position of the menu dropdown dynamically if it exceeds viewport height\n callback(entries, observer) {\n if (!this.hasExecutedCallback) {\n const self = this;\n const positions = this.menuRef.menuposition?.split(',') || [];\n entries.forEach(entry => {\n if(entry.isIntersecting) {\n positions[0]='down';\n self.menuRef.menuposition= positions.length > 1 ? positions.join() : 'down,right';\n self.nativeElement.parentElement?.classList.add('dropdown');\n self.menuRef.setMenuPosition();\n } else {\n positions[0]='up';\n self.menuRef.menuposition = positions.length > 1 ? positions.join() : 'up,right';\n self.nativeElement.parentElement?.classList.add('dropup');\n self.menuRef.setMenuPosition();\n // when container=\"body\" is added to menu dropdown, the dropdown menu ul is attached directly to body.\n // so adding a class name inorder to adjust the styling of the dropdown\n const dropdownContainer = self.nativeElement.parentElement?.parentElement;\n if (dropdownContainer.tagName.toUpperCase() === \"BS-DROPDOWN-CONTAINER\") {\n // The parent element is <bs-dropdown-container>\n self.nativeElement.parentElement?.parentElement?.classList.add('parent-position');\n }\n\n }\n });\n this.hasExecutedCallback = true;\n }\n }\n\n // function which checks if the dropdown is within the viewport height or exceeds viewport height\n createObserver(target, callback) {\n const options = {\n root: null,\n threshold: 1,\n once: true\n };\n const observer = new IntersectionObserver(callback.bind(this), options);\n observer.observe(target.nativeElement);\n }\n\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-nav-item',\n new Map(\n [\n ['class', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","import {ContentChild, Directive, HostListener, Injector, AfterViewInit, Optional} from '@angular/core';\n\nimport {addClass, removeClass} from '@wm/core';\nimport { APPLY_STYLES_TYPE, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { AnchorComponent } from '@wm/components/basic';\n\nimport { registerProps } from './nav-item.props';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-nav-item';\nconst WIDGET_CONFIG = {widgetType: 'wm-nav-item', hostClass: DEFAULT_CLS};\n\n@Directive({\n selector: '[wmNavItem]',\n providers: [\n provideAsWidgetRef(NavItemDirective)\n ]\n})\nexport class NavItemDirective extends StylableComponent implements AfterViewInit{\n static initializeProps = registerProps();\n @ContentChild(AnchorComponent) innerLink;\n\n @HostListener('click')\n @HostListener('keydown.enter')\n makeActive() {\n const parentNode = this.nativeElement.parentNode;\n $(parentNode as HTMLElement).find('> li.active').removeClass('active');\n if (this.isAttached) {\n addClass(this.nativeElement, 'active');\n }\n }\n\n constructor(inj: Injector) {\n super(inj, WIDGET_CONFIG);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n\n public ngAfterViewInit() {\n if (this.innerLink) {\n this.innerLink.onActive(() => this.makeActive());\n }\n }\n\n public ngOnDetach() {\n removeClass(this.nativeElement, 'active', true);\n super.ngOnDetach();\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\n\nimport { setAttr } from '@wm/core';\n\nexport const disableContextMenu = ($event: Event) => {\n $event.preventDefault();\n};\n\n@Directive({selector: '[wmNavigationControl]'})\nexport class NavigationControlDirective {\n\n private nativeElement: HTMLElement;\n private _link: string;\n\n @Input() disableMenuContext: boolean;\n\n @Input() set wmNavigationControl(val) {\n this._link = val;\n if (val && !this.disableMenuContext) {\n setAttr(this.nativeElement, 'href', val);\n this.nativeElement.removeEventListener('contextmenu', disableContextMenu);\n } else {\n setAttr(this.nativeElement, 'href', 'javascript:void(0)');\n this.nativeElement.addEventListener('contextmenu', disableContextMenu);\n }\n }\n\n constructor(eleRef: ElementRef) {\n this.nativeElement = eleRef.nativeElement;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\n\nimport { WmComponentsModule } from '@wm/components/base';\nimport { BasicModule } from '@wm/components/basic';\nimport { InputModule } from '@wm/components/input';\n\nimport { MenuComponent } from './menu.component';\nimport { MenuDropdownComponent } from './menu-dropdown/menu-dropdown.component';\nimport { MenuDropdownItemComponent } from './menu-dropdown-item/menu-dropdown-item.component';\nimport { NavComponent } from './nav/nav.component';\nimport { NavItemDirective } from './nav/nav-item/nav-item.directive';\nimport { NavigationControlDirective } from './nav/navigation-control.directive';\n\nconst components = [\n MenuComponent,\n MenuDropdownComponent,\n MenuDropdownItemComponent,\n NavigationControlDirective,\n NavComponent,\n NavItemDirective\n];\n\n@NgModule({\n imports: [\n BasicModule,\n BsDropdownModule,\n CommonModule,\n InputModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class MenuModule {\n}\n","import {AfterViewInit, QueryList, ViewChildren, Directive, Optional} from '@angular/core';\n\nimport { StylableComponent } from '@wm/components/base';\nimport { MenuComponent } from './menu.component';\nimport {BaseContainerComponent} from '@wm/components/base';\n\ndeclare const _;\n\nconst menuProps = ['itemlabel', 'itemicon', 'itemlink', 'itemaction', 'itemchildren', 'userrole'];\n\n@Directive()\nexport class MenuAdapterComponent extends BaseContainerComponent implements AfterViewInit {\n\n private itemlabel;\n private menuRef;\n private pageScope;\n\n private binditemlabel;\n private binditemicon;\n private binditemaction;\n private binditemchildren;\n private binditemlink;\n private binduserrole;\n\n @ViewChildren(MenuComponent) private menuRefQL: QueryList<MenuComponent>;\n\n constructor(\n inj,\n WIDGET_CONFIG,\n ) {\n super(inj, WIDGET_CONFIG);\n\n this.pageScope = this.viewParent;\n this.binditemlabel = this.nativeElement.getAttribute('itemlabel.bind');\n this.binditemicon = this.nativeElement.getAttribute('itemicon.bind');\n this.binditemaction = this.nativeElement.getAttribute('itemaction.bind');\n this.binditemlink = this.nativeElement.getAttribute('itemlink.bind');\n this.binduserrole = this.nativeElement.getAttribute('userrole.bind');\n this.binditemchildren = this.nativeElement.getAttribute('itemchildren.bind');\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (_.includes(menuProps, key) && this.menuRef) {\n this.menuRef.itemlabel = nv;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n const subscriber = this.menuRefQL.changes.subscribe((menuRefQL: QueryList<MenuComponent>) => {\n if (menuRefQL.first) {\n this.menuRef = menuRefQL.first;\n menuProps.forEach((prop) => {\n const bindProp = `bind${prop}`;\n if (this[bindProp]) {\n this.menuRef[bindProp] = this[bindProp];\n }\n this.menuRef[prop] = this[prop];\n });\n subscriber.unsubscribe();\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","_c1","DEFAULT_CLS","WIDGET_CONFIG","_c0","i1","i2.MenuComponent","i3.NavComponent","i1.MenuComponent"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavemaker/app-ng-runtime",
3
- "version": "11.8.0-rc.5627",
3
+ "version": "12.0.0-next.44002",
4
4
  "description": "All modules required for a wavemaker application.",
5
5
  "main": "index.js",
6
6
  "scripts": {