@wizishop/angular-components 0.0.119 → 0.0.122

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 (36) hide show
  1. package/angular-components.scss +4757 -4757
  2. package/bundles/wizishop-angular-components.umd.js +280 -158
  3. package/bundles/wizishop-angular-components.umd.js.map +1 -1
  4. package/bundles/wizishop-angular-components.umd.min.js +2 -2
  5. package/bundles/wizishop-angular-components.umd.min.js.map +1 -1
  6. package/esm2015/lib/components/checkbox/checkbox.component.js +1 -1
  7. package/esm2015/lib/components/edit-in-place/edit-in-place.component.js +1 -1
  8. package/esm2015/lib/components/inputs/input-with-select/input-with-select.component.js +3 -3
  9. package/esm2015/lib/components/selects/select/select.component.js +9 -3
  10. package/esm2015/lib/components/table/directives/checkBoxRow.directive.js +21 -11
  11. package/esm2015/lib/components/table/shared/table-checkbox-id.service.js +18 -0
  12. package/esm2015/lib/components/table/table.component.js +36 -11
  13. package/esm2015/lib/components/text-area/text-area.component.js +2 -1
  14. package/esm2015/lib/components/tooltip/tooltip.component.js +1 -1
  15. package/esm2015/lib/services/multiple-selection.service.js +61 -0
  16. package/esm2015/lib/utils/html-container.class.js +30 -0
  17. package/esm2015/lib/utils/slection-item.interface.js +2 -0
  18. package/esm2015/public-api.js +2 -2
  19. package/esm2015/wizishop-angular-components.js +4 -2
  20. package/fesm2015/wizishop-angular-components.js +262 -149
  21. package/fesm2015/wizishop-angular-components.js.map +1 -1
  22. package/lib/components/inputs/input-with-select/input-with-select.component.d.ts +1 -1
  23. package/lib/components/selects/select/select.component.d.ts +3 -1
  24. package/lib/components/table/directives/checkBoxRow.directive.d.ts +7 -1
  25. package/lib/components/table/shared/table-checkbox-id.service.d.ts +7 -0
  26. package/lib/components/table/table.component.d.ts +13 -4
  27. package/lib/services/multiple-selection.service.d.ts +14 -0
  28. package/lib/{models/html-container.model.d.ts → utils/html-container.class.d.ts} +0 -0
  29. package/lib/utils/slection-item.interface.d.ts +5 -0
  30. package/package.json +1 -1
  31. package/public-api.d.ts +1 -1
  32. package/wizishop-angular-components-0.0.122.tgz +0 -0
  33. package/wizishop-angular-components.d.ts +3 -1
  34. package/wizishop-angular-components.metadata.json +1 -1
  35. package/esm2015/lib/models/html-container.model.js +0 -30
  36. package/wizishop-angular-components-0.0.119.tgz +0 -0
@@ -1,8 +1,8 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@wizishop/ng-wizi-bulma'), require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('ngx-perfect-scrollbar'), require('rxjs'), require('rxjs/operators'), require('@angular/cdk/overlay'), require('@angular/cdk/table'), require('@angular/animations'), require('ngx-chips'), require('uuid'), require('@ngx-translate/core'), require('@angular/router')) :
3
- typeof define === 'function' && define.amd ? define('@wizishop/angular-components', ['exports', '@wizishop/ng-wizi-bulma', '@angular/core', '@angular/common', '@angular/forms', 'ngx-perfect-scrollbar', 'rxjs', 'rxjs/operators', '@angular/cdk/overlay', '@angular/cdk/table', '@angular/animations', 'ngx-chips', 'uuid', '@ngx-translate/core', '@angular/router'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wizishop = global.wizishop || {}, global.wizishop['angular-components'] = {}), global['ng-wizi-bulma'], global.ng.core, global.ng.common, global.ng.forms, global['ngx-perfect-scrollbar'], global.rxjs, global.rxjs.operators, global.ng.cdk.overlay, global.ng.cdk.table, global.ng.animations, global['ngx-chips'], global.uuid, global['@ngx-translate/core'], global.ng.router));
5
- }(this, (function (exports, i1$1, i0, common, forms, ngxPerfectScrollbar, rxjs, operators, i1, table, animations, ngxChips, uuid, core, router) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@wizishop/ng-wizi-bulma'), require('@angular/core'), require('@angular/common'), require('@angular/forms'), require('ngx-perfect-scrollbar'), require('rxjs'), require('rxjs/operators'), require('@angular/cdk/overlay'), require('@angular/cdk/table'), require('@angular/animations'), require('ngx-chips'), require('@ngx-translate/core'), require('@angular/router')) :
3
+ typeof define === 'function' && define.amd ? define('@wizishop/angular-components', ['exports', '@wizishop/ng-wizi-bulma', '@angular/core', '@angular/common', '@angular/forms', 'ngx-perfect-scrollbar', 'rxjs', 'rxjs/operators', '@angular/cdk/overlay', '@angular/cdk/table', '@angular/animations', 'ngx-chips', '@ngx-translate/core', '@angular/router'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wizishop = global.wizishop || {}, global.wizishop['angular-components'] = {}), global['ng-wizi-bulma'], global.ng.core, global.ng.common, global.ng.forms, global['ngx-perfect-scrollbar'], global.rxjs, global.rxjs.operators, global.ng.cdk.overlay, global.ng.cdk.table, global.ng.animations, global['ngx-chips'], global['@ngx-translate/core'], global.ng.router));
5
+ }(this, (function (exports, i1$1, i0, common, forms, ngxPerfectScrollbar, rxjs, operators, i1, table, animations, ngxChips, core, router) { 'use strict';
6
6
 
7
7
  /*! *****************************************************************************
8
8
  Copyright (c) Microsoft Corporation.
@@ -781,16 +781,249 @@
781
781
  { type: i1$1.NwbFilterRoutingBuilder }
782
782
  ]; };
783
783
 
784
+ var HtmlContainer = /** @class */ (function () {
785
+ function HtmlContainer(hostElement, appRef, componentFactoryResolver, injector) {
786
+ this.hostElement = hostElement;
787
+ this.appRef = appRef;
788
+ this.componentFactoryResolver = componentFactoryResolver;
789
+ this.injector = injector;
790
+ this.attached = false;
791
+ }
792
+ HtmlContainer.prototype.attach = function (component) {
793
+ var _this = this;
794
+ if (this.attached) {
795
+ throw new Error('component has already been attached');
796
+ }
797
+ this.attached = true;
798
+ var childComponentFactory = this.componentFactoryResolver.resolveComponentFactory(component);
799
+ var componentRef = childComponentFactory.create(this.injector);
800
+ this.appRef.attachView(componentRef.hostView);
801
+ this.disposeFn = function () {
802
+ _this.appRef.detachView(componentRef.hostView);
803
+ componentRef.destroy();
804
+ };
805
+ this.hostElement.appendChild(componentRef.hostView.rootNodes[0]);
806
+ return componentRef;
807
+ };
808
+ HtmlContainer.prototype.dispose = function () {
809
+ if (this.attached) {
810
+ this.disposeFn();
811
+ }
812
+ };
813
+ return HtmlContainer;
814
+ }());
815
+
816
+ var TableCheckboxIdService = /** @class */ (function () {
817
+ function TableCheckboxIdService() {
818
+ this.nbCheckboxInstances = 0;
819
+ TableCheckboxIdService.tableInstance++;
820
+ this.currentTableInstance = TableCheckboxIdService.tableInstance;
821
+ }
822
+ TableCheckboxIdService.prototype.getUniqueId = function () {
823
+ this.nbCheckboxInstances++;
824
+ return "wac-table-" + this.currentTableInstance + "-" + this.nbCheckboxInstances;
825
+ };
826
+ return TableCheckboxIdService;
827
+ }());
828
+ TableCheckboxIdService.tableInstance = 0;
829
+ TableCheckboxIdService.decorators = [
830
+ { type: i0.Injectable }
831
+ ];
832
+ TableCheckboxIdService.ctorParameters = function () { return []; };
833
+
834
+ var CheckBoxRow = /** @class */ (function () {
835
+ function CheckBoxRow(currentRow, appRef, renderer, document, resolver, injector, tableCheckboxIdService) {
836
+ this.currentRow = currentRow;
837
+ this.appRef = appRef;
838
+ this.renderer = renderer;
839
+ this.document = document;
840
+ this.resolver = resolver;
841
+ this.injector = injector;
842
+ this.tableCheckboxIdService = tableCheckboxIdService;
843
+ this.checkBoxValueChange = new i0.EventEmitter();
844
+ }
845
+ Object.defineProperty(CheckBoxRow.prototype, "checkBoxValue", {
846
+ get: function () {
847
+ return this._value;
848
+ },
849
+ set: function (value) {
850
+ this._value = value;
851
+ if (this.checkboxComponentRef) {
852
+ this.setCheckBoxValue();
853
+ }
854
+ },
855
+ enumerable: false,
856
+ configurable: true
857
+ });
858
+ CheckBoxRow.prototype.ngOnInit = function () {
859
+ this.createCheckBoxComponent();
860
+ this.handleChecboxInputs();
861
+ this.handleCheckboxOutputs();
862
+ };
863
+ CheckBoxRow.prototype.createCheckBoxComponent = function () {
864
+ // Create the container
865
+ this.checkBoxElement = document.createElement('div');
866
+ this.checkBoxElement.className = 'wac-table__body__line__cell wac-table__body__line__cell--checkbox';
867
+ // Insert divCheckBox in the DOM as the first child of the row
868
+ this.renderer.insertBefore(this.currentRow.nativeElement, this.checkBoxElement, this.currentRow.nativeElement.firstChild);
869
+ // Insert the CheckBoxComponent inside the container (DOM and Angular DOM)
870
+ this.htmlContainer = new HtmlContainer(this.checkBoxElement, this.appRef, this.resolver, this.injector);
871
+ this.checkboxComponentRef = this.htmlContainer.attach(CheckboxComponent);
872
+ };
873
+ CheckBoxRow.prototype.handleChecboxInputs = function () {
874
+ this.checkboxComponentRef.instance.id = this.checkBoxId ? '' + this.checkBoxId : this.tableCheckboxIdService.getUniqueId();
875
+ this.checkboxComponentRef.instance.name = this.checkBoxName ? this.checkBoxName : undefined;
876
+ this.checkboxComponentRef.instance.alone = true;
877
+ this.setCheckBoxValue();
878
+ };
879
+ CheckBoxRow.prototype.setCheckBoxValue = function () {
880
+ this.checkboxComponentRef.instance.value = this.checkBoxValue;
881
+ };
882
+ CheckBoxRow.prototype.handleCheckboxOutputs = function () {
883
+ var _this = this;
884
+ // Detect checkbox changes
885
+ this.checkboxComponentRef.instance.registerOnChange(function () {
886
+ _this._toggleCheckbox();
887
+ });
888
+ };
889
+ CheckBoxRow.prototype._toggleCheckbox = function () {
890
+ this.checkBoxValueChange.emit(this.checkBoxValue);
891
+ };
892
+ CheckBoxRow.prototype.getElement = function () {
893
+ return this.checkBoxElement.querySelector('.wac-field-checkbox');
894
+ };
895
+ CheckBoxRow.prototype.isActive = function () {
896
+ return !!this.checkboxComponentRef.instance.value;
897
+ };
898
+ CheckBoxRow.prototype.setActive = function (isActive) {
899
+ this.checkboxComponentRef.instance.value = isActive; //? does not trigger output
900
+ };
901
+ CheckBoxRow.prototype.ngOnDestroy = function () {
902
+ this.htmlContainer.dispose();
903
+ };
904
+ return CheckBoxRow;
905
+ }());
906
+ CheckBoxRow.decorators = [
907
+ { type: i0.Directive, args: [{
908
+ selector: '[checkBoxRow]'
909
+ },] }
910
+ ];
911
+ CheckBoxRow.ctorParameters = function () { return [
912
+ { type: i0.ElementRef },
913
+ { type: i0.ApplicationRef },
914
+ { type: i0.Renderer2 },
915
+ { type: undefined, decorators: [{ type: i0.Inject, args: [common.DOCUMENT,] }] },
916
+ { type: i0.ComponentFactoryResolver },
917
+ { type: i0.Injector },
918
+ { type: TableCheckboxIdService }
919
+ ]; };
920
+ CheckBoxRow.propDecorators = {
921
+ checkBoxId: [{ type: i0.Input, args: ['checkBoxId',] }],
922
+ checkBoxName: [{ type: i0.Input, args: ['checkBoxName',] }],
923
+ checkBoxValue: [{ type: i0.Input, args: ['checkBoxValue',] }],
924
+ checkBoxValueChange: [{ type: i0.Output }]
925
+ };
926
+
927
+ var MultiSelectionService = /** @class */ (function () {
928
+ function MultiSelectionService() {
929
+ this.activeChanges = new rxjs.Subject();
930
+ this.activeChanges$ = this.activeChanges.asObservable();
931
+ }
932
+ MultiSelectionService.prototype.handle = function (items, toggleSingleItem) {
933
+ var _this = this;
934
+ if (toggleSingleItem === void 0) { toggleSingleItem = false; }
935
+ if (!items || !items.first) {
936
+ this.destroy();
937
+ return;
938
+ }
939
+ this.destroy(); // close previous subsciption
940
+ this.items = items;
941
+ var clicks$ = this.getListeners();
942
+ this.subscription = rxjs.merge.apply(void 0, __spread(clicks$)).subscribe(function (_b) {
943
+ var component = _b.component, isShiftKeyPressed = _b.isShift, index = _b.index;
944
+ if (!isShiftKeyPressed) {
945
+ if (toggleSingleItem) {
946
+ component.setActive(!component.isActive());
947
+ }
948
+ _this.activeChanges.next([index]);
949
+ _this.lastIndex = index;
950
+ return;
951
+ }
952
+ var start = index;
953
+ var end = _this.lastIndex;
954
+ var _c = __read([Math.min(start, end), Math.max(start, end) + 1], 2), first = _c[0], last = _c[1];
955
+ var itemsSelection = _this.items.toArray().slice(first, last);
956
+ var isBeginnerItemActive = _this.items.get(end).isActive();
957
+ itemsSelection.forEach(function (current) { return current.setActive(isBeginnerItemActive); });
958
+ window.getSelection().removeAllRanges(); // remove text selection
959
+ var indexInRange = Array.from({ length: last - first }, function (x, i) { return i + first; });
960
+ _this.activeChanges.next(indexInRange);
961
+ });
962
+ };
963
+ MultiSelectionService.prototype.getListeners = function () {
964
+ return this.items.map(function (item, index) {
965
+ return rxjs.fromEvent(item.getElement(), 'click').pipe(operators.map(function (event) {
966
+ return {
967
+ index: index,
968
+ isShift: event.shiftKey,
969
+ component: item
970
+ };
971
+ }))
972
+ .pipe(operators.debounceTime(100)); // debounced, because when clicking on a wac-checkbox it is emitted twice and can not find why
973
+ });
974
+ };
975
+ MultiSelectionService.prototype.getActives = function () {
976
+ return this.items.filter(function (item) { return item.isActive(); });
977
+ };
978
+ MultiSelectionService.prototype.destroy = function () {
979
+ var _a;
980
+ (_a = this.subscription) === null || _a === void 0 ? void 0 : _a.unsubscribe();
981
+ };
982
+ return MultiSelectionService;
983
+ }());
984
+ MultiSelectionService.decorators = [
985
+ { type: i0.Injectable }
986
+ ];
987
+ MultiSelectionService.ctorParameters = function () { return []; };
988
+
989
+ var TableRow = /** @class */ (function () {
990
+ function TableRow(currentCell, renderer, document) {
991
+ this.currentCell = currentCell;
992
+ this.renderer = renderer;
993
+ this.document = document;
994
+ }
995
+ TableRow.prototype.ngAfterViewInit = function () {
996
+ this.applyCustomStylesOnCell();
997
+ };
998
+ TableRow.prototype.applyCustomStylesOnCell = function () {
999
+ this.renderer.addClass(this.currentCell.nativeElement, 'wac-table__body__line');
1000
+ };
1001
+ return TableRow;
1002
+ }());
1003
+ TableRow.decorators = [
1004
+ { type: i0.Directive, args: [{
1005
+ // The selector has the same name as the tableRaw selector in table.component.html
1006
+ selector: '[tableRow]'
1007
+ },] }
1008
+ ];
1009
+ TableRow.ctorParameters = function () { return [
1010
+ { type: i0.ElementRef },
1011
+ { type: i0.Renderer2 },
1012
+ { type: undefined, decorators: [{ type: i0.Inject, args: [common.DOCUMENT,] }] }
1013
+ ]; };
1014
+
784
1015
  var TableComponent = /** @class */ (function () {
785
- function TableComponent(filtersTableService) {
1016
+ function TableComponent(filtersTableService, tableCheckboxIdService, multiSelectionService) {
786
1017
  this.filtersTableService = filtersTableService;
1018
+ this.tableCheckboxIdService = tableCheckboxIdService;
1019
+ this.multiSelectionService = multiSelectionService;
787
1020
  this.tableFiltersChange = new i0.EventEmitter();
788
1021
  this.placeholder = '';
789
1022
  /// Input/Output of checkbox ///
790
1023
  /** Pass to true to display checkbox in the header table */
791
1024
  this.checkbox = false;
792
- /** Emit new header checboxValue */
793
- this.toggleAllCheckBox = new i0.EventEmitter();
1025
+ this.toggleAllCheckBox = new i0.EventEmitter(); // todo replace by checkBoxSelectionChange
1026
+ this.checkBoxSelectionChange = new i0.EventEmitter(); // todo add to doc
794
1027
  /// Input to disable section ///
795
1028
  /** Pass to true to hide search input */
796
1029
  this.disableSearch = false;
@@ -801,17 +1034,28 @@
801
1034
  }
802
1035
  TableComponent.prototype.ngOnInit = function () {
803
1036
  var _this = this;
804
- this.headerCheckBoxId = uuid.v4(); // Create checkbox unique id
1037
+ this.headerCheckBoxId = this.tableCheckboxIdService.getUniqueId(); // Create checkbox unique id
805
1038
  /* Handle routing filters */
806
1039
  if (this.tableRoutingName) {
807
1040
  this.filtersTableService.setInitialPaginationFiltersIfNotExist(this.tableRoutingName, this.tableFilters.itemsPerPage, this.tableFilters.currentPage);
808
1041
  this._tableFiltersGroup = this.filtersTableService.getTableFilterGroup(this.tableRoutingName);
809
1042
  this.setTablesFilters();
810
1043
  // Listen to filters changes with debounced time to limit multiple api calls
811
- this.filterGroupChangeSub = this._tableFiltersGroup.valuesChange$.subscribe(function (filters) {
1044
+ this.filterGroupChangeSub = this._tableFiltersGroup.valuesChange$.subscribe(function () {
812
1045
  _this.setTablesFilters();
813
1046
  });
814
1047
  }
1048
+ this.multiSelectionService.activeChanges$.subscribe(function (selectionIndexRawCheckChange) {
1049
+ _this.checkBoxSelectionChange.emit(selectionIndexRawCheckChange);
1050
+ });
1051
+ };
1052
+ TableComponent.prototype.ngAfterViewInit = function () {
1053
+ var _this = this;
1054
+ this.multiSelectionService.handle(this.checkBoxRows);
1055
+ this.checkBoxRows.changes.subscribe(function () {
1056
+ _this.multiSelectionService.handle(_this.checkBoxRows);
1057
+ });
1058
+ console.log('this.tableRows', this.tableRows);
815
1059
  };
816
1060
  TableComponent.prototype.onToggleAllCheckBox = function (event) {
817
1061
  this.toggleAllCheckBox.emit(event.target.checked);
@@ -856,10 +1100,11 @@
856
1100
  this.tableFiltersChange.emit(this.tableFilters);
857
1101
  this._tableFiltersGroup.tableFiltersValuesChange$.next(this.tableFilters);
858
1102
  };
859
- TableComponent.prototype.ngDestroy = function () {
1103
+ TableComponent.prototype.ngOnDestroy = function () {
860
1104
  if (this.filterGroupChangeSub) {
861
1105
  this.filterGroupChangeSub.unsubscribe();
862
1106
  }
1107
+ this.multiSelectionService.destroy();
863
1108
  };
864
1109
  return TableComponent;
865
1110
  }());
@@ -867,19 +1112,28 @@
867
1112
  { type: i0.Component, args: [{
868
1113
  selector: 'wac-table',
869
1114
  template: "<div class=\"wac-table\">\n <!-- Header section -->\n <div class=\"wac-table__head\" id=\"headerTable\">\n <div *ngIf=\"checkbox\" class=\"wac-table__head__cell wac-table__head__cell--checkbox\">\n <wac-checkbox [id]=\"headerCheckBoxId\" (change)=\"onToggleAllCheckBox($event)\" [alone]=\"true\"></wac-checkbox>\n </div>\n\n <!-- Header contents are added with the headerCell directive -->\n <ng-content select=\"[headerCell]\"></ng-content>\n </div>\n\n <!-- Search section -->\n <div *ngIf=\"!disableSearch\" class=\"wac-table__search\">\n <wac-input-search\n [(ngModel)]=\"tableFilters.searchValue\"\n (changeDebounced)=\"searchChange()\"\n [placeholder]=\"placeholder\"\n [smallPadding]=\"true\"\n ></wac-input-search>\n </div>\n\n <!-- Body section -->\n <div class=\"wac-table__body\">\n <!-- Loader on body -->\n <div class=\"wac-table__body__loader\" *ngIf=\"isLoading\">\n <wac-loader [small]=\"true\"></wac-loader>\n </div>\n <!-- Body contents are added with the tableRow directive -->\n <ng-content select=\".complex-table\" *ngIf=\"!isLoading\"></ng-content>\n <ng-content select=\"[tableRow]\" *ngIf=\"!isLoading\"></ng-content>\n </div>\n\n <!-- Pagination section -->\n <wac-pagination *ngIf=\"!disablePagniation\" [pagination]=\"tableFilters\" (pageChange)=\"pageChange()\"></wac-pagination>\n</div>\n",
870
- encapsulation: i0.ViewEncapsulation.None
1115
+ encapsulation: i0.ViewEncapsulation.None,
1116
+ providers: [
1117
+ TableCheckboxIdService,
1118
+ MultiSelectionService
1119
+ ]
871
1120
  },] }
872
1121
  ];
873
1122
  TableComponent.ctorParameters = function () { return [
874
- { type: FiltersTableService }
1123
+ { type: FiltersTableService },
1124
+ { type: TableCheckboxIdService },
1125
+ { type: MultiSelectionService }
875
1126
  ]; };
876
1127
  TableComponent.propDecorators = {
1128
+ checkBoxRows: [{ type: i0.ContentChildren, args: [CheckBoxRow,] }],
1129
+ tableRows: [{ type: i0.ContentChildren, args: [TableRow,] }],
877
1130
  tableFilters: [{ type: i0.Input }],
878
1131
  tableFiltersChange: [{ type: i0.Output }],
879
1132
  tableRoutingName: [{ type: i0.Input }],
880
1133
  placeholder: [{ type: i0.Input }],
881
1134
  checkbox: [{ type: i0.Input }],
882
1135
  toggleAllCheckBox: [{ type: i0.Output }],
1136
+ checkBoxSelectionChange: [{ type: i0.Output }],
883
1137
  disableSearch: [{ type: i0.Input }],
884
1138
  disablePagniation: [{ type: i0.Input }],
885
1139
  isLoading: [{ type: i0.Input }]
@@ -1703,6 +1957,7 @@
1703
1957
 
1704
1958
  var TextAreaComponent = /** @class */ (function () {
1705
1959
  function TextAreaComponent() {
1960
+ // todo simplify and improve progress bar
1706
1961
  this.label = '';
1707
1962
  this.value = '';
1708
1963
  this.placeholder = '';
@@ -2445,121 +2700,6 @@
2445
2700
  },] }
2446
2701
  ];
2447
2702
 
2448
- var HtmlContainer = /** @class */ (function () {
2449
- function HtmlContainer(hostElement, appRef, componentFactoryResolver, injector) {
2450
- this.hostElement = hostElement;
2451
- this.appRef = appRef;
2452
- this.componentFactoryResolver = componentFactoryResolver;
2453
- this.injector = injector;
2454
- this.attached = false;
2455
- }
2456
- HtmlContainer.prototype.attach = function (component) {
2457
- var _this = this;
2458
- if (this.attached) {
2459
- throw new Error('component has already been attached');
2460
- }
2461
- this.attached = true;
2462
- var childComponentFactory = this.componentFactoryResolver.resolveComponentFactory(component);
2463
- var componentRef = childComponentFactory.create(this.injector);
2464
- this.appRef.attachView(componentRef.hostView);
2465
- this.disposeFn = function () {
2466
- _this.appRef.detachView(componentRef.hostView);
2467
- componentRef.destroy();
2468
- };
2469
- this.hostElement.appendChild(componentRef.hostView.rootNodes[0]);
2470
- return componentRef;
2471
- };
2472
- HtmlContainer.prototype.dispose = function () {
2473
- if (this.attached) {
2474
- this.disposeFn();
2475
- }
2476
- };
2477
- return HtmlContainer;
2478
- }());
2479
-
2480
- var CheckBoxRow = /** @class */ (function () {
2481
- function CheckBoxRow(currentRow, appRef, renderer, document, resolver, injector) {
2482
- this.currentRow = currentRow;
2483
- this.appRef = appRef;
2484
- this.renderer = renderer;
2485
- this.document = document;
2486
- this.resolver = resolver;
2487
- this.injector = injector;
2488
- this.checkBoxValueChange = new i0.EventEmitter();
2489
- }
2490
- Object.defineProperty(CheckBoxRow.prototype, "checkBoxValue", {
2491
- get: function () {
2492
- return this._value;
2493
- },
2494
- set: function (value) {
2495
- this._value = value;
2496
- if (this.checkboxComponentRef) {
2497
- this.setCheckBoxValue();
2498
- }
2499
- },
2500
- enumerable: false,
2501
- configurable: true
2502
- });
2503
- CheckBoxRow.prototype.ngOnInit = function () {
2504
- this.createCheckBoxComponent();
2505
- this.handleChecboxInputs();
2506
- this.handleCheckboxOutputs();
2507
- };
2508
- CheckBoxRow.prototype.createCheckBoxComponent = function () {
2509
- // Create the container
2510
- var checkBoxContainer = document.createElement('div');
2511
- checkBoxContainer.className = 'wac-table__body__line__cell wac-table__body__line__cell--checkbox';
2512
- // Insert divCheckBox in the DOM as the first child of the row
2513
- this.renderer.insertBefore(this.currentRow.nativeElement, checkBoxContainer, this.currentRow.nativeElement.firstChild);
2514
- // Insert the CheckBoxComponent inside the container (DOM and Angular DOM)
2515
- this.htmlContainer = new HtmlContainer(checkBoxContainer, this.appRef, this.resolver, this.injector);
2516
- this.checkboxComponentRef = this.htmlContainer.attach(CheckboxComponent);
2517
- };
2518
- CheckBoxRow.prototype.handleChecboxInputs = function () {
2519
- this.checkboxComponentRef.instance.id = this.checkBoxId ? this.checkBoxId : uuid.v4();
2520
- this.checkboxComponentRef.instance.name = this.checkBoxName ? this.checkBoxName : undefined;
2521
- this.checkboxComponentRef.instance.alone = true;
2522
- this.setCheckBoxValue();
2523
- };
2524
- CheckBoxRow.prototype.setCheckBoxValue = function () {
2525
- this.checkboxComponentRef.instance.value = this.checkBoxValue;
2526
- };
2527
- CheckBoxRow.prototype.handleCheckboxOutputs = function () {
2528
- var _this = this;
2529
- // Detect checkbox changes
2530
- this.checkboxComponentRef.instance.registerOnChange(function () {
2531
- _this._toggleCheckbox();
2532
- });
2533
- };
2534
- CheckBoxRow.prototype._toggleCheckbox = function () {
2535
- this.checkBoxValue = !this.checkBoxValue;
2536
- this.checkBoxValueChange.emit(this.checkBoxValue);
2537
- };
2538
- CheckBoxRow.prototype.ngOnDestroy = function () {
2539
- this.htmlContainer.dispose();
2540
- };
2541
- return CheckBoxRow;
2542
- }());
2543
- CheckBoxRow.decorators = [
2544
- { type: i0.Directive, args: [{
2545
- selector: '[checkBoxRow]'
2546
- },] }
2547
- ];
2548
- CheckBoxRow.ctorParameters = function () { return [
2549
- { type: i0.ElementRef },
2550
- { type: i0.ApplicationRef },
2551
- { type: i0.Renderer2 },
2552
- { type: undefined, decorators: [{ type: i0.Inject, args: [common.DOCUMENT,] }] },
2553
- { type: i0.ComponentFactoryResolver },
2554
- { type: i0.Injector }
2555
- ]; };
2556
- CheckBoxRow.propDecorators = {
2557
- checkBoxId: [{ type: i0.Input, args: ['checkBoxId',] }],
2558
- checkBoxName: [{ type: i0.Input, args: ['checkBoxName',] }],
2559
- checkBoxValue: [{ type: i0.Input, args: ['checkBoxValue',] }],
2560
- checkBoxValueChange: [{ type: i0.Output }]
2561
- };
2562
-
2563
2703
  var TableColumn = /** @class */ (function () {
2564
2704
  function TableColumn(currentCell, renderer, document) {
2565
2705
  this.currentCell = currentCell;
@@ -2793,32 +2933,6 @@
2793
2933
  tableFiltersChange: [{ type: i0.Output }]
2794
2934
  };
2795
2935
 
2796
- var TableRow = /** @class */ (function () {
2797
- function TableRow(currentCell, renderer, document) {
2798
- this.currentCell = currentCell;
2799
- this.renderer = renderer;
2800
- this.document = document;
2801
- }
2802
- TableRow.prototype.ngAfterViewInit = function () {
2803
- this.applyCustomStylesOnCell();
2804
- };
2805
- TableRow.prototype.applyCustomStylesOnCell = function () {
2806
- this.renderer.addClass(this.currentCell.nativeElement, 'wac-table__body__line');
2807
- };
2808
- return TableRow;
2809
- }());
2810
- TableRow.decorators = [
2811
- { type: i0.Directive, args: [{
2812
- // The selector has the same name as the tableRaw selector in table.component.html
2813
- selector: '[tableRow]'
2814
- },] }
2815
- ];
2816
- TableRow.ctorParameters = function () { return [
2817
- { type: i0.ElementRef },
2818
- { type: i0.Renderer2 },
2819
- { type: undefined, decorators: [{ type: i0.Inject, args: [common.DOCUMENT,] }] }
2820
- ]; };
2821
-
2822
2936
  var directives$1 = [TableColumn, CheckBoxRow, TableColumnHeader, TableRow,];
2823
2937
  var TableModule = /** @class */ (function () {
2824
2938
  function TableModule() {
@@ -2987,13 +3101,14 @@
2987
3101
  function SelectComponent(translateService) {
2988
3102
  this.translateService = translateService;
2989
3103
  this.search = false;
3104
+ this.searchValue = '';
3105
+ this.searchValueChange = new i0.EventEmitter();
2990
3106
  this.type = 'default';
2991
3107
  this.maxWidth = '100%';
2992
3108
  this.disabled = false;
2993
3109
  this.selectValue = new i0.EventEmitter();
2994
3110
  this.clickOnCallToAction = new i0.EventEmitter();
2995
3111
  this.openCategories = false;
2996
- this.searchValue = '';
2997
3112
  this.indexItemSelected = -1;
2998
3113
  // ControlValueAccessor methods
2999
3114
  this.onChange = function () { };
@@ -3020,6 +3135,9 @@
3020
3135
  this.onClose();
3021
3136
  this.clickOnCallToAction.emit(this.callToAction.value);
3022
3137
  };
3138
+ SelectComponent.prototype.onSearcheValueChange = function () {
3139
+ this.searchValueChange.emit(this.searchValue);
3140
+ };
3023
3141
  SelectComponent.prototype.getItemSelected = function () {
3024
3142
  return this.items[this.indexItemSelected];
3025
3143
  };
@@ -3055,7 +3173,7 @@
3055
3173
  SelectComponent.decorators = [
3056
3174
  { type: i0.Component, args: [{
3057
3175
  selector: 'wac-select',
3058
- template: "<p *ngIf=\"label\" [innerHTML]=\"label\" class=\"wac-select__label\"></p>\n\n<div class=\"wac-select\" wzAutoHide (clickOutside)=\"onClose()\" [ngStyle]=\"{ 'max-width': maxWidth }\" [zIndexToggle]=\"openCategories\">\n\n <div class=\"wac-select__current\" [ngClass]=\"{ 'select-disabled' : disabled }\" (click)=\"!disabled && openCategories = !openCategories\" *ngIf=\"!search\">\n <span *ngIf=\"indexItemSelected !== -1\" class=\"icon\" [innerHTML]=\"items[indexItemSelected].icon\"></span>\n <span [innerHTML]=\"indexItemSelected !== -1 ? items[indexItemSelected].name : placeholder\"></span><span><i class=\"fas fa-chevron-down\"></i></span>\n </div>\n\n <div class=\"wac-select__current wac-select__current--withSearch\" [ngClass]=\"{ 'select-disabled' : disabled, 'open-search': openCategories }\" *ngIf=\"search\">\n <div class=\"wac-select__current__search\" *ngIf=\"openCategories && !disabled\">\n <i class=\"far fa-search\"></i>\n <input #search type=\"text\" [(ngModel)]=\"searchValue\" />\n </div>\n <span (click)=\"openCategories = !openCategories;\" *ngIf=\"items[indexItemSelected]?.icon && !openCategories\" class=\"icon\" [innerHTML]=\"items[indexItemSelected].icon\"></span>\n <span (click)=\"showCategories()\" [innerHTML]=\"items[indexItemSelected]?.name ? items[indexItemSelected].name : placeholder\"></span>\n <span (click)=\"openCategories = !openCategories;\"><i class=\"fas fa-chevron-down\"></i></span>\n </div>\n\n <div class=\"wac-select__content\" *ngIf=\"!disabled\" [ngClass]=\"{ hidden: !openCategories, open: type === 'open' }\" [ngStyle]=\"{ 'max-width': maxWidthItems }\">\n <perfect-scrollbar [config]=\"{ suppressScrollX: true }\" *ngIf=\"items.length\">\n\n <div *ngIf=\"callToAction\" class=\"wac-select__content__cta\">\n <div (click)=\"onClickCallToAction()\">\n <i *ngIf=\"callToAction.icon\" [classList]=\"callToAction.icon\"></i><strong *ngIf=\"callToAction.boldText\">{{ callToAction.boldText }}</strong\n ><span>{{ callToAction?.name }}</span>\n </div>\n </div>\n\n <div\n *ngFor=\"let item of items | selectFilters: searchValue; let index = index;\"\n (click)=\"onClose()\"\n class=\"wac-select__content__item\"\n >\n <div [ngClass]=\"{ selected: item.selected }\" (click)=\"onSelectItem(item.id)\">\n <span class=\"icon\" [innerHTML]=\"item.icon\" *ngIf=\"item.icon\"></span>{{ item.name }}\n </div>\n </div>\n\n </perfect-scrollbar>\n\n <div *ngIf=\"!(items | selectFilters: searchValue)?.length\" class=\"wac-select__content__empty\">\n <span>{{'wac.datatable.noresult' | translate}}</span>\n </div>\n\n </div>\n</div>",
3176
+ template: "<p *ngIf=\"label\" [innerHTML]=\"label\" class=\"wac-select__label\"></p>\n\n<div class=\"wac-select\" wzAutoHide (clickOutside)=\"onClose()\" [ngStyle]=\"{ 'max-width': maxWidth }\" [zIndexToggle]=\"openCategories\">\n\n <div class=\"wac-select__current\" [ngClass]=\"{ 'select-disabled' : disabled }\" (click)=\"!disabled && openCategories = !openCategories\" *ngIf=\"!search\">\n <span *ngIf=\"indexItemSelected !== -1\" class=\"icon\" [innerHTML]=\"items[indexItemSelected].icon\"></span>\n <span [innerHTML]=\"indexItemSelected !== -1 ? items[indexItemSelected].name : placeholder\"></span><span><i class=\"fas fa-chevron-down\"></i></span>\n </div>\n\n <div class=\"wac-select__current wac-select__current--withSearch\" [ngClass]=\"{ 'select-disabled' : disabled, 'open-search': openCategories }\" *ngIf=\"search\">\n <div class=\"wac-select__current__search\" *ngIf=\"openCategories && !disabled\">\n <i class=\"far fa-search\"></i>\n <input #search type=\"text\" [(ngModel)]=\"searchValue\" (ngModelChange)=\"onSearcheValueChange()\"/>\n </div>\n <span (click)=\"openCategories = !openCategories;\" *ngIf=\"items[indexItemSelected]?.icon && !openCategories\" class=\"icon\" [innerHTML]=\"items[indexItemSelected].icon\"></span>\n <span (click)=\"showCategories()\" [innerHTML]=\"items[indexItemSelected]?.name ? items[indexItemSelected].name : placeholder\"></span>\n <span (click)=\"openCategories = !openCategories;\"><i class=\"fas fa-chevron-down\"></i></span>\n </div>\n\n <div class=\"wac-select__content\" *ngIf=\"!disabled\" [ngClass]=\"{ hidden: !openCategories, open: type === 'open' }\" [ngStyle]=\"{ 'max-width': maxWidthItems }\">\n <perfect-scrollbar [config]=\"{ suppressScrollX: true }\" *ngIf=\"items.length\">\n\n <div *ngIf=\"callToAction\" class=\"wac-select__content__cta\">\n <div (click)=\"onClickCallToAction()\">\n <i *ngIf=\"callToAction.icon\" [classList]=\"callToAction.icon\"></i><strong *ngIf=\"callToAction.boldText\">{{ callToAction.boldText }}</strong\n ><span>{{ callToAction?.name }}</span>\n </div>\n </div>\n\n <div\n *ngFor=\"let item of items | selectFilters: searchValue; let index = index;\"\n (click)=\"onClose()\"\n class=\"wac-select__content__item\"\n >\n <div [ngClass]=\"{ selected: item.selected }\" (click)=\"onSelectItem(item.id)\">\n <span class=\"icon\" [innerHTML]=\"item.icon\" *ngIf=\"item.icon\"></span>{{ item.name }}\n </div>\n </div>\n\n </perfect-scrollbar>\n\n <div *ngIf=\"!(items | selectFilters: searchValue)?.length\" class=\"wac-select__content__empty\">\n <span>{{'wac.datatable.noresult' | translate}}</span>\n </div>\n\n </div>\n</div>",
3059
3177
  providers: [{ provide: forms.NG_VALUE_ACCESSOR, useExisting: SelectComponent, multi: true }]
3060
3178
  },] }
3061
3179
  ];
@@ -3068,6 +3186,8 @@
3068
3186
  label: [{ type: i0.Input }],
3069
3187
  maxWidthItems: [{ type: i0.Input }],
3070
3188
  search: [{ type: i0.Input }],
3189
+ searchValue: [{ type: i0.Input }],
3190
+ searchValueChange: [{ type: i0.Output }],
3071
3191
  type: [{ type: i0.Input }],
3072
3192
  callToAction: [{ type: i0.Input }],
3073
3193
  maxWidth: [{ type: i0.Input }],
@@ -3288,7 +3408,7 @@
3288
3408
  }
3289
3409
  });
3290
3410
  };
3291
- InputWithSelectComponent.prototype.onChangeValue = function (index) {
3411
+ InputWithSelectComponent.prototype.onClickItem = function (index) {
3292
3412
  this.unActiveAll();
3293
3413
  var optionSelected = this.options[index];
3294
3414
  optionSelected.active = true;
@@ -3315,7 +3435,7 @@
3315
3435
  InputWithSelectComponent.decorators = [
3316
3436
  { type: i0.Component, args: [{
3317
3437
  selector: 'wac-input-with-select',
3318
- template: "<div class=\"wac-input-with-select\" [zIndexToggle]=\"showSelect\">\n <label class=\"wac-input-with-select__label\" [for]=\"id\" [innerHTML]=\"label\"></label>\n <div class=\"wac-input-with-select__wrapper\">\n <div class=\"wac-input-with-select__wrapper__left\" wzAutoHide (clickOutside)=\"onCloseSelect()\">\n <input [id]=\"id\" type=\"text\" [placeholder]=\"placeholder\" (change)=\"onChangeInputValue($event)\" />\n <div class=\"wac-input-with-select__wrapper__left__current\">\n <span (click)=\"onToggleSelect()\">{{ currentLabel }}</span>\n </div>\n <div class=\"wac-input-with-select__wrapper__left__select\" *ngIf=\"showSelect\">\n <div class=\"wac-input-with-select__wrapper__left__select__item\" *ngFor=\"let option of options; let index = index\">\n <div (click)=\"onChangeValue(index)\">{{ option.label }}</div>\n </div>\n </div>\n </div>\n <div class=\"wac-input-with-select__wrapper__right\">\n <p [innerHTML]=\"text\"></p>\n </div>\n </div>\n</div>\n"
3438
+ template: "<div class=\"wac-input-with-select\" [zIndexToggle]=\"showSelect\">\n <label class=\"wac-input-with-select__label\" [for]=\"id\" [innerHTML]=\"label\"></label>\n <div class=\"wac-input-with-select__wrapper\">\n <div class=\"wac-input-with-select__wrapper__left\" wzAutoHide (clickOutside)=\"onCloseSelect()\">\n <input [id]=\"id\" type=\"text\" [placeholder]=\"placeholder\" (change)=\"onChangeInputValue($event)\" />\n <div class=\"wac-input-with-select__wrapper__left__current\">\n <span (click)=\"onToggleSelect()\">{{ currentLabel }}</span>\n </div>\n <div class=\"wac-input-with-select__wrapper__left__select\" *ngIf=\"showSelect\">\n <div class=\"wac-input-with-select__wrapper__left__select__item\" *ngFor=\"let option of options; let index = index\">\n <div (click)=\"onClickItem(index)\">{{ option.label }}</div>\n </div>\n </div>\n </div>\n <div class=\"wac-input-with-select__wrapper__right\">\n <p [innerHTML]=\"text\"></p>\n </div>\n </div>\n</div>\n"
3319
3439
  },] }
3320
3440
  ];
3321
3441
  InputWithSelectComponent.ctorParameters = function () { return []; };
@@ -4228,7 +4348,9 @@
4228
4348
  exports.ɵk = LoaderModule;
4229
4349
  exports.ɵl = CheckboxModule;
4230
4350
  exports.ɵm = inOutY;
4231
- exports.ɵn = inOutX;
4351
+ exports.ɵn = TableCheckboxIdService;
4352
+ exports.ɵo = MultiSelectionService;
4353
+ exports.ɵp = inOutX;
4232
4354
 
4233
4355
  Object.defineProperty(exports, '__esModule', { value: true });
4234
4356