@ardimedia/angular-portal-azure 0.2.142 → 0.2.144

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/apn.d.ts CHANGED
@@ -38,6 +38,7 @@ declare namespace angularportalazure {
38
38
  constructor($scope: angular.IScope, portalService: angularportalazure.PortalService);
39
39
  $scope: angular.IScope;
40
40
  portalService: angularportalazure.PortalService;
41
+ setupWindowResizeListener(callback: () => void): void;
41
42
  }
42
43
  }
43
44
  declare namespace angularportalazure {
@@ -156,12 +157,14 @@ declare namespace angularportalazure {
156
157
  }
157
158
  }
158
159
  declare namespace angularportalazure {
159
- class BladeArea extends angularportalazure.UserControlBase {
160
+ class AreaBlades extends angularportalazure.UserControlBase {
160
161
  static $inject: string[];
161
162
  constructor($scope: angular.IScope, portalService: angularportalazure.PortalService);
162
163
  private areaBlades;
163
164
  private portalScroll;
164
- private listener1;
165
+ private addBladeListener;
166
+ private areaNotificationShowListener;
167
+ private areaNotificationHideListener;
165
168
  blades: Array<angularportalazure.Blade>;
166
169
  raiseAddBladeEvent(args: angularportalazure.IAddBladeEventArgs): void;
167
170
  setFirstBlade(path: string): angularportalazure.Blade | void;
@@ -173,9 +176,11 @@ declare namespace angularportalazure {
173
176
  clearChild(path: string): void;
174
177
  showPanoramaIfNoBlades(): void;
175
178
  hidePanorama(): void;
176
- /** We need to call this when BladeArea is no longer used, otherwise the listener does not get removed. */
179
+ /** We need to call this when AreaBlades is no longer used, otherwise the listener does not get removed. */
177
180
  close(): void;
178
- private setupResizerListener();
181
+ private setPortalScrollCss();
182
+ private setupShowHideNotificationAreaListener();
183
+ private setupAddBladeListener();
179
184
  }
180
185
  }
181
186
  declare namespace angularportalazure {
@@ -208,15 +213,15 @@ declare namespace angularportalazure {
208
213
  declare namespace angularportalazure {
209
214
  class AreaNotification extends angularportalazure.UserControlBase {
210
215
  constructor($scope: angular.IScope, portalService: angularportalazure.PortalService);
211
- private portalWidth;
212
- private portalHeight;
213
216
  private areaNotification;
214
217
  widthAreaUsed: number;
218
+ private _width;
215
219
  width: number;
220
+ private _backgroundColor;
216
221
  backgroundColor: string;
217
222
  hide(): void;
218
223
  show(): void;
219
- private setupResizerListener();
224
+ private calcualteCssStyles();
220
225
  }
221
226
  }
222
227
  declare namespace angularportalazure {
@@ -323,7 +328,7 @@ declare namespace angularportalazure {
323
328
  requires: any;
324
329
  portalShell: angularportalazure.PortalShell;
325
330
  panorama: angularportalazure.Panorama;
326
- bladeArea: angularportalazure.BladeArea;
331
+ areaBlades: angularportalazure.AreaBlades;
327
332
  areaNotification: angularportalazure.AreaNotification;
328
333
  ngDialog: any;
329
334
  /** obsolete - $scope is different in any view. do have one instance in a shared service is not the right approach. */
@@ -345,10 +350,6 @@ declare namespace angularportalazure {
345
350
  }
346
351
  declare namespace angularportalazure {
347
352
  }
348
- declare namespace angularportalazure {
349
- }
350
- declare namespace angularportalazure {
351
- }
352
353
  declare namespace angularportalazure {
353
354
  class BladeDetail<T> extends angularportalazure.BladeData {
354
355
  item: T | null;
package/apn.js CHANGED
@@ -44,6 +44,58 @@ var angularportalazure;
44
44
  return null;
45
45
  }
46
46
  })(angularportalazure || (angularportalazure = {}));
47
+ ///// <reference types="angular" />
48
+ ///// <reference path="../../domain/debug.ts" />
49
+ ///// <reference path="../../domain/portalservice.ts" />
50
+ "use strict";
51
+ //namespace angularportalazure {
52
+ // angularPortalBladeGrid.$inject = ['angularportalazure.portalService'];
53
+ // function angularPortalBladeGrid(portalService: angularportalazure.PortalService) {
54
+ // return {
55
+ // restrict: 'E',
56
+ // transclude: true,
57
+ // scope: {},
58
+ // bindToController: { vm: '=' },
59
+ // templateUrl: '/node_modules/@ardimedia/angular-portal-azure/directives/blade/blade.html',
60
+ // link: function (scope: angular.IScope, element, attrs, controller) { },
61
+ // controller: function () {
62
+ // this.$onInit = function () {
63
+ // this.close = function () {
64
+ // //portalService.areaBlades.clearLastLevel();
65
+ // };
66
+ // };
67
+ // },
68
+ // controllerAs: '$ctrl'
69
+ // };
70
+ // }
71
+ // angular.module('angularportalazure').directive('angularPortalBladeGrid', angularPortalBladeGrid);
72
+ //}
73
+ ///// <reference types="angular" />
74
+ ///// <reference path="../../domain/debug.ts" />
75
+ ///// <reference path="../../domain/portalservice.ts" />
76
+ "use strict";
77
+ //namespace angularportalazure {
78
+ // angularPortalBladeNav.$inject = ['angularportalazure.portalService'];
79
+ // function angularPortalBladeNav(portalService: angularportalazure.PortalService) {
80
+ // return {
81
+ // restrict: 'E',
82
+ // transclude: true,
83
+ // scope: {},
84
+ // bindToController: { vm: '=' },
85
+ // templateUrl: '/node_modules/@ardimedia/angular-portal-azure/directives/blade/blade.html',
86
+ // link: function (scope:angular.IScope, element, attrs, controller) { },
87
+ // controller: function () {
88
+ // this.$onInit = function () {
89
+ // this.close = function () {
90
+ // //portalService.areaBlades.clearLastLevel();
91
+ // };
92
+ // };
93
+ // },
94
+ // controllerAs: '$ctrl'
95
+ // };
96
+ // }
97
+ // angular.module('angularportalazure').directive('angularPortalBladeNav', angularPortalBladeNav);
98
+ //}
47
99
  //#region Make sure console.log is working in any case, even IE9
48
100
  "use strict";
49
101
  //if ($('html').hasClass('k-ie9')) {
@@ -178,6 +230,18 @@ var angularportalazure;
178
230
  this.$scope = $scope;
179
231
  this.portalService = portalService;
180
232
  }
233
+ //#endregion
234
+ //#region Methods
235
+ UserControlBase.prototype.setupWindowResizeListener = function (callback) {
236
+ // http://stackoverflow.com/questions/4298612/jquery-how-to-call-resize-event-only-once-its-finished-resizing
237
+ var id;
238
+ this.portalService.$window.addEventListener('resize', function () {
239
+ clearTimeout(id);
240
+ id = setTimeout(function () {
241
+ callback();
242
+ }, 50);
243
+ });
244
+ };
181
245
  return UserControlBase;
182
246
  }());
183
247
  angularportalazure.UserControlBase = UserControlBase;
@@ -289,7 +353,7 @@ var angularportalazure;
289
353
  if (width < 50) {
290
354
  throw new Error('[angularportalazure.Blade] constructor parameter \'width\' must be at least 50.');
291
355
  }
292
- //#region Add BladeArea.AddBlade event listener
356
+ //#region Add AreaBlades.AddBlade event listener
293
357
  /** OBSOLETE: remove when all OBSOLETE code has been removed */
294
358
  //if (portalService instanceof angularportalazure.PortalService == false) {
295
359
  // console.log('Blade.constructor: This code cannot be removed yet.')
@@ -297,22 +361,23 @@ var angularportalazure;
297
361
  //}
298
362
  /** OBSOLETE: end */
299
363
  //// Register listener1
300
- //this.listener1 = that.portalService.$rootScope.$on('BladeArea.AddBlade', function (event, args: angularportalazure.IAddBladeEventArgs) {
364
+ //this.listener1 = that.portalService.$rootScope.$on('AreaBlades.AddBlade', function (event, args: angularportalazure.IAddBladeEventArgs) {
301
365
  // if (that.comparePaths(args.path, that.path)) {
302
- // console.log('listener1-BladeArea.AddBlade - function call: that.activate() will probably not work since this/that is not pointing to the right object. - deactivated');
366
+ // console.log('listener1-AreaBlades.AddBlade - function call: that.activate() will probably not work since this/that is not pointing to the right object. - deactivated');
303
367
  // //that.activate();
304
368
  // }
305
369
  //});
306
370
  //#endregion
307
- // Set 'this.portalService.bladeArea.blades[index]' to 'this'
308
- // 'this.portalService.bladeArea.blades[index]' was generated during AddBlade
309
- _this.portalService.bladeArea.blades.forEach(function (blade, index) {
371
+ // Set 'this.portalService.areaBlades.blades[index]' to 'this'
372
+ // 'this.portalService.areaBlades.blades[index]' was generated during AddBlade
373
+ _this.portalService.areaBlades.blades.forEach(function (blade, index) {
310
374
  if (blade.path === _this.path) {
311
- _this.portalService.bladeArea.blades[index] = _this;
375
+ _this.portalService.areaBlades.blades[index] = _this;
312
376
  }
313
377
  });
314
- _this.setBladeHeights();
315
378
  return _this;
379
+ //this.setBladeHeights();
380
+ //this.setupWindowResizeListener(() => { this.setBladeHeights(); });
316
381
  }
317
382
  Object.defineProperty(Blade.prototype, "path", {
318
383
  get: function () {
@@ -377,11 +442,11 @@ var angularportalazure;
377
442
  /** close blade. */
378
443
  Blade.prototype.close = function () {
379
444
  //this.listener1(); // Unregister listener1
380
- if (this.portalService.bladeArea !== undefined) {
381
- this.portalService.bladeArea.clearPath(this.path);
445
+ if (this.portalService.areaBlades !== undefined) {
446
+ this.portalService.areaBlades.clearPath(this.path);
382
447
  }
383
448
  else {
384
- throw new Error('[angularportalazure.Blade] path: \'' + this.path + '\' could not be removed, since no \'this.portalService.bladeArea\' available.');
449
+ throw new Error('[angularportalazure.Blade] path: \'' + this.path + '\' could not be removed, since no \'this.portalService.areaBlades\' available.');
385
450
  }
386
451
  };
387
452
  //#region Set StatusBar
@@ -482,18 +547,19 @@ var angularportalazure;
482
547
  }
483
548
  };
484
549
  Blade.prototype.setBladeHeights = function () {
485
- var that = this;
486
- that.bladeContentHeight = $('.fxs-blade-content').height();
487
- that.bladeContentInnerHeight = that.bladeContentHeight - 20;
488
- // http://stackoverflow.com/questions/4298612/jquery-how-to-call-resize-event-only-once-its-finished-resizing
489
- var id;
490
- $(window).resize(function () {
491
- clearTimeout(id);
492
- id = setTimeout(function () {
493
- that.bladeContentHeight = $('.fxs-blade-content').height();
494
- that.bladeContentInnerHeight = that.bladeContentHeight - 20;
495
- }, 500);
496
- });
550
+ console.log(this.portalService.$window.document.getElementById('apa-blade-content'));
551
+ console.log(this.portalService.$window.document.getElementById('apa-blade-content').style.height);
552
+ this.bladeContentHeight = Number(this.portalService.$window.document.getElementById('apa-blade-content').style.height.replace('px', ''));
553
+ this.bladeContentInnerHeight = this.bladeContentHeight - 20;
554
+ //// http://stackoverflow.com/questions/4298612/jquery-how-to-call-resize-event-only-once-its-finished-resizing
555
+ //var id: NodeJS.Timer;
556
+ //$(window).resize(function () {
557
+ // clearTimeout(id);
558
+ // id = setTimeout(() => {
559
+ // that.bladeContentHeight = $('.fxs-blade-content').height();
560
+ // that.bladeContentInnerHeight = that.bladeContentHeight - 20;
561
+ // }, 500);
562
+ //});
497
563
  };
498
564
  return Blade;
499
565
  }(angularportalazure.UserControlBase));
@@ -508,35 +574,33 @@ var angularportalazure;
508
574
  "use strict";
509
575
  var angularportalazure;
510
576
  (function (angularportalazure) {
511
- var BladeArea = (function (_super) {
512
- __extends(BladeArea, _super);
513
- function BladeArea($scope, portalService) {
577
+ var AreaBlades = (function (_super) {
578
+ __extends(AreaBlades, _super);
579
+ function AreaBlades($scope, portalService) {
514
580
  var _this = _super.call(this, $scope, portalService) || this;
515
581
  _this.blades = new Array();
516
582
  var that = _this;
517
- _this.areaBlades = $('#apa-blade-area');
518
- _this.portalScroll = $('#apa-portal-scroll');
583
+ _this.areaBlades = _this.portalService.$window.document.getElementById('apa-blade-area');
584
+ _this.portalScroll = _this.portalService.$window.document.getElementById('apa-portal-scroll');
519
585
  // Set dependencies
520
586
  _this.portalService = portalService;
521
- //this.portalService.bladeArea = this;
522
- //#region Add BladeArea.AddBlade event listener
587
+ //this.portalService.areaBlades = this;
588
+ //#region Add AreaBlades.AddBlade event listener
523
589
  /** OBSOLETE: remove when all OBSOLETE code has been removed */
524
- if (portalService instanceof angularportalazure.PortalService == false) {
525
- console.log('BladeArea.constructor: This code cannot be removed yet.');
526
- return _this;
527
- }
590
+ //if (portalService instanceof angularportalazure.PortalService == false) {
591
+ // console.log('AreaBlades.constructor: This code cannot be removed yet.')
592
+ // return;
593
+ //}
528
594
  /** OBSOLETE: end */
529
- // Register listener1
530
- _this.listener1 = that.portalService.$rootScope.$on('BladeArea.AddBlade', function (event, args) {
531
- that.addBlade(args.path, args.pathSender);
532
- });
533
595
  //#endregion
534
- _this.setupResizerListener();
596
+ _this.setupAddBladeListener();
597
+ _this.setupShowHideNotificationAreaListener();
598
+ _this.setupWindowResizeListener(function () { _this.setPortalScrollCss(); });
535
599
  return _this;
536
600
  }
537
601
  //#endregion
538
602
  //#region Methods
539
- BladeArea.prototype.raiseAddBladeEvent = function (args) {
603
+ AreaBlades.prototype.raiseAddBladeEvent = function (args) {
540
604
  var isBladeAlreadyShown = false;
541
605
  this.blades.forEach(function (blade) {
542
606
  if (blade.path === args.path) {
@@ -548,15 +612,15 @@ var angularportalazure;
548
612
  });
549
613
  if (!isBladeAlreadyShown) {
550
614
  // Add the blade, since it is not yet shown
551
- this.portalService.$rootScope.$broadcast('BladeArea.AddBlade', args);
615
+ this.portalService.$rootScope.$broadcast('AreaBlades.AddBlade', args);
552
616
  }
553
617
  };
554
- BladeArea.prototype.setFirstBlade = function (path) {
618
+ AreaBlades.prototype.setFirstBlade = function (path) {
555
619
  this.clearAll();
556
620
  this.hidePanorama();
557
621
  return this.addBlade(path);
558
622
  };
559
- BladeArea.prototype.addBlade = function (path, senderPath) {
623
+ AreaBlades.prototype.addBlade = function (path, senderPath) {
560
624
  if (senderPath === void 0) { senderPath = ''; }
561
625
  if (path == null) {
562
626
  return;
@@ -574,11 +638,11 @@ var angularportalazure;
574
638
  }
575
639
  if (that.portalService.$window !== undefined) {
576
640
  if (that.portalService.$window.document === undefined) {
577
- throw new Error('[angularportalazure.BladeArea] \'this.$window.document\' undefined.');
641
+ throw new Error('[angularportalazure.AreaBlades] \'this.$window.document\' undefined.');
578
642
  }
579
643
  var portalcontent = that.portalService.$window.document.getElementById('apa-portal-scroll');
580
644
  if (portalcontent === null) {
581
- throw new Error('[angularportalazure.BladeArea] HTML element with ID [apa-portal-scroll] not found. Maybe it is to early to call function \'BladeArea.addBlade\'.');
645
+ throw new Error('[angularportalazure.AreaBlades] HTML element with ID [apa-portal-scroll] not found. Maybe it is to early to call function \'BladeArea.addBlade\'.');
582
646
  }
583
647
  }
584
648
  //#endregion
@@ -589,7 +653,7 @@ var angularportalazure;
589
653
  this.blades.forEach(function (blade) {
590
654
  // we do not distinguish between lower and upper case path name
591
655
  if (blade.comparePaths(blade.path, path)) {
592
- throw new Error('[angularportalazure.BladeArea] path: \'' + path + '\' will not be added. It is already added.');
656
+ throw new Error('[angularportalazure.AreaBlades] path: \'' + path + '\' will not be added. It is already added.');
593
657
  }
594
658
  ;
595
659
  });
@@ -614,11 +678,11 @@ var angularportalazure;
614
678
  //#endregion
615
679
  return blade;
616
680
  };
617
- BladeArea.prototype.clearAll = function () {
681
+ AreaBlades.prototype.clearAll = function () {
618
682
  this.blades.length = 0;
619
683
  this.showPanoramaIfNoBlades();
620
684
  };
621
- BladeArea.prototype.clearPath = function (path) {
685
+ AreaBlades.prototype.clearPath = function (path) {
622
686
  var that = this;
623
687
  // we do not distinguish between lower and upper case path name
624
688
  path = path.toLowerCase();
@@ -629,11 +693,11 @@ var angularportalazure;
629
693
  }
630
694
  });
631
695
  if (!isremoved) {
632
- throw new Error('[angularportalazure.BladeArea.clearPath] path: \'' + path + '\' could not be removed, since path not found in bladeUrls.');
696
+ throw new Error('[angularportalazure.AreaBlades.clearPath] path: \'' + path + '\' could not be removed, since path not found in bladeUrls.');
633
697
  }
634
698
  this.showPanoramaIfNoBlades();
635
699
  };
636
- BladeArea.prototype.clearLevel = function (level) {
700
+ AreaBlades.prototype.clearLevel = function (level) {
637
701
  if (this.blades.length < level) {
638
702
  }
639
703
  if (level == 0) {
@@ -642,11 +706,11 @@ var angularportalazure;
642
706
  this.blades.length = level - 1;
643
707
  this.showPanoramaIfNoBlades();
644
708
  };
645
- BladeArea.prototype.clearLastLevel = function () {
709
+ AreaBlades.prototype.clearLastLevel = function () {
646
710
  this.clearLevel(this.blades.length);
647
711
  this.showPanoramaIfNoBlades();
648
712
  };
649
- BladeArea.prototype.clearChild = function (path) {
713
+ AreaBlades.prototype.clearChild = function (path) {
650
714
  var that = this;
651
715
  path = path.toLowerCase();
652
716
  if (path === '') {
@@ -660,10 +724,10 @@ var angularportalazure;
660
724
  }
661
725
  });
662
726
  if (!isremoved) {
663
- throw new Error('[angularportalazure.BladeArea.clearChild] path: \'' + path + '\' could not be removed, since path not found in bladeUrls.');
727
+ throw new Error('[angularportalazure.AreaBlades.clearChild] path: \'' + path + '\' could not be removed, since path not found in bladeUrls.');
664
728
  }
665
729
  };
666
- BladeArea.prototype.showPanoramaIfNoBlades = function () {
730
+ AreaBlades.prototype.showPanoramaIfNoBlades = function () {
667
731
  if (this.blades.length === 0) {
668
732
  if (this.portalService.panorama !== undefined) {
669
733
  {
@@ -672,65 +736,45 @@ var angularportalazure;
672
736
  }
673
737
  }
674
738
  };
675
- BladeArea.prototype.hidePanorama = function () {
739
+ AreaBlades.prototype.hidePanorama = function () {
676
740
  if (this.portalService.panorama !== undefined) {
677
741
  this.portalService.panorama.isVisible = false;
678
742
  }
679
743
  };
680
- /** We need to call this when BladeArea is no longer used, otherwise the listener does not get removed. */
681
- BladeArea.prototype.close = function () {
682
- this.listener1(); // Unregister listener1
744
+ /** We need to call this when AreaBlades is no longer used, otherwise the listener does not get removed. */
745
+ AreaBlades.prototype.close = function () {
746
+ // Unregister Listeners
747
+ this.addBladeListener();
748
+ this.areaNotificationShowListener();
749
+ this.areaNotificationHideListener();
683
750
  };
684
751
  //#endregion
685
- //#region OBSOLETE
686
- //addBladePath(path: string) {
687
- // // Fix issue with old code
688
- // if (this.portalService.$window === undefined) {
689
- // this.portalService.$window = <any>this.portalService;
690
- // }
691
- // this.addBlade(path);
692
- // //this.addBladeOld(path);
693
- //}
694
- //addBladeOld(path: string) {
695
- // var that = this;
696
- // if (path === undefined || path == '') { return; }
697
- // var blade = new angularportalazure.Blade(that.$scope, that.portalService, path, '');
698
- // that.blades.push(blade);
699
- // var portalcontent = that.portalService.$window.document.getElementById('apa-portal-scroll');
700
- // that.portalService.$window.setTimeout(function () {
701
- // var azureportalblades = that.portalService.$window.document.getElementsByClassName('azureportalblade');
702
- // var i = that.blades.length - 1;
703
- // // HACK: Sometime azureportalblades[i].offsetLeft is undefined.
704
- // // So now if it is, the user has to scroll on its own.
705
- // if (azureportalblades[i] !== undefined && (<any>azureportalblades[i]).offsetLeft !== undefined) {
706
- // var sl = (<any>azureportalblades[i]).offsetLeft - 30;
707
- // portalcontent.scrollLeft = sl;
708
- // }
709
- // }, 250);
710
- //}
711
- //#endregion
712
- BladeArea.prototype.setupResizerListener = function () {
752
+ AreaBlades.prototype.setPortalScrollCss = function () {
753
+ this.portalScroll.style.marginRight = this.portalService.areaNotification.widthAreaUsed + 'px';
754
+ };
755
+ AreaBlades.prototype.setupShowHideNotificationAreaListener = function () {
756
+ var _this = this;
757
+ this.areaNotificationShowListener = this.portalService.$rootScope.$on('AreaNotification.Show', function (event, args) {
758
+ _this.setPortalScrollCss();
759
+ });
760
+ this.areaNotificationHideListener = this.portalService.$rootScope.$on('AreaNotification.Hide', function (event, args) {
761
+ _this.setPortalScrollCss();
762
+ });
763
+ };
764
+ AreaBlades.prototype.setupAddBladeListener = function () {
713
765
  var that = this;
714
- that.portalScroll.css('margin-right', that.portalService.areaNotification.widthAreaUsed + 'px');
715
- console.log(that.portalScroll.css('margin-right'));
716
- // http://stackoverflow.com/questions/4298612/jquery-how-to-call-resize-event-only-once-its-finished-resizing
717
- var id;
718
- $(window).resize(function () {
719
- clearTimeout(id);
720
- id = setTimeout(function () {
721
- that.portalScroll.css('margin-right', that.portalService.areaNotification.widthAreaUsed + 'px');
722
- console.log(that.portalScroll.css('margin-right'));
723
- }, 50);
766
+ that.addBladeListener = that.portalService.$rootScope.$on('AreaBlades.AddBlade', function (event, args) {
767
+ that.addBlade(args.path, args.pathSender);
724
768
  });
725
769
  };
726
- return BladeArea;
770
+ return AreaBlades;
727
771
  }(angularportalazure.UserControlBase));
728
772
  //#region Constructor
729
- BladeArea.$inject = ['$scope', 'angularportalazure.portalService'];
730
- angularportalazure.BladeArea = BladeArea;
731
- angular.module('angularportalazure').service('angularportalazure.bladeArea', BladeArea);
773
+ AreaBlades.$inject = ['$scope', 'angularportalazure.portalService'];
774
+ angularportalazure.AreaBlades = AreaBlades;
775
+ angular.module('angularportalazure').service('angularportalazure.areaBlades', AreaBlades);
732
776
  })(angularportalazure || (angularportalazure = {}));
733
- /// <reference path="bladearea.ts" />
777
+ /// <reference path="areablades.ts" />
734
778
  /// <reference path="debug.ts" />
735
779
  /// <reference path="portalservice.ts" />
736
780
  "use strict";
@@ -776,7 +820,7 @@ var angularportalazure;
776
820
  if (path === '') {
777
821
  return;
778
822
  }
779
- this.portalService.bladeArea.raiseAddBladeEvent({ path: path, pathSender: this.path });
823
+ this.portalService.areaBlades.raiseAddBladeEvent({ path: path, pathSender: this.path });
780
824
  };
781
825
  return BladeNav;
782
826
  }(angularportalazure.BladeData));
@@ -831,40 +875,59 @@ var angularportalazure;
831
875
  function AreaNotification($scope, portalService) {
832
876
  var _this = _super.call(this, $scope, portalService) || this;
833
877
  _this.widthAreaUsed = 0;
834
- _this.width = 250;
835
- _this.backgroundColor = '#32383f';
836
- _this.areaNotification = $('#apa-notification-area');
878
+ _this._width = 250;
879
+ _this._backgroundColor = '#32383f';
880
+ _this.areaNotification = _this.portalService.$window.document.getElementById('apa-notification-area');
837
881
  _this.hide();
838
- _this.setupResizerListener();
882
+ _this.setupWindowResizeListener(function () { _this.calcualteCssStyles(); });
839
883
  return _this;
840
884
  }
885
+ Object.defineProperty(AreaNotification.prototype, "width", {
886
+ get: function () {
887
+ return this._width;
888
+ },
889
+ set: function (value) {
890
+ this._width = value;
891
+ this.calcualteCssStyles();
892
+ },
893
+ enumerable: true,
894
+ configurable: true
895
+ });
896
+ Object.defineProperty(AreaNotification.prototype, "backgroundColor", {
897
+ get: function () {
898
+ return this._backgroundColor;
899
+ },
900
+ set: function (value) {
901
+ this._backgroundColor = value;
902
+ this.calcualteCssStyles();
903
+ },
904
+ enumerable: true,
905
+ configurable: true
906
+ });
841
907
  //#endregion
842
908
  //#region Methods
843
909
  AreaNotification.prototype.hide = function () {
844
910
  this.widthAreaUsed = 0;
845
- this.areaNotification.css('display', 'none');
911
+ this.areaNotification.style.display = 'none';
912
+ this.portalService.$rootScope.$broadcast('AreaNotification.Hide');
846
913
  };
847
914
  AreaNotification.prototype.show = function () {
848
- this.areaNotification.css('position', 'absolute');
849
- this.areaNotification.css('top:0', '0');
850
- this.areaNotification.css('height', '100%');
851
- this.areaNotification.css('background-color', this.backgroundColor);
852
- this.areaNotification.css('border-left', '2px solid gray');
853
- this.areaNotification.css('width', this.width + 'px');
854
- this.areaNotification.css('left', $(window).width() - this.width + 'px');
855
- this.widthAreaUsed = this.width;
856
- this.areaNotification.css('display', 'inline-block');
857
- };
858
- AreaNotification.prototype.setupResizerListener = function () {
859
- var that = this;
860
- // http://stackoverflow.com/questions/4298612/jquery-how-to-call-resize-event-only-once-its-finished-resizing
861
- var id;
862
- $(window).resize(function () {
863
- clearTimeout(id);
864
- id = setTimeout(function () {
865
- that.show();
866
- }, 50);
867
- });
915
+ this.widthAreaUsed = 1; // Indicate to the calcualteCssStyles function, that we need to set this value
916
+ this.calcualteCssStyles();
917
+ this.areaNotification.style.display = 'inline-block';
918
+ this.portalService.$rootScope.$broadcast('AreaNotification.Show');
919
+ };
920
+ AreaNotification.prototype.calcualteCssStyles = function () {
921
+ this.areaNotification.style.position = 'absolute';
922
+ this.areaNotification.style.top = '0';
923
+ this.areaNotification.style.height = '100%';
924
+ this.areaNotification.style.backgroundColor = this.backgroundColor;
925
+ this.areaNotification.style.borderLeft = '2px solid gray';
926
+ this.areaNotification.style.width = this.width + 'px';
927
+ this.areaNotification.style.left = this.portalService.$window.innerWidth - this.width + 'px';
928
+ if (this.widthAreaUsed != 0) {
929
+ this.widthAreaUsed = this.width;
930
+ }
868
931
  };
869
932
  return AreaNotification;
870
933
  }(angularportalazure.UserControlBase));
@@ -956,7 +1019,7 @@ var angularportalazure;
956
1019
  //#endregion
957
1020
  //#region Methods
958
1021
  Tile.prototype.clicked = function () {
959
- this.portalService.bladeArea.setFirstBlade(this.bladePath);
1022
+ this.portalService.areaBlades.setFirstBlade(this.bladePath);
960
1023
  };
961
1024
  return Tile;
962
1025
  }());
@@ -1048,7 +1111,7 @@ var angularportalazure;
1048
1111
  }(angularportalazure.UserControlBase));
1049
1112
  angularportalazure.Panorama = Panorama;
1050
1113
  })(angularportalazure || (angularportalazure = {}));
1051
- /// <reference path="bladearea.ts" />
1114
+ /// <reference path="areablades.ts" />
1052
1115
  /// <reference path="usercontrolbase.ts" />
1053
1116
  /// <reference path="debug.ts" />
1054
1117
  /// <reference path="panorama.ts" />
@@ -1065,7 +1128,7 @@ var angularportalazure;
1065
1128
  _this.portalService = portalService;
1066
1129
  _this.portalService.portalShell = _this;
1067
1130
  _this.portalService.panorama = new angularportalazure.Panorama(_this.$scope, title, _this.portalService);
1068
- //this.portalService.bladeArea = new angularportalazure.BladeArea(this.$scope, portalService);
1131
+ //this.portalService.areaBlades = new angularportalazure.BladeArea(this.$scope, portalService);
1069
1132
  _this.portalService.panorama.title = title;
1070
1133
  return _this;
1071
1134
  //this.initialize();
@@ -1077,7 +1140,7 @@ var angularportalazure;
1077
1140
  /// <reference types="angular" />
1078
1141
  /// <reference types="angulartics" />
1079
1142
  /// <reference path="areanotification.ts" />
1080
- /// <reference path="bladearea.ts" />
1143
+ /// <reference path="areablades.ts" />
1081
1144
  /// <reference path="debug.ts" />
1082
1145
  /// <reference path="bladeparameter.ts" />
1083
1146
  /// <reference path="panorama.ts" />
@@ -1113,60 +1176,6 @@ var angularportalazure;
1113
1176
  /// <reference path="../../domain/portalservice.ts" />
1114
1177
  "use strict";
1115
1178
  var angularportalazure;
1116
- (function (angularportalazure) {
1117
- angularPortalBladeGrid.$inject = ['angularportalazure.portalService'];
1118
- function angularPortalBladeGrid(portalService) {
1119
- return {
1120
- restrict: 'E',
1121
- transclude: true,
1122
- scope: {},
1123
- bindToController: { vm: '=' },
1124
- templateUrl: '/node_modules/@ardimedia/angular-portal-azure/directives/blade/blade.html',
1125
- link: function (scope, element, attrs, controller) { },
1126
- controller: function () {
1127
- this.$onInit = function () {
1128
- this.close = function () {
1129
- //portalService.bladeArea.clearLastLevel();
1130
- };
1131
- };
1132
- },
1133
- controllerAs: '$ctrl'
1134
- };
1135
- }
1136
- angular.module('angularportalazure').directive('angularPortalBladeGrid', angularPortalBladeGrid);
1137
- })(angularportalazure || (angularportalazure = {}));
1138
- /// <reference types="angular" />
1139
- /// <reference path="../../domain/debug.ts" />
1140
- /// <reference path="../../domain/portalservice.ts" />
1141
- "use strict";
1142
- var angularportalazure;
1143
- (function (angularportalazure) {
1144
- angularPortalBladeNav.$inject = ['angularportalazure.portalService'];
1145
- function angularPortalBladeNav(portalService) {
1146
- return {
1147
- restrict: 'E',
1148
- transclude: true,
1149
- scope: {},
1150
- bindToController: { vm: '=' },
1151
- templateUrl: '/node_modules/@ardimedia/angular-portal-azure/directives/blade/blade.html',
1152
- link: function (scope, element, attrs, controller) { },
1153
- controller: function () {
1154
- this.$onInit = function () {
1155
- this.close = function () {
1156
- //portalService.bladeArea.clearLastLevel();
1157
- };
1158
- };
1159
- },
1160
- controllerAs: '$ctrl'
1161
- };
1162
- }
1163
- angular.module('angularportalazure').directive('angularPortalBladeNav', angularPortalBladeNav);
1164
- })(angularportalazure || (angularportalazure = {}));
1165
- /// <reference types="angular" />
1166
- /// <reference path="../../domain/debug.ts" />
1167
- /// <reference path="../../domain/portalservice.ts" />
1168
- "use strict";
1169
- var angularportalazure;
1170
1179
  (function (angularportalazure) {
1171
1180
  //angularPortalBlade.$inject = ['angularportalazure.portalService'];
1172
1181
  //function angularPortalBlade(portalService: angularportalazure.PortalService) {
@@ -1178,13 +1187,13 @@ var angularportalazure;
1178
1187
  // templateUrl: '/node_modules/@ardimedia/angular-portal-azure/directives/blade/blade.html',
1179
1188
  // link: function (scope, element, attrs, controller) {
1180
1189
  // //controller.close = function () {
1181
- // // portalService.bladeArea.clearLastLevel();
1190
+ // // portalService.areaBlades.clearLastLevel();
1182
1191
  // //};
1183
1192
  // },
1184
1193
  // controller: function () {
1185
1194
  // this.$onInit = function () {
1186
1195
  // this.close = function () {
1187
- // portalService.bladeArea.clearLastLevel();
1196
+ // portalService.areaBlades.clearLastLevel();
1188
1197
  // };
1189
1198
  // };
1190
1199
  // },
@@ -1195,10 +1204,10 @@ var angularportalazure;
1195
1204
  AngularPortalBladeController.$inject = ['angularportalazure.portalService'];
1196
1205
  function AngularPortalBladeController(portalService) {
1197
1206
  this.$onInit = function () {
1198
- portalService.areaNotification.show();
1207
+ //portalService.areaNotification.show();
1199
1208
  this.close = function () {
1200
- //portalService.bladeArea.clearLastLevel();
1201
- portalService.areaNotification.hide();
1209
+ //portalService.areaBlades.clearLastLevel();
1210
+ //portalService.areaNotification.hide();
1202
1211
  };
1203
1212
  };
1204
1213
  }
@@ -1227,7 +1236,7 @@ var angularportalazure;
1227
1236
  // controller: function () {
1228
1237
  // //this.$onInit = function () {
1229
1238
  // // this.close = function () {
1230
- // // portalService.bladeArea.clearLastLevel();
1239
+ // // portalService.areaBlades.clearLastLevel();
1231
1240
  // // };
1232
1241
  // //};
1233
1242
  // },
@@ -1235,15 +1244,15 @@ var angularportalazure;
1235
1244
  // };
1236
1245
  //}
1237
1246
  //angular.module('angularportalazure').directive('grid', grid);
1238
- var grid = {
1247
+ var angularPortalGrid = {
1239
1248
  transclude: true,
1240
- templateUrl: '/node_modules/@ardimedia/angular-portal-azure/directives/grid/grid.html',
1249
+ templateUrl: '/node_modules/@ardimedia/angular-portal-azure/directives/bladegrid/bladegrid.html',
1241
1250
  controller: function () { },
1242
1251
  bindings: {
1243
1252
  vm: '='
1244
1253
  }
1245
1254
  };
1246
- angular.module('angularportalazure').component('grid', grid);
1255
+ angular.module('angularportalazure').component('angularPortalGrid', angularPortalGrid);
1247
1256
  })(angularportalazure || (angularportalazure = {}));
1248
1257
  "use strict";
1249
1258
  var angularportalazure;
@@ -1263,9 +1272,8 @@ var angularportalazure;
1263
1272
  AngularPortalHomeController.$inject = ['$scope', 'angularportalazure.portalService'];
1264
1273
  function AngularPortalHomeController($scope, portalService) {
1265
1274
  this.$onInit = function () {
1266
- console.log('initializse');
1267
1275
  portalService.areaNotification = new angularportalazure.AreaNotification($scope, portalService);
1268
- portalService.bladeArea = new angularportalazure.BladeArea($scope, portalService);
1276
+ portalService.areaBlades = new angularportalazure.AreaBlades($scope, portalService);
1269
1277
  };
1270
1278
  }
1271
1279
  var angularPortalHome = {
@@ -1299,7 +1307,7 @@ var angularportalazure;
1299
1307
  // controller: function () {
1300
1308
  // //this.$onInit = function () {
1301
1309
  // // this.close = function () {
1302
- // // portalService.bladeArea.clearLastLevel();
1310
+ // // portalService.areaBlades.clearLastLevel();
1303
1311
  // // };
1304
1312
  // //};
1305
1313
  // },
@@ -1307,7 +1315,7 @@ var angularportalazure;
1307
1315
  // };
1308
1316
  //}
1309
1317
  //angular.module('angularportalazure').directive('nav', nav);
1310
- var nav = {
1318
+ var angularPortalNav = {
1311
1319
  transclude: true,
1312
1320
  templateUrl: '/node_modules/@ardimedia/angular-portal-azure/directives/nav/nav.html',
1313
1321
  controller: function () { },
@@ -1315,7 +1323,7 @@ var angularportalazure;
1315
1323
  vm: '='
1316
1324
  }
1317
1325
  };
1318
- angular.module('angularportalazure').component('nav', nav);
1326
+ angular.module('angularportalazure').component('angularPortalNav', angularPortalNav);
1319
1327
  })(angularportalazure || (angularportalazure = {}));
1320
1328
  /// <reference path="bladedata.ts" />
1321
1329
  /// <reference path="debug.ts" />
package/css/apn.css CHANGED
@@ -407,7 +407,7 @@ a {
407
407
  margin-top: 4px;
408
408
  margin-left: 6px;
409
409
  padding: 0;
410
- opacity: 0.3;
410
+ opacity: 0.6;
411
411
  -webkit-transition: opacity .2s ease-out;
412
412
  -moz-transition: opacity .2s ease-out;
413
413
  -o-transition: opacity .2s ease-out;
@@ -421,10 +421,10 @@ a {
421
421
  fill: #fff; }
422
422
 
423
423
  .fxs-blade .fxs-blade-header .fxs-blade-actions button > svg * {
424
- fill: #8f9ca8; }
424
+ /*fill: #8f9ca8;*/ }
425
425
 
426
426
  .fxs-blade .fxs-blade-header .fxs-blade-actions button svg * {
427
- fill: #63707e; }
427
+ /*fill: #63707e;*/ }
428
428
 
429
429
  .msportalfx-svg-c01 {
430
430
  fill: #fff; }
package/css/apn.min.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";html,body{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;height:100%;width:0;}a{color:#00bcf2;text-decoration:none;}.ng-scope{height:100%;}.fxs-portal{overflow:hidden;position:fixed;top:0;left:0;right:0;bottom:0;}.fxs-portal .fxs-portal-content{height:100%;color:#464f59;overflow-x:auto;overflow-y:hidden;white-space:nowrap;-webkit-transition:margin .2s ease;-moz-transition:margin .2s ease;-o-transition:margin .2s ease;transition:margin .2s ease;}.fxs-portal .fxs-portal-content>*{white-space:normal;}.fxs-panorama{-ms-scroll-chaining:none;}.fxs-panorama-homearea{min-width:600px;}.fxs-panorama .fxs-panorama-homearea{position:relative;padding:0 25px;margin:0 15px 0 25px;}.fxs-panorama .fxs-panorama-homearea,.fxs-panorama .fxs-journey-target{display:inline-block;vertical-align:top;height:100%;}.fxs-panorama .fxs-panorama-homearea>header{margin:20px 0 4px;height:76px;min-width:450px;}.fxs-panorama .fxs-panorama-homearea .fxs-panorama-title{font-family:"Segoe UI Light","Segoe WP Light","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:40px;line-height:54px;color:#fff;padding-top:6px;margin:0;}.fxs-panorama .fxs-panorama-homearea .fxs-avatarmenu-target{position:absolute;top:18px;right:5px;max-width:220px;min-width:190px;}.fxs-avatarmenu{position:relative;padding:12px;text-align:right;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;}.fxs-avatarmenu .fxs-avatarmenu-header{position:relative;font-family:"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;height:35px;color:#fff;}.fxs-avatarmenu>a{display:block;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;text-decoration:none;padding:10px;padding-right:54px;}.fxs-avatarmenu>a img{position:absolute;top:10px;right:10px;height:35px;width:32px;border:0;border-left:3px solid #7fba00;}.fxs-avatarmenu .fxs-avatarmenu-header .fxs-avatarmenu-username{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;font-size:14px;}.fxs-avatarmenu .fxs-avatarmenu-header .fxs-avatarmenu-emailaddress{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;font-family:"Segoe UI Semibold","Segoe WP Semibold","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:10px;text-transform:uppercase;opacity:.9;margin-top:4px;}.fxs-avatarmenu .fxs-avatarmenu-dropdown{display:none;width:100%;background-color:#32383f;border-top:1px solid #3c454f;text-align:left;}.fxs-avatarmenu .fxs-avatarmenu-dropdown ul{padding:0;margin:0;list-style-type:none;border-bottom:1px solid #3c454f;}.fxs-avatarmenu .fxs-avatarmenu-dropdown .fxs-avatarmenu-list-system .fxs-avatarmenu-feedback,.fxs-avatarmenu .fxs-avatarmenu-dropdown .fxs-avatarmenu-list-system .fxs-avatarmenu-switchportal,.fxs-avatarmenu .fxs-avatarmenu-dropdown .fxs-avatarmenu-list-system .fxs-avatarmenu-signout{padding-right:35px;position:relative;}.fxs-avatarmenu .fxs-avatarmenu-dropdown ul li a{display:block;font-size:14px;padding:10px 18px 11px;line-height:18px;color:#fff;text-decoration:none;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;}.fxs-avatarmenu .fxs-avatarmenu-dropdown .fxs-avatarmenu-list-system .fxs-avatarmenu-icon{width:15px;height:15px;display:inline-block;position:absolute;right:18px;margin-top:2px;}.fxs-panorama .fxs-panorama-homearea .fxs-startboard-target{height:-webkit-calc(100% - 100px);height:calc(100% - 100px);}.fxs-startboard .fxs-startboard-layout{height:100%;overflow-y:hidden;overflow-x:hidden;margin:0 -25px;padding:0 25px;}.fxs-stacklayout-child{height:100%;}.fxs-flowlayout>.fxs-flowlayout-childcontainer{position:relative;-webkit-transition:height .25s linear,width .25s linear 0s;-moz-transition:height .25s linear,width .25s linear 0s;-o-transition:height .25s linear,width .25s linear 0s;transition:height .25s linear,width .25s linear 0s;}.fxs-flowlayout>.fxs-flowlayout-childcontainer>.fxs-flowlayout-element{position:absolute;}.fxs-tilesize-herowide.fxs-tile{height:355px;width:535px;}.fxs-tilesize-normal.fxs-tile{height:175px;width:175px;}.fxs-tilesize-mini.fxs-tile{height:85px;width:85px;}.fxs-tile{height:175px;width:175px;-webkit-transition:height .125s linear .125s,width .125s linear 0s;-moz-transition:height .125s linear .125s,width .125s linear 0s;-o-transition:height .125s linear .125s,width .125s linear 0s;transition:height .125s linear .125s,width .125s linear 0s;background-color:#fff;position:relative;}.fxs-part{width:100%;height:100%;position:relative;box-shadow:inset 1px 0 #dcdfe2;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;padding:15px 15px 15px 15px;box-shadow:inset 1px 0 #dcdfe2;}.fxs-part .fxs-part-title{position:relative;top:-4px;}.fxs-part .fxs-part-title h2{font-family:"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:14px;line-height:17px;color:#32383f;}.fxs-part .fxs-part-title h3{font-family:"Segoe UI Semibold","Segoe WP Semibold","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:10px;line-height:10px;color:#8f9ca8;text-transform:uppercase;margin-top:3px;}.fxs-part .fxs-part-title h2,.fxs-part .fxs-part-title h3{margin:0;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;}.fxs-part .fxs-part-content{font-family:"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;line-height:18px;color:#464f59;position:relative;width:100%;height:100%;-moz-box-sizing:border-box;box-sizing:border-box;}.fxs-tile div.fxs-tile-overlay{display:none;position:absolute;width:100%;top:0;bottom:0;cursor:pointer;}.fxs-journey{height:100%;}.fxs-journey>.fxs-journey-layout{height:100%;}.fxs-journey>.fxs-journey-layout>.fxs-stacklayout-child{-webkit-transition:padding-top .2s ease,opacity .2s ease;transition:padding-top .2s ease,opacity .2s ease;}.fxs-stacklayout-horizontal.fxs-stacklayout{overflow:hidden;white-space:nowrap;height:100%;}.fxs-stacklayout-horizontal.fxs-stacklayout>.fxs-stacklayout-child{display:inline-block;vertical-align:top;overflow-y:auto;height:100%;white-space:normal;}.fxs-journey>.fxs-journey-layout>.fxs-stacklayout-child>.fxs-blade{box-shadow:-5px 0 0 rgba(31,35,39,.2),5px 0 0 rgba(31,35,39,.2);}.fxs-journey-layout :first-child.fxs-stacklayout-child .fxs-blade{border-left-color:transparent;border-left-width:0;}.fxs-blade-locked.fxs-blade{background-color:#fff;}.fxs-bladesize-small.fxs-blade{width:315px;}.fxs-blade{border-left-color:rgba(143,156,168,.8);width:585px;position:relative;height:100%;background-color:#f1f2f3;overflow:hidden;-webkit-transition:width .2s ease-out;-moz-transition:width .2s ease-out;-o-transition:width .2s ease-out;transition:width .2s ease-out;border-left-style:solid;border-left-width:2px;}.fxs-blade .fxs-blade-header{padding-bottom:8px;background-color:#3e4045;min-height:117px;}.fxs-blade .fxs-blade-statusbar-wrapper{background-color:#32383f;}.fxs-blade .fxs-blade-statusbar::after{content:" ";}.fxs-blade .fxs-blade-statusbar{-webkit-transition:all .5s,color .5s;-moz-transition:all .5s,color .5s;-o-transition:all .5s,color .5s;transition:all .5s,color .5s;}.fxs-blade .fxs-blade-statusbar,.fxs-blade .fxs-blade-loading-status{padding:5px 0 5px 25px;font-family:"Segoe UI Semibold","Segoe WP Semibold","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:10px;line-height:10px;color:#fff;text-transform:uppercase;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;}.fxs-blade .fxs-blade-header .fxs-blade-actions{-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out;float:right;margin-right:22px;height:40px;}.fxs-blade .fxs-blade-header .fxs-blade-actions button{cursor:pointer;border:0;height:21px;width:21px;background-color:transparent;margin-top:4px;margin-left:6px;padding:0;opacity:.3;-webkit-transition:opacity .2s ease-out;-moz-transition:opacity .2s ease-out;-o-transition:opacity .2s ease-out;transition:opacity .2s ease-out;}.fxs-blade .fxs-blade-header .fxs-blade-actions button img,.fxs-blade .fxs-blade-header .fxs-blade-actions button svg{height:21px;width:21px;}.msportal-fx-svg-placeholder{fill:#fff;}.fxs-blade .fxs-blade-header .fxs-blade-actions button>svg *{fill:#8f9ca8;}.fxs-blade .fxs-blade-header .fxs-blade-actions button svg *{fill:#63707e;}.msportalfx-svg-c01{fill:#fff;}.fxs-blade .fxs-blade-header .fxs-blade-title{padding:0 25px 2px 7px;margin-left:18px;}.fxs-blade .fxs-blade-header .fxs-blade-title h2::after,.fxs-blade .fxs-blade-header .fxs-blade-title h3::after{content:" ";}.fxs-blade .fxs-blade-header .fxs-blade-title h2{margin:0;font-family:"Segoe UI Light","Segoe WP Light","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:20px;line-height:28px;color:#fff;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;}.fxs-blade .fxs-blade-header .fxs-blade-title h3{margin:3px 0 2px 0;font-family:"Segoe UI Semibold","Segoe WP Semibold","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:10px;line-height:10px;color:#758393;text-transform:uppercase;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;}.fxs-blade .fxs-blade-header .fxs-blade-commandBarContainer{margin:0 20px 0 15px;}.fxs-commandBar{display:none;}.fxs-commandBar-active.fxs-commandBar{display:block;}.fxs-commandBar>ul.fxs-commandBar-itemList{display:block;margin:4px 0 0;padding:0;list-style-type:none;overflow:hidden;height:48px;-webkit-transition:height .175s ease-in;-moz-transition:height .175s ease-in;-o-transition:height .175s ease-in;transition:height .175s ease-in;}.fxs-commandBar>ul.fxs-commandBar-itemList>li{border-right-color:#6c737a;float:left;margin-bottom:5px;border-right:1px solid transparent;}.fxs-commandBar .fxs-commandBar-form{display:block;position:absolute;z-index:200;width:100%;left:0;}.fxs-commandBar .fxs-commandBar-item{font-family:"Segoe UI Semibold","Segoe WP Semibold","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:10px;line-height:10px;color:#fff;text-transform:uppercase;display:block;position:relative;padding:3px 10px 0;width:90px;height:48px;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background-color .07s ease-in;transition:background-color .07s ease-in;}.fxs-commandBar .fxs-commandBar-item .fxs-commandBar-item-text{height:22px;-webkit-transition:opacity .07s ease-in;transition:opacity .07s ease-in;}.fxs-commandBar .fxs-commandBar-item .fxs-commandBar-item-icon{position:absolute;bottom:2px;}.fxs-commandBar .fxs-commandBar-item .fxs-commandBar-item-icon>svg,.fxs-commandBar .fxs-commandBar-item .fxs-commandBar-item-icon>img{height:18px;width:18px;}.fxs-commandBar .fxs-commandBar-item-expandList.fxs-commandBar-item::after{content:"…";position:absolute;bottom:9px;left:40px;font-size:23px;line-height:23px;}.fxs-commandBar .fxs-commandBar-item:hover{background-color:#1f2327;}.fxs-blade .fxs-blade-content{padding:25px;overflow-x:hidden;overflow-y:auto;-ms-overflow-style:-ms-autohiding-scrollbar;-ms-scrollbar-track-color:#d8d8ea;-ms-scrollbar-arrow-color:#758393;-ms-scrollbar-face-color:#63707e;}.fxs-bladesize-small.fxs-blade .fxs-blade-stacklayout{width:265px;}.fxs-blade .fxs-blade-content>div{height:100%;}.fxs-bladesize-medium.fxs-blade{width:585px;}.fxs-bladesize-medium.fxs-blade .fxs-blade-stacklayout{width:535px;}.fxs-blade .fxs-blade-stacklayout{width:535px;}.fxs-blade .fxs-blade-maximized-content{display:none;}.fxs-stacklayout-vertical.fxs-stacklayout>.fxs-stacklayout-child{display:block;}.fxs-lens{position:relative;height:100%;-moz-box-sizing:border-box;box-sizing:border-box;}.fxs-lens .fxs-lens-title{color:#3d4045;}.fxs-lens>.fxs-lens-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;font-family:"Segoe UI Light","Segoe WP Light","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:14px;line-height:32px;color:#3d4045;}.fxs-lens>.fxs-lens-layout{height:100%;}:last-child.fxs-tilesize-herowidefitheight.fxs-tile,:last-child.fxs-tilesize-fullwidthfitheight.fxs-tile{margin-bottom:0;}.fxs-tilesize-herowidefitheight.fxs-tile,.fxs-tilesize-fullwidthfitheight.fxs-tile{margin-bottom:5px;}.fxs-tilesize-fullwidthfitheight.fxs-tile{height:100%;width:100%;}.fxs-blade-locked.fxs-blade .fxs-part,.fxs-bladestyle-context.fxs-blade .fxs-part,.fxs-bladestyle-contextaction.fxs-blade .fxs-part,.fxs-bladestyle-help.fxs-blade .fxs-part{box-shadow:none;}.fxs-blade-locked.fxs-blade .fxs-part{padding:0;}.fxs-lens>.fxs-lens-drag-handle{position:absolute;z-index:52;top:-12px;left:-25px;bottom:12px;width:25px;background-color:#e9e9f3;opacity:0;-webkit-transition:opacity .25s ease-out;transition:opacity .25s ease-out;}.fxs-part .fxs-part-title h3{font-family:"Segoe UI Semibold","Segoe WP Semibold","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:10px;line-height:10px;color:#8f9ca8;text-transform:uppercase;margin-top:3px;}.azc-grid{position:relative;}.azc-grid:focus{outline:none !important;}.azc-grid table{width:100%;border:0;background-color:transparent;table-layout:fixed;border-spacing:0;border-collapse:collapse;}.azc-grid .azc-grid-container{overflow-x:auto;overflow-y:visible;}.fxs-part .fxs-part-content{font-family:"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;line-height:18px;color:#464f59;line-height:normal;position:relative;width:100%;height:100%;-moz-box-sizing:border-box;box-sizing:border-box;}.azc-control table{border-collapse:collapse;table-layout:fixed;}.azc-grid table caption{display:none;}.azc-grid-headerHidden .azc-grid table thead{display:none;}.azc-grid table thead tr th.azc-grid-unsortablecolumnheader{cursor:default;}.azc-grid table th:first-child{padding-left:0;}.azc-grid table thead tr th{text-transform:uppercase;}.azc-grid table thead tr th>a{padding:1px 0 1px 10px;}.azc-grid table thead tr th a{line-height:38px;display:block;text-decoration:none;color:inherit;position:relative;}a{color:#00bcf2;text-decoration:none;}.azc-grid table thead tr th a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.azc-grid table thead tr th>a .azc-grid-headerlabel{display:block;}.azc-grid-activateableRow table tbody tr[data-grid-row-activated='true'][aria-selected='true']{background-color:#c6edfa !important;}.azc-grid-selectableRow table tbody tr[aria-selected='true'] td{color:inherit !important;}.azc-grid table tbody:last-child tr:last-child td{border-bottom:1px solid #dcdfe2;}.azc-grid table tbody tr td{color:#3d3d3d;height:33px;border-top:1px solid #dcdfe2;border-bottom:1px solid #dcdfe2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.azc-control svg{overflow:hidden;}.msportalfx-gridcolumn-asseticon img,.msportalfx-gridcolumn-asseticon svg{margin-top:4px;height:21px;width:21px;}.msportalfx-svg-c04{fill:#7a7a7a;}.msportalfx-svg-c20{fill:#68217a;}.msportalfx-svg-c01{fill:#fff;}.k-grid-content table tbody tr{padding:1px 0 1px 10px;}.k-grid td{padding:0 .6em;}body{background-color:#2e80ab;background-image:linear-gradient(to bottom,#2e80ab 0%,#61b7da 100%);background-repeat:no-repeat;font-family:wf_segoe-ui_normal,"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:small;-ms-scrollbar-arrow-color:#758393;-ms-scrollbar-face-color:#63707e;-ms-scrollbar-track-color:#dcdfe2;}a{color:#00bcf2;text-decoration:none;}img,a img,:link img,:visited img{border:0;}input.ng-invalid{border:1px solid #f00;}.collapsed{visibility:collapse;width:0;min-width:0;}
1
+ @charset "UTF-8";html,body{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;height:100%;width:0;}a{color:#00bcf2;text-decoration:none;}.ng-scope{height:100%;}.fxs-portal{overflow:hidden;position:fixed;top:0;left:0;right:0;bottom:0;}.fxs-portal .fxs-portal-content{height:100%;color:#464f59;overflow-x:auto;overflow-y:hidden;white-space:nowrap;-webkit-transition:margin .2s ease;-moz-transition:margin .2s ease;-o-transition:margin .2s ease;transition:margin .2s ease;}.fxs-portal .fxs-portal-content>*{white-space:normal;}.fxs-panorama{-ms-scroll-chaining:none;}.fxs-panorama-homearea{min-width:600px;}.fxs-panorama .fxs-panorama-homearea{position:relative;padding:0 25px;margin:0 15px 0 25px;}.fxs-panorama .fxs-panorama-homearea,.fxs-panorama .fxs-journey-target{display:inline-block;vertical-align:top;height:100%;}.fxs-panorama .fxs-panorama-homearea>header{margin:20px 0 4px;height:76px;min-width:450px;}.fxs-panorama .fxs-panorama-homearea .fxs-panorama-title{font-family:"Segoe UI Light","Segoe WP Light","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:40px;line-height:54px;color:#fff;padding-top:6px;margin:0;}.fxs-panorama .fxs-panorama-homearea .fxs-avatarmenu-target{position:absolute;top:18px;right:5px;max-width:220px;min-width:190px;}.fxs-avatarmenu{position:relative;padding:12px;text-align:right;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;}.fxs-avatarmenu .fxs-avatarmenu-header{position:relative;font-family:"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;height:35px;color:#fff;}.fxs-avatarmenu>a{display:block;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;text-decoration:none;padding:10px;padding-right:54px;}.fxs-avatarmenu>a img{position:absolute;top:10px;right:10px;height:35px;width:32px;border:0;border-left:3px solid #7fba00;}.fxs-avatarmenu .fxs-avatarmenu-header .fxs-avatarmenu-username{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;font-size:14px;}.fxs-avatarmenu .fxs-avatarmenu-header .fxs-avatarmenu-emailaddress{white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;font-family:"Segoe UI Semibold","Segoe WP Semibold","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:10px;text-transform:uppercase;opacity:.9;margin-top:4px;}.fxs-avatarmenu .fxs-avatarmenu-dropdown{display:none;width:100%;background-color:#32383f;border-top:1px solid #3c454f;text-align:left;}.fxs-avatarmenu .fxs-avatarmenu-dropdown ul{padding:0;margin:0;list-style-type:none;border-bottom:1px solid #3c454f;}.fxs-avatarmenu .fxs-avatarmenu-dropdown .fxs-avatarmenu-list-system .fxs-avatarmenu-feedback,.fxs-avatarmenu .fxs-avatarmenu-dropdown .fxs-avatarmenu-list-system .fxs-avatarmenu-switchportal,.fxs-avatarmenu .fxs-avatarmenu-dropdown .fxs-avatarmenu-list-system .fxs-avatarmenu-signout{padding-right:35px;position:relative;}.fxs-avatarmenu .fxs-avatarmenu-dropdown ul li a{display:block;font-size:14px;padding:10px 18px 11px;line-height:18px;color:#fff;text-decoration:none;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;}.fxs-avatarmenu .fxs-avatarmenu-dropdown .fxs-avatarmenu-list-system .fxs-avatarmenu-icon{width:15px;height:15px;display:inline-block;position:absolute;right:18px;margin-top:2px;}.fxs-panorama .fxs-panorama-homearea .fxs-startboard-target{height:-webkit-calc(100% - 100px);height:calc(100% - 100px);}.fxs-startboard .fxs-startboard-layout{height:100%;overflow-y:hidden;overflow-x:hidden;margin:0 -25px;padding:0 25px;}.fxs-stacklayout-child{height:100%;}.fxs-flowlayout>.fxs-flowlayout-childcontainer{position:relative;-webkit-transition:height .25s linear,width .25s linear 0s;-moz-transition:height .25s linear,width .25s linear 0s;-o-transition:height .25s linear,width .25s linear 0s;transition:height .25s linear,width .25s linear 0s;}.fxs-flowlayout>.fxs-flowlayout-childcontainer>.fxs-flowlayout-element{position:absolute;}.fxs-tilesize-herowide.fxs-tile{height:355px;width:535px;}.fxs-tilesize-normal.fxs-tile{height:175px;width:175px;}.fxs-tilesize-mini.fxs-tile{height:85px;width:85px;}.fxs-tile{height:175px;width:175px;-webkit-transition:height .125s linear .125s,width .125s linear 0s;-moz-transition:height .125s linear .125s,width .125s linear 0s;-o-transition:height .125s linear .125s,width .125s linear 0s;transition:height .125s linear .125s,width .125s linear 0s;background-color:#fff;position:relative;}.fxs-part{width:100%;height:100%;position:relative;box-shadow:inset 1px 0 #dcdfe2;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;padding:15px 15px 15px 15px;box-shadow:inset 1px 0 #dcdfe2;}.fxs-part .fxs-part-title{position:relative;top:-4px;}.fxs-part .fxs-part-title h2{font-family:"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:14px;line-height:17px;color:#32383f;}.fxs-part .fxs-part-title h3{font-family:"Segoe UI Semibold","Segoe WP Semibold","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:10px;line-height:10px;color:#8f9ca8;text-transform:uppercase;margin-top:3px;}.fxs-part .fxs-part-title h2,.fxs-part .fxs-part-title h3{margin:0;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;}.fxs-part .fxs-part-content{font-family:"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;line-height:18px;color:#464f59;position:relative;width:100%;height:100%;-moz-box-sizing:border-box;box-sizing:border-box;}.fxs-tile div.fxs-tile-overlay{display:none;position:absolute;width:100%;top:0;bottom:0;cursor:pointer;}.fxs-journey{height:100%;}.fxs-journey>.fxs-journey-layout{height:100%;}.fxs-journey>.fxs-journey-layout>.fxs-stacklayout-child{-webkit-transition:padding-top .2s ease,opacity .2s ease;transition:padding-top .2s ease,opacity .2s ease;}.fxs-stacklayout-horizontal.fxs-stacklayout{overflow:hidden;white-space:nowrap;height:100%;}.fxs-stacklayout-horizontal.fxs-stacklayout>.fxs-stacklayout-child{display:inline-block;vertical-align:top;overflow-y:auto;height:100%;white-space:normal;}.fxs-journey>.fxs-journey-layout>.fxs-stacklayout-child>.fxs-blade{box-shadow:-5px 0 0 rgba(31,35,39,.2),5px 0 0 rgba(31,35,39,.2);}.fxs-journey-layout :first-child.fxs-stacklayout-child .fxs-blade{border-left-color:transparent;border-left-width:0;}.fxs-blade-locked.fxs-blade{background-color:#fff;}.fxs-bladesize-small.fxs-blade{width:315px;}.fxs-blade{border-left-color:rgba(143,156,168,.8);width:585px;position:relative;height:100%;background-color:#f1f2f3;overflow:hidden;-webkit-transition:width .2s ease-out;-moz-transition:width .2s ease-out;-o-transition:width .2s ease-out;transition:width .2s ease-out;border-left-style:solid;border-left-width:2px;}.fxs-blade .fxs-blade-header{padding-bottom:8px;background-color:#3e4045;min-height:117px;}.fxs-blade .fxs-blade-statusbar-wrapper{background-color:#32383f;}.fxs-blade .fxs-blade-statusbar::after{content:" ";}.fxs-blade .fxs-blade-statusbar{-webkit-transition:all .5s,color .5s;-moz-transition:all .5s,color .5s;-o-transition:all .5s,color .5s;transition:all .5s,color .5s;}.fxs-blade .fxs-blade-statusbar,.fxs-blade .fxs-blade-loading-status{padding:5px 0 5px 25px;font-family:"Segoe UI Semibold","Segoe WP Semibold","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:10px;line-height:10px;color:#fff;text-transform:uppercase;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;}.fxs-blade .fxs-blade-header .fxs-blade-actions{-webkit-transition:all .2s ease-out;-moz-transition:all .2s ease-out;-o-transition:all .2s ease-out;transition:all .2s ease-out;float:right;margin-right:22px;height:40px;}.fxs-blade .fxs-blade-header .fxs-blade-actions button{cursor:pointer;border:0;height:21px;width:21px;background-color:transparent;margin-top:4px;margin-left:6px;padding:0;opacity:.6;-webkit-transition:opacity .2s ease-out;-moz-transition:opacity .2s ease-out;-o-transition:opacity .2s ease-out;transition:opacity .2s ease-out;}.fxs-blade .fxs-blade-header .fxs-blade-actions button img,.fxs-blade .fxs-blade-header .fxs-blade-actions button svg{height:21px;width:21px;}.msportal-fx-svg-placeholder{fill:#fff;}.msportalfx-svg-c01{fill:#fff;}.fxs-blade .fxs-blade-header .fxs-blade-title{padding:0 25px 2px 7px;margin-left:18px;}.fxs-blade .fxs-blade-header .fxs-blade-title h2::after,.fxs-blade .fxs-blade-header .fxs-blade-title h3::after{content:" ";}.fxs-blade .fxs-blade-header .fxs-blade-title h2{margin:0;font-family:"Segoe UI Light","Segoe WP Light","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:20px;line-height:28px;color:#fff;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;}.fxs-blade .fxs-blade-header .fxs-blade-title h3{margin:3px 0 2px 0;font-family:"Segoe UI Semibold","Segoe WP Semibold","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:10px;line-height:10px;color:#758393;text-transform:uppercase;white-space:nowrap;overflow:hidden;-ms-text-overflow:ellipsis;-o-text-overflow:ellipsis;text-overflow:ellipsis;}.fxs-blade .fxs-blade-header .fxs-blade-commandBarContainer{margin:0 20px 0 15px;}.fxs-commandBar{display:none;}.fxs-commandBar-active.fxs-commandBar{display:block;}.fxs-commandBar>ul.fxs-commandBar-itemList{display:block;margin:4px 0 0;padding:0;list-style-type:none;overflow:hidden;height:48px;-webkit-transition:height .175s ease-in;-moz-transition:height .175s ease-in;-o-transition:height .175s ease-in;transition:height .175s ease-in;}.fxs-commandBar>ul.fxs-commandBar-itemList>li{border-right-color:#6c737a;float:left;margin-bottom:5px;border-right:1px solid transparent;}.fxs-commandBar .fxs-commandBar-form{display:block;position:absolute;z-index:200;width:100%;left:0;}.fxs-commandBar .fxs-commandBar-item{font-family:"Segoe UI Semibold","Segoe WP Semibold","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:10px;line-height:10px;color:#fff;text-transform:uppercase;display:block;position:relative;padding:3px 10px 0;width:90px;height:48px;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background-color .07s ease-in;transition:background-color .07s ease-in;}.fxs-commandBar .fxs-commandBar-item .fxs-commandBar-item-text{height:22px;-webkit-transition:opacity .07s ease-in;transition:opacity .07s ease-in;}.fxs-commandBar .fxs-commandBar-item .fxs-commandBar-item-icon{position:absolute;bottom:2px;}.fxs-commandBar .fxs-commandBar-item .fxs-commandBar-item-icon>svg,.fxs-commandBar .fxs-commandBar-item .fxs-commandBar-item-icon>img{height:18px;width:18px;}.fxs-commandBar .fxs-commandBar-item-expandList.fxs-commandBar-item::after{content:"…";position:absolute;bottom:9px;left:40px;font-size:23px;line-height:23px;}.fxs-commandBar .fxs-commandBar-item:hover{background-color:#1f2327;}.fxs-blade .fxs-blade-content{padding:25px;overflow-x:hidden;overflow-y:auto;-ms-overflow-style:-ms-autohiding-scrollbar;-ms-scrollbar-track-color:#d8d8ea;-ms-scrollbar-arrow-color:#758393;-ms-scrollbar-face-color:#63707e;}.fxs-bladesize-small.fxs-blade .fxs-blade-stacklayout{width:265px;}.fxs-blade .fxs-blade-content>div{height:100%;}.fxs-bladesize-medium.fxs-blade{width:585px;}.fxs-bladesize-medium.fxs-blade .fxs-blade-stacklayout{width:535px;}.fxs-blade .fxs-blade-stacklayout{width:535px;}.fxs-blade .fxs-blade-maximized-content{display:none;}.fxs-stacklayout-vertical.fxs-stacklayout>.fxs-stacklayout-child{display:block;}.fxs-lens{position:relative;height:100%;-moz-box-sizing:border-box;box-sizing:border-box;}.fxs-lens .fxs-lens-title{color:#3d4045;}.fxs-lens>.fxs-lens-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;font-family:"Segoe UI Light","Segoe WP Light","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:14px;line-height:32px;color:#3d4045;}.fxs-lens>.fxs-lens-layout{height:100%;}:last-child.fxs-tilesize-herowidefitheight.fxs-tile,:last-child.fxs-tilesize-fullwidthfitheight.fxs-tile{margin-bottom:0;}.fxs-tilesize-herowidefitheight.fxs-tile,.fxs-tilesize-fullwidthfitheight.fxs-tile{margin-bottom:5px;}.fxs-tilesize-fullwidthfitheight.fxs-tile{height:100%;width:100%;}.fxs-blade-locked.fxs-blade .fxs-part,.fxs-bladestyle-context.fxs-blade .fxs-part,.fxs-bladestyle-contextaction.fxs-blade .fxs-part,.fxs-bladestyle-help.fxs-blade .fxs-part{box-shadow:none;}.fxs-blade-locked.fxs-blade .fxs-part{padding:0;}.fxs-lens>.fxs-lens-drag-handle{position:absolute;z-index:52;top:-12px;left:-25px;bottom:12px;width:25px;background-color:#e9e9f3;opacity:0;-webkit-transition:opacity .25s ease-out;transition:opacity .25s ease-out;}.fxs-part .fxs-part-title h3{font-family:"Segoe UI Semibold","Segoe WP Semibold","Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:10px;line-height:10px;color:#8f9ca8;text-transform:uppercase;margin-top:3px;}.azc-grid{position:relative;}.azc-grid:focus{outline:none !important;}.azc-grid table{width:100%;border:0;background-color:transparent;table-layout:fixed;border-spacing:0;border-collapse:collapse;}.azc-grid .azc-grid-container{overflow-x:auto;overflow-y:visible;}.fxs-part .fxs-part-content{font-family:"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;line-height:18px;color:#464f59;line-height:normal;position:relative;width:100%;height:100%;-moz-box-sizing:border-box;box-sizing:border-box;}.azc-control table{border-collapse:collapse;table-layout:fixed;}.azc-grid table caption{display:none;}.azc-grid-headerHidden .azc-grid table thead{display:none;}.azc-grid table thead tr th.azc-grid-unsortablecolumnheader{cursor:default;}.azc-grid table th:first-child{padding-left:0;}.azc-grid table thead tr th{text-transform:uppercase;}.azc-grid table thead tr th>a{padding:1px 0 1px 10px;}.azc-grid table thead tr th a{line-height:38px;display:block;text-decoration:none;color:inherit;position:relative;}a{color:#00bcf2;text-decoration:none;}.azc-grid table thead tr th a span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.azc-grid table thead tr th>a .azc-grid-headerlabel{display:block;}.azc-grid-activateableRow table tbody tr[data-grid-row-activated='true'][aria-selected='true']{background-color:#c6edfa !important;}.azc-grid-selectableRow table tbody tr[aria-selected='true'] td{color:inherit !important;}.azc-grid table tbody:last-child tr:last-child td{border-bottom:1px solid #dcdfe2;}.azc-grid table tbody tr td{color:#3d3d3d;height:33px;border-top:1px solid #dcdfe2;border-bottom:1px solid #dcdfe2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.azc-control svg{overflow:hidden;}.msportalfx-gridcolumn-asseticon img,.msportalfx-gridcolumn-asseticon svg{margin-top:4px;height:21px;width:21px;}.msportalfx-svg-c04{fill:#7a7a7a;}.msportalfx-svg-c20{fill:#68217a;}.msportalfx-svg-c01{fill:#fff;}.k-grid-content table tbody tr{padding:1px 0 1px 10px;}.k-grid td{padding:0 .6em;}body{background-color:#2e80ab;background-image:linear-gradient(to bottom,#2e80ab 0%,#61b7da 100%);background-repeat:no-repeat;font-family:wf_segoe-ui_normal,"Segoe UI","Segoe WP",Tahoma,Arial,sans-serif;font-weight:400;font-size:small;-ms-scrollbar-arrow-color:#758393;-ms-scrollbar-face-color:#63707e;-ms-scrollbar-track-color:#dcdfe2;}a{color:#00bcf2;text-decoration:none;}img,a img,:link img,:visited img{border:0;}input.ng-invalid{border:1px solid #f00;}.collapsed{visibility:collapse;width:0;min-width:0;}
@@ -1,27 +1,27 @@
1
- /// <reference types="angular" />
2
- /// <reference path="../../domain/debug.ts" />
3
- /// <reference path="../../domain/portalservice.ts" />
1
+ ///// <reference types="angular" />
2
+ ///// <reference path="../../domain/debug.ts" />
3
+ ///// <reference path="../../domain/portalservice.ts" />
4
4
 
5
- namespace angularportalazure {
6
- angularPortalBladeGrid.$inject = ['angularportalazure.portalService'];
7
- function angularPortalBladeGrid(portalService: angularportalazure.PortalService) {
8
- return {
9
- restrict: 'E',
10
- transclude: true,
11
- scope: {},
12
- bindToController: { vm: '=' },
13
- templateUrl: '/node_modules/@ardimedia/angular-portal-azure/directives/blade/blade.html',
14
- link: function (scope: angular.IScope, element, attrs, controller) { },
15
- controller: function () {
16
- this.$onInit = function () {
17
- this.close = function () {
18
- //portalService.bladeArea.clearLastLevel();
19
- };
20
- };
21
- },
22
- controllerAs: '$ctrl'
23
- };
24
- }
5
+ //namespace angularportalazure {
6
+ // angularPortalBladeGrid.$inject = ['angularportalazure.portalService'];
7
+ // function angularPortalBladeGrid(portalService: angularportalazure.PortalService) {
8
+ // return {
9
+ // restrict: 'E',
10
+ // transclude: true,
11
+ // scope: {},
12
+ // bindToController: { vm: '=' },
13
+ // templateUrl: '/node_modules/@ardimedia/angular-portal-azure/directives/blade/blade.html',
14
+ // link: function (scope: angular.IScope, element, attrs, controller) { },
15
+ // controller: function () {
16
+ // this.$onInit = function () {
17
+ // this.close = function () {
18
+ // //portalService.areaBlades.clearLastLevel();
19
+ // };
20
+ // };
21
+ // },
22
+ // controllerAs: '$ctrl'
23
+ // };
24
+ // }
25
25
 
26
- angular.module('angularportalazure').directive('angularPortalBladeGrid', angularPortalBladeGrid);
27
- }
26
+ // angular.module('angularportalazure').directive('angularPortalBladeGrid', angularPortalBladeGrid);
27
+ //}
@@ -1,27 +1,27 @@
1
- /// <reference types="angular" />
2
- /// <reference path="../../domain/debug.ts" />
3
- /// <reference path="../../domain/portalservice.ts" />
1
+ ///// <reference types="angular" />
2
+ ///// <reference path="../../domain/debug.ts" />
3
+ ///// <reference path="../../domain/portalservice.ts" />
4
4
 
5
- namespace angularportalazure {
6
- angularPortalBladeNav.$inject = ['angularportalazure.portalService'];
7
- function angularPortalBladeNav(portalService: angularportalazure.PortalService) {
8
- return {
9
- restrict: 'E',
10
- transclude: true,
11
- scope: {},
12
- bindToController: { vm: '=' },
13
- templateUrl: '/node_modules/@ardimedia/angular-portal-azure/directives/blade/blade.html',
14
- link: function (scope:angular.IScope, element, attrs, controller) { },
15
- controller: function () {
16
- this.$onInit = function () {
17
- this.close = function () {
18
- //portalService.bladeArea.clearLastLevel();
19
- };
20
- };
21
- },
22
- controllerAs: '$ctrl'
23
- };
24
- }
5
+ //namespace angularportalazure {
6
+ // angularPortalBladeNav.$inject = ['angularportalazure.portalService'];
7
+ // function angularPortalBladeNav(portalService: angularportalazure.PortalService) {
8
+ // return {
9
+ // restrict: 'E',
10
+ // transclude: true,
11
+ // scope: {},
12
+ // bindToController: { vm: '=' },
13
+ // templateUrl: '/node_modules/@ardimedia/angular-portal-azure/directives/blade/blade.html',
14
+ // link: function (scope:angular.IScope, element, attrs, controller) { },
15
+ // controller: function () {
16
+ // this.$onInit = function () {
17
+ // this.close = function () {
18
+ // //portalService.areaBlades.clearLastLevel();
19
+ // };
20
+ // };
21
+ // },
22
+ // controllerAs: '$ctrl'
23
+ // };
24
+ // }
25
25
 
26
- angular.module('angularportalazure').directive('angularPortalBladeNav', angularPortalBladeNav);
27
- }
26
+ // angular.module('angularportalazure').directive('angularPortalBladeNav', angularPortalBladeNav);
27
+ //}
@@ -13,13 +13,13 @@ namespace angularportalazure {
13
13
  // templateUrl: '/node_modules/@ardimedia/angular-portal-azure/directives/blade/blade.html',
14
14
  // link: function (scope, element, attrs, controller) {
15
15
  // //controller.close = function () {
16
- // // portalService.bladeArea.clearLastLevel();
16
+ // // portalService.areaBlades.clearLastLevel();
17
17
  // //};
18
18
  // },
19
19
  // controller: function () {
20
20
  // this.$onInit = function () {
21
21
  // this.close = function () {
22
- // portalService.bladeArea.clearLastLevel();
22
+ // portalService.areaBlades.clearLastLevel();
23
23
  // };
24
24
  // };
25
25
  // },
@@ -32,10 +32,10 @@ namespace angularportalazure {
32
32
  AngularPortalBladeController.$inject = ['angularportalazure.portalService'];
33
33
  function AngularPortalBladeController(portalService: angularportalazure.PortalService) {
34
34
  this.$onInit = function () {
35
- portalService.areaNotification.show();
35
+ //portalService.areaNotification.show();
36
36
  this.close = function () {
37
- //portalService.bladeArea.clearLastLevel();
38
- portalService.areaNotification.hide();
37
+ //portalService.areaBlades.clearLastLevel();
38
+ //portalService.areaNotification.hide();
39
39
  };
40
40
  };
41
41
  }
@@ -222,7 +222,7 @@
222
222
  </div>
223
223
  </div>
224
224
  </header>
225
- <div class="fxs-blade-content fxs-pannable" style="height:calc(100% - 125px);">
225
+ <div id="apa-blade-content" class="fxs-blade-content fxs-pannable" style="height:calc(100% - 125px);">
226
226
  <div class="fxs-blade-stacklayout fxs-stacklayout fxs-stacklayout-vertical" ng-style="$ctrl.vm.widthStackLayout">
227
227
  <div class="fxs-stacklayout-child">
228
228
  <div class="fxs-lens">
@@ -244,10 +244,10 @@
244
244
  </div>
245
245
 
246
246
  <!-- nav -->
247
- <nav data-ng-if="$ctrl.vm.isNav" vm="$ctrl.vm"></nav>
247
+ <angular-portal-nav data-ng-if="$ctrl.vm.isNav" vm="$ctrl.vm"></angular-portal-nav>
248
248
 
249
249
  <!-- grid -->
250
- <grid data-ng-if="$ctrl.vm.isNavGrid" vm="$ctrl.vm"></grid>
250
+ <angular-portal-grid data-ng-if="$ctrl.vm.isNavGrid" vm="$ctrl.vm"></angular-portal-grid>
251
251
 
252
252
  <!--</div>-->
253
253
  </div>
@@ -11,7 +11,7 @@
11
11
  // controller: function () {
12
12
  // //this.$onInit = function () {
13
13
  // // this.close = function () {
14
- // // portalService.bladeArea.clearLastLevel();
14
+ // // portalService.areaBlades.clearLastLevel();
15
15
  // // };
16
16
  // //};
17
17
  // },
@@ -21,14 +21,14 @@
21
21
 
22
22
  //angular.module('angularportalazure').directive('grid', grid);
23
23
 
24
- var grid = {
24
+ var angularPortalGrid = {
25
25
  transclude: true,
26
- templateUrl: '/node_modules/@ardimedia/angular-portal-azure/directives/grid/grid.html',
26
+ templateUrl: '/node_modules/@ardimedia/angular-portal-azure/directives/bladegrid/bladegrid.html',
27
27
  controller: function () { },
28
28
  bindings: {
29
29
  vm: '='
30
30
  }
31
31
  };
32
32
 
33
- angular.module('angularportalazure').component('grid', grid);
33
+ angular.module('angularportalazure').component('angularPortalGrid', angularPortalGrid);
34
34
  }
@@ -16,9 +16,8 @@
16
16
  AngularPortalHomeController.$inject = ['$scope', 'angularportalazure.portalService'];
17
17
  function AngularPortalHomeController($scope: angular.IScope, portalService: angularportalazure.PortalService) {
18
18
  this.$onInit = function () {
19
- console.log('initializse');
20
19
  portalService.areaNotification = new angularportalazure.AreaNotification($scope, portalService);
21
- portalService.bladeArea = new angularportalazure.BladeArea($scope, portalService);
20
+ portalService.areaBlades = new angularportalazure.AreaBlades($scope, portalService);
22
21
  };
23
22
  }
24
23
 
@@ -31,11 +31,11 @@
31
31
  </div>
32
32
  <div id="apa-blade-area" class="fxs-journey-target fxs-journey">
33
33
  <div class="fxs-journey-layout fxs-stacklayout fxs-stacklayout-horizontal">
34
- <div data-ng-repeat="blade in $ctrl.vm.portalService.bladeArea.blades track by $index" class="azureportalblade fxs-stacklayout-child" ng-include="blade.path"></div>
34
+ <div data-ng-repeat="blade in $ctrl.vm.portalService.areaBlades.blades track by $index" class="azureportalblade fxs-stacklayout-child" ng-include="blade.path"></div>
35
35
  </div>
36
36
  </div>
37
37
  <div id="apa-notification-area" style="display: none;">
38
- asdf
38
+ <button ng-click="$ctrl.vm.portalService.areaNotification.hide();">CLOSE</button>
39
39
  </div>
40
40
  </div>
41
41
  </div>
@@ -18,7 +18,7 @@
18
18
  // controller: function () {
19
19
  // //this.$onInit = function () {
20
20
  // // this.close = function () {
21
- // // portalService.bladeArea.clearLastLevel();
21
+ // // portalService.areaBlades.clearLastLevel();
22
22
  // // };
23
23
  // //};
24
24
  // },
@@ -28,7 +28,7 @@
28
28
 
29
29
  //angular.module('angularportalazure').directive('nav', nav);
30
30
 
31
- var nav = {
31
+ var angularPortalNav = {
32
32
  transclude: true,
33
33
  templateUrl: '/node_modules/@ardimedia/angular-portal-azure/directives/nav/nav.html',
34
34
  controller: function () { },
@@ -37,5 +37,5 @@
37
37
  }
38
38
  };
39
39
 
40
- angular.module('angularportalazure').component('nav', nav);
40
+ angular.module('angularportalazure').component('angularPortalNav', angularPortalNav);
41
41
  }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@ardimedia/angular-portal-azure",
3
3
  "description": "Angular Portal Azure - GUI Framework.",
4
4
  "author": "Ardimedia Anstalt <info@ardimedia.com> (http://www.ardimedia.com)",
5
- "version": "0.2.142",
5
+ "version": "0.2.144",
6
6
  "main": "index.js",
7
7
  "typings": "apn.d.ts",
8
8
  "dependencies": {