@bnsights/bbsf-controls 1.0.67 → 1.0.69

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 (33) hide show
  1. package/README.md +13 -0
  2. package/bnsights-bbsf-controls-1.0.69.tgz +0 -0
  3. package/bnsights-bbsf-controls.metadata.json +1 -1
  4. package/bundles/bnsights-bbsf-controls.umd.js +359 -33
  5. package/bundles/bnsights-bbsf-controls.umd.js.map +1 -1
  6. package/esm2015/lib/Shared/Models/bread-crumb.js +8 -0
  7. package/esm2015/lib/Shared/Models/control-filter-Item.js +6 -0
  8. package/esm2015/lib/Shared/Models/filter-options.js +9 -0
  9. package/esm2015/lib/Shared/Models/page-header-options.js +78 -0
  10. package/esm2015/lib/Shared/components/app-base-component.js +168 -0
  11. package/esm2015/lib/controls/DateTimePicker/DateTimePicker.component.js +3 -4
  12. package/esm2015/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.js +2 -2
  13. package/esm2015/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.js +2 -2
  14. package/esm2015/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.js +5 -3
  15. package/esm2015/lib/controls/bbsf-controls.module.js +6 -3
  16. package/esm2015/lib/controls/page-header-component/page-header-component.component.js +32 -0
  17. package/esm2015/public-api.js +7 -1
  18. package/fesm2015/bnsights-bbsf-controls.js +317 -25
  19. package/fesm2015/bnsights-bbsf-controls.js.map +1 -1
  20. package/lib/Shared/Models/bread-crumb.d.ts +6 -0
  21. package/lib/Shared/Models/control-filter-Item.d.ts +6 -0
  22. package/lib/Shared/Models/filter-options.d.ts +7 -0
  23. package/lib/Shared/Models/page-header-options.d.ts +71 -0
  24. package/lib/Shared/components/app-base-component.d.ts +47 -0
  25. package/lib/controls/page-header-component/page-header-component.component.d.ts +17 -0
  26. package/package.json +4 -3
  27. package/public-api.d.ts +6 -0
  28. package/src/lib/assets/Style-rtl.scss +51 -54
  29. package/src/lib/assets/Style.scss +4 -0
  30. package/src/lib/assets/images/Bg-pattern.png +0 -0
  31. package/src/lib/assets/sass/base.scss +5 -1
  32. package/src/lib/assets/sass/datetime-picker.scss +123 -0
  33. package/bnsights-bbsf-controls-1.0.67.tgz +0 -0
@@ -0,0 +1,6 @@
1
+ export declare class BreadCrumb {
2
+ constructor(label: string, active: boolean, route?: string);
3
+ label: string;
4
+ active: boolean;
5
+ route: string;
6
+ }
@@ -0,0 +1,6 @@
1
+ import { DataType } from "../Enums/Enums";
2
+ export declare class ControlFilterItem {
3
+ key: DataType;
4
+ value: any;
5
+ onChange?: Function;
6
+ }
@@ -0,0 +1,7 @@
1
+ import { ControlFilterItem } from "./control-filter-Item";
2
+ export declare class FilterOptions {
3
+ ControlsOptions: ControlFilterItem[];
4
+ ApplyFunction: Function;
5
+ RestFunction: Function;
6
+ ShowLoadingInFiltersBox: boolean;
7
+ }
@@ -0,0 +1,71 @@
1
+ import { BreadCrumb } from "./bread-crumb";
2
+ import { FilterOptions } from "./filter-options";
3
+ import { TextBoxOptions } from "./TextBoxOptions";
4
+ export declare class PageHeaderOptions {
5
+ constructor();
6
+ TitleKey: string;
7
+ TitleValue: string;
8
+ SubTitleKey: string;
9
+ BreadCrumb: BreadCrumbModel;
10
+ AddButton: AddButton;
11
+ EditButton: EditButton;
12
+ DeleteButton: DeleteButton;
13
+ ExportButton: ExportButton;
14
+ GridView: GridViewModel;
15
+ SearchTextBox: TextBoxModel;
16
+ FiltersButton: FiltersButton;
17
+ Filters: FilterOptions;
18
+ DropDownActions: DropdownActions;
19
+ Listing: boolean;
20
+ }
21
+ export declare class BreadCrumbModel {
22
+ Active: boolean;
23
+ BreadCrumbItems: BreadCrumb[];
24
+ }
25
+ export declare class AddButton {
26
+ Active: boolean;
27
+ ButtonTextKey: string;
28
+ Function: Function;
29
+ }
30
+ export declare class EditButton {
31
+ Active: boolean;
32
+ ButtonTextKey: string;
33
+ Function: Function;
34
+ }
35
+ export declare class DeleteButton {
36
+ Active: boolean;
37
+ ButtonTextKey: string;
38
+ Function: Function;
39
+ }
40
+ export declare class FiltersButton {
41
+ Active: boolean;
42
+ ButtonTextKey: string;
43
+ Function: Function;
44
+ ShowLoadingInFiltersBox: boolean;
45
+ constructor();
46
+ }
47
+ export declare class ExportButton {
48
+ Active: boolean;
49
+ ButtonTextKey: string;
50
+ Function: Function;
51
+ }
52
+ export declare class GridViewModel {
53
+ Active: boolean;
54
+ ToggleFunction: Function;
55
+ ShowGridViewByDefault: boolean;
56
+ }
57
+ export declare class TextBoxModel {
58
+ Active: boolean;
59
+ TextSearchBoxOptions: TextBoxOptions;
60
+ }
61
+ export declare class DropdownActions {
62
+ Active: boolean;
63
+ DropdownActionItems: DropdownActionItem[];
64
+ }
65
+ export declare class DropdownActionItem {
66
+ constructor(text: string, svg: string, functionName: Function, routerLink?: string);
67
+ Text: string;
68
+ SVG: string;
69
+ Function: Function;
70
+ RouterLink: string;
71
+ }
@@ -0,0 +1,47 @@
1
+ import { Injector } from '@angular/core';
2
+ import { UtilityService } from '@bnsights/bbsf-utilities';
3
+ import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
4
+ import { AbstractControl, FormGroup } from '@angular/forms';
5
+ import { FilterItem } from '../Models/FilterItem';
6
+ import { CustomValidation } from '../Models/CustomValidation';
7
+ import { EnglishArabicDTO } from '../Models/EnglishArabicDTO';
8
+ export declare abstract class AppBaseComponent {
9
+ utilityService: UtilityService;
10
+ modalService: NgbModal;
11
+ private controlUtility;
12
+ private titleService;
13
+ private auhService;
14
+ private configurationService;
15
+ private environmentService;
16
+ exportLabel: string;
17
+ filtersLabel: string;
18
+ addLabel: string;
19
+ userName: string;
20
+ pageTitle: string;
21
+ PageCount: number;
22
+ constructor(injector: Injector);
23
+ updatePageTitle(title: string | undefined): void;
24
+ l(key: string): string;
25
+ getConfigurationValue(key: string): any;
26
+ getLanguageModeValue(): any;
27
+ stopBlockUI(): void;
28
+ startBlockUI(): void;
29
+ openModal(modal: any, size?: string): void;
30
+ download(fileDTO: any, fileName: string): void;
31
+ private base64toBlob;
32
+ private calculatePageTitle;
33
+ getPagingFiltersValues(form: FormGroup, filters: FilterItem[]): any;
34
+ removeControl(controlName: string, form: FormGroup): void;
35
+ copyToClipboard(val: string): void;
36
+ addRequiredRule(control: AbstractControl, controlOptions: any): void;
37
+ removeRequiredRule(control: AbstractControl, controlOptions: any): void;
38
+ validateDates(form: FormGroup, fromDateControl: string, toDateControl: string, validationMessageKey: string): CustomValidation;
39
+ onSuccessAddHandler: (success: any) => void;
40
+ onSuccessEditHandler: (success: any) => void;
41
+ onSuccessDeleteHandler: (success: any) => void;
42
+ recalculatePageTitle(): void;
43
+ isEnglish(): boolean;
44
+ calculateInitials(name: string): string;
45
+ getCurrentUserInitials(): string;
46
+ getCurrentFailOver(val: EnglishArabicDTO): string;
47
+ }
@@ -0,0 +1,17 @@
1
+ import { OnInit } from '@angular/core';
2
+ import { FormGroup } from '@angular/forms';
3
+ import { Router } from '@angular/router';
4
+ import { UtilityService } from '@bnsights/bbsf-utilities';
5
+ import { DataType } from '../../Shared/Enums/Enums';
6
+ import { PageHeaderOptions } from '../../Shared/Models/page-header-options';
7
+ export declare class PageHeaderComponentComponent implements OnInit {
8
+ private router;
9
+ utilityService: UtilityService;
10
+ EN: boolean;
11
+ group: FormGroup;
12
+ options: PageHeaderOptions;
13
+ DataTypeEnum: typeof DataType;
14
+ constructor(router: Router, utilityService: UtilityService);
15
+ translate(key: string): string;
16
+ ngOnInit(): void;
17
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bnsights/bbsf-controls",
3
- "version": "1.0.67",
3
+ "version": "1.0.69",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "~12.2.12",
6
6
  "@angular/core": "~12.2.12"
@@ -21,9 +21,8 @@
21
21
  "@angular/platform-browser": "~12.2.12",
22
22
  "@angular/platform-browser-dynamic": "~12.2.12",
23
23
  "@angular/router": "~12.2.12",
24
- "@bnsights/bbsf-utilities": "1.0.26",
24
+ "@bnsights/bbsf-utilities": "1.0.27",
25
25
  "@fortawesome/fontawesome-free": "^5.15.2",
26
- "google-libphonenumber": "^3.2.17",
27
26
  "@fullcalendar/angular": "^5.5.0",
28
27
  "@fullcalendar/core": "^5.5.0",
29
28
  "@fullcalendar/daygrid": "^5.5.0",
@@ -39,6 +38,7 @@
39
38
  "@ngx-translate/http-loader": "^6.0.0",
40
39
  "@sweetalert2/ngx-sweetalert2": "10.0.0",
41
40
  "@syncfusion/ej2-angular-popups": "^18.4.44",
41
+ "@types/file-saver": "^2.0.5",
42
42
  "angular-cropperjs": "^1.0.2",
43
43
  "angular-froala-wysiwyg": "^3.2.6-1",
44
44
  "angular-ng-autocomplete": "2.0.5",
@@ -50,6 +50,7 @@
50
50
  "font-awesome": "^4.7.0",
51
51
  "froala-editor": "^3.2.6-1",
52
52
  "fullcalendar": "^5.5.1",
53
+ "google-libphonenumber": "^3.2.17",
53
54
  "intl-tel-input": "^17.0.12",
54
55
  "jquery": "^3.5.1",
55
56
  "ng-block-ui": "^3.0.2",
package/public-api.d.ts CHANGED
@@ -27,6 +27,8 @@ export * from './lib/controls/Repeater/repeater-table/repeater-table.component';
27
27
  export * from './lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component';
28
28
  export * from './lib/controls/Repeater/repeater-item-field/repeater-item-field.component';
29
29
  export * from './lib/controls/Recaptcha/Recaptcha.component';
30
+ export * from './lib/controls/page-header-component/page-header-component.component';
31
+ export * from './lib/Shared/Components/app-base-component';
30
32
  export * from './lib/Shared/services/validationErrorMassage.service';
31
33
  export * from './lib/Shared/services/ControlUtility';
32
34
  export * from './lib/Shared/services/OnPagingFiltersChange.service';
@@ -82,6 +84,10 @@ export * from './lib/Shared/Models/FormOptions';
82
84
  export * from './lib/Shared/Models/ConfirmationModalOptions';
83
85
  export * from './lib/Shared/Models/RepeaterField';
84
86
  export * from './lib/Shared/Models/RepeaterOptions';
87
+ export * from './lib/Shared/Models/page-header-options';
88
+ export * from './lib/Shared/Models/filter-options';
89
+ export * from './lib/Shared/Models/control-filter-Item';
90
+ export * from './lib/Shared/Models/bread-crumb';
85
91
  export * from './lib/Shared/Directives/template-name.directive';
86
92
  export * from './lib/shared/Pipes/bbsf-date-time.pipe';
87
93
  export * from './lib/shared/Pipes/bbsf-date.pipe';
@@ -60,12 +60,7 @@
60
60
 
61
61
  .form-control {
62
62
 
63
- &.is-invalid {
64
- background-position: left calc(0.375em + 2rem) center;
65
- }
66
-
67
63
  &[dir = "ltr"] {
68
-
69
64
  + .copy-clipboard {
70
65
  right: 0px !important;
71
66
  left: auto !important;
@@ -78,75 +73,77 @@
78
73
 
79
74
  &.is-invalid {
80
75
  background-position: left calc(0.375em + 0.1875rem) center;
76
+
77
+ &[dir = "ltr"] {
78
+ background-position: right calc(0.375em + 0.3875rem) center;
79
+ }
80
+ }
81
81
  }
82
82
  }
83
83
  }
84
- }
85
-
86
- //checkbox
87
- .bbsf-checkbox {
88
- .bbsf-input-container {
89
- .label-subtext-container {
90
- margin-top: -4px;
91
- margin-right: 0.55rem;
92
- margin-left: 0;
84
+ //checkbox
85
+ .bbsf-checkbox {
86
+ .bbsf-input-container {
87
+ .label-subtext-container {
88
+ margin-top: -4px;
89
+ margin-right: 0.55rem;
90
+ margin-left: 0;
91
+ }
93
92
  }
94
93
  }
95
- }
94
+ //dropdown
95
+ .bbsf-dropdown.form-group {
96
96
 
97
- //dropdown
98
- .bbsf-dropdown.form-group {
97
+ .bbsf-input-container {
99
98
 
100
- .bbsf-input-container {
101
-
102
- .form-control {
103
- &.is-invalid {
104
- background-position: left calc(0.375em + 2rem) center;
105
- }
99
+ .form-control {
100
+ &.is-invalid {
101
+ background-position: left calc(0.375em + 2rem) center;
102
+ }
106
103
 
107
- .ng-select-container {
104
+ .ng-select-container {
108
105
 
109
- .ng-arrow-wrapper {
110
- margin-right: 10px;
111
- margin-left: 0px;
106
+ .ng-arrow-wrapper {
107
+ margin-right: 10px;
108
+ margin-left: 0px;
109
+ }
112
110
  }
113
- }
114
111
 
115
- .ng-dropdown-panel {
112
+ .ng-dropdown-panel {
116
113
 
117
- .ng-dropdown-panel-items {
118
- .ng-option {
119
- &.ng-option-selected:after {
120
- left: 30px;
121
- right: initial;
114
+ .ng-dropdown-panel-items {
115
+ .ng-option {
116
+ &.ng-option-selected:after {
117
+ left: 30px;
118
+ right: initial;
119
+ }
122
120
  }
123
121
  }
124
122
  }
125
123
  }
126
124
  }
127
- }
128
125
 
129
- .ng-select-multiple {
130
- .ng-value {
131
- margin-left: .4rem;
132
- margin-right: 0;
133
- }
126
+ .ng-select-multiple {
127
+ .ng-value {
128
+ margin-left: .4rem;
129
+ margin-right: 0;
130
+ }
134
131
 
135
- .ng-value-icon {
136
- margin-left: .2rem;
137
- margin-right: 0;
132
+ .ng-value-icon {
133
+ margin-left: .2rem;
134
+ margin-right: 0;
135
+ }
138
136
  }
139
137
  }
140
- }
141
- //tags input
142
- .bbsf-control.form-group.bbsf-tags-input {
143
- .user-initials {
144
- margin-left: 10px;
145
- margin-right: 0px;
146
- }
138
+ //tags input
139
+ .bbsf-control.form-group.bbsf-tags-input {
140
+ .user-initials {
141
+ margin-left: 10px;
142
+ margin-right: 0px;
143
+ }
147
144
 
148
- .tags-input__tag-remove-btn {
149
- margin-right: 3px;
150
- margin-left: 0px;
145
+ .tags-input__tag-remove-btn {
146
+ margin-right: 3px;
147
+ margin-left: 0px;
148
+ }
151
149
  }
152
- }
@@ -8,7 +8,11 @@
8
8
  @import"sass/paging.scss";
9
9
  @import"sass/repeater.scss";
10
10
  @import"sass/confirmation-modal.scss";
11
+ @import "sass/datetime-picker.scss";
12
+
11
13
  //fontawesome
12
14
  @import "fontawesome/fontawesome.scss";
13
15
  //toaster
14
16
  @import'~ngx-toastr/toastr.css';
17
+ //date picker
18
+ @import'~ng-pick-datetime/assets/style/picker.min.css';
@@ -1,4 +1,7 @@
1
1
  /*form control*/
2
+ .bbsf-multilang-form-group {
3
+ margin-bottom: 1.75rem;
4
+ }
2
5
  .bbsf-control.form-group {
3
6
  margin-bottom: 1.75rem;
4
7
 
@@ -28,6 +31,7 @@
28
31
  border-color: $light-gray;
29
32
  padding: 0.75rem 1rem;
30
33
  font-size: 13px;
34
+ font-size: 13px;
31
35
  border-radius: $bbsf-rounded;
32
36
  height: 45px;
33
37
 
@@ -36,7 +40,7 @@
36
40
  }
37
41
 
38
42
  &.is-invalid {
39
- background-position:right calc(0.375em + 0.3875rem) center;
43
+ background-position: right calc(0.375em + 0.3875rem) center;
40
44
 
41
45
  &[dir = "rtl"] {
42
46
  background-position: left calc(0.375em + 0.3875rem) center;
@@ -0,0 +1,123 @@
1
+
2
+ /* datetime picker*/
3
+ .owl-dt-inline-container, .owl-dt-popup-container {
4
+ box-shadow: 0 0 9px 6px #efefef;
5
+ border-radius: $bbsf-rounded;
6
+ }
7
+
8
+ .owl-dt-container, .owl-dt-container * {
9
+ box-sizing: border-box;
10
+ color: $label-color;
11
+ font-weight: 600;
12
+ font-size: 14px;
13
+ }
14
+
15
+ .owl-dt-inline-container, .owl-dt-popup-container {
16
+ width: 25.5em;
17
+ box-shadow: 0 0 50px 0 rgb(82 63 105 / 10%);
18
+ }
19
+
20
+ .owl-dt-inline-container .owl-dt-calendar, .owl-dt-popup-container .owl-dt-calendar {
21
+ height: auto;
22
+ padding: 15px 10px;
23
+ }
24
+
25
+ .owl-dt-calendar-table .owl-dt-calendar-header .owl-dt-weekdays th {
26
+ padding-top: 1.2em;
27
+ font-size: .9em;
28
+ }
29
+
30
+ .owl-dt-control-period-button .owl-dt-control-button-arrow {
31
+ margin: 0px 6px;
32
+ }
33
+
34
+ .owl-dt-container, .owl-dt-container {
35
+ fill: #d7d5d5;
36
+ }
37
+
38
+ .owl-dt-calendar-table .owl-dt-calendar-cell-today:not(.owl-dt-calendar-cell-selected) {
39
+ border-color: rgba(0,0,0,.4);
40
+ background: #f5f8fa;
41
+ color: #7e8299;
42
+ border-color: transparent;
43
+ }
44
+
45
+ button.owl-dt-control.owl-dt-control-button.owl-dt-control-period-button:hover {
46
+ background-color: #f5f8fa;
47
+ }
48
+
49
+ button.owl-dt-control.owl-dt-control-button.owl-dt-control-period-button {
50
+ padding: 5px;
51
+ border-radius: 6px;
52
+ }
53
+
54
+ .owl-dt-control-period-button:hover > .owl-dt-control-button-content {
55
+ background-color: transparent !important;
56
+ }
57
+
58
+ .owl-dt-calendar-table .owl-dt-calendar-cell-selected {
59
+ background: $primary;
60
+ color: #fff;
61
+ border-color: transparent;
62
+ }
63
+
64
+ .owl-dt-calendar-table .owl-dt-calendar-cell {
65
+ color: rgba(62, 61, 61, 0.85);
66
+ }
67
+
68
+ .owl-dt-calendar-table .owl-dt-calendar-cell-active:focus > .owl-dt-calendar-cell-content:not(.owl-dt-calendar-cell-selected), .owl-dt-calendar-table :not(.owl-dt-calendar-cell-disabled):hover > .owl-dt-calendar-cell-content:not(.owl-dt-calendar-cell-selected) {
69
+ background-color: rgb(245, 248, 250);
70
+ color: #7e8299;
71
+ }
72
+
73
+ .owl-dt-container-buttons {
74
+ height: auto;
75
+ }
76
+
77
+ .owl-dt-container-control-button .owl-dt-control-button-content {
78
+ padding: 15px 10px;
79
+ }
80
+
81
+ .owl-dt-container-control-button:hover .owl-dt-control-button-content {
82
+ background-color: #f5f8fa;
83
+ }
84
+
85
+ .owl-dt-container-control-button:last-child:hover .owl-dt-control-button-content {
86
+ background-color: rgba(0, 158, 247, 0.11);
87
+ }
88
+
89
+ .owl-dt-container-info {
90
+ padding: 0px;
91
+ }
92
+
93
+ .owl-dt-container-info .owl-dt-container-range .owl-dt-container-range-content {
94
+ padding: 15px 5px;
95
+ }
96
+
97
+ .owl-dt-timer-content .owl-dt-timer-input {
98
+ font-size: 12px;
99
+ }
100
+
101
+ .owl-dt-calendar-table .owl-dt-calendar-cell-in-range {
102
+ background: #f1faff;
103
+ }
104
+
105
+ .owl-dt-container-info-label {
106
+ color: #bbb9b9;
107
+ }
108
+
109
+ .owl-dt-timer-hour12 {
110
+ color: $primary;
111
+ }
112
+
113
+ .owl-dt-timer-hour12 .owl-dt-timer-hour12-box {
114
+ border-color: $primary;
115
+ }
116
+
117
+ .owl-dt-control-button:first-child {
118
+ color: $primary;
119
+ }
120
+
121
+ .owl-dt-control-button {
122
+ color: $subtext-color;
123
+ }
Binary file