@dev-tcloud/tcloud-ui 0.0.31 → 0.0.33

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.
@@ -1266,6 +1266,7 @@ class TCloudUiDataListComponent {
1266
1266
  }
1267
1267
  }
1268
1268
  if (this.selected_item === undefined || this.selected_item === null || this.selected_item === '') {
1269
+ this.selected_description = '';
1269
1270
  this.toChange();
1270
1271
  }
1271
1272
  }
@@ -2746,6 +2747,149 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
2746
2747
  }]
2747
2748
  }], ctorParameters: function () { return []; } });
2748
2749
 
2750
+ class TCloudUiFiltersComponent {
2751
+ constructor() {
2752
+ this.inputs = [];
2753
+ this.show_filters = false;
2754
+ this.result = new EventEmitter();
2755
+ }
2756
+ set data(data) {
2757
+ //this._data = data;
2758
+ }
2759
+ get data() { return this._data; }
2760
+ set filters(filters) {
2761
+ //this._filters = filters;
2762
+ }
2763
+ get filters() { return this._filters; }
2764
+ ngOnInit() {
2765
+ }
2766
+ ngOnChanges(changes) {
2767
+ const data = changes['data'].currentValue;
2768
+ if (this._data !== data) {
2769
+ this._data = JSON.parse(JSON.stringify(data));
2770
+ this.search_data = JSON.parse(JSON.stringify(data));
2771
+ this.init();
2772
+ }
2773
+ const filters = changes['filters'].currentValue;
2774
+ if (this._filters !== filters) {
2775
+ this._filters = JSON.parse(JSON.stringify(filters));
2776
+ this.init();
2777
+ }
2778
+ }
2779
+ init() {
2780
+ if (this.data && this.filters) {
2781
+ this.show_filters = true;
2782
+ this.toResult();
2783
+ }
2784
+ }
2785
+ normalize(text) {
2786
+ const v = (((`${text}`).normalize('NFD').replace(/[\u0300-\u036f]/g, "")).trim()).toLowerCase();
2787
+ return v;
2788
+ }
2789
+ fetchFromObject(obj, prop) {
2790
+ if (typeof obj === 'undefined') {
2791
+ return false;
2792
+ }
2793
+ var _index = `${prop}`.indexOf('.');
2794
+ if (_index > -1) {
2795
+ return this.fetchFromObject(obj[prop.substring(0, _index)], prop.substr(_index + 1));
2796
+ }
2797
+ return obj[prop];
2798
+ }
2799
+ searchIn(item, event) {
2800
+ if (typeof event === 'boolean') {
2801
+ item.searchText = event;
2802
+ }
2803
+ else {
2804
+ if (event === null) {
2805
+ item.searchText = '';
2806
+ }
2807
+ else {
2808
+ item.searchText = (event.target.value).toUpperCase();
2809
+ }
2810
+ }
2811
+ for (let i = 0; i < (this.data).length; i++) {
2812
+ this.data[i]['tc_filter_accept'] = true;
2813
+ for (let j = 0; j < (this.filters).length; j++) {
2814
+ const filter_item = this.filters[j];
2815
+ if (filter_item.searchText && typeof (filter_item.searchText) === 'string' && filter_item.searchText !== '') {
2816
+ filter_item.searchText = this.normalize(filter_item.searchText);
2817
+ let item_value = this.fetchFromObject(this.data[i], filter_item.searchIn);
2818
+ if (item_value) {
2819
+ item_value = this.normalize(item_value);
2820
+ if (!(item_value.includes(filter_item.searchText) || item_value === filter_item.searchText)) {
2821
+ this.data[i]['tc_filter_accept'] = false;
2822
+ }
2823
+ }
2824
+ }
2825
+ if (typeof (filter_item.searchText) === 'boolean') {
2826
+ let item_value = this.fetchFromObject(this.data[i], filter_item.searchIn);
2827
+ if (filter_item.searchText) {
2828
+ if (!(item_value === filter_item.searchText)) {
2829
+ this.data[i]['tc_filter_accept'] = false;
2830
+ }
2831
+ }
2832
+ }
2833
+ }
2834
+ }
2835
+ this.toResult();
2836
+ }
2837
+ toResult() {
2838
+ const search_data = [];
2839
+ let is_filter = false;
2840
+ for (let i = 0; i < (this.filters).length; i++) {
2841
+ if (this.filters[i].searchText && this.filters[i].searchText !== '') {
2842
+ is_filter = true;
2843
+ }
2844
+ }
2845
+ if (is_filter) {
2846
+ for (let i = 0; i < (this.data).length; i++) {
2847
+ if (this.data[i]?.['tc_filter_accept']) {
2848
+ (search_data).push(this.data[i]);
2849
+ }
2850
+ }
2851
+ this.result.emit(search_data);
2852
+ return;
2853
+ }
2854
+ this.result.emit(this.data);
2855
+ }
2856
+ }
2857
+ TCloudUiFiltersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiFiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2858
+ TCloudUiFiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TCloudUiFiltersComponent, selector: "tcloud-ui-filters", inputs: { data: "data", filters: "filters" }, outputs: { result: "result" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"show_filters\" class=\"area-filter\">\n <ng-container *ngFor=\"let item of filters; let i = index\">\n\n <ng-container *ngIf=\"!item.type || (item.type && item.type !== 'boolean')\">\n \n <div class=\"box-filter-input\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n <div><i [class.to-active]=\"_input.value !== ''\" class=\"fas fa-filter icon-filter\"></i>&nbsp;{{ item.description }}</div>\n <div>\n <input \n #_input\n placeholder=\"{{ (item.placeholder !== '') ? item.placeholder : '' }}\"\n name=\"input_{{i+1}}\" \n type=\"text\" \n class=\"tc-form-control\" \n (keyup)=\"searchIn(item, $event)\">\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"_input.value === ''\" (click)=\"searchIn(item, null); _input.value = ''\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n \n </ng-container>\n\n <ng-container *ngIf=\"item.type && item.type === 'boolean'\">\n \n <div class=\"box-filter-input\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n <div><i [class.to-active]=\"_input.checked === true\" class=\"fas fa-filter icon-filter\"></i>&nbsp;{{ item.description }}</div>\n <div class=\"area-input-checkbox\">\n <div class=\"tc-form-control\">\n <label>\n {{ item.placeholder }}\n <input \n #_input\n placeholder=\"{{ (item.placeholder !== '') ? item.placeholder : '' }}\"\n name=\"input_{{i+1}}\" \n type=\"checkbox\" \n (change)=\"searchIn(item, _input.checked)\"> \n </label>\n </div> \n </div>\n </div>\n\n </ng-container>\n\n\n </ng-container>\n</div>\n\n<!-- <pre>{{ inputs | json }}</pre> -->\n <!-- <pre> {{ data | json }} </pre> -->\n\n<!-- <p>FILTERS</p>\n<pre> {{ filters | json }}</pre> -->", styles: [".box-filter-input{display:inline-block;max-width:400px;padding:10px 5px;position:relative}.area-filter{border:1px solid #eeeeee;border-radius:5px;margin-bottom:5px}.btn-clear-filter-text{position:absolute;right:8px;top:38px;background-color:#fff;border:none;cursor:pointer;color:#aaa}.to-hide{display:none}.icon-filter{color:#ccc}.to-active{color:var(--verde)}.area-input-checkbox label{cursor:pointer;margin-bottom:0;color:#9f9f9f}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2859
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiFiltersComponent, decorators: [{
2860
+ type: Component,
2861
+ args: [{ selector: 'tcloud-ui-filters', template: "<div *ngIf=\"show_filters\" class=\"area-filter\">\n <ng-container *ngFor=\"let item of filters; let i = index\">\n\n <ng-container *ngIf=\"!item.type || (item.type && item.type !== 'boolean')\">\n \n <div class=\"box-filter-input\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n <div><i [class.to-active]=\"_input.value !== ''\" class=\"fas fa-filter icon-filter\"></i>&nbsp;{{ item.description }}</div>\n <div>\n <input \n #_input\n placeholder=\"{{ (item.placeholder !== '') ? item.placeholder : '' }}\"\n name=\"input_{{i+1}}\" \n type=\"text\" \n class=\"tc-form-control\" \n (keyup)=\"searchIn(item, $event)\">\n <button class=\"btn-clear-filter-text\" [class.to-hide]=\"_input.value === ''\" (click)=\"searchIn(item, null); _input.value = ''\">\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n </div>\n \n </ng-container>\n\n <ng-container *ngIf=\"item.type && item.type === 'boolean'\">\n \n <div class=\"box-filter-input\" [style]=\"(item.width !== '') ? 'width:'+item.width : ''\">\n <div><i [class.to-active]=\"_input.checked === true\" class=\"fas fa-filter icon-filter\"></i>&nbsp;{{ item.description }}</div>\n <div class=\"area-input-checkbox\">\n <div class=\"tc-form-control\">\n <label>\n {{ item.placeholder }}\n <input \n #_input\n placeholder=\"{{ (item.placeholder !== '') ? item.placeholder : '' }}\"\n name=\"input_{{i+1}}\" \n type=\"checkbox\" \n (change)=\"searchIn(item, _input.checked)\"> \n </label>\n </div> \n </div>\n </div>\n\n </ng-container>\n\n\n </ng-container>\n</div>\n\n<!-- <pre>{{ inputs | json }}</pre> -->\n <!-- <pre> {{ data | json }} </pre> -->\n\n<!-- <p>FILTERS</p>\n<pre> {{ filters | json }}</pre> -->", styles: [".box-filter-input{display:inline-block;max-width:400px;padding:10px 5px;position:relative}.area-filter{border:1px solid #eeeeee;border-radius:5px;margin-bottom:5px}.btn-clear-filter-text{position:absolute;right:8px;top:38px;background-color:#fff;border:none;cursor:pointer;color:#aaa}.to-hide{display:none}.icon-filter{color:#ccc}.to-active{color:var(--verde)}.area-input-checkbox label{cursor:pointer;margin-bottom:0;color:#9f9f9f}\n"] }]
2862
+ }], ctorParameters: function () { return []; }, propDecorators: { data: [{
2863
+ type: Input
2864
+ }], filters: [{
2865
+ type: Input
2866
+ }], result: [{
2867
+ type: Output
2868
+ }] } });
2869
+
2870
+ class TCloudUiFiltersModule {
2871
+ }
2872
+ TCloudUiFiltersModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiFiltersModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2873
+ TCloudUiFiltersModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiFiltersModule, declarations: [TCloudUiFiltersComponent], imports: [CommonModule,
2874
+ FormsModule], exports: [TCloudUiFiltersComponent] });
2875
+ TCloudUiFiltersModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiFiltersModule, imports: [CommonModule,
2876
+ FormsModule] });
2877
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiFiltersModule, decorators: [{
2878
+ type: NgModule,
2879
+ args: [{
2880
+ declarations: [
2881
+ TCloudUiFiltersComponent
2882
+ ],
2883
+ exports: [
2884
+ TCloudUiFiltersComponent
2885
+ ],
2886
+ imports: [
2887
+ CommonModule,
2888
+ FormsModule
2889
+ ]
2890
+ }]
2891
+ }] });
2892
+
2749
2893
  class TCloudUiModule {
2750
2894
  }
2751
2895
  TCloudUiModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: TCloudUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
@@ -2762,6 +2906,7 @@ TCloudUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
2762
2906
  TCloudUiTableModule,
2763
2907
  TCloudUiNumberStepModule,
2764
2908
  TCloudUiScrollBoxModule,
2909
+ TCloudUiFiltersModule,
2765
2910
  // Directives
2766
2911
  TCloudUiDirectiveModule,
2767
2912
  // Pipes
@@ -2778,6 +2923,7 @@ TCloudUiModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
2778
2923
  TCloudUiTableModule,
2779
2924
  TCloudUiNumberStepModule,
2780
2925
  TCloudUiScrollBoxModule,
2926
+ TCloudUiFiltersModule,
2781
2927
  // Directives
2782
2928
  TCloudUiDirectiveModule,
2783
2929
  // Pipes
@@ -2798,6 +2944,7 @@ TCloudUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
2798
2944
  TCloudUiTableModule,
2799
2945
  TCloudUiNumberStepModule,
2800
2946
  TCloudUiScrollBoxModule,
2947
+ TCloudUiFiltersModule,
2801
2948
  // Directives
2802
2949
  TCloudUiDirectiveModule,
2803
2950
  // Pipes
@@ -2814,6 +2961,7 @@ TCloudUiModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version:
2814
2961
  TCloudUiTableModule,
2815
2962
  TCloudUiNumberStepModule,
2816
2963
  TCloudUiScrollBoxModule,
2964
+ TCloudUiFiltersModule,
2817
2965
  // Directives
2818
2966
  TCloudUiDirectiveModule,
2819
2967
  // Pipes
@@ -2835,6 +2983,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
2835
2983
  TCloudUiTableModule,
2836
2984
  TCloudUiNumberStepModule,
2837
2985
  TCloudUiScrollBoxModule,
2986
+ TCloudUiFiltersModule,
2838
2987
  // Directives
2839
2988
  TCloudUiDirectiveModule,
2840
2989
  // Pipes
@@ -2854,6 +3003,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
2854
3003
  TCloudUiTableModule,
2855
3004
  TCloudUiNumberStepModule,
2856
3005
  TCloudUiScrollBoxModule,
3006
+ TCloudUiFiltersModule,
2857
3007
  // Directives
2858
3008
  TCloudUiDirectiveModule,
2859
3009
  // Pipes
@@ -2874,5 +3024,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
2874
3024
  * Generated bundle index. Do not edit.
2875
3025
  */
2876
3026
 
2877
- export { BytesPipe, CNPJPipe, CPFPipe, CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR$2 as CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, MonthNamePipe, RespectivePipe, StatusInfoPipe, TCloudUiAlignDirective, TCloudUiChoiceIssuesComponent, TCloudUiChoiceIssuesModule, TCloudUiDataListComponent, TCloudUiDataListModule, TCloudUiDataListOptionComponent, TCloudUiDirectiveModule, TCloudUiInputSearchComponent, TCloudUiInputSearchModule, TCloudUiLineStepCircleComponent, TCloudUiLineStepCircleModule, TCloudUiLinhaLogoComponent, TCloudUiLinhaLogoModule, TCloudUiLoadingTransitionsService, TCloudUiModalBodyComponent, TCloudUiModalComponent, TCloudUiModalFooterComponent, TCloudUiModalHeaderComponent, TCloudUiModalModule, TCloudUiModule, TCloudUiMultiInputComponent, TCloudUiMultiInputModule, TCloudUiMultiSelectComponent, TCloudUiMultiSelectModule, TCloudUiNotFoundComponent, TCloudUiNotFoundModule, TCloudUiNumberStepComponent, TCloudUiNumberStepModule, TCloudUiPipesModule, TCloudUiScrollBoxComponent, TCloudUiScrollBoxModule, TCloudUiSearchInObjectService, TCloudUiTabContentComponent, TCloudUiTabHeadComponent, TCloudUiTabMenuComponent, TCloudUiTabMenuModule, TCloudUiTabSubtitleComponent, TCloudUiTabTitleComponent, TCloudUiTableComponent, TCloudUiTableModule, TCloudUiTooltipDirective };
3027
+ export { BytesPipe, CNPJPipe, CPFPipe, CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR$2 as CUSTOM_INPUT_CONTROL_VALUE_ACCESSOR, MonthNamePipe, RespectivePipe, StatusInfoPipe, TCloudUiAlignDirective, TCloudUiChoiceIssuesComponent, TCloudUiChoiceIssuesModule, TCloudUiDataListComponent, TCloudUiDataListModule, TCloudUiDataListOptionComponent, TCloudUiDirectiveModule, TCloudUiFiltersComponent, TCloudUiFiltersModule, TCloudUiInputSearchComponent, TCloudUiInputSearchModule, TCloudUiLineStepCircleComponent, TCloudUiLineStepCircleModule, TCloudUiLinhaLogoComponent, TCloudUiLinhaLogoModule, TCloudUiLoadingTransitionsService, TCloudUiModalBodyComponent, TCloudUiModalComponent, TCloudUiModalFooterComponent, TCloudUiModalHeaderComponent, TCloudUiModalModule, TCloudUiModule, TCloudUiMultiInputComponent, TCloudUiMultiInputModule, TCloudUiMultiSelectComponent, TCloudUiMultiSelectModule, TCloudUiNotFoundComponent, TCloudUiNotFoundModule, TCloudUiNumberStepComponent, TCloudUiNumberStepModule, TCloudUiPipesModule, TCloudUiScrollBoxComponent, TCloudUiScrollBoxModule, TCloudUiSearchInObjectService, TCloudUiTabContentComponent, TCloudUiTabHeadComponent, TCloudUiTabMenuComponent, TCloudUiTabMenuModule, TCloudUiTabSubtitleComponent, TCloudUiTabTitleComponent, TCloudUiTableComponent, TCloudUiTableModule, TCloudUiTooltipDirective };
2878
3028
  //# sourceMappingURL=dev-tcloud-tcloud-ui.mjs.map