@bnsights/bbsf-controls 1.0.194-beta.9 → 1.2.1
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/README.md +1315 -1245
- package/fesm2022/bnsights-bbsf-controls.mjs +375 -345
- package/fesm2022/bnsights-bbsf-controls.mjs.map +1 -1
- package/lib/Shared/Models/DropdownOptions.d.ts +3 -0
- package/lib/Shared/Models/RepeaterOptions.d.ts +2 -0
- package/lib/controls/ConfirmationModal/ConfirmationModal.component.d.ts +0 -1
- package/lib/controls/MapAutoComplete/MapAutoComplete.component.d.ts +0 -1
- package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +1 -1
- package/lib/controls/Repeater/repeater/repeater.component.d.ts +7 -0
- package/lib/controls/Repeater/repeater-table/repeater-table.component.d.ts +7 -0
- package/lib/modules/bbsf-editors.module.d.ts +6 -7
- package/package.json +34 -37
- package/src/lib/assets/Style.scss +2 -0
- package/src/lib/assets/ace-builds/ace.js +1 -1
- package/src/lib/assets/ace-builds/mode-markdown.js +1 -1
- package/esm2022/bnsights-bbsf-controls.mjs +0 -5
- package/esm2022/lib/Shared/Components/app-base-component.mjs +0 -226
- package/esm2022/lib/Shared/Components/ng-tag-input.mjs +0 -336
- package/esm2022/lib/Shared/Directives/appPreventDoubleClick.directive.mjs +0 -39
- package/esm2022/lib/Shared/Directives/template-name.directive.mjs +0 -19
- package/esm2022/lib/Shared/Enums/CalendarView.mjs +0 -8
- package/esm2022/lib/Shared/Enums/ControlLayout.mjs +0 -6
- package/esm2022/lib/Shared/Enums/Countries.mjs +0 -247
- package/esm2022/lib/Shared/Enums/Enums.mjs +0 -36
- package/esm2022/lib/Shared/Enums/FileType.mjs +0 -29
- package/esm2022/lib/Shared/Enums/FilterType.mjs +0 -11
- package/esm2022/lib/Shared/Enums/FontSize.mjs +0 -7
- package/esm2022/lib/Shared/Enums/ForceDirection.mjs +0 -6
- package/esm2022/lib/Shared/Enums/IconPosition.mjs +0 -6
- package/esm2022/lib/Shared/Enums/ImageType.mjs +0 -10
- package/esm2022/lib/Shared/Enums/InputType.mjs +0 -10
- package/esm2022/lib/Shared/Enums/Insert.mjs +0 -9
- package/esm2022/lib/Shared/Enums/LanguageMode.mjs +0 -11
- package/esm2022/lib/Shared/Enums/LanguageValidation.mjs +0 -6
- package/esm2022/lib/Shared/Enums/Markdown.mjs +0 -20
- package/esm2022/lib/Shared/Enums/Misc.mjs +0 -7
- package/esm2022/lib/Shared/Enums/PagingActionMode.mjs +0 -6
- package/esm2022/lib/Shared/Enums/Para.mjs +0 -9
- package/esm2022/lib/Shared/Enums/PickerType.mjs +0 -7
- package/esm2022/lib/Shared/Enums/SelectMode.mjs +0 -6
- package/esm2022/lib/Shared/Enums/StartView.mjs +0 -7
- package/esm2022/lib/Shared/Enums/Style.mjs +0 -8
- package/esm2022/lib/Shared/Enums/StyleConfirmationMode.mjs +0 -7
- package/esm2022/lib/Shared/Enums/TagInputView.mjs +0 -7
- package/esm2022/lib/Shared/Enums/ToolbarButtons.mjs +0 -33
- package/esm2022/lib/Shared/Enums/map-enums.mjs +0 -15
- package/esm2022/lib/Shared/Enums/menu-list-enum.mjs +0 -6
- package/esm2022/lib/Shared/Models/Attribute.mjs +0 -3
- package/esm2022/lib/Shared/Models/AutocompleteDTO.mjs +0 -8
- package/esm2022/lib/Shared/Models/AutocompleteOptions.mjs +0 -39
- package/esm2022/lib/Shared/Models/CalendarDTO.mjs +0 -3
- package/esm2022/lib/Shared/Models/CalendarEventDTO.mjs +0 -3
- package/esm2022/lib/Shared/Models/CalendarOptions.mjs +0 -19
- package/esm2022/lib/Shared/Models/CancelDTO.mjs +0 -7
- package/esm2022/lib/Shared/Models/CaptchaStyle.mjs +0 -3
- package/esm2022/lib/Shared/Models/CheckBoxOptions.mjs +0 -11
- package/esm2022/lib/Shared/Models/ConfirmationModalOptions.mjs +0 -39
- package/esm2022/lib/Shared/Models/ControlOptionsBase.mjs +0 -17
- package/esm2022/lib/Shared/Models/CustomValidation.mjs +0 -14
- package/esm2022/lib/Shared/Models/DatePickerOptions.mjs +0 -40
- package/esm2022/lib/Shared/Models/DropdownListItem.mjs +0 -3
- package/esm2022/lib/Shared/Models/DropdownOptions.mjs +0 -38
- package/esm2022/lib/Shared/Models/EditPersonalImage.mjs +0 -7
- package/esm2022/lib/Shared/Models/EnglishArabicDTO.mjs +0 -10
- package/esm2022/lib/Shared/Models/FileDTO.mjs +0 -24
- package/esm2022/lib/Shared/Models/FileOptions.mjs +0 -15
- package/esm2022/lib/Shared/Models/FileUploadModel.mjs +0 -3
- package/esm2022/lib/Shared/Models/FileUploadOptions.mjs +0 -13
- package/esm2022/lib/Shared/Models/FilterItem.mjs +0 -8
- package/esm2022/lib/Shared/Models/FormOptions.mjs +0 -32
- package/esm2022/lib/Shared/Models/HtmlEditorOptions.mjs +0 -12
- package/esm2022/lib/Shared/Models/ImageUploadOptions.mjs +0 -14
- package/esm2022/lib/Shared/Models/MapAutoCompleteOptions.mjs +0 -12
- package/esm2022/lib/Shared/Models/MapAutocompleteDTO.mjs +0 -6
- package/esm2022/lib/Shared/Models/MarkdownEditorOptions.mjs +0 -24
- package/esm2022/lib/Shared/Models/MultiLingualHtmlEditorOptions.mjs +0 -9
- package/esm2022/lib/Shared/Models/MultiLingualTextAreaOptions.mjs +0 -9
- package/esm2022/lib/Shared/Models/MultiLingualTextBoxOptions.mjs +0 -17
- package/esm2022/lib/Shared/Models/MultilingualControlOptionsBase.mjs +0 -21
- package/esm2022/lib/Shared/Models/MultipleFileUploadModel.mjs +0 -9
- package/esm2022/lib/Shared/Models/PagingDTO.mjs +0 -13
- package/esm2022/lib/Shared/Models/PagingOptions.mjs +0 -49
- package/esm2022/lib/Shared/Models/PagingPayload.mjs +0 -3
- package/esm2022/lib/Shared/Models/PhoneOptions.mjs +0 -16
- package/esm2022/lib/Shared/Models/ProfileImageUploadOptions.mjs +0 -11
- package/esm2022/lib/Shared/Models/ProfilePictureDTO.mjs +0 -3
- package/esm2022/lib/Shared/Models/RadioButtonItem.mjs +0 -3
- package/esm2022/lib/Shared/Models/RadioButtonOptions.mjs +0 -7
- package/esm2022/lib/Shared/Models/RangeNumber.mjs +0 -3
- package/esm2022/lib/Shared/Models/Recaptcha.mjs +0 -6
- package/esm2022/lib/Shared/Models/RecaptchaOptions.mjs +0 -22
- package/esm2022/lib/Shared/Models/RepeaterField.mjs +0 -3
- package/esm2022/lib/Shared/Models/RepeaterOptions.mjs +0 -14
- package/esm2022/lib/Shared/Models/SaveDTO.mjs +0 -7
- package/esm2022/lib/Shared/Models/TagsInputDTO.mjs +0 -3
- package/esm2022/lib/Shared/Models/TagsInputOptions.mjs +0 -56
- package/esm2022/lib/Shared/Models/TextAreaOptions.mjs +0 -19
- package/esm2022/lib/Shared/Models/TextBoxOptions.mjs +0 -27
- package/esm2022/lib/Shared/Models/ToggleSlideOptions.mjs +0 -9
- package/esm2022/lib/Shared/Models/UploadPersonalImage.mjs +0 -7
- package/esm2022/lib/Shared/Models/bread-crumb.mjs +0 -8
- package/esm2022/lib/Shared/Models/control-filter-Item.mjs +0 -6
- package/esm2022/lib/Shared/Models/filter-options.mjs +0 -9
- package/esm2022/lib/Shared/Models/index.mjs +0 -58
- package/esm2022/lib/Shared/Models/page-header-options.mjs +0 -78
- package/esm2022/lib/Shared/Pipes/bbsf-date-time.pipe.mjs +0 -22
- package/esm2022/lib/Shared/Pipes/bbsf-date.pipe.mjs +0 -22
- package/esm2022/lib/Shared/config/environment.mjs +0 -12
- package/esm2022/lib/Shared/default_intl.mjs +0 -29
- package/esm2022/lib/Shared/services/ControlUtility.mjs +0 -162
- package/esm2022/lib/Shared/services/GlobalSettings.service.mjs +0 -30
- package/esm2022/lib/Shared/services/OnPagingFiltersChange.service.mjs +0 -24
- package/esm2022/lib/Shared/services/file-upload.service.mjs +0 -29
- package/esm2022/lib/Shared/services/index.mjs +0 -7
- package/esm2022/lib/Shared/services/render-component-service.service.mjs +0 -32
- package/esm2022/lib/Shared/services/validationErrorMassage.service.mjs +0 -125
- package/esm2022/lib/Shared/utils/date-formatter.mjs +0 -48
- package/esm2022/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.mjs +0 -299
- package/esm2022/lib/controls/Calendar/Calendar.component.mjs +0 -179
- package/esm2022/lib/controls/CheckBox/CheckBox.component.mjs +0 -121
- package/esm2022/lib/controls/ConfirmationModal/ConfirmationModal.component.mjs +0 -143
- package/esm2022/lib/controls/DateTimePicker/DateTimePicker.component.mjs +0 -240
- package/esm2022/lib/controls/DropdownList/DropdownList.component.mjs +0 -296
- package/esm2022/lib/controls/FileUpload/FileUpload.component.mjs +0 -741
- package/esm2022/lib/controls/Form/Form.component.mjs +0 -117
- package/esm2022/lib/controls/HtmlEditor/HtmlEditor.component.mjs +0 -185
- package/esm2022/lib/controls/ImageUpload/ImageUpload.component.mjs +0 -360
- package/esm2022/lib/controls/MapAutoComplete/MapAutoComplete.component.mjs +0 -502
- package/esm2022/lib/controls/MarkdownEditor/markdown-editor.component.mjs +0 -243
- package/esm2022/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.mjs +0 -456
- package/esm2022/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.mjs +0 -441
- package/esm2022/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.mjs +0 -500
- package/esm2022/lib/controls/Paging/JwPagination.component.mjs +0 -160
- package/esm2022/lib/controls/Paging/Paging.component.mjs +0 -626
- package/esm2022/lib/controls/Phone/Phone.component.mjs +0 -134
- package/esm2022/lib/controls/ProfileImageUploader/ProfileImageUploader.component.mjs +0 -390
- package/esm2022/lib/controls/RadioButton/RadioButton.component.mjs +0 -113
- package/esm2022/lib/controls/Recaptcha/Recaptcha.component.mjs +0 -134
- package/esm2022/lib/controls/Repeater/repeater/repeater.component.mjs +0 -135
- package/esm2022/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs +0 -1291
- package/esm2022/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.mjs +0 -22
- package/esm2022/lib/controls/Repeater/repeater-table/repeater-table.component.mjs +0 -118
- package/esm2022/lib/controls/TagsInput/TagsInput.component.mjs +0 -308
- package/esm2022/lib/controls/TextArea/TextArea.component.mjs +0 -581
- package/esm2022/lib/controls/TextBox/TextBox.component.mjs +0 -357
- package/esm2022/lib/controls/Toggleslide/Toggleslide.component.mjs +0 -96
- package/esm2022/lib/controls/bbsf-controls.module.mjs +0 -92
- package/esm2022/lib/controls/page-header-component/page-header-component.component.mjs +0 -42
- package/esm2022/lib/modules/bbsf-core.module.mjs +0 -210
- package/esm2022/lib/modules/bbsf-datetime.module.mjs +0 -90
- package/esm2022/lib/modules/bbsf-dropdown.module.mjs +0 -57
- package/esm2022/lib/modules/bbsf-editors.module.mjs +0 -97
- package/esm2022/lib/modules/bbsf-forms-basic.module.mjs +0 -79
- package/esm2022/lib/modules/bbsf-multilingual.module.mjs +0 -60
- package/esm2022/lib/modules/bbsf-phone.module.mjs +0 -57
- package/esm2022/lib/modules/bbsf-specialized.module.mjs +0 -160
- package/esm2022/lib/modules/bbsf-uploads.module.mjs +0 -106
- package/esm2022/lib/modules/bbsf-utility.module.mjs +0 -103
- package/esm2022/public-api.mjs +0 -169
package/README.md
CHANGED
|
@@ -1,1245 +1,1315 @@
|
|
|
1
|
-
# BnsightsControlLibrary
|
|
2
|
-
|
|
3
|
-
BBSF Controls package is part of BBSF 3 packages. It has all the form controls that we use to build our application forms.
|
|
4
|
-
|
|
5
|
-
For more info please visit [BBSF Controls documenation](https://bbsfadmin.bnsights.com/controls) or [BBSF documentation](https://bnsightsprojects.visualstudio.com/BBSF%203/_wiki/wikis/BBSF-3.wiki/65/BBSF-Documentation)
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 🚀 NEW! Tree-Shakable Granular Modules (v2.0+)
|
|
10
|
-
|
|
11
|
-
The package now supports **true tree-shaking** through granular modules for optimal bundle size!
|
|
12
|
-
|
|
13
|
-
### 📦 Available Modules
|
|
14
|
-
|
|
15
|
-
#### ✨ Granular Modules (RECOMMENDED - Best Bundle Optimization)
|
|
16
|
-
|
|
17
|
-
| Module | Gzipped Size | Contains | Main Dependencies |
|
|
18
|
-
|--------|--------------|----------|-------------------|
|
|
19
|
-
| **BBSFFormsBasicModule** | ~30 KB | TextBox, TextArea, CheckBox, RadioButton, Toggle | ngx-mask, Material slide-toggle |
|
|
20
|
-
| **BBSFDropdownModule** | ~130 KB | DropdownList | ng-select (~100 KB) |
|
|
21
|
-
| **BBSFDateTimeModule** | ~220 KB | DateTimePicker + Date pipes | Owl DateTime (~200 KB) |
|
|
22
|
-
| **BBSFPhoneModule** | ~90 KB | Phone input | intl-tel-input (~80 KB) |
|
|
23
|
-
| **BBSFUtilityModule** | ~80 KB | Form, Modals, Paging, PageHeader, Recaptcha | SweetAlert2, NgBootstrap |
|
|
24
|
-
| **BBSFMultilingualModule** | ~15 KB | MultiLingualTextBox, MultiLingualTextArea | None (lightweight) |
|
|
25
|
-
|
|
26
|
-
#### 📚 Legacy Grouped Modules (For Backward Compatibility)
|
|
27
|
-
|
|
28
|
-
| Module | Size | Contains |
|
|
29
|
-
|--------|------|----------|
|
|
30
|
-
| **BBSFCoreModule** ⚠️ | ~650-800 KB | ALL modules above (deprecated, use granular modules instead) |
|
|
31
|
-
| **BBSFEditorsModule** | ~800 KB | HtmlEditor, MarkdownEditor, MultiLingualHtmlEditor |
|
|
32
|
-
| **BBSFUploadsModule** | ~360 KB | FileUpload, ImageUpload, ProfileImageUploader |
|
|
33
|
-
| **BBSFSpecializedModule** | ~300 KB | Calendar, MapAutoComplete, AutocompleteTextBox, TagsInput, Repeater |
|
|
34
|
-
| **BBSFControlsModule** ⚠️ | ~2+ MB | Everything (deprecated) |
|
|
35
|
-
|
|
36
|
-
---
|
|
37
|
-
|
|
38
|
-
### 📖 Usage Examples
|
|
39
|
-
|
|
40
|
-
#### ✅ **Best Practice: Use Granular Modules**
|
|
41
|
-
|
|
42
|
-
```typescript
|
|
43
|
-
// Example 1: Basic form with text inputs only (~30 KB)
|
|
44
|
-
import { BBSFFormsBasicModule } from '@bnsights/bbsf-controls';
|
|
45
|
-
|
|
46
|
-
@NgModule({
|
|
47
|
-
imports: [BBSFFormsBasicModule]
|
|
48
|
-
})
|
|
49
|
-
export class SimpleFormModule { }
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
```typescript
|
|
53
|
-
// Example 2: Form with dropdown (~160 KB - 75% smaller than BBSFCoreModule!)
|
|
54
|
-
import {
|
|
55
|
-
BBSFFormsBasicModule, // ~30 KB
|
|
56
|
-
BBSFDropdownModule // ~130 KB
|
|
57
|
-
} from '@bnsights/bbsf-controls';
|
|
58
|
-
|
|
59
|
-
@NgModule({
|
|
60
|
-
imports: [BBSFFormsBasicModule, BBSFDropdownModule]
|
|
61
|
-
})
|
|
62
|
-
export class FormWithDropdownModule { }
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
```typescript
|
|
66
|
-
// Example 3: Form with date picker (~250 KB - 60% smaller!)
|
|
67
|
-
import {
|
|
68
|
-
BBSFFormsBasicModule, // ~30 KB
|
|
69
|
-
BBSFDateTimeModule // ~220 KB
|
|
70
|
-
} from '@bnsights/bbsf-controls';
|
|
71
|
-
|
|
72
|
-
@NgModule({
|
|
73
|
-
imports: [BBSFFormsBasicModule, BBSFDateTimeModule]
|
|
74
|
-
})
|
|
75
|
-
export class FormWithDateModule { }
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
```typescript
|
|
79
|
-
// Example 4: Complex form with multiple controls (~565 KB - 13% smaller)
|
|
80
|
-
import {
|
|
81
|
-
BBSFFormsBasicModule, // ~30 KB - TextBox, CheckBox, etc.
|
|
82
|
-
BBSFDropdownModule, // ~130 KB - Dropdown
|
|
83
|
-
BBSFDateTimeModule, // ~220 KB - Date/Time
|
|
84
|
-
BBSFPhoneModule, // ~90 KB - Phone
|
|
85
|
-
BBSFUtilityModule, // ~80 KB - Form, Modals, Paging
|
|
86
|
-
BBSFMultilingualModule // ~15 KB - Multilingual
|
|
87
|
-
} from '@bnsights/bbsf-controls';
|
|
88
|
-
|
|
89
|
-
@NgModule({
|
|
90
|
-
imports: [
|
|
91
|
-
BBSFFormsBasicModule,
|
|
92
|
-
BBSFDropdownModule,
|
|
93
|
-
BBSFDateTimeModule,
|
|
94
|
-
BBSFPhoneModule,
|
|
95
|
-
BBSFUtilityModule,
|
|
96
|
-
BBSFMultilingualModule
|
|
97
|
-
]
|
|
98
|
-
})
|
|
99
|
-
export class FullFormModule { }
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
```typescript
|
|
103
|
-
// Example 5: Form with rich text editor (~830 KB)
|
|
104
|
-
import {
|
|
105
|
-
BBSFFormsBasicModule,
|
|
106
|
-
BBSFEditorsModule // Rich text editors
|
|
107
|
-
} from '@bnsights/bbsf-controls';
|
|
108
|
-
|
|
109
|
-
@NgModule({
|
|
110
|
-
imports: [BBSFFormsBasicModule, BBSFEditorsModule]
|
|
111
|
-
})
|
|
112
|
-
export class ContentFormModule { }
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
#### ⚠️ **Legacy: Old Module Imports (Not Recommended)**
|
|
116
|
-
|
|
117
|
-
```typescript
|
|
118
|
-
// ❌ Old way 1: Loads ALL controls (~2+ MB)
|
|
119
|
-
import { BBSFControlsModule } from '@bnsights/bbsf-controls';
|
|
120
|
-
|
|
121
|
-
@NgModule({
|
|
122
|
-
imports: [BBSFControlsModule] // Don't use this!
|
|
123
|
-
})
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
```typescript
|
|
127
|
-
// ⚠️ Old way 2: Still loads too much (~650 KB even if you use 1 control)
|
|
128
|
-
import { BBSFCoreModule } from '@bnsights/bbsf-controls';
|
|
129
|
-
|
|
130
|
-
@NgModule({
|
|
131
|
-
imports: [BBSFCoreModule] // Use granular modules instead!
|
|
132
|
-
})
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
---
|
|
136
|
-
|
|
137
|
-
### 📊 Performance Benefits
|
|
138
|
-
|
|
139
|
-
#### Real-World Bundle Size Comparison
|
|
140
|
-
|
|
141
|
-
| Use Case | Old (BBSFCoreModule) | New (Granular) | Savings |
|
|
142
|
-
|----------|---------------------|----------------|---------|
|
|
143
|
-
| **Basic form only** | 650 KB | 30 KB | **95%** ⬇️ |
|
|
144
|
-
| **Form + Dropdown** | 650 KB | 160 KB | **75%** ⬇️ |
|
|
145
|
-
| **Form + Date picker** | 650 KB | 250 KB | **60%** ⬇️ |
|
|
146
|
-
| **Form + Phone** | 650 KB | 120 KB | **82%** ⬇️ |
|
|
147
|
-
| **All core controls** | 650 KB | 565 KB | **13%** ⬇️ |
|
|
148
|
-
| **+ Rich text editor** | 1450 KB | 830 KB | **43%** ⬇️ |
|
|
149
|
-
|
|
150
|
-
#### Example: Typical Application Impact
|
|
151
|
-
|
|
152
|
-
```
|
|
153
|
-
Before (using BBSFCoreModule):
|
|
154
|
-
├── TextBox ✓
|
|
155
|
-
├── Dropdown ✓
|
|
156
|
-
└── Unused: DateTimePicker ✗ (~200 KB wasted)
|
|
157
|
-
Phone ✗ (~80 KB wasted)
|
|
158
|
-
Paging ✗ (~30 KB wasted)
|
|
159
|
-
Modals ✗ (~50 KB wasted)
|
|
160
|
-
... (~290 KB wasted)
|
|
161
|
-
Total: 650 KB
|
|
162
|
-
|
|
163
|
-
After (using granular modules):
|
|
164
|
-
├── BBSFFormsBasicModule (~30 KB)
|
|
165
|
-
└── BBSFDropdownModule (~130 KB)
|
|
166
|
-
Total: 160 KB (490 KB saved! 75% reduction)
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
---
|
|
170
|
-
|
|
171
|
-
### 🔄 Migration Guide
|
|
172
|
-
|
|
173
|
-
#### Step 1: Identify Your Controls
|
|
174
|
-
|
|
175
|
-
Audit your application to see which controls you're actually using:
|
|
176
|
-
|
|
177
|
-
```bash
|
|
178
|
-
# Search for control usage in your codebase
|
|
179
|
-
grep -r "bbsf-textbox\|bbsf-dropdown\|bbsf-datepicker" src/
|
|
180
|
-
```
|
|
181
|
-
|
|
182
|
-
#### Step 2: Map Controls to Granular Modules
|
|
183
|
-
|
|
184
|
-
| If you use... | Import this module | Size |
|
|
185
|
-
|--------------|-------------------|------|
|
|
186
|
-
| TextBox, TextArea, CheckBox, Radio, Toggle | `BBSFFormsBasicModule` | ~30 KB |
|
|
187
|
-
| DropdownList | `BBSFDropdownModule` | ~130 KB |
|
|
188
|
-
| DateTimePicker | `BBSFDateTimeModule` | ~220 KB |
|
|
189
|
-
| Phone | `BBSFPhoneModule` | ~90 KB |
|
|
190
|
-
| Form, Modals, Paging, PageHeader | `BBSFUtilityModule` | ~80 KB |
|
|
191
|
-
| MultiLingualTextBox/TextArea | `BBSFMultilingualModule` | ~15 KB |
|
|
192
|
-
| HtmlEditor, MarkdownEditor | `BBSFEditorsModule` | ~800 KB |
|
|
193
|
-
| FileUpload, ImageUpload | `BBSFUploadsModule` | ~360 KB |
|
|
194
|
-
| Calendar, Maps, TagsInput, Repeater | `BBSFSpecializedModule` | ~300 KB |
|
|
195
|
-
|
|
196
|
-
#### Step 3: Replace Imports
|
|
197
|
-
|
|
198
|
-
**Migration Example 1: From BBSFControlsModule**
|
|
199
|
-
```typescript
|
|
200
|
-
// ❌ Before: Loading ALL controls (~2+ MB)
|
|
201
|
-
import { BBSFControlsModule } from '@bnsights/bbsf-controls';
|
|
202
|
-
|
|
203
|
-
@NgModule({
|
|
204
|
-
imports: [BBSFControlsModule]
|
|
205
|
-
})
|
|
206
|
-
export class UserFormModule { }
|
|
207
|
-
|
|
208
|
-
// ✅ After: Only load what you need (~160 KB - 92% smaller!)
|
|
209
|
-
import {
|
|
210
|
-
BBSFFormsBasicModule, // You use TextBox, CheckBox
|
|
211
|
-
BBSFDropdownModule // You use Dropdown
|
|
212
|
-
} from '@bnsights/bbsf-controls';
|
|
213
|
-
|
|
214
|
-
@NgModule({
|
|
215
|
-
imports: [
|
|
216
|
-
BBSFFormsBasicModule,
|
|
217
|
-
BBSFDropdownModule
|
|
218
|
-
]
|
|
219
|
-
})
|
|
220
|
-
export class UserFormModule { }
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
**Migration Example 2: From BBSFCoreModule**
|
|
224
|
-
```typescript
|
|
225
|
-
// ⚠️ Before: Loading all core controls (~650 KB)
|
|
226
|
-
import { BBSFCoreModule } from '@bnsights/bbsf-controls';
|
|
227
|
-
|
|
228
|
-
@NgModule({
|
|
229
|
-
imports: [BBSFCoreModule]
|
|
230
|
-
})
|
|
231
|
-
export class SimpleFormModule { }
|
|
232
|
-
|
|
233
|
-
// ✅ After: Only basic forms (~30 KB - 95% smaller!)
|
|
234
|
-
import { BBSFFormsBasicModule } from '@bnsights/bbsf-controls';
|
|
235
|
-
|
|
236
|
-
@NgModule({
|
|
237
|
-
imports: [BBSFFormsBasicModule]
|
|
238
|
-
})
|
|
239
|
-
export class SimpleFormModule { }
|
|
240
|
-
```
|
|
241
|
-
|
|
242
|
-
**Migration Example 3: Complex Form**
|
|
243
|
-
```typescript
|
|
244
|
-
// ❌ Before: BBSFCoreModule (~650 KB) + BBSFEditorsModule (~800 KB) = 1.45 MB
|
|
245
|
-
import { BBSFCoreModule, BBSFEditorsModule } from '@bnsights/bbsf-controls';
|
|
246
|
-
|
|
247
|
-
@NgModule({
|
|
248
|
-
imports: [BBSFCoreModule, BBSFEditorsModule]
|
|
249
|
-
})
|
|
250
|
-
export class ArticleFormModule { }
|
|
251
|
-
|
|
252
|
-
// ✅ After: Only what you need (~410 KB - 72% smaller!)
|
|
253
|
-
import {
|
|
254
|
-
BBSFFormsBasicModule, // ~30 KB - TextBox, CheckBox
|
|
255
|
-
BBSFDropdownModule, // ~130 KB - Dropdown
|
|
256
|
-
BBSFDateTimeModule, // ~220 KB - DatePicker
|
|
257
|
-
BBSFFormsBasicModule // ~30 KB - Basic forms
|
|
258
|
-
} from '@bnsights/bbsf-controls';
|
|
259
|
-
|
|
260
|
-
@NgModule({
|
|
261
|
-
imports: [
|
|
262
|
-
BBSFFormsBasicModule,
|
|
263
|
-
BBSFDropdownModule,
|
|
264
|
-
BBSFDateTimeModule
|
|
265
|
-
]
|
|
266
|
-
})
|
|
267
|
-
export class ArticleFormModule { }
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
#### Step 4: Verify Bundle Size
|
|
271
|
-
|
|
272
|
-
After migration, build your app and check the bundle size:
|
|
273
|
-
|
|
274
|
-
```bash
|
|
275
|
-
# Build with stats
|
|
276
|
-
npm run build -- --stats-json
|
|
277
|
-
|
|
278
|
-
# Analyze bundle (install if needed: npm i -g webpack-bundle-analyzer)
|
|
279
|
-
npx webpack-bundle-analyzer dist/your-app/stats.json
|
|
280
|
-
```
|
|
281
|
-
|
|
282
|
-
Look for `@bnsights/bbsf-controls` in the bundle analyzer to see your savings!
|
|
283
|
-
|
|
284
|
-
#### Step 5: Update All Modules
|
|
285
|
-
|
|
286
|
-
Search and replace across your codebase:
|
|
287
|
-
|
|
288
|
-
```bash
|
|
289
|
-
# Find all BBSFControlsModule imports
|
|
290
|
-
grep -r "BBSFControlsModule" src/
|
|
291
|
-
|
|
292
|
-
# Find all BBSFCoreModule imports
|
|
293
|
-
grep -r "BBSFCoreModule" src/
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
Then update each file based on which controls it actually uses.
|
|
297
|
-
|
|
298
|
-
---
|
|
299
|
-
|
|
300
|
-
### ⚡ Quick Reference
|
|
301
|
-
|
|
302
|
-
**Most Common Combinations:**
|
|
303
|
-
|
|
304
|
-
```typescript
|
|
305
|
-
// Basic form (~30 KB)
|
|
306
|
-
import { BBSFFormsBasicModule } from '@bnsights/bbsf-controls';
|
|
307
|
-
|
|
308
|
-
// Form with dropdown (~160 KB)
|
|
309
|
-
import { BBSFFormsBasicModule, BBSFDropdownModule } from '@bnsights/bbsf-controls';
|
|
310
|
-
|
|
311
|
-
// Form with date picker (~250 KB)
|
|
312
|
-
import { BBSFFormsBasicModule, BBSFDateTimeModule } from '@bnsights/bbsf-controls';
|
|
313
|
-
|
|
314
|
-
// Complete form (~565 KB)
|
|
315
|
-
import {
|
|
316
|
-
BBSFFormsBasicModule,
|
|
317
|
-
BBSFDropdownModule,
|
|
318
|
-
BBSFDateTimeModule,
|
|
319
|
-
BBSFPhoneModule,
|
|
320
|
-
BBSFUtilityModule
|
|
321
|
-
} from '@bnsights/bbsf-controls';
|
|
322
|
-
|
|
323
|
-
// Content management (~830 KB)
|
|
324
|
-
import { BBSFFormsBasicModule, BBSFEditorsModule } from '@bnsights/bbsf-controls';
|
|
325
|
-
|
|
326
|
-
// Media management (~390 KB)
|
|
327
|
-
import { BBSFFormsBasicModule, BBSFUploadsModule } from '@bnsights/bbsf-controls';
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
---
|
|
331
|
-
|
|
332
|
-
##
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
-
|
|
359
|
-
-
|
|
360
|
-
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
##
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
====================
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
## 1.0.
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
## 1.0.
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
- Update utilities package
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
## 1.0.
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
## 1.0.
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
*
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
*
|
|
723
|
-
*
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
*
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
*
|
|
785
|
-
|
|
786
|
-
## 1.0.
|
|
787
|
-
|
|
788
|
-
===================
|
|
789
|
-
|
|
790
|
-
*
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
*
|
|
797
|
-
|
|
798
|
-
## 1.0.
|
|
799
|
-
|
|
800
|
-
===================
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
*
|
|
815
|
-
|
|
816
|
-
## 1.0.
|
|
817
|
-
|
|
818
|
-
===================
|
|
819
|
-
|
|
820
|
-
*
|
|
821
|
-
|
|
822
|
-
## 1.0.
|
|
823
|
-
|
|
824
|
-
===================
|
|
825
|
-
|
|
826
|
-
*
|
|
827
|
-
|
|
828
|
-
## 1.0.
|
|
829
|
-
|
|
830
|
-
===================
|
|
831
|
-
|
|
832
|
-
*
|
|
833
|
-
|
|
834
|
-
## 1.0.
|
|
835
|
-
|
|
836
|
-
===================
|
|
837
|
-
|
|
838
|
-
* Update
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
* Update
|
|
915
|
-
|
|
916
|
-
## 1.0.
|
|
917
|
-
|
|
918
|
-
===================
|
|
919
|
-
|
|
920
|
-
*
|
|
921
|
-
|
|
922
|
-
## 1.0.
|
|
923
|
-
|
|
924
|
-
===================
|
|
925
|
-
|
|
926
|
-
* Update Utilities Library
|
|
927
|
-
|
|
928
|
-
## 1.0.
|
|
929
|
-
|
|
930
|
-
===================
|
|
931
|
-
|
|
932
|
-
*
|
|
933
|
-
*
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
*
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
*
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
*
|
|
972
|
-
|
|
973
|
-
## 1.0.
|
|
974
|
-
|
|
975
|
-
===================
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
*
|
|
1024
|
-
*
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
*Fix
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
## 1.0.
|
|
1049
|
-
|
|
1050
|
-
===================
|
|
1051
|
-
|
|
1052
|
-
*
|
|
1053
|
-
|
|
1054
|
-
## 1.0.
|
|
1055
|
-
|
|
1056
|
-
===================
|
|
1057
|
-
|
|
1058
|
-
*
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
*
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
*
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
*
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
*
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
*
|
|
1163
|
-
*
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
*
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
* Update
|
|
1205
|
-
|
|
1206
|
-
## 1.0.
|
|
1207
|
-
|
|
1208
|
-
===================
|
|
1209
|
-
|
|
1210
|
-
*
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
* Update
|
|
1219
|
-
|
|
1220
|
-
## 1.0.
|
|
1221
|
-
|
|
1222
|
-
===================
|
|
1223
|
-
|
|
1224
|
-
*
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
*
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1
|
+
# BnsightsControlLibrary
|
|
2
|
+
|
|
3
|
+
BBSF Controls package is part of BBSF 3 packages. It has all the form controls that we use to build our application forms.
|
|
4
|
+
|
|
5
|
+
For more info please visit [BBSF Controls documenation](https://bbsfadmin.bnsights.com/controls) or [BBSF documentation](https://bnsightsprojects.visualstudio.com/BBSF%203/_wiki/wikis/BBSF-3.wiki/65/BBSF-Documentation)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 🚀 NEW! Tree-Shakable Granular Modules (v2.0+)
|
|
10
|
+
|
|
11
|
+
The package now supports **true tree-shaking** through granular modules for optimal bundle size!
|
|
12
|
+
|
|
13
|
+
### 📦 Available Modules
|
|
14
|
+
|
|
15
|
+
#### ✨ Granular Modules (RECOMMENDED - Best Bundle Optimization)
|
|
16
|
+
|
|
17
|
+
| Module | Gzipped Size | Contains | Main Dependencies |
|
|
18
|
+
|--------|--------------|----------|-------------------|
|
|
19
|
+
| **BBSFFormsBasicModule** | ~30 KB | TextBox, TextArea, CheckBox, RadioButton, Toggle | ngx-mask, Material slide-toggle |
|
|
20
|
+
| **BBSFDropdownModule** | ~130 KB | DropdownList | ng-select (~100 KB) |
|
|
21
|
+
| **BBSFDateTimeModule** | ~220 KB | DateTimePicker + Date pipes | Owl DateTime (~200 KB) |
|
|
22
|
+
| **BBSFPhoneModule** | ~90 KB | Phone input | intl-tel-input (~80 KB) |
|
|
23
|
+
| **BBSFUtilityModule** | ~80 KB | Form, Modals, Paging, PageHeader, Recaptcha | SweetAlert2, NgBootstrap |
|
|
24
|
+
| **BBSFMultilingualModule** | ~15 KB | MultiLingualTextBox, MultiLingualTextArea | None (lightweight) |
|
|
25
|
+
|
|
26
|
+
#### 📚 Legacy Grouped Modules (For Backward Compatibility)
|
|
27
|
+
|
|
28
|
+
| Module | Size | Contains |
|
|
29
|
+
|--------|------|----------|
|
|
30
|
+
| **BBSFCoreModule** ⚠️ | ~650-800 KB | ALL modules above (deprecated, use granular modules instead) |
|
|
31
|
+
| **BBSFEditorsModule** | ~800 KB | HtmlEditor, MarkdownEditor, MultiLingualHtmlEditor |
|
|
32
|
+
| **BBSFUploadsModule** | ~360 KB | FileUpload, ImageUpload, ProfileImageUploader |
|
|
33
|
+
| **BBSFSpecializedModule** | ~300 KB | Calendar, MapAutoComplete, AutocompleteTextBox, TagsInput, Repeater |
|
|
34
|
+
| **BBSFControlsModule** ⚠️ | ~2+ MB | Everything (deprecated) |
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
### 📖 Usage Examples
|
|
39
|
+
|
|
40
|
+
#### ✅ **Best Practice: Use Granular Modules**
|
|
41
|
+
|
|
42
|
+
```typescript
|
|
43
|
+
// Example 1: Basic form with text inputs only (~30 KB)
|
|
44
|
+
import { BBSFFormsBasicModule } from '@bnsights/bbsf-controls';
|
|
45
|
+
|
|
46
|
+
@NgModule({
|
|
47
|
+
imports: [BBSFFormsBasicModule]
|
|
48
|
+
})
|
|
49
|
+
export class SimpleFormModule { }
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
```typescript
|
|
53
|
+
// Example 2: Form with dropdown (~160 KB - 75% smaller than BBSFCoreModule!)
|
|
54
|
+
import {
|
|
55
|
+
BBSFFormsBasicModule, // ~30 KB
|
|
56
|
+
BBSFDropdownModule // ~130 KB
|
|
57
|
+
} from '@bnsights/bbsf-controls';
|
|
58
|
+
|
|
59
|
+
@NgModule({
|
|
60
|
+
imports: [BBSFFormsBasicModule, BBSFDropdownModule]
|
|
61
|
+
})
|
|
62
|
+
export class FormWithDropdownModule { }
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
```typescript
|
|
66
|
+
// Example 3: Form with date picker (~250 KB - 60% smaller!)
|
|
67
|
+
import {
|
|
68
|
+
BBSFFormsBasicModule, // ~30 KB
|
|
69
|
+
BBSFDateTimeModule // ~220 KB
|
|
70
|
+
} from '@bnsights/bbsf-controls';
|
|
71
|
+
|
|
72
|
+
@NgModule({
|
|
73
|
+
imports: [BBSFFormsBasicModule, BBSFDateTimeModule]
|
|
74
|
+
})
|
|
75
|
+
export class FormWithDateModule { }
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
// Example 4: Complex form with multiple controls (~565 KB - 13% smaller)
|
|
80
|
+
import {
|
|
81
|
+
BBSFFormsBasicModule, // ~30 KB - TextBox, CheckBox, etc.
|
|
82
|
+
BBSFDropdownModule, // ~130 KB - Dropdown
|
|
83
|
+
BBSFDateTimeModule, // ~220 KB - Date/Time
|
|
84
|
+
BBSFPhoneModule, // ~90 KB - Phone
|
|
85
|
+
BBSFUtilityModule, // ~80 KB - Form, Modals, Paging
|
|
86
|
+
BBSFMultilingualModule // ~15 KB - Multilingual
|
|
87
|
+
} from '@bnsights/bbsf-controls';
|
|
88
|
+
|
|
89
|
+
@NgModule({
|
|
90
|
+
imports: [
|
|
91
|
+
BBSFFormsBasicModule,
|
|
92
|
+
BBSFDropdownModule,
|
|
93
|
+
BBSFDateTimeModule,
|
|
94
|
+
BBSFPhoneModule,
|
|
95
|
+
BBSFUtilityModule,
|
|
96
|
+
BBSFMultilingualModule
|
|
97
|
+
]
|
|
98
|
+
})
|
|
99
|
+
export class FullFormModule { }
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
// Example 5: Form with rich text editor (~830 KB)
|
|
104
|
+
import {
|
|
105
|
+
BBSFFormsBasicModule,
|
|
106
|
+
BBSFEditorsModule // Rich text editors
|
|
107
|
+
} from '@bnsights/bbsf-controls';
|
|
108
|
+
|
|
109
|
+
@NgModule({
|
|
110
|
+
imports: [BBSFFormsBasicModule, BBSFEditorsModule]
|
|
111
|
+
})
|
|
112
|
+
export class ContentFormModule { }
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
#### ⚠️ **Legacy: Old Module Imports (Not Recommended)**
|
|
116
|
+
|
|
117
|
+
```typescript
|
|
118
|
+
// ❌ Old way 1: Loads ALL controls (~2+ MB)
|
|
119
|
+
import { BBSFControlsModule } from '@bnsights/bbsf-controls';
|
|
120
|
+
|
|
121
|
+
@NgModule({
|
|
122
|
+
imports: [BBSFControlsModule] // Don't use this!
|
|
123
|
+
})
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
```typescript
|
|
127
|
+
// ⚠️ Old way 2: Still loads too much (~650 KB even if you use 1 control)
|
|
128
|
+
import { BBSFCoreModule } from '@bnsights/bbsf-controls';
|
|
129
|
+
|
|
130
|
+
@NgModule({
|
|
131
|
+
imports: [BBSFCoreModule] // Use granular modules instead!
|
|
132
|
+
})
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
---
|
|
136
|
+
|
|
137
|
+
### 📊 Performance Benefits
|
|
138
|
+
|
|
139
|
+
#### Real-World Bundle Size Comparison
|
|
140
|
+
|
|
141
|
+
| Use Case | Old (BBSFCoreModule) | New (Granular) | Savings |
|
|
142
|
+
|----------|---------------------|----------------|---------|
|
|
143
|
+
| **Basic form only** | 650 KB | 30 KB | **95%** ⬇️ |
|
|
144
|
+
| **Form + Dropdown** | 650 KB | 160 KB | **75%** ⬇️ |
|
|
145
|
+
| **Form + Date picker** | 650 KB | 250 KB | **60%** ⬇️ |
|
|
146
|
+
| **Form + Phone** | 650 KB | 120 KB | **82%** ⬇️ |
|
|
147
|
+
| **All core controls** | 650 KB | 565 KB | **13%** ⬇️ |
|
|
148
|
+
| **+ Rich text editor** | 1450 KB | 830 KB | **43%** ⬇️ |
|
|
149
|
+
|
|
150
|
+
#### Example: Typical Application Impact
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
Before (using BBSFCoreModule):
|
|
154
|
+
├── TextBox ✓
|
|
155
|
+
├── Dropdown ✓
|
|
156
|
+
└── Unused: DateTimePicker ✗ (~200 KB wasted)
|
|
157
|
+
Phone ✗ (~80 KB wasted)
|
|
158
|
+
Paging ✗ (~30 KB wasted)
|
|
159
|
+
Modals ✗ (~50 KB wasted)
|
|
160
|
+
... (~290 KB wasted)
|
|
161
|
+
Total: 650 KB
|
|
162
|
+
|
|
163
|
+
After (using granular modules):
|
|
164
|
+
├── BBSFFormsBasicModule (~30 KB)
|
|
165
|
+
└── BBSFDropdownModule (~130 KB)
|
|
166
|
+
Total: 160 KB (490 KB saved! 75% reduction)
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
### 🔄 Migration Guide
|
|
172
|
+
|
|
173
|
+
#### Step 1: Identify Your Controls
|
|
174
|
+
|
|
175
|
+
Audit your application to see which controls you're actually using:
|
|
176
|
+
|
|
177
|
+
```bash
|
|
178
|
+
# Search for control usage in your codebase
|
|
179
|
+
grep -r "bbsf-textbox\|bbsf-dropdown\|bbsf-datepicker" src/
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
#### Step 2: Map Controls to Granular Modules
|
|
183
|
+
|
|
184
|
+
| If you use... | Import this module | Size |
|
|
185
|
+
|--------------|-------------------|------|
|
|
186
|
+
| TextBox, TextArea, CheckBox, Radio, Toggle | `BBSFFormsBasicModule` | ~30 KB |
|
|
187
|
+
| DropdownList | `BBSFDropdownModule` | ~130 KB |
|
|
188
|
+
| DateTimePicker | `BBSFDateTimeModule` | ~220 KB |
|
|
189
|
+
| Phone | `BBSFPhoneModule` | ~90 KB |
|
|
190
|
+
| Form, Modals, Paging, PageHeader | `BBSFUtilityModule` | ~80 KB |
|
|
191
|
+
| MultiLingualTextBox/TextArea | `BBSFMultilingualModule` | ~15 KB |
|
|
192
|
+
| HtmlEditor, MarkdownEditor | `BBSFEditorsModule` | ~800 KB |
|
|
193
|
+
| FileUpload, ImageUpload | `BBSFUploadsModule` | ~360 KB |
|
|
194
|
+
| Calendar, Maps, TagsInput, Repeater | `BBSFSpecializedModule` | ~300 KB |
|
|
195
|
+
|
|
196
|
+
#### Step 3: Replace Imports
|
|
197
|
+
|
|
198
|
+
**Migration Example 1: From BBSFControlsModule**
|
|
199
|
+
```typescript
|
|
200
|
+
// ❌ Before: Loading ALL controls (~2+ MB)
|
|
201
|
+
import { BBSFControlsModule } from '@bnsights/bbsf-controls';
|
|
202
|
+
|
|
203
|
+
@NgModule({
|
|
204
|
+
imports: [BBSFControlsModule]
|
|
205
|
+
})
|
|
206
|
+
export class UserFormModule { }
|
|
207
|
+
|
|
208
|
+
// ✅ After: Only load what you need (~160 KB - 92% smaller!)
|
|
209
|
+
import {
|
|
210
|
+
BBSFFormsBasicModule, // You use TextBox, CheckBox
|
|
211
|
+
BBSFDropdownModule // You use Dropdown
|
|
212
|
+
} from '@bnsights/bbsf-controls';
|
|
213
|
+
|
|
214
|
+
@NgModule({
|
|
215
|
+
imports: [
|
|
216
|
+
BBSFFormsBasicModule,
|
|
217
|
+
BBSFDropdownModule
|
|
218
|
+
]
|
|
219
|
+
})
|
|
220
|
+
export class UserFormModule { }
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
**Migration Example 2: From BBSFCoreModule**
|
|
224
|
+
```typescript
|
|
225
|
+
// ⚠️ Before: Loading all core controls (~650 KB)
|
|
226
|
+
import { BBSFCoreModule } from '@bnsights/bbsf-controls';
|
|
227
|
+
|
|
228
|
+
@NgModule({
|
|
229
|
+
imports: [BBSFCoreModule]
|
|
230
|
+
})
|
|
231
|
+
export class SimpleFormModule { }
|
|
232
|
+
|
|
233
|
+
// ✅ After: Only basic forms (~30 KB - 95% smaller!)
|
|
234
|
+
import { BBSFFormsBasicModule } from '@bnsights/bbsf-controls';
|
|
235
|
+
|
|
236
|
+
@NgModule({
|
|
237
|
+
imports: [BBSFFormsBasicModule]
|
|
238
|
+
})
|
|
239
|
+
export class SimpleFormModule { }
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
**Migration Example 3: Complex Form**
|
|
243
|
+
```typescript
|
|
244
|
+
// ❌ Before: BBSFCoreModule (~650 KB) + BBSFEditorsModule (~800 KB) = 1.45 MB
|
|
245
|
+
import { BBSFCoreModule, BBSFEditorsModule } from '@bnsights/bbsf-controls';
|
|
246
|
+
|
|
247
|
+
@NgModule({
|
|
248
|
+
imports: [BBSFCoreModule, BBSFEditorsModule]
|
|
249
|
+
})
|
|
250
|
+
export class ArticleFormModule { }
|
|
251
|
+
|
|
252
|
+
// ✅ After: Only what you need (~410 KB - 72% smaller!)
|
|
253
|
+
import {
|
|
254
|
+
BBSFFormsBasicModule, // ~30 KB - TextBox, CheckBox
|
|
255
|
+
BBSFDropdownModule, // ~130 KB - Dropdown
|
|
256
|
+
BBSFDateTimeModule, // ~220 KB - DatePicker
|
|
257
|
+
BBSFFormsBasicModule // ~30 KB - Basic forms
|
|
258
|
+
} from '@bnsights/bbsf-controls';
|
|
259
|
+
|
|
260
|
+
@NgModule({
|
|
261
|
+
imports: [
|
|
262
|
+
BBSFFormsBasicModule,
|
|
263
|
+
BBSFDropdownModule,
|
|
264
|
+
BBSFDateTimeModule
|
|
265
|
+
]
|
|
266
|
+
})
|
|
267
|
+
export class ArticleFormModule { }
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
#### Step 4: Verify Bundle Size
|
|
271
|
+
|
|
272
|
+
After migration, build your app and check the bundle size:
|
|
273
|
+
|
|
274
|
+
```bash
|
|
275
|
+
# Build with stats
|
|
276
|
+
npm run build -- --stats-json
|
|
277
|
+
|
|
278
|
+
# Analyze bundle (install if needed: npm i -g webpack-bundle-analyzer)
|
|
279
|
+
npx webpack-bundle-analyzer dist/your-app/stats.json
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
Look for `@bnsights/bbsf-controls` in the bundle analyzer to see your savings!
|
|
283
|
+
|
|
284
|
+
#### Step 5: Update All Modules
|
|
285
|
+
|
|
286
|
+
Search and replace across your codebase:
|
|
287
|
+
|
|
288
|
+
```bash
|
|
289
|
+
# Find all BBSFControlsModule imports
|
|
290
|
+
grep -r "BBSFControlsModule" src/
|
|
291
|
+
|
|
292
|
+
# Find all BBSFCoreModule imports
|
|
293
|
+
grep -r "BBSFCoreModule" src/
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
Then update each file based on which controls it actually uses.
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
### ⚡ Quick Reference
|
|
301
|
+
|
|
302
|
+
**Most Common Combinations:**
|
|
303
|
+
|
|
304
|
+
```typescript
|
|
305
|
+
// Basic form (~30 KB)
|
|
306
|
+
import { BBSFFormsBasicModule } from '@bnsights/bbsf-controls';
|
|
307
|
+
|
|
308
|
+
// Form with dropdown (~160 KB)
|
|
309
|
+
import { BBSFFormsBasicModule, BBSFDropdownModule } from '@bnsights/bbsf-controls';
|
|
310
|
+
|
|
311
|
+
// Form with date picker (~250 KB)
|
|
312
|
+
import { BBSFFormsBasicModule, BBSFDateTimeModule } from '@bnsights/bbsf-controls';
|
|
313
|
+
|
|
314
|
+
// Complete form (~565 KB)
|
|
315
|
+
import {
|
|
316
|
+
BBSFFormsBasicModule,
|
|
317
|
+
BBSFDropdownModule,
|
|
318
|
+
BBSFDateTimeModule,
|
|
319
|
+
BBSFPhoneModule,
|
|
320
|
+
BBSFUtilityModule
|
|
321
|
+
} from '@bnsights/bbsf-controls';
|
|
322
|
+
|
|
323
|
+
// Content management (~830 KB)
|
|
324
|
+
import { BBSFFormsBasicModule, BBSFEditorsModule } from '@bnsights/bbsf-controls';
|
|
325
|
+
|
|
326
|
+
// Media management (~390 KB)
|
|
327
|
+
import { BBSFFormsBasicModule, BBSFUploadsModule } from '@bnsights/bbsf-controls';
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
---
|
|
331
|
+
|
|
332
|
+
## 🔧 Troubleshooting
|
|
333
|
+
|
|
334
|
+
### Error: `export 'DOCUMENT' (imported as 'DOCUMENT') was not found in '@angular/core'`
|
|
335
|
+
|
|
336
|
+
**Problem:** This error occurs when using Angular 19+ with the `BBSFEditorsModule` (which uses `@kolkov/angular-editor`). Angular 19's build system tries to process the `@kolkov/angular-editor` package and encounters compatibility issues.
|
|
337
|
+
|
|
338
|
+
**Solution 1: Install @kolkov/angular-editor in your consuming app (Recommended)**
|
|
339
|
+
|
|
340
|
+
Add `@kolkov/angular-editor` to your consuming app's `package.json` dependencies:
|
|
341
|
+
|
|
342
|
+
```bash
|
|
343
|
+
npm install @kolkov/angular-editor@^3.0.0-beta.2
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
This ensures the package is resolved correctly during the build process.
|
|
347
|
+
|
|
348
|
+
**Solution 2: Use patch-package to fix the import**
|
|
349
|
+
|
|
350
|
+
If Solution 1 doesn't work, you can patch the `@kolkov/angular-editor` package:
|
|
351
|
+
|
|
352
|
+
1. Install patch-package in your consuming app:
|
|
353
|
+
```bash
|
|
354
|
+
npm install --save-dev patch-package postinstall-postinstall
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
2. Create a patch file:
|
|
358
|
+
- Navigate to `node_modules/@kolkov/angular-editor/fesm2020/kolkov-angular-editor.mjs`
|
|
359
|
+
- Verify that line 4 already has: `import { DOCUMENT, CommonModule } from '@angular/common';`
|
|
360
|
+
- If the issue persists, it may be a bundling issue with Angular 19
|
|
361
|
+
|
|
362
|
+
3. If needed, manually patch the file and create a patch:
|
|
363
|
+
```bash
|
|
364
|
+
npx patch-package @kolkov/angular-editor
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
4. Add a postinstall script to your `package.json`:
|
|
368
|
+
```json
|
|
369
|
+
{
|
|
370
|
+
"scripts": {
|
|
371
|
+
"postinstall": "patch-package"
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
**Solution 3: Configure your build to externalize @kolkov/angular-editor**
|
|
377
|
+
|
|
378
|
+
If you're using a custom webpack configuration, you can configure it to externalize the package:
|
|
379
|
+
|
|
380
|
+
```javascript
|
|
381
|
+
// webpack.config.js or angular.json custom webpack config
|
|
382
|
+
externals: {
|
|
383
|
+
'@kolkov/angular-editor': '@kolkov/angular-editor'
|
|
384
|
+
}
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
**Solution 4: Use a different HTML editor**
|
|
388
|
+
|
|
389
|
+
If the issue persists, consider using a different HTML editor component that's compatible with Angular 19, or wait for an updated version of `@kolkov/angular-editor`.
|
|
390
|
+
|
|
391
|
+
**Note:** The library maintainers are aware of this issue. The `@kolkov/angular-editor` package version `3.0.0-beta.2` was built for Angular 13-15, and Angular 19 has stricter module resolution. The recommended workaround is Solution 1.
|
|
392
|
+
|
|
393
|
+
---
|
|
394
|
+
|
|
395
|
+
## Change Log
|
|
396
|
+
|
|
397
|
+
## 1.0.194 / 16-10-2025
|
|
398
|
+
|
|
399
|
+
=====================
|
|
400
|
+
|
|
401
|
+
- Implement standalone components
|
|
402
|
+
|
|
403
|
+
## 1.0.193 / 16-10-2025
|
|
404
|
+
|
|
405
|
+
=====================
|
|
406
|
+
|
|
407
|
+
- Fix Format for displayValues in Tags, multiSelect
|
|
408
|
+
|
|
409
|
+
## 1.0.192 / 15-10-2025
|
|
410
|
+
|
|
411
|
+
=====================
|
|
412
|
+
|
|
413
|
+
- Fix Repeater URL Validation
|
|
414
|
+
- Fix Clear singleSelection DropdownComponent
|
|
415
|
+
- Remove Swal cancelButton style
|
|
416
|
+
|
|
417
|
+
## 1.0.191 / 23/9/2025
|
|
418
|
+
|
|
419
|
+
=====================
|
|
420
|
+
|
|
421
|
+
- Initialize repeater control when custom validation
|
|
422
|
+
- Handle attach image in HTML Editor Component
|
|
423
|
+
- Validate files count when drag and drop file in single upload
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
## 1.0.190 / 21/9/2025
|
|
427
|
+
|
|
428
|
+
=====================
|
|
429
|
+
|
|
430
|
+
- Add option to add buttons to hide in HTML Editor Component
|
|
431
|
+
- Remove options from Html Editor component
|
|
432
|
+
|
|
433
|
+
## 1.0.189 / 15/9/2025
|
|
434
|
+
|
|
435
|
+
=====================
|
|
436
|
+
|
|
437
|
+
- Add option to show password requirements
|
|
438
|
+
|
|
439
|
+
## 1.0.188 / 15/9/2025
|
|
440
|
+
|
|
441
|
+
=====================
|
|
442
|
+
|
|
443
|
+
- Update utilities package to 1.0.68
|
|
444
|
+
- Add Password Validation disclaimer
|
|
445
|
+
|
|
446
|
+
## 1.0.187 / 15/9/2025
|
|
447
|
+
|
|
448
|
+
=====================
|
|
449
|
+
|
|
450
|
+
- Update utilities package to 1.0.67
|
|
451
|
+
|
|
452
|
+
## 1.0.186 11-09-2025
|
|
453
|
+
|
|
454
|
+
====================
|
|
455
|
+
|
|
456
|
+
- Fixing password validation issue in TextBoxComponent
|
|
457
|
+
|
|
458
|
+
## 1.0.185 07-09-2025
|
|
459
|
+
|
|
460
|
+
====================
|
|
461
|
+
|
|
462
|
+
- DropdownList Enable Select all.
|
|
463
|
+
|
|
464
|
+
## 1.0.184 03-09-2025
|
|
465
|
+
|
|
466
|
+
====================
|
|
467
|
+
|
|
468
|
+
- dropdownlist place error message outside input style
|
|
469
|
+
|
|
470
|
+
## 1.0.183 03-09-2025
|
|
471
|
+
|
|
472
|
+
====================
|
|
473
|
+
|
|
474
|
+
- Fix FileUpload issues
|
|
475
|
+
- Fix TextArea SpeechRecognition issue.
|
|
476
|
+
|
|
477
|
+
## 1.0.182 28-08-2025
|
|
478
|
+
|
|
479
|
+
====================
|
|
480
|
+
|
|
481
|
+
- Update utilities package to 1.0.66
|
|
482
|
+
- Fix FileUpload issues
|
|
483
|
+
- Enhancement for textarea, multi lingual textbox
|
|
484
|
+
|
|
485
|
+
## 1.0.181 26-08-2025
|
|
486
|
+
|
|
487
|
+
====================
|
|
488
|
+
|
|
489
|
+
- Update utilities package to 1.0.64
|
|
490
|
+
|
|
491
|
+
# 1.0.178 20-08-2025 (deprecated)
|
|
492
|
+
====================
|
|
493
|
+
- Fileupload component
|
|
494
|
+
- fix accepted types issue.
|
|
495
|
+
- fix error display issue.
|
|
496
|
+
|
|
497
|
+
# 1.0.177 18-08-2025 (deprecated)
|
|
498
|
+
====================
|
|
499
|
+
- Enhance File-Upload Component
|
|
500
|
+
- Fix FileUplaod typo to be FileUpload
|
|
501
|
+
|
|
502
|
+
# 1.0.176 11-08-2025
|
|
503
|
+
====================
|
|
504
|
+
- Updating utilities package version.
|
|
505
|
+
|
|
506
|
+
# 1.0.173 06-08-2025
|
|
507
|
+
====================
|
|
508
|
+
- Add desplayValue getter in all controls to handle selected values
|
|
509
|
+
- Fix some issue in file upload
|
|
510
|
+
|
|
511
|
+
# 1.0.172 06-08-2025
|
|
512
|
+
====================
|
|
513
|
+
- Add desplayValue in all controls to handle selected values
|
|
514
|
+
|
|
515
|
+
|
|
516
|
+
# 1.0.171 04-08-2025
|
|
517
|
+
====================
|
|
518
|
+
- add PreventDoubleClickDirective to handle double click issues
|
|
519
|
+
|
|
520
|
+
# 1.0.168 03-08-2025
|
|
521
|
+
====================
|
|
522
|
+
- Fix mic in `text-area`.
|
|
523
|
+
- Handle navigation event in paging `enableBrowserNavigation`.
|
|
524
|
+
|
|
525
|
+
## 1.0.167 29-07-2025
|
|
526
|
+
=====================
|
|
527
|
+
- add fixes to `date-picker`, and `dropdownlist` components for pageFilter popup
|
|
528
|
+
|
|
529
|
+
## 1.0.170 / 23-7-2024 (Using Angular 19)
|
|
530
|
+
|
|
531
|
+
=====================
|
|
532
|
+
|
|
533
|
+
- Update BBSF to use Angular 19
|
|
534
|
+
- Update utilities package
|
|
535
|
+
|
|
536
|
+
## 1.0.166 / 6/5/2025
|
|
537
|
+
=====================
|
|
538
|
+
Added extra options to **MapAutoCompleteOptions** advanced view mode
|
|
539
|
+
- Sets the zoom level for the map > `zoom`
|
|
540
|
+
- Finding a location by a specific address > `address`
|
|
541
|
+
- Boolean to enable fallback behavior if the address lookup fails > `enableFallbackAddress`
|
|
542
|
+
- Option to validates that the selected location is within a specific city boundary > `validateLocationWithinCity`
|
|
543
|
+
- Added componentRestrictions Geo Restriction option > `country`
|
|
544
|
+
|
|
545
|
+
Fixed href issue in **FileUploaderComponent**
|
|
546
|
+
|
|
547
|
+
## 1.0.161 / 12-3-2025
|
|
548
|
+
=====================
|
|
549
|
+
- Enable Grouping feature in dropdown control (Added hasGroup property in DropdownOptions and group property in DropdownListItem)
|
|
550
|
+
## 1.0.160 / 26-2-2025
|
|
551
|
+
=====================
|
|
552
|
+
- Tag Fix value null check
|
|
553
|
+
|
|
554
|
+
|
|
555
|
+
## 1.0.159 / 16-2-2025
|
|
556
|
+
|
|
557
|
+
=====================
|
|
558
|
+
|
|
559
|
+
- Update utilities package
|
|
560
|
+
- Fix TextBox when value undenied in check max_length
|
|
561
|
+
|
|
562
|
+
## 1.0.158 / 16-2-2025
|
|
563
|
+
|
|
564
|
+
=====================
|
|
565
|
+
|
|
566
|
+
- update utilities package
|
|
567
|
+
|
|
568
|
+
## 1.0.157 / 30-12-2024
|
|
569
|
+
|
|
570
|
+
=====================
|
|
571
|
+
|
|
572
|
+
* Fix bug in TextBox when delete max limit chars
|
|
573
|
+
|
|
574
|
+
## 1.0.156 / 28-11-2024
|
|
575
|
+
|
|
576
|
+
=====================
|
|
577
|
+
|
|
578
|
+
* Fix bug in TextArea when speechrecoginitoin is disabled
|
|
579
|
+
|
|
580
|
+
## 1.0.155 / 28-11-2024
|
|
581
|
+
|
|
582
|
+
=====================
|
|
583
|
+
|
|
584
|
+
* Fix bug in Repeater table control on delete item
|
|
585
|
+
|
|
586
|
+
## 1.0.154 / 28-11-2024
|
|
587
|
+
|
|
588
|
+
=====================
|
|
589
|
+
**Fix TextArea When Using in Repeater**
|
|
590
|
+
|
|
591
|
+
## 1.0.153 / 27-11-2024
|
|
592
|
+
|
|
593
|
+
=====================
|
|
594
|
+
**Fix Repeater table control on delete item**
|
|
595
|
+
|
|
596
|
+
## 1.0.152 / 3-9-2024
|
|
597
|
+
|
|
598
|
+
=====================
|
|
599
|
+
-multi tenant
|
|
600
|
+
|
|
601
|
+
## 1.0.151 / 19-8-2024
|
|
602
|
+
|
|
603
|
+
======================
|
|
604
|
+
|
|
605
|
+
* Added MarkdownEditor Control
|
|
606
|
+
|
|
607
|
+
## 1.0.150 / 8-8-2024
|
|
608
|
+
|
|
609
|
+
======================
|
|
610
|
+
|
|
611
|
+
* Updated TextAreaComponent speech language select with UI fixes
|
|
612
|
+
|
|
613
|
+
## 1.0.149 / 6-8-2024
|
|
614
|
+
|
|
615
|
+
======================
|
|
616
|
+
|
|
617
|
+
* Updated TextAreaComponent speech language select
|
|
618
|
+
|
|
619
|
+
## 1.0.148 / 4-8-2024
|
|
620
|
+
|
|
621
|
+
===================
|
|
622
|
+
|
|
623
|
+
* fixed UI bug in speech to text of TextAreaComponent
|
|
624
|
+
|
|
625
|
+
## 1.0.147 / 4-8-2024
|
|
626
|
+
|
|
627
|
+
===================
|
|
628
|
+
|
|
629
|
+
* fixed bug in speech to text of TextAreaComponent
|
|
630
|
+
|
|
631
|
+
## 1.0.146 / 4-8-2024
|
|
632
|
+
|
|
633
|
+
===================
|
|
634
|
+
|
|
635
|
+
* added feature spech to text into TextAreaComponent
|
|
636
|
+
|
|
637
|
+
## 1.0.145 / 24-7-2024
|
|
638
|
+
|
|
639
|
+
===================
|
|
640
|
+
|
|
641
|
+
* fix naming in file upload control
|
|
642
|
+
|
|
643
|
+
## 1.0.144 / 24-7-2024
|
|
644
|
+
|
|
645
|
+
===================
|
|
646
|
+
|
|
647
|
+
* Fix viewing File upload control while options.isUploadFileAsync == false
|
|
648
|
+
|
|
649
|
+
## 1.0.143 / 16-7-2024
|
|
650
|
+
|
|
651
|
+
===================
|
|
652
|
+
|
|
653
|
+
* Update imports for sweetalert package to avoid inline style injected to DOM
|
|
654
|
+
* import style inside your applications
|
|
655
|
+
|
|
656
|
+
## 1.0.142 / 3-6-2024
|
|
657
|
+
|
|
658
|
+
===================
|
|
659
|
+
|
|
660
|
+
* Update Utilities Library verion
|
|
661
|
+
|
|
662
|
+
## 1.0.141 / 18-4-2024
|
|
663
|
+
|
|
664
|
+
===================
|
|
665
|
+
|
|
666
|
+
* Fix File uploader loading issue
|
|
667
|
+
|
|
668
|
+
## 1.0.140 / 3-4-2024
|
|
669
|
+
|
|
670
|
+
===================
|
|
671
|
+
|
|
672
|
+
* Fix delete in repeater
|
|
673
|
+
|
|
674
|
+
## 1.0.139 / 2-4-2024
|
|
675
|
+
|
|
676
|
+
===================
|
|
677
|
+
|
|
678
|
+
* Update Utilities Library
|
|
679
|
+
* Fix delete in repeater
|
|
680
|
+
|
|
681
|
+
## 1.0.138 / 1-4-2024
|
|
682
|
+
|
|
683
|
+
===================
|
|
684
|
+
|
|
685
|
+
* Update Utilities Library
|
|
686
|
+
|
|
687
|
+
## 1.0.137 / 31-3-2024
|
|
688
|
+
|
|
689
|
+
===================
|
|
690
|
+
|
|
691
|
+
* Fix File uploader drop zone
|
|
692
|
+
|
|
693
|
+
## 1.0.136 / 28-3-2024
|
|
694
|
+
|
|
695
|
+
===================
|
|
696
|
+
|
|
697
|
+
* Update Utilities Library
|
|
698
|
+
|
|
699
|
+
## 1.0.135 / 27-3-2024
|
|
700
|
+
|
|
701
|
+
===================
|
|
702
|
+
|
|
703
|
+
* Update Utilities Library
|
|
704
|
+
* Fix Delete File & Allowed File Type Issue In FileUpload Control
|
|
705
|
+
|
|
706
|
+
## 1.0.134 / 24-3-2024
|
|
707
|
+
|
|
708
|
+
===================
|
|
709
|
+
|
|
710
|
+
* Fix delete in repeater control
|
|
711
|
+
|
|
712
|
+
## 1.0.133 / 24-3-2024
|
|
713
|
+
|
|
714
|
+
===================
|
|
715
|
+
|
|
716
|
+
* Fix naming convention in repeater control while edit
|
|
717
|
+
|
|
718
|
+
## 1.0.132 / 21-3-2024
|
|
719
|
+
|
|
720
|
+
===================
|
|
721
|
+
|
|
722
|
+
* Add outputFunction Prop in ControlOptionsBase to use it while add a control in repeater
|
|
723
|
+
* add new type of repeater (checkbox control)
|
|
724
|
+
|
|
725
|
+
## 1.0.131 / 20-3-2024
|
|
726
|
+
|
|
727
|
+
===================
|
|
728
|
+
|
|
729
|
+
* Fix File-Upload Control DTO Bug
|
|
730
|
+
|
|
731
|
+
## 1.0.130 / 19-3-2024
|
|
732
|
+
|
|
733
|
+
===================
|
|
734
|
+
|
|
735
|
+
* Fix Multiple File-Upload Control Bug
|
|
736
|
+
|
|
737
|
+
## 1.0.129 / 14-3-2024
|
|
738
|
+
|
|
739
|
+
===================
|
|
740
|
+
|
|
741
|
+
* Fix File-Upload Control Name Bug
|
|
742
|
+
|
|
743
|
+
## 1.0.128 / 12-3-2024
|
|
744
|
+
|
|
745
|
+
===================
|
|
746
|
+
|
|
747
|
+
* Update Utilities Library
|
|
748
|
+
|
|
749
|
+
## 1.0.127 / 6-3-2024
|
|
750
|
+
|
|
751
|
+
===================
|
|
752
|
+
|
|
753
|
+
* Update Utilities Library
|
|
754
|
+
|
|
755
|
+
## 1.0.126 / 6-3-2024
|
|
756
|
+
|
|
757
|
+
===================
|
|
758
|
+
|
|
759
|
+
* Update Utilities Library
|
|
760
|
+
|
|
761
|
+
## 1.0.125 / 5-3-2024
|
|
762
|
+
|
|
763
|
+
===================
|
|
764
|
+
|
|
765
|
+
* Update Utilities Library
|
|
766
|
+
|
|
767
|
+
## 1.0.124 / 27-2-2024
|
|
768
|
+
|
|
769
|
+
===================
|
|
770
|
+
|
|
771
|
+
* Fix Bug in TextBox,TextArea,MultLingualTextArea Max Length Validation Msg,FileUpload and DateTimePicker
|
|
772
|
+
|
|
773
|
+
## 1.0.123 / 22-2-2024
|
|
774
|
+
|
|
775
|
+
===================
|
|
776
|
+
|
|
777
|
+
* Fix Bug in Paging Component
|
|
778
|
+
|
|
779
|
+
## 1.0.122 / 15-2-2024
|
|
780
|
+
|
|
781
|
+
===================
|
|
782
|
+
|
|
783
|
+
* Disable History List Of AutoComplate Control
|
|
784
|
+
* Fix Paging Control (Page Change Bug)
|
|
785
|
+
|
|
786
|
+
## 1.0.121 / 14-2-2024
|
|
787
|
+
|
|
788
|
+
===================
|
|
789
|
+
|
|
790
|
+
* Fix English and Arabic Validation Error for MultiLingualTextBox and MultiLingualHtmlEditor
|
|
791
|
+
* Fix Characters count validation message in MultLingualTextBox
|
|
792
|
+
* Update resource key to be VAL_ArabicIsRequiredAndOnly50CharactersEnglish in MultilingualTextbox, MultilingualTextArea,textbox and ValidationErrorMessage
|
|
793
|
+
* Fix placeholder in MultilingualTextbox and MultilingualTextArea
|
|
794
|
+
* Update Paging component fill totalcount of paging options
|
|
795
|
+
* Add new file types for filer uploader in FileType Enums
|
|
796
|
+
* Return file name, file type while upload file completed
|
|
797
|
+
|
|
798
|
+
## 1.0.120 / 11-2-2024
|
|
799
|
+
|
|
800
|
+
===================
|
|
801
|
+
*Prevent Form Submit Twice
|
|
802
|
+
|
|
803
|
+
## 1.0.119 / 8-2-2024
|
|
804
|
+
|
|
805
|
+
===================
|
|
806
|
+
|
|
807
|
+
* Update Utilities Library
|
|
808
|
+
|
|
809
|
+
## 1.0.118 / 8-2-2024
|
|
810
|
+
|
|
811
|
+
===================
|
|
812
|
+
|
|
813
|
+
* Update Utilities Library
|
|
814
|
+
* Fix FileUpload Loader issue
|
|
815
|
+
|
|
816
|
+
## 1.0.117 / 7-2-2024
|
|
817
|
+
|
|
818
|
+
===================
|
|
819
|
+
|
|
820
|
+
* Fix MultiligualTextBox Arabic Binding issue
|
|
821
|
+
|
|
822
|
+
## 1.0.116 / 7-2-2024
|
|
823
|
+
|
|
824
|
+
===================
|
|
825
|
+
|
|
826
|
+
* Fix AutoComplate Control Custom Validator Issue
|
|
827
|
+
|
|
828
|
+
## 1.0.115 / 6-2-2024
|
|
829
|
+
|
|
830
|
+
===================
|
|
831
|
+
|
|
832
|
+
* Fix AutoComplate Control Custom Validator Issue
|
|
833
|
+
|
|
834
|
+
## 1.0.114 / 5-2-2024
|
|
835
|
+
|
|
836
|
+
===================
|
|
837
|
+
|
|
838
|
+
* Update AutoComplate Control (Add Extra Filter- Take Name As Input)
|
|
839
|
+
* Update TagsInput Control(Add Extra Filter- Take Name As Input)
|
|
840
|
+
* Update Form Control(Allow Disable Submit With Enter Press)
|
|
841
|
+
|
|
842
|
+
## 1.0.113 / 4-1-2024
|
|
843
|
+
|
|
844
|
+
===================
|
|
845
|
+
|
|
846
|
+
* Update Utilities Library
|
|
847
|
+
* Update File Upload Control To Allow Upload File Async
|
|
848
|
+
* Fix DateTimePicker Issue When Use In Filter Mode
|
|
849
|
+
|
|
850
|
+
## 1.0.112 / 21-12-2023
|
|
851
|
+
|
|
852
|
+
===================
|
|
853
|
+
|
|
854
|
+
* update controls, controls options with new naming convention, and update datepicker controls (remove time zone offest)
|
|
855
|
+
|
|
856
|
+
## 1.0.111 / 13-12-2023
|
|
857
|
+
|
|
858
|
+
===================
|
|
859
|
+
|
|
860
|
+
* Add Advanced map control.
|
|
861
|
+
|
|
862
|
+
## 1.0.110 / 11-12-2023
|
|
863
|
+
|
|
864
|
+
===================
|
|
865
|
+
|
|
866
|
+
* Upgraded Angular version (17) and upgraded related libraries.
|
|
867
|
+
|
|
868
|
+
## 1.0.109 / 3-12-2023
|
|
869
|
+
|
|
870
|
+
===================
|
|
871
|
+
|
|
872
|
+
* Update Utilities Library
|
|
873
|
+
|
|
874
|
+
## 1.0.108 / 3-12-2023
|
|
875
|
+
|
|
876
|
+
===================
|
|
877
|
+
|
|
878
|
+
* Update Utilities Library
|
|
879
|
+
|
|
880
|
+
## 1.0.107 / 29-11-2023
|
|
881
|
+
|
|
882
|
+
===================
|
|
883
|
+
|
|
884
|
+
* Update Utilities Library
|
|
885
|
+
|
|
886
|
+
## 1.0.106 / 19-11-2023
|
|
887
|
+
|
|
888
|
+
===================
|
|
889
|
+
|
|
890
|
+
* Update Utilities Library
|
|
891
|
+
|
|
892
|
+
## 1.0.105 / 16-11-2023
|
|
893
|
+
|
|
894
|
+
===================
|
|
895
|
+
|
|
896
|
+
* Update Utilities Library
|
|
897
|
+
|
|
898
|
+
## 1.0.104 / 16-10-2023
|
|
899
|
+
|
|
900
|
+
===================
|
|
901
|
+
|
|
902
|
+
* Update textbox control add (OnBlur) output when curser get out of input.
|
|
903
|
+
|
|
904
|
+
## 1.0.103 / 15-10-2023
|
|
905
|
+
|
|
906
|
+
===================
|
|
907
|
+
|
|
908
|
+
* Update AutocompleteTextBox Control
|
|
909
|
+
|
|
910
|
+
## 1.0.102 / 12-10-2023
|
|
911
|
+
|
|
912
|
+
===================
|
|
913
|
+
|
|
914
|
+
* Update AutocompleteTextBox Control
|
|
915
|
+
|
|
916
|
+
## 1.0.101 / 14-9-2023
|
|
917
|
+
|
|
918
|
+
===================
|
|
919
|
+
|
|
920
|
+
* Add Custom Template to AutocompleteTextBox options
|
|
921
|
+
|
|
922
|
+
## 1.0.100 / 15-8-2023
|
|
923
|
+
|
|
924
|
+
===================
|
|
925
|
+
|
|
926
|
+
* Update Utilities Library
|
|
927
|
+
|
|
928
|
+
## 1.0.99 / 15-8-2023
|
|
929
|
+
|
|
930
|
+
===================
|
|
931
|
+
|
|
932
|
+
* Update AutocompleteTextBox Control
|
|
933
|
+
* Update FileUpload Control
|
|
934
|
+
* Update Form Control
|
|
935
|
+
|
|
936
|
+
## 1.0.97 / 19-7-2023
|
|
937
|
+
|
|
938
|
+
===================
|
|
939
|
+
|
|
940
|
+
* Update Utilities Library
|
|
941
|
+
* fix MultiLingualHtmlEditor Control
|
|
942
|
+
|
|
943
|
+
## 1.0.96 / 18-7-2023
|
|
944
|
+
|
|
945
|
+
===================
|
|
946
|
+
|
|
947
|
+
* Add Default value when BBSF Control is Readonly and not has value.
|
|
948
|
+
|
|
949
|
+
## 1.0.95 / 14-6-2023
|
|
950
|
+
|
|
951
|
+
===================
|
|
952
|
+
|
|
953
|
+
* Add Readonly Option to All BBSF Controls
|
|
954
|
+
|
|
955
|
+
## 1.0.94 / 21-5-2023
|
|
956
|
+
|
|
957
|
+
===================
|
|
958
|
+
|
|
959
|
+
* Fix File-Upload Control Bug (Delete file from multiple files has an error )
|
|
960
|
+
|
|
961
|
+
## 1.0.93 / 02-5-2023
|
|
962
|
+
|
|
963
|
+
===================
|
|
964
|
+
|
|
965
|
+
* Fix Phone Control Bug
|
|
966
|
+
|
|
967
|
+
## 1.0.92 / 13-4-2023
|
|
968
|
+
|
|
969
|
+
===================
|
|
970
|
+
|
|
971
|
+
* Fix Direction For All Control
|
|
972
|
+
|
|
973
|
+
## 1.0.91 / 8-4-2023
|
|
974
|
+
|
|
975
|
+
===================
|
|
976
|
+
|
|
977
|
+
* Update Dropdown Control
|
|
978
|
+
|
|
979
|
+
## 1.0.90 / 27-3-2023
|
|
980
|
+
|
|
981
|
+
===================
|
|
982
|
+
|
|
983
|
+
* Update Utilities Library
|
|
984
|
+
* Update Controls
|
|
985
|
+
|
|
986
|
+
## 1.0.89 / 26-3-2023 (!!!Warning!! Testing Release)
|
|
987
|
+
|
|
988
|
+
===================
|
|
989
|
+
|
|
990
|
+
* Update Utilities Library
|
|
991
|
+
|
|
992
|
+
## 1.0.88 / 22-3-2023
|
|
993
|
+
|
|
994
|
+
===================
|
|
995
|
+
|
|
996
|
+
* Update Utilities Library
|
|
997
|
+
|
|
998
|
+
## 1.0.86 / 14-2-2023
|
|
999
|
+
|
|
1000
|
+
===================
|
|
1001
|
+
|
|
1002
|
+
* Solve Textarea Control Bugs
|
|
1003
|
+
* Solve Upload-File Control Bugs
|
|
1004
|
+
|
|
1005
|
+
## 1.0.84 / 12-2-2023
|
|
1006
|
+
|
|
1007
|
+
===================
|
|
1008
|
+
|
|
1009
|
+
* Update AppBase Component
|
|
1010
|
+
* Solve UI Issue In All Controls
|
|
1011
|
+
|
|
1012
|
+
## 1.0.83 / 25-1-2023
|
|
1013
|
+
|
|
1014
|
+
===================
|
|
1015
|
+
|
|
1016
|
+
* Fix Modal Dismiss Issue
|
|
1017
|
+
|
|
1018
|
+
## 1.0.82 / 25-1-2023
|
|
1019
|
+
|
|
1020
|
+
===================
|
|
1021
|
+
|
|
1022
|
+
* Fix TextBox control
|
|
1023
|
+
* Fix MultiLingualTextBox control
|
|
1024
|
+
* Fix MultiLingualHTML control
|
|
1025
|
+
|
|
1026
|
+
## 1.0.81 / 24-1-2023
|
|
1027
|
+
|
|
1028
|
+
===================
|
|
1029
|
+
|
|
1030
|
+
* Fix HTML Editor control
|
|
1031
|
+
* Fix Multilingual HTML Editor control
|
|
1032
|
+
* Fix Tag-Input control
|
|
1033
|
+
* Fix All UI Bugs
|
|
1034
|
+
|
|
1035
|
+
## 1.0.80 / 18-1-2023
|
|
1036
|
+
|
|
1037
|
+
===================
|
|
1038
|
+
|
|
1039
|
+
* Fix HTML Editor control inline style
|
|
1040
|
+
* Fix Multilingual HTML Editor control inline style
|
|
1041
|
+
* Change Image Upload cropper tolltip to be translated
|
|
1042
|
+
|
|
1043
|
+
## 1.0.79 / 15-1-2023
|
|
1044
|
+
|
|
1045
|
+
===================
|
|
1046
|
+
*Update App Base and Controls
|
|
1047
|
+
|
|
1048
|
+
## 1.0.78 / 11-1-2023
|
|
1049
|
+
|
|
1050
|
+
===================
|
|
1051
|
+
|
|
1052
|
+
* Solve Image Control Bug
|
|
1053
|
+
|
|
1054
|
+
## 1.0.77 / 11-1-2023
|
|
1055
|
+
|
|
1056
|
+
===================
|
|
1057
|
+
|
|
1058
|
+
* Solve Image Control Bug
|
|
1059
|
+
|
|
1060
|
+
## 1.0.74 / 9-1-2023
|
|
1061
|
+
|
|
1062
|
+
===================
|
|
1063
|
+
|
|
1064
|
+
* Add UI Changes
|
|
1065
|
+
|
|
1066
|
+
## 1.0.73 / 5-1-2023
|
|
1067
|
+
|
|
1068
|
+
===================
|
|
1069
|
+
|
|
1070
|
+
* Update utilities Version
|
|
1071
|
+
|
|
1072
|
+
## 1.0.72 / 3-1-2023
|
|
1073
|
+
|
|
1074
|
+
===================
|
|
1075
|
+
|
|
1076
|
+
* Update utilities Version
|
|
1077
|
+
|
|
1078
|
+
## 1.0.71 / 25-12-2022
|
|
1079
|
+
|
|
1080
|
+
===================
|
|
1081
|
+
|
|
1082
|
+
* Update utilities Version
|
|
1083
|
+
|
|
1084
|
+
## 1.0.70 / 22-12-2022
|
|
1085
|
+
|
|
1086
|
+
===================
|
|
1087
|
+
|
|
1088
|
+
* Update utilities Version
|
|
1089
|
+
|
|
1090
|
+
## 1.0.69 / 05-12-2022
|
|
1091
|
+
|
|
1092
|
+
===================
|
|
1093
|
+
*Add Page Header Control
|
|
1094
|
+
*Add BBSF Base Component
|
|
1095
|
+
*Update Captcha Control
|
|
1096
|
+
*Add Custom Date Pipe
|
|
1097
|
+
*Update Utilities version
|
|
1098
|
+
|
|
1099
|
+
## 1.0.68 / 22-11-2022
|
|
1100
|
+
|
|
1101
|
+
===================
|
|
1102
|
+
*Fix Range Number in Repeater Control when control type number
|
|
1103
|
+
|
|
1104
|
+
## 1.0.66 / 20-11-2022
|
|
1105
|
+
|
|
1106
|
+
* Controls UI revamp
|
|
1107
|
+
* Textbox
|
|
1108
|
+
* Textarea
|
|
1109
|
+
* Multilingual Textbox
|
|
1110
|
+
* Multilingual Textarea
|
|
1111
|
+
* Checkbox
|
|
1112
|
+
* Dropdown
|
|
1113
|
+
* Repeater Table
|
|
1114
|
+
* Image Upload
|
|
1115
|
+
* Tags Input
|
|
1116
|
+
* Paging
|
|
1117
|
+
|
|
1118
|
+
## 1.0.65 / 15-11-2022
|
|
1119
|
+
|
|
1120
|
+
===================
|
|
1121
|
+
|
|
1122
|
+
* Add Captcha control
|
|
1123
|
+
|
|
1124
|
+
## 1.0.64 / 07-11-2022
|
|
1125
|
+
|
|
1126
|
+
===================
|
|
1127
|
+
|
|
1128
|
+
* Enable two way binding to all controls
|
|
1129
|
+
* Add new options to Confirmation Modal (showCancelButton - showCloseButton)
|
|
1130
|
+
* Add option to all controls to allow label extra classes (LabelExtraClasses)
|
|
1131
|
+
|
|
1132
|
+
## 1.0.63 / 18-10-2022
|
|
1133
|
+
|
|
1134
|
+
===================
|
|
1135
|
+
|
|
1136
|
+
* Fix Profile Image Upload control
|
|
1137
|
+
|
|
1138
|
+
## 1.0.62 / 11-10-2022
|
|
1139
|
+
|
|
1140
|
+
===================
|
|
1141
|
+
|
|
1142
|
+
* Fix modal dismiss in form submission success
|
|
1143
|
+
* Add new property to (DisableModalDismiss) to FormOptions
|
|
1144
|
+
* Fix tags input control, add tag selected text when losing focus if AllowNewSelection set to true
|
|
1145
|
+
|
|
1146
|
+
## 1.0.61 / 10-10-2022
|
|
1147
|
+
|
|
1148
|
+
===================
|
|
1149
|
+
|
|
1150
|
+
* Update tags input control validation (Handle unmatched selection when enabling add new selection)
|
|
1151
|
+
|
|
1152
|
+
## 1.0.60 / 2-10-2022
|
|
1153
|
+
|
|
1154
|
+
===================
|
|
1155
|
+
|
|
1156
|
+
* Update lang-mode cases in MultiLingualTextArea & MultiLingualTextBox controls
|
|
1157
|
+
|
|
1158
|
+
## 1.0.59 / 29-9-2022
|
|
1159
|
+
|
|
1160
|
+
===================
|
|
1161
|
+
|
|
1162
|
+
* Update repeater-table control
|
|
1163
|
+
* Add DisableAddButton to remove add button from the table
|
|
1164
|
+
* Add DisableDeleteButton to remove the delete button from the table
|
|
1165
|
+
* Add IsHiddenInput to RepeaterField that allows hiding columns from the table
|
|
1166
|
+
* Update ControlOptionsBase, Add IsReadonly options that allow control to be submitted with the form instead of IsDisabled (only applied to text-box control)
|
|
1167
|
+
|
|
1168
|
+
## 1.0.58 / 19-9-2022
|
|
1169
|
+
|
|
1170
|
+
===================
|
|
1171
|
+
|
|
1172
|
+
* Update tag-input control to allow reset and delete
|
|
1173
|
+
* Update repeater control
|
|
1174
|
+
|
|
1175
|
+
## 1.0.57 / 11-9-2022
|
|
1176
|
+
|
|
1177
|
+
===================
|
|
1178
|
+
|
|
1179
|
+
* Fix tags input (hanle backspace to remove no matched error)
|
|
1180
|
+
|
|
1181
|
+
## 1.0.53 / 18-8-2022
|
|
1182
|
+
|
|
1183
|
+
===================
|
|
1184
|
+
|
|
1185
|
+
* Update Location control(delete value when value empty)
|
|
1186
|
+
|
|
1187
|
+
## 1.0.52 / 16-8-2022
|
|
1188
|
+
|
|
1189
|
+
===================
|
|
1190
|
+
|
|
1191
|
+
* Update Tag input control(custom validation mode)
|
|
1192
|
+
|
|
1193
|
+
## 1.0.51 / 14-8-2022
|
|
1194
|
+
|
|
1195
|
+
===================
|
|
1196
|
+
|
|
1197
|
+
* Update utilities Version
|
|
1198
|
+
|
|
1199
|
+
## 1.0.50 / 4-8-2022
|
|
1200
|
+
|
|
1201
|
+
===================
|
|
1202
|
+
|
|
1203
|
+
* Replace lang attribute with b-lang
|
|
1204
|
+
* Update MapAutoComplete control to enable edit mode
|
|
1205
|
+
|
|
1206
|
+
## 1.0.49 / 28-7-2022
|
|
1207
|
+
|
|
1208
|
+
===================
|
|
1209
|
+
|
|
1210
|
+
* Fix bug in autocomplete control
|
|
1211
|
+
|
|
1212
|
+
## 1.0.48 / 6-7-2022
|
|
1213
|
+
|
|
1214
|
+
===================
|
|
1215
|
+
|
|
1216
|
+
* Update tag input control
|
|
1217
|
+
* Update tag input dto
|
|
1218
|
+
* Update tag input options
|
|
1219
|
+
|
|
1220
|
+
## 1.0.47 / 5-7-2022
|
|
1221
|
+
|
|
1222
|
+
===================
|
|
1223
|
+
|
|
1224
|
+
* Add DisableBlockUI and StartPagingCallback to paging control options
|
|
1225
|
+
|
|
1226
|
+
## 1.0.46 / 4-7-2022
|
|
1227
|
+
|
|
1228
|
+
===================
|
|
1229
|
+
|
|
1230
|
+
* [Paging control] Add clearFilter method to reset all filters
|
|
1231
|
+
* [PagingOptions] Add property (ResetFilterButtonName) (string), to select button that clears filters
|
|
1232
|
+
* [Paging control] Check for ResetFilterButtonName, if not null then add event listener (click) to call clearFilter method
|
|
1233
|
+
* [Paging control] Add method (getFiltersValue) to get all filters in paging, Usually used in export method
|
|
1234
|
+
|
|
1235
|
+
## 1.0.45 / 23-6-2022
|
|
1236
|
+
|
|
1237
|
+
===================
|
|
1238
|
+
|
|
1239
|
+
* Change paging control update items action,Pass PagingPayload object in body instead of params
|
|
1240
|
+
* Fix bug in form control ngAfterViewInit
|
|
1241
|
+
|
|
1242
|
+
## 1.0.44 / 14-6-2022
|
|
1243
|
+
|
|
1244
|
+
===================
|
|
1245
|
+
|
|
1246
|
+
* Fix bugs in DropDown,TagsInput controls
|
|
1247
|
+
|
|
1248
|
+
## 1.0.43 / 9-6-2022
|
|
1249
|
+
|
|
1250
|
+
===================
|
|
1251
|
+
|
|
1252
|
+
* Fix bugs in DateTimePicker,FileUpload,Form,Paging,Toggle slide controls
|
|
1253
|
+
|
|
1254
|
+
## 1.0.42 / 2-6-2022
|
|
1255
|
+
|
|
1256
|
+
===================
|
|
1257
|
+
*Fix FileUpload "Upload" resource
|
|
1258
|
+
*Fix MultiLingualTextBox Arabic validation
|
|
1259
|
+
*Fix TextBox Arabic validation
|
|
1260
|
+
*Fix TagsInput noItemsMAtch message
|
|
1261
|
+
*Add AreaOfFocus Guid to Enums
|
|
1262
|
+
*Fix License FileType to BN
|
|
1263
|
+
|
|
1264
|
+
## 1.0.40/ 25-5-2022
|
|
1265
|
+
|
|
1266
|
+
===================
|
|
1267
|
+
|
|
1268
|
+
* Update repeater model
|
|
1269
|
+
|
|
1270
|
+
## 1.0.38/ 16-5-2022
|
|
1271
|
+
|
|
1272
|
+
===================
|
|
1273
|
+
|
|
1274
|
+
* Update utilities library version
|
|
1275
|
+
|
|
1276
|
+
## 1.0.37/ 16-5-2022
|
|
1277
|
+
|
|
1278
|
+
===================
|
|
1279
|
+
|
|
1280
|
+
* Update all control
|
|
1281
|
+
* Update all Models
|
|
1282
|
+
* Update utilities library version
|
|
1283
|
+
|
|
1284
|
+
## 1.0.36/ 28-4-2022
|
|
1285
|
+
|
|
1286
|
+
===================
|
|
1287
|
+
|
|
1288
|
+
* Update Paging control
|
|
1289
|
+
|
|
1290
|
+
## 1.0.35/ 27-4-2022
|
|
1291
|
+
|
|
1292
|
+
===================
|
|
1293
|
+
|
|
1294
|
+
* Solve all bugs
|
|
1295
|
+
* Implementing Controls Patch Updates
|
|
1296
|
+
* Implementing BBSFDateTime Pipe
|
|
1297
|
+
|
|
1298
|
+
## 1.0.32 / 30-3-2022
|
|
1299
|
+
|
|
1300
|
+
===================
|
|
1301
|
+
|
|
1302
|
+
* Update utilities library version
|
|
1303
|
+
|
|
1304
|
+
## 1.0.31 / 29-3-2022
|
|
1305
|
+
|
|
1306
|
+
===================
|
|
1307
|
+
|
|
1308
|
+
* Update repeater-table control
|
|
1309
|
+
|
|
1310
|
+
## 1.0.29 / 27-3-2022
|
|
1311
|
+
|
|
1312
|
+
===================
|
|
1313
|
+
|
|
1314
|
+
* Add Repeater Table control
|
|
1315
|
+
* Update Complex Repeater control
|