fw-webbuilder 1.1.252 → 1.1.254

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/index.d.ts CHANGED
@@ -115,12 +115,12 @@ declare class webBuilderService {
115
115
  ctrlZ: any;
116
116
  ctrlY: any;
117
117
  /**
118
- * dùng để lưu format copy {
119
- * type: 'copy_style',
120
- * data: {
121
- * }
122
- * }
123
- */
118
+ * dùng để lưu format copy {
119
+ * type: 'copy_style',
120
+ * data: {
121
+ * }
122
+ * }
123
+ */
124
124
  dataCopyFormat: any;
125
125
  data_list: any;
126
126
  constructor(http: HttpClient);
@@ -212,6 +212,18 @@ declare class webBuilderService {
212
212
  flatNodes(nodes: any): any;
213
213
  getPages(): Promise<any>;
214
214
  addBlock(data: any, code?: any): Promise<any>;
215
+ /**
216
+ * các hàm raw không xử lý dữ liệu đầu vào trước khi gửi đi
217
+ */
218
+ addRawPage(data: any): Promise<Object>;
219
+ addRawBlock(data: any): Promise<any>;
220
+ addRawObject(data: any): Promise<any>;
221
+ updateRawPage(id: string, data: any): Promise<Object>;
222
+ updateRawBlock(id: string, data: any): Promise<Object>;
223
+ updateRawObject(id: string, data: any): Promise<Object>;
224
+ deleteRawPage(id: string): Promise<Object>;
225
+ deleteRawBlock(id: string): Promise<Object>;
226
+ deleteRawObject(id: string): Promise<Object>;
215
227
  /**
216
228
  *
217
229
  * @param id
@@ -225,10 +237,11 @@ declare class webBuilderService {
225
237
  addObject(data: any, code?: any): Promise<any>;
226
238
  updateObject(id: string, data: any, code?: string): Promise<any>;
227
239
  /**
228
- * @param id id của object cần xóa
240
+ * @param object đầy đủ data của object
241
+ * @param code mã action cho lịch sử Undo
229
242
  * @returns
230
243
  */
231
- deleteObject(id: string, code?: any): Promise<any>;
244
+ deleteObject(object: any, code?: any): Promise<any>;
232
245
  uploadFile(file: File, newPath: string, options?: any): Promise<Object>;
233
246
  upLoadImage(file: any, oldPath: string, newPath: string, options?: any): Promise<any>;
234
247
  addCategory(data: any): Promise<any>;
@@ -298,6 +311,31 @@ declare class webBuilderService {
298
311
  getBlock(id: string): any;
299
312
  handleCtrl_C(): Promise<any>;
300
313
  handleCtrl_D(): Promise<any>;
314
+ updateDB(type: string | 'page' | 'block' | 'object', id: string, data: any): void;
315
+ /**
316
+ * CƠ CHẾ HOẠT ĐỘNG CỦA CHỨC NĂNG CLONE (NHÂN BẢN OBJECT):
317
+ * 1. Cấu trúc Clone:
318
+ * - Đối tượng clone được đánh dấu `is_clone = true`.
319
+ * - Thuộc tính `id_clone` lưu `_id` của đối tượng gốc (nếu mẫu đã là clone thì tiếp tục dùng `id_clone` cũ).
320
+ * 2. Lưu trữ Database (DB):
321
+ * - Chỉ lưu thông tin định danh (`is_clone`, `id_clone`), id parent (`id_block` hoặc `id_object`)
322
+ * và các tọa độ/vị trí (`*_position_<parentId>`) dưới DB để tiết kiệm RAM & dung lượng.
323
+ * 3. Cập nhật Local State (RAM / DOM):
324
+ * - Sau khi tạo xong dưới DB, merge dữ liệu mẫu (`component`, `config`, `class`, `animation`, `objects`)
325
+ * vào `newItem` để hiển thị tức thì trên giao diện local.
326
+ * - Đổi `id_object` của các object con trong `objects` sang `_id` mới của bản clone.
327
+ * 4. Lịch sử Undo / Redo (Ctrl+Z / Ctrl+Y):
328
+ * - Đẩy bản ghi dạng `type: 'add'` vào `ctrlZ` kèm `code` để hỗ trợ Undo/Redo đồng bộ.
329
+ */
330
+ addObjectClone(parent: any, object: any, code?: any): Promise<void>;
331
+ /**
332
+ * CƠ CHẾ HOẠT ĐỘNG CỦA CHỨC NĂNG CLONE (NHÂN BẢN BLOCK):
333
+ * 1. Cấu trúc Clone: `is_clone = true`, `id_clone` trỏ tới block gốc.
334
+ * 2. Vị trí & Thứ tự (Index): Lưu vị trí và chỉ số `index` trong trang để sắp xếp danh sách block.
335
+ * 3. Lưu trữ DB & Local State: Chỉ lưu thuộc tính định danh/vị trí dưới DB, sau đó merge với dữ liệu mẫu để render DOM.
336
+ * 4. Lịch sử Undo / Redo: Đẩy bản ghi `type: 'add'` vào `ctrlZ` để khôi phục hoặc xóa khi Undo/Redo.
337
+ */
338
+ addBlockClone(parent: any, block: any, code?: any): Promise<void>;
301
339
  handleCtrl_V(): any;
302
340
  handleCtrl_Z(): Promise<void>;
303
341
  handleCtrl_Y(): Promise<void>;
@@ -319,7 +357,7 @@ declare class webBuilderService {
319
357
  * @param page _id của page chứa block
320
358
  * @param block block có NHÁNH(objects) cần copy
321
359
  */
322
- handleCopyBlock(page: any, block: any, code: any, isClone: boolean): Promise<void>;
360
+ handleCopyBlock(page: any, block: any, code: any, isClone?: boolean): Promise<void>;
323
361
  /**
324
362
  * Hàm này dùng để copy object
325
363
  * khi copy page thì cần mọi object nằm ở vị trí cũ,
@@ -328,7 +366,7 @@ declare class webBuilderService {
328
366
  * @param object object có NHÁNH(objects) cần copy
329
367
  * @param change_position
330
368
  */
331
- handleCopyObject(parent: any, object: any, change_position: boolean | undefined, code: any, isClone: boolean): Promise<void>;
369
+ handleCopyObject(parent: any, object: any, change_position: boolean | undefined, code: any, isClone?: boolean): Promise<void>;
332
370
  /**
333
371
  * hàm này copy page, page truyền vào phải có nhánh
334
372
  * @param page page phải có NHÁNH
@@ -996,15 +1034,14 @@ declare class WbHideShowConfig implements OnInit {
996
1034
  data: any;
997
1035
  device: any;
998
1036
  classCursor: any;
999
- classOverflowY: any;
1000
1037
  classFlexDirection: any;
1001
1038
  classGap: any;
1002
1039
  configTypeDisplay: any;
1040
+ configRequired: any;
1003
1041
  /**
1004
1042
  * configEnableZoom dùng cho object_product_image
1005
1043
  */
1006
1044
  configEnableZoom: any;
1007
- configRequired: any;
1008
1045
  devices: any;
1009
1046
  cursorOptions: any[];
1010
1047
  dragOptions: any[];
@@ -1021,9 +1058,8 @@ declare class WbHideShowConfig implements OnInit {
1021
1058
  updateConfig(): void;
1022
1059
  updateHidden(key: string, value: boolean): void;
1023
1060
  onChangedirection(): void;
1024
- changeOverFlow(): void;
1025
1061
  static ɵfac: i0.ɵɵFactoryDeclaration<WbHideShowConfig, never>;
1026
- static ɵcmp: i0.ɵɵComponentDeclaration<WbHideShowConfig, "wb-hide-show-config", never, { "data": { "alias": "data"; "required": false; }; "device": { "alias": "device"; "required": false; }; "classCursor": { "alias": "classCursor"; "required": false; }; "classOverflowY": { "alias": "classOverflowY"; "required": false; }; "classFlexDirection": { "alias": "classFlexDirection"; "required": false; }; "classGap": { "alias": "classGap"; "required": false; }; "configTypeDisplay": { "alias": "configTypeDisplay"; "required": false; }; "configEnableZoom": { "alias": "configEnableZoom"; "required": false; }; "configRequired": { "alias": "configRequired"; "required": false; }; }, {}, never, never, true, never>;
1062
+ static ɵcmp: i0.ɵɵComponentDeclaration<WbHideShowConfig, "wb-hide-show-config", never, { "data": { "alias": "data"; "required": false; }; "device": { "alias": "device"; "required": false; }; "classCursor": { "alias": "classCursor"; "required": false; }; "classFlexDirection": { "alias": "classFlexDirection"; "required": false; }; "classGap": { "alias": "classGap"; "required": false; }; "configTypeDisplay": { "alias": "configTypeDisplay"; "required": false; }; "configRequired": { "alias": "configRequired"; "required": false; }; "configEnableZoom": { "alias": "configEnableZoom"; "required": false; }; }, {}, never, never, true, never>;
1027
1063
  }
1028
1064
 
1029
1065
  declare class WbIconConfig implements OnInit {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fw-webbuilder",
3
- "version": "1.1.252",
3
+ "version": "1.1.254",
4
4
  "peerDependencies": {
5
5
  "@fingerprintjs/fingerprintjs": "^5.2.0",
6
6
  "@abacritt/angularx-social-login": "2.4.0",