@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.
Files changed (159) hide show
  1. package/README.md +1315 -1245
  2. package/fesm2022/bnsights-bbsf-controls.mjs +375 -345
  3. package/fesm2022/bnsights-bbsf-controls.mjs.map +1 -1
  4. package/lib/Shared/Models/DropdownOptions.d.ts +3 -0
  5. package/lib/Shared/Models/RepeaterOptions.d.ts +2 -0
  6. package/lib/controls/ConfirmationModal/ConfirmationModal.component.d.ts +0 -1
  7. package/lib/controls/MapAutoComplete/MapAutoComplete.component.d.ts +0 -1
  8. package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +1 -1
  9. package/lib/controls/Repeater/repeater/repeater.component.d.ts +7 -0
  10. package/lib/controls/Repeater/repeater-table/repeater-table.component.d.ts +7 -0
  11. package/lib/modules/bbsf-editors.module.d.ts +6 -7
  12. package/package.json +34 -37
  13. package/src/lib/assets/Style.scss +2 -0
  14. package/src/lib/assets/ace-builds/ace.js +1 -1
  15. package/src/lib/assets/ace-builds/mode-markdown.js +1 -1
  16. package/esm2022/bnsights-bbsf-controls.mjs +0 -5
  17. package/esm2022/lib/Shared/Components/app-base-component.mjs +0 -226
  18. package/esm2022/lib/Shared/Components/ng-tag-input.mjs +0 -336
  19. package/esm2022/lib/Shared/Directives/appPreventDoubleClick.directive.mjs +0 -39
  20. package/esm2022/lib/Shared/Directives/template-name.directive.mjs +0 -19
  21. package/esm2022/lib/Shared/Enums/CalendarView.mjs +0 -8
  22. package/esm2022/lib/Shared/Enums/ControlLayout.mjs +0 -6
  23. package/esm2022/lib/Shared/Enums/Countries.mjs +0 -247
  24. package/esm2022/lib/Shared/Enums/Enums.mjs +0 -36
  25. package/esm2022/lib/Shared/Enums/FileType.mjs +0 -29
  26. package/esm2022/lib/Shared/Enums/FilterType.mjs +0 -11
  27. package/esm2022/lib/Shared/Enums/FontSize.mjs +0 -7
  28. package/esm2022/lib/Shared/Enums/ForceDirection.mjs +0 -6
  29. package/esm2022/lib/Shared/Enums/IconPosition.mjs +0 -6
  30. package/esm2022/lib/Shared/Enums/ImageType.mjs +0 -10
  31. package/esm2022/lib/Shared/Enums/InputType.mjs +0 -10
  32. package/esm2022/lib/Shared/Enums/Insert.mjs +0 -9
  33. package/esm2022/lib/Shared/Enums/LanguageMode.mjs +0 -11
  34. package/esm2022/lib/Shared/Enums/LanguageValidation.mjs +0 -6
  35. package/esm2022/lib/Shared/Enums/Markdown.mjs +0 -20
  36. package/esm2022/lib/Shared/Enums/Misc.mjs +0 -7
  37. package/esm2022/lib/Shared/Enums/PagingActionMode.mjs +0 -6
  38. package/esm2022/lib/Shared/Enums/Para.mjs +0 -9
  39. package/esm2022/lib/Shared/Enums/PickerType.mjs +0 -7
  40. package/esm2022/lib/Shared/Enums/SelectMode.mjs +0 -6
  41. package/esm2022/lib/Shared/Enums/StartView.mjs +0 -7
  42. package/esm2022/lib/Shared/Enums/Style.mjs +0 -8
  43. package/esm2022/lib/Shared/Enums/StyleConfirmationMode.mjs +0 -7
  44. package/esm2022/lib/Shared/Enums/TagInputView.mjs +0 -7
  45. package/esm2022/lib/Shared/Enums/ToolbarButtons.mjs +0 -33
  46. package/esm2022/lib/Shared/Enums/map-enums.mjs +0 -15
  47. package/esm2022/lib/Shared/Enums/menu-list-enum.mjs +0 -6
  48. package/esm2022/lib/Shared/Models/Attribute.mjs +0 -3
  49. package/esm2022/lib/Shared/Models/AutocompleteDTO.mjs +0 -8
  50. package/esm2022/lib/Shared/Models/AutocompleteOptions.mjs +0 -39
  51. package/esm2022/lib/Shared/Models/CalendarDTO.mjs +0 -3
  52. package/esm2022/lib/Shared/Models/CalendarEventDTO.mjs +0 -3
  53. package/esm2022/lib/Shared/Models/CalendarOptions.mjs +0 -19
  54. package/esm2022/lib/Shared/Models/CancelDTO.mjs +0 -7
  55. package/esm2022/lib/Shared/Models/CaptchaStyle.mjs +0 -3
  56. package/esm2022/lib/Shared/Models/CheckBoxOptions.mjs +0 -11
  57. package/esm2022/lib/Shared/Models/ConfirmationModalOptions.mjs +0 -39
  58. package/esm2022/lib/Shared/Models/ControlOptionsBase.mjs +0 -17
  59. package/esm2022/lib/Shared/Models/CustomValidation.mjs +0 -14
  60. package/esm2022/lib/Shared/Models/DatePickerOptions.mjs +0 -40
  61. package/esm2022/lib/Shared/Models/DropdownListItem.mjs +0 -3
  62. package/esm2022/lib/Shared/Models/DropdownOptions.mjs +0 -38
  63. package/esm2022/lib/Shared/Models/EditPersonalImage.mjs +0 -7
  64. package/esm2022/lib/Shared/Models/EnglishArabicDTO.mjs +0 -10
  65. package/esm2022/lib/Shared/Models/FileDTO.mjs +0 -24
  66. package/esm2022/lib/Shared/Models/FileOptions.mjs +0 -15
  67. package/esm2022/lib/Shared/Models/FileUploadModel.mjs +0 -3
  68. package/esm2022/lib/Shared/Models/FileUploadOptions.mjs +0 -13
  69. package/esm2022/lib/Shared/Models/FilterItem.mjs +0 -8
  70. package/esm2022/lib/Shared/Models/FormOptions.mjs +0 -32
  71. package/esm2022/lib/Shared/Models/HtmlEditorOptions.mjs +0 -12
  72. package/esm2022/lib/Shared/Models/ImageUploadOptions.mjs +0 -14
  73. package/esm2022/lib/Shared/Models/MapAutoCompleteOptions.mjs +0 -12
  74. package/esm2022/lib/Shared/Models/MapAutocompleteDTO.mjs +0 -6
  75. package/esm2022/lib/Shared/Models/MarkdownEditorOptions.mjs +0 -24
  76. package/esm2022/lib/Shared/Models/MultiLingualHtmlEditorOptions.mjs +0 -9
  77. package/esm2022/lib/Shared/Models/MultiLingualTextAreaOptions.mjs +0 -9
  78. package/esm2022/lib/Shared/Models/MultiLingualTextBoxOptions.mjs +0 -17
  79. package/esm2022/lib/Shared/Models/MultilingualControlOptionsBase.mjs +0 -21
  80. package/esm2022/lib/Shared/Models/MultipleFileUploadModel.mjs +0 -9
  81. package/esm2022/lib/Shared/Models/PagingDTO.mjs +0 -13
  82. package/esm2022/lib/Shared/Models/PagingOptions.mjs +0 -49
  83. package/esm2022/lib/Shared/Models/PagingPayload.mjs +0 -3
  84. package/esm2022/lib/Shared/Models/PhoneOptions.mjs +0 -16
  85. package/esm2022/lib/Shared/Models/ProfileImageUploadOptions.mjs +0 -11
  86. package/esm2022/lib/Shared/Models/ProfilePictureDTO.mjs +0 -3
  87. package/esm2022/lib/Shared/Models/RadioButtonItem.mjs +0 -3
  88. package/esm2022/lib/Shared/Models/RadioButtonOptions.mjs +0 -7
  89. package/esm2022/lib/Shared/Models/RangeNumber.mjs +0 -3
  90. package/esm2022/lib/Shared/Models/Recaptcha.mjs +0 -6
  91. package/esm2022/lib/Shared/Models/RecaptchaOptions.mjs +0 -22
  92. package/esm2022/lib/Shared/Models/RepeaterField.mjs +0 -3
  93. package/esm2022/lib/Shared/Models/RepeaterOptions.mjs +0 -14
  94. package/esm2022/lib/Shared/Models/SaveDTO.mjs +0 -7
  95. package/esm2022/lib/Shared/Models/TagsInputDTO.mjs +0 -3
  96. package/esm2022/lib/Shared/Models/TagsInputOptions.mjs +0 -56
  97. package/esm2022/lib/Shared/Models/TextAreaOptions.mjs +0 -19
  98. package/esm2022/lib/Shared/Models/TextBoxOptions.mjs +0 -27
  99. package/esm2022/lib/Shared/Models/ToggleSlideOptions.mjs +0 -9
  100. package/esm2022/lib/Shared/Models/UploadPersonalImage.mjs +0 -7
  101. package/esm2022/lib/Shared/Models/bread-crumb.mjs +0 -8
  102. package/esm2022/lib/Shared/Models/control-filter-Item.mjs +0 -6
  103. package/esm2022/lib/Shared/Models/filter-options.mjs +0 -9
  104. package/esm2022/lib/Shared/Models/index.mjs +0 -58
  105. package/esm2022/lib/Shared/Models/page-header-options.mjs +0 -78
  106. package/esm2022/lib/Shared/Pipes/bbsf-date-time.pipe.mjs +0 -22
  107. package/esm2022/lib/Shared/Pipes/bbsf-date.pipe.mjs +0 -22
  108. package/esm2022/lib/Shared/config/environment.mjs +0 -12
  109. package/esm2022/lib/Shared/default_intl.mjs +0 -29
  110. package/esm2022/lib/Shared/services/ControlUtility.mjs +0 -162
  111. package/esm2022/lib/Shared/services/GlobalSettings.service.mjs +0 -30
  112. package/esm2022/lib/Shared/services/OnPagingFiltersChange.service.mjs +0 -24
  113. package/esm2022/lib/Shared/services/file-upload.service.mjs +0 -29
  114. package/esm2022/lib/Shared/services/index.mjs +0 -7
  115. package/esm2022/lib/Shared/services/render-component-service.service.mjs +0 -32
  116. package/esm2022/lib/Shared/services/validationErrorMassage.service.mjs +0 -125
  117. package/esm2022/lib/Shared/utils/date-formatter.mjs +0 -48
  118. package/esm2022/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.mjs +0 -299
  119. package/esm2022/lib/controls/Calendar/Calendar.component.mjs +0 -179
  120. package/esm2022/lib/controls/CheckBox/CheckBox.component.mjs +0 -121
  121. package/esm2022/lib/controls/ConfirmationModal/ConfirmationModal.component.mjs +0 -143
  122. package/esm2022/lib/controls/DateTimePicker/DateTimePicker.component.mjs +0 -240
  123. package/esm2022/lib/controls/DropdownList/DropdownList.component.mjs +0 -296
  124. package/esm2022/lib/controls/FileUpload/FileUpload.component.mjs +0 -741
  125. package/esm2022/lib/controls/Form/Form.component.mjs +0 -117
  126. package/esm2022/lib/controls/HtmlEditor/HtmlEditor.component.mjs +0 -185
  127. package/esm2022/lib/controls/ImageUpload/ImageUpload.component.mjs +0 -360
  128. package/esm2022/lib/controls/MapAutoComplete/MapAutoComplete.component.mjs +0 -502
  129. package/esm2022/lib/controls/MarkdownEditor/markdown-editor.component.mjs +0 -243
  130. package/esm2022/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.mjs +0 -456
  131. package/esm2022/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.mjs +0 -441
  132. package/esm2022/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.mjs +0 -500
  133. package/esm2022/lib/controls/Paging/JwPagination.component.mjs +0 -160
  134. package/esm2022/lib/controls/Paging/Paging.component.mjs +0 -626
  135. package/esm2022/lib/controls/Phone/Phone.component.mjs +0 -134
  136. package/esm2022/lib/controls/ProfileImageUploader/ProfileImageUploader.component.mjs +0 -390
  137. package/esm2022/lib/controls/RadioButton/RadioButton.component.mjs +0 -113
  138. package/esm2022/lib/controls/Recaptcha/Recaptcha.component.mjs +0 -134
  139. package/esm2022/lib/controls/Repeater/repeater/repeater.component.mjs +0 -135
  140. package/esm2022/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs +0 -1291
  141. package/esm2022/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.mjs +0 -22
  142. package/esm2022/lib/controls/Repeater/repeater-table/repeater-table.component.mjs +0 -118
  143. package/esm2022/lib/controls/TagsInput/TagsInput.component.mjs +0 -308
  144. package/esm2022/lib/controls/TextArea/TextArea.component.mjs +0 -581
  145. package/esm2022/lib/controls/TextBox/TextBox.component.mjs +0 -357
  146. package/esm2022/lib/controls/Toggleslide/Toggleslide.component.mjs +0 -96
  147. package/esm2022/lib/controls/bbsf-controls.module.mjs +0 -92
  148. package/esm2022/lib/controls/page-header-component/page-header-component.component.mjs +0 -42
  149. package/esm2022/lib/modules/bbsf-core.module.mjs +0 -210
  150. package/esm2022/lib/modules/bbsf-datetime.module.mjs +0 -90
  151. package/esm2022/lib/modules/bbsf-dropdown.module.mjs +0 -57
  152. package/esm2022/lib/modules/bbsf-editors.module.mjs +0 -97
  153. package/esm2022/lib/modules/bbsf-forms-basic.module.mjs +0 -79
  154. package/esm2022/lib/modules/bbsf-multilingual.module.mjs +0 -60
  155. package/esm2022/lib/modules/bbsf-phone.module.mjs +0 -57
  156. package/esm2022/lib/modules/bbsf-specialized.module.mjs +0 -160
  157. package/esm2022/lib/modules/bbsf-uploads.module.mjs +0 -106
  158. package/esm2022/lib/modules/bbsf-utility.module.mjs +0 -103
  159. 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
- ## Change Log
333
-
334
- ## 1.0.194 / 16-10-2025
335
-
336
- =====================
337
-
338
- - Implement standalone components
339
-
340
- ## 1.0.193 / 16-10-2025
341
-
342
- =====================
343
-
344
- - Fix Format for displayValues in Tags, multiSelect
345
-
346
- ## 1.0.192 / 15-10-2025
347
-
348
- =====================
349
-
350
- - Fix Repeater URL Validation
351
- - Fix Clear singleSelection DropdownComponent
352
- - Remove Swal cancelButton style
353
-
354
- ## 1.0.191 / 23/9/2025
355
-
356
- =====================
357
-
358
- - Initialize repeater control when custom validation
359
- - Handle attach image in HTML Editor Component
360
- - Validate files count when drag and drop file in single upload
361
-
362
-
363
- ## 1.0.190 / 21/9/2025
364
-
365
- =====================
366
-
367
- - Add option to add buttons to hide in HTML Editor Component
368
- - Remove options from Html Editor component
369
-
370
- ## 1.0.189 / 15/9/2025
371
-
372
- =====================
373
-
374
- - Add option to show password requirements
375
-
376
- ## 1.0.188 / 15/9/2025
377
-
378
- =====================
379
-
380
- - Update utilities package to 1.0.68
381
- - Add Password Validation disclaimer
382
-
383
- ## 1.0.187 / 15/9/2025
384
-
385
- =====================
386
-
387
- - Update utilities package to 1.0.67
388
-
389
- ## 1.0.186 11-09-2025
390
-
391
- ====================
392
-
393
- - Fixing password validation issue in TextBoxComponent
394
-
395
- ## 1.0.185 07-09-2025
396
-
397
- ====================
398
-
399
- - DropdownList Enable Select all.
400
-
401
- ## 1.0.184 03-09-2025
402
-
403
- ====================
404
-
405
- - dropdownlist place error message outside input style
406
-
407
- ## 1.0.183 03-09-2025
408
-
409
- ====================
410
-
411
- - Fix FileUpload issues
412
- - Fix TextArea SpeechRecognition issue.
413
-
414
- ## 1.0.182 28-08-2025
415
-
416
- ====================
417
-
418
- - Update utilities package to 1.0.66
419
- - Fix FileUpload issues
420
- - Enhancement for textarea, multi lingual textbox
421
-
422
- ## 1.0.181 26-08-2025
423
-
424
- ====================
425
-
426
- - Update utilities package to 1.0.64
427
-
428
- # 1.0.178 20-08-2025 (deprecated)
429
- ====================
430
- - Fileupload component
431
- - fix accepted types issue.
432
- - fix error display issue.
433
-
434
- # 1.0.177 18-08-2025 (deprecated)
435
- ====================
436
- - Enhance File-Upload Component
437
- - Fix FileUplaod typo to be FileUpload
438
-
439
- # 1.0.176 11-08-2025
440
- ====================
441
- - Updating utilities package version.
442
-
443
- # 1.0.173 06-08-2025
444
- ====================
445
- - Add desplayValue getter in all controls to handle selected values
446
- - Fix some issue in file upload
447
-
448
- # 1.0.172 06-08-2025
449
- ====================
450
- - Add desplayValue in all controls to handle selected values
451
-
452
-
453
- # 1.0.171 04-08-2025
454
- ====================
455
- - add PreventDoubleClickDirective to handle double click issues
456
-
457
- # 1.0.168 03-08-2025
458
- ====================
459
- - Fix mic in `text-area`.
460
- - Handle navigation event in paging `enableBrowserNavigation`.
461
-
462
- ## 1.0.167 29-07-2025
463
- =====================
464
- - add fixes to `date-picker`, and `dropdownlist` components for pageFilter popup
465
-
466
- ## 1.0.166 / 6/5/2025
467
- =====================
468
- Added extra options to **MapAutoCompleteOptions** advanced view mode
469
- - Sets the zoom level for the map > `zoom`
470
- - Finding a location by a specific address > `address`
471
- - Boolean to enable fallback behavior if the address lookup fails > `enableFallbackAddress`
472
- - Option to validates that the selected location is within a specific city boundary > `validateLocationWithinCity`
473
- - Added componentRestrictions Geo Restriction option > `country`
474
-
475
- Fixed href issue in **FileUploaderComponent**
476
-
477
- ## 1.0.161 / 12-3-2025
478
- =====================
479
- - Enable Grouping feature in dropdown control (Added hasGroup property in DropdownOptions and group property in DropdownListItem)
480
- ## 1.0.160 / 26-2-2025
481
- =====================
482
- - Tag Fix value null check
483
-
484
-
485
- ## 1.0.159 / 16-2-2025
486
-
487
- =====================
488
-
489
- - Update utilities package
490
- - Fix TextBox when value undenied in check max_length
491
-
492
- ## 1.0.158 / 16-2-2025
493
-
494
- =====================
495
-
496
- - update utilities package
497
-
498
- ## 1.0.157 / 30-12-2024
499
-
500
- =====================
501
-
502
- * Fix bug in TextBox when delete max limit chars
503
-
504
- ## 1.0.156 / 28-11-2024
505
-
506
- =====================
507
-
508
- * Fix bug in TextArea when speechrecoginitoin is disabled
509
-
510
- ## 1.0.155 / 28-11-2024
511
-
512
- =====================
513
-
514
- * Fix bug in Repeater table control on delete item
515
-
516
- ## 1.0.154 / 28-11-2024
517
-
518
- =====================
519
- **Fix TextArea When Using in Repeater**
520
-
521
- ## 1.0.153 / 27-11-2024
522
-
523
- =====================
524
- **Fix Repeater table control on delete item**
525
-
526
- ## 1.0.152 / 3-9-2024
527
-
528
- =====================
529
- -multi tenant
530
-
531
- ## 1.0.151 / 19-8-2024
532
-
533
- ======================
534
-
535
- * Added MarkdownEditor Control
536
-
537
- ## 1.0.150 / 8-8-2024
538
-
539
- ======================
540
-
541
- * Updated TextAreaComponent speech language select with UI fixes
542
-
543
- ## 1.0.149 / 6-8-2024
544
-
545
- ======================
546
-
547
- * Updated TextAreaComponent speech language select
548
-
549
- ## 1.0.148 / 4-8-2024
550
-
551
- ===================
552
-
553
- * fixed UI bug in speech to text of TextAreaComponent
554
-
555
- ## 1.0.147 / 4-8-2024
556
-
557
- ===================
558
-
559
- * fixed bug in speech to text of TextAreaComponent
560
-
561
- ## 1.0.146 / 4-8-2024
562
-
563
- ===================
564
-
565
- * added feature spech to text into TextAreaComponent
566
-
567
- ## 1.0.145 / 24-7-2024
568
-
569
- ===================
570
-
571
- * fix naming in file upload control
572
-
573
- ## 1.0.144 / 24-7-2024
574
-
575
- ===================
576
-
577
- * Fix viewing File upload control while options.isUploadFileAsync == false
578
-
579
- ## 1.0.143 / 16-7-2024
580
-
581
- ===================
582
-
583
- * Update imports for sweetalert package to avoid inline style injected to DOM
584
- * import style inside your applications
585
-
586
- ## 1.0.142 / 3-6-2024
587
-
588
- ===================
589
-
590
- * Update Utilities Library verion
591
-
592
- ## 1.0.141 / 18-4-2024
593
-
594
- ===================
595
-
596
- * Fix File uploader loading issue
597
-
598
- ## 1.0.140 / 3-4-2024
599
-
600
- ===================
601
-
602
- * Fix delete in repeater
603
-
604
- ## 1.0.139 / 2-4-2024
605
-
606
- ===================
607
-
608
- * Update Utilities Library
609
- * Fix delete in repeater
610
-
611
- ## 1.0.138 / 1-4-2024
612
-
613
- ===================
614
-
615
- * Update Utilities Library
616
-
617
- ## 1.0.137 / 31-3-2024
618
-
619
- ===================
620
-
621
- * Fix File uploader drop zone
622
-
623
- ## 1.0.136 / 28-3-2024
624
-
625
- ===================
626
-
627
- * Update Utilities Library
628
-
629
- ## 1.0.135 / 27-3-2024
630
-
631
- ===================
632
-
633
- * Update Utilities Library
634
- * Fix Delete File & Allowed File Type Issue In FileUpload Control
635
-
636
- ## 1.0.134 / 24-3-2024
637
-
638
- ===================
639
-
640
- * Fix delete in repeater control
641
-
642
- ## 1.0.133 / 24-3-2024
643
-
644
- ===================
645
-
646
- * Fix naming convention in repeater control while edit
647
-
648
- ## 1.0.132 / 21-3-2024
649
-
650
- ===================
651
-
652
- * Add outputFunction Prop in ControlOptionsBase to use it while add a control in repeater
653
- * add new type of repeater (checkbox control)
654
-
655
- ## 1.0.131 / 20-3-2024
656
-
657
- ===================
658
-
659
- * Fix File-Upload Control DTO Bug
660
-
661
- ## 1.0.130 / 19-3-2024
662
-
663
- ===================
664
-
665
- * Fix Multiple File-Upload Control Bug
666
-
667
- ## 1.0.129 / 14-3-2024
668
-
669
- ===================
670
-
671
- * Fix File-Upload Control Name Bug
672
-
673
- ## 1.0.128 / 12-3-2024
674
-
675
- ===================
676
-
677
- * Update Utilities Library
678
-
679
- ## 1.0.127 / 6-3-2024
680
-
681
- ===================
682
-
683
- * Update Utilities Library
684
-
685
- ## 1.0.126 / 6-3-2024
686
-
687
- ===================
688
-
689
- * Update Utilities Library
690
-
691
- ## 1.0.125 / 5-3-2024
692
-
693
- ===================
694
-
695
- * Update Utilities Library
696
-
697
- ## 1.0.124 / 27-2-2024
698
-
699
- ===================
700
-
701
- * Fix Bug in TextBox,TextArea,MultLingualTextArea Max Length Validation Msg,FileUpload and DateTimePicker
702
-
703
- ## 1.0.123 / 22-2-2024
704
-
705
- ===================
706
-
707
- * Fix Bug in Paging Component
708
-
709
- ## 1.0.122 / 15-2-2024
710
-
711
- ===================
712
-
713
- * Disable History List Of AutoComplate Control
714
- * Fix Paging Control (Page Change Bug)
715
-
716
- ## 1.0.121 / 14-2-2024
717
-
718
- ===================
719
-
720
- * Fix English and Arabic Validation Error for MultiLingualTextBox and MultiLingualHtmlEditor
721
- * Fix Characters count validation message in MultLingualTextBox
722
- * Update resource key to be VAL_ArabicIsRequiredAndOnly50CharactersEnglish in MultilingualTextbox, MultilingualTextArea,textbox and ValidationErrorMessage
723
- * Fix placeholder in MultilingualTextbox and MultilingualTextArea
724
- * Update Paging component fill totalcount of paging options
725
- * Add new file types for filer uploader in FileType Enums
726
- * Return file name, file type while upload file completed
727
-
728
- ## 1.0.120 / 11-2-2024
729
-
730
- ===================
731
- *Prevent Form Submit Twice
732
-
733
- ## 1.0.119 / 8-2-2024
734
-
735
- ===================
736
-
737
- * Update Utilities Library
738
-
739
- ## 1.0.118 / 8-2-2024
740
-
741
- ===================
742
-
743
- * Update Utilities Library
744
- * Fix FileUpload Loader issue
745
-
746
- ## 1.0.117 / 7-2-2024
747
-
748
- ===================
749
-
750
- * Fix MultiligualTextBox Arabic Binding issue
751
-
752
- ## 1.0.116 / 7-2-2024
753
-
754
- ===================
755
-
756
- * Fix AutoComplate Control Custom Validator Issue
757
-
758
- ## 1.0.115 / 6-2-2024
759
-
760
- ===================
761
-
762
- * Fix AutoComplate Control Custom Validator Issue
763
-
764
- ## 1.0.114 / 5-2-2024
765
-
766
- ===================
767
-
768
- * Update AutoComplate Control (Add Extra Filter- Take Name As Input)
769
- * Update TagsInput Control(Add Extra Filter- Take Name As Input)
770
- * Update Form Control(Allow Disable Submit With Enter Press)
771
-
772
- ## 1.0.113 / 4-1-2024
773
-
774
- ===================
775
-
776
- * Update Utilities Library
777
- * Update File Upload Control To Allow Upload File Async
778
- * Fix DateTimePicker Issue When Use In Filter Mode
779
-
780
- ## 1.0.112 / 21-12-2023
781
-
782
- ===================
783
-
784
- * update controls, controls options with new naming convention, and update datepicker controls (remove time zone offest)
785
-
786
- ## 1.0.111 / 13-12-2023
787
-
788
- ===================
789
-
790
- * Add Advanced map control.
791
-
792
- ## 1.0.110 / 11-12-2023
793
-
794
- ===================
795
-
796
- * Upgraded Angular version (17) and upgraded related libraries.
797
-
798
- ## 1.0.109 / 3-12-2023
799
-
800
- ===================
801
-
802
- * Update Utilities Library
803
-
804
- ## 1.0.108 / 3-12-2023
805
-
806
- ===================
807
-
808
- * Update Utilities Library
809
-
810
- ## 1.0.107 / 29-11-2023
811
-
812
- ===================
813
-
814
- * Update Utilities Library
815
-
816
- ## 1.0.106 / 19-11-2023
817
-
818
- ===================
819
-
820
- * Update Utilities Library
821
-
822
- ## 1.0.105 / 16-11-2023
823
-
824
- ===================
825
-
826
- * Update Utilities Library
827
-
828
- ## 1.0.104 / 16-10-2023
829
-
830
- ===================
831
-
832
- * Update textbox control add (OnBlur) output when curser get out of input.
833
-
834
- ## 1.0.103 / 15-10-2023
835
-
836
- ===================
837
-
838
- * Update AutocompleteTextBox Control
839
-
840
- ## 1.0.102 / 12-10-2023
841
-
842
- ===================
843
-
844
- * Update AutocompleteTextBox Control
845
-
846
- ## 1.0.101 / 14-9-2023
847
-
848
- ===================
849
-
850
- * Add Custom Template to AutocompleteTextBox options
851
-
852
- ## 1.0.100 / 15-8-2023
853
-
854
- ===================
855
-
856
- * Update Utilities Library
857
-
858
- ## 1.0.99 / 15-8-2023
859
-
860
- ===================
861
-
862
- * Update AutocompleteTextBox Control
863
- * Update FileUpload Control
864
- * Update Form Control
865
-
866
- ## 1.0.97 / 19-7-2023
867
-
868
- ===================
869
-
870
- * Update Utilities Library
871
- * fix MultiLingualHtmlEditor Control
872
-
873
- ## 1.0.96 / 18-7-2023
874
-
875
- ===================
876
-
877
- * Add Default value when BBSF Control is Readonly and not has value.
878
-
879
- ## 1.0.95 / 14-6-2023
880
-
881
- ===================
882
-
883
- * Add Readonly Option to All BBSF Controls
884
-
885
- ## 1.0.94 / 21-5-2023
886
-
887
- ===================
888
-
889
- * Fix File-Upload Control Bug (Delete file from multiple files has an error )
890
-
891
- ## 1.0.93 / 02-5-2023
892
-
893
- ===================
894
-
895
- * Fix Phone Control Bug
896
-
897
- ## 1.0.92 / 13-4-2023
898
-
899
- ===================
900
-
901
- * Fix Direction For All Control
902
-
903
- ## 1.0.91 / 8-4-2023
904
-
905
- ===================
906
-
907
- * Update Dropdown Control
908
-
909
- ## 1.0.90 / 27-3-2023
910
-
911
- ===================
912
-
913
- * Update Utilities Library
914
- * Update Controls
915
-
916
- ## 1.0.89 / 26-3-2023 (!!!Warning!! Testing Release)
917
-
918
- ===================
919
-
920
- * Update Utilities Library
921
-
922
- ## 1.0.88 / 22-3-2023
923
-
924
- ===================
925
-
926
- * Update Utilities Library
927
-
928
- ## 1.0.86 / 14-2-2023
929
-
930
- ===================
931
-
932
- * Solve Textarea Control Bugs
933
- * Solve Upload-File Control Bugs
934
-
935
- ## 1.0.84 / 12-2-2023
936
-
937
- ===================
938
-
939
- * Update AppBase Component
940
- * Solve UI Issue In All Controls
941
-
942
- ## 1.0.83 / 25-1-2023
943
-
944
- ===================
945
-
946
- * Fix Modal Dismiss Issue
947
-
948
- ## 1.0.82 / 25-1-2023
949
-
950
- ===================
951
-
952
- * Fix TextBox control
953
- * Fix MultiLingualTextBox control
954
- * Fix MultiLingualHTML control
955
-
956
- ## 1.0.81 / 24-1-2023
957
-
958
- ===================
959
-
960
- * Fix HTML Editor control
961
- * Fix Multilingual HTML Editor control
962
- * Fix Tag-Input control
963
- * Fix All UI Bugs
964
-
965
- ## 1.0.80 / 18-1-2023
966
-
967
- ===================
968
-
969
- * Fix HTML Editor control inline style
970
- * Fix Multilingual HTML Editor control inline style
971
- * Change Image Upload cropper tolltip to be translated
972
-
973
- ## 1.0.79 / 15-1-2023
974
-
975
- ===================
976
- *Update App Base and Controls
977
-
978
- ## 1.0.78 / 11-1-2023
979
-
980
- ===================
981
-
982
- * Solve Image Control Bug
983
-
984
- ## 1.0.77 / 11-1-2023
985
-
986
- ===================
987
-
988
- * Solve Image Control Bug
989
-
990
- ## 1.0.74 / 9-1-2023
991
-
992
- ===================
993
-
994
- * Add UI Changes
995
-
996
- ## 1.0.73 / 5-1-2023
997
-
998
- ===================
999
-
1000
- * Update utilities Version
1001
-
1002
- ## 1.0.72 / 3-1-2023
1003
-
1004
- ===================
1005
-
1006
- * Update utilities Version
1007
-
1008
- ## 1.0.71 / 25-12-2022
1009
-
1010
- ===================
1011
-
1012
- * Update utilities Version
1013
-
1014
- ## 1.0.70 / 22-12-2022
1015
-
1016
- ===================
1017
-
1018
- * Update utilities Version
1019
-
1020
- ## 1.0.69 / 05-12-2022
1021
-
1022
- ===================
1023
- *Add Page Header Control
1024
- *Add BBSF Base Component
1025
- *Update Captcha Control
1026
- *Add Custom Date Pipe
1027
- *Update Utilities version
1028
-
1029
- ## 1.0.68 / 22-11-2022
1030
-
1031
- ===================
1032
- *Fix Range Number in Repeater Control when control type number
1033
-
1034
- ## 1.0.66 / 20-11-2022
1035
-
1036
- * Controls UI revamp
1037
- * Textbox
1038
- * Textarea
1039
- * Multilingual Textbox
1040
- * Multilingual Textarea
1041
- * Checkbox
1042
- * Dropdown
1043
- * Repeater Table
1044
- * Image Upload
1045
- * Tags Input
1046
- * Paging
1047
-
1048
- ## 1.0.65 / 15-11-2022
1049
-
1050
- ===================
1051
-
1052
- * Add Captcha control
1053
-
1054
- ## 1.0.64 / 07-11-2022
1055
-
1056
- ===================
1057
-
1058
- * Enable two way binding to all controls
1059
- * Add new options to Confirmation Modal (showCancelButton - showCloseButton)
1060
- * Add option to all controls to allow label extra classes (LabelExtraClasses)
1061
-
1062
- ## 1.0.63 / 18-10-2022
1063
-
1064
- ===================
1065
-
1066
- * Fix Profile Image Upload control
1067
-
1068
- ## 1.0.62 / 11-10-2022
1069
-
1070
- ===================
1071
-
1072
- * Fix modal dismiss in form submission success
1073
- * Add new property to (DisableModalDismiss) to FormOptions
1074
- * Fix tags input control, add tag selected text when losing focus if AllowNewSelection set to true
1075
-
1076
- ## 1.0.61 / 10-10-2022
1077
-
1078
- ===================
1079
-
1080
- * Update tags input control validation (Handle unmatched selection when enabling add new selection)
1081
-
1082
- ## 1.0.60 / 2-10-2022
1083
-
1084
- ===================
1085
-
1086
- * Update lang-mode cases in MultiLingualTextArea & MultiLingualTextBox controls
1087
-
1088
- ## 1.0.59 / 29-9-2022
1089
-
1090
- ===================
1091
-
1092
- * Update repeater-table control
1093
- * Add DisableAddButton to remove add button from the table
1094
- * Add DisableDeleteButton to remove the delete button from the table
1095
- * Add IsHiddenInput to RepeaterField that allows hiding columns from the table
1096
- * Update ControlOptionsBase, Add IsReadonly options that allow control to be submitted with the form instead of IsDisabled (only applied to text-box control)
1097
-
1098
- ## 1.0.58 / 19-9-2022
1099
-
1100
- ===================
1101
-
1102
- * Update tag-input control to allow reset and delete
1103
- * Update repeater control
1104
-
1105
- ## 1.0.57 / 11-9-2022
1106
-
1107
- ===================
1108
-
1109
- * Fix tags input (hanle backspace to remove no matched error)
1110
-
1111
- ## 1.0.53 / 18-8-2022
1112
-
1113
- ===================
1114
-
1115
- * Update Location control(delete value when value empty)
1116
-
1117
- ## 1.0.52 / 16-8-2022
1118
-
1119
- ===================
1120
-
1121
- * Update Tag input control(custom validation mode)
1122
-
1123
- ## 1.0.51 / 14-8-2022
1124
-
1125
- ===================
1126
-
1127
- * Update utilities Version
1128
-
1129
- ## 1.0.50 / 4-8-2022
1130
-
1131
- ===================
1132
-
1133
- * Replace lang attribute with b-lang
1134
- * Update MapAutoComplete control to enable edit mode
1135
-
1136
- ## 1.0.49 / 28-7-2022
1137
-
1138
- ===================
1139
-
1140
- * Fix bug in autocomplete control
1141
-
1142
- ## 1.0.48 / 6-7-2022
1143
-
1144
- ===================
1145
-
1146
- * Update tag input control
1147
- * Update tag input dto
1148
- * Update tag input options
1149
-
1150
- ## 1.0.47 / 5-7-2022
1151
-
1152
- ===================
1153
-
1154
- * Add DisableBlockUI and StartPagingCallback to paging control options
1155
-
1156
- ## 1.0.46 / 4-7-2022
1157
-
1158
- ===================
1159
-
1160
- * [Paging control] Add clearFilter method to reset all filters
1161
- * [PagingOptions] Add property (ResetFilterButtonName) (string), to select button that clears filters
1162
- * [Paging control] Check for ResetFilterButtonName, if not null then add event listener (click) to call clearFilter method
1163
- * [Paging control] Add method (getFiltersValue) to get all filters in paging, Usually used in export method
1164
-
1165
- ## 1.0.45 / 23-6-2022
1166
-
1167
- ===================
1168
-
1169
- * Change paging control update items action,Pass PagingPayload object in body instead of params
1170
- * Fix bug in form control ngAfterViewInit
1171
-
1172
- ## 1.0.44 / 14-6-2022
1173
-
1174
- ===================
1175
-
1176
- * Fix bugs in DropDown,TagsInput controls
1177
-
1178
- ## 1.0.43 / 9-6-2022
1179
-
1180
- ===================
1181
-
1182
- * Fix bugs in DateTimePicker,FileUpload,Form,Paging,Toggle slide controls
1183
-
1184
- ## 1.0.42 / 2-6-2022
1185
-
1186
- ===================
1187
- *Fix FileUpload "Upload" resource
1188
- *Fix MultiLingualTextBox Arabic validation
1189
- *Fix TextBox Arabic validation
1190
- *Fix TagsInput noItemsMAtch message
1191
- *Add AreaOfFocus Guid to Enums
1192
- *Fix License FileType to BN
1193
-
1194
- ## 1.0.40/ 25-5-2022
1195
-
1196
- ===================
1197
-
1198
- * Update repeater model
1199
-
1200
- ## 1.0.38/ 16-5-2022
1201
-
1202
- ===================
1203
-
1204
- * Update utilities library version
1205
-
1206
- ## 1.0.37/ 16-5-2022
1207
-
1208
- ===================
1209
-
1210
- * Update all control
1211
- * Update all Models
1212
- * Update utilities library version
1213
-
1214
- ## 1.0.36/ 28-4-2022
1215
-
1216
- ===================
1217
-
1218
- * Update Paging control
1219
-
1220
- ## 1.0.35/ 27-4-2022
1221
-
1222
- ===================
1223
-
1224
- * Solve all bugs
1225
- * Implementing Controls Patch Updates
1226
- * Implementing BBSFDateTime Pipe
1227
-
1228
- ## 1.0.32 / 30-3-2022
1229
-
1230
- ===================
1231
-
1232
- * Update utilities library version
1233
-
1234
- ## 1.0.31 / 29-3-2022
1235
-
1236
- ===================
1237
-
1238
- * Update repeater-table control
1239
-
1240
- ## 1.0.29 / 27-3-2022
1241
-
1242
- ===================
1243
-
1244
- * Add Repeater Table control
1245
- * Update Complex Repeater control
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