vhobjects-user 0.7.1 → 0.7.2
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/fesm2015/vhobjects-user.js +1 -1
- package/fesm2015/vhobjects-user.js.map +1 -1
- package/lib/frames/frame-product-relate/user/frame-product-relate/frame-product-relate.component.d.ts +60 -5
- package/lib/frames/frame-products-favorited/user/frame-products-favorited/frame-products-favorited.component.d.ts +55 -10
- package/lib/frames/frame-products-viewed/user/frame-products-viewed/frame-products-viewed.component.d.ts +55 -13
- package/lib/objects/basic/icon/user/icon/icon.component.d.ts +3 -1
- package/lib/objects/basic/image-detail-repeat/user/image-detail-repeat/image-detail-repeat.component.d.ts +106 -0
- package/lib/objects/cart/button-order/user/button-order/button-order.component.d.ts +2 -1
- package/lib/objects/news/table-of-content/user/table-of-content.component.d.ts +2 -0
- package/lib/objects/product/image-detail/user/image-detail.component.d.ts +16 -1
- package/lib/objects/product/video-product/user/video-product/video-product.component.d.ts +26 -0
- package/lib/objects/review/user/review/review.component.d.ts +102 -0
- package/lib/vhautoweb-objects.module.d.ts +31 -28
- package/package.json +1 -1
- package/public-api.d.ts +3 -0
|
@@ -8,7 +8,7 @@ export declare class AtwFrameProductRelate implements OnInit {
|
|
|
8
8
|
private vhQueryAutoWeb;
|
|
9
9
|
private route;
|
|
10
10
|
private vhEventMediator;
|
|
11
|
-
|
|
11
|
+
functionService: FunctionService;
|
|
12
12
|
private element;
|
|
13
13
|
pipeFrameService: PipeFrameService;
|
|
14
14
|
private platformId;
|
|
@@ -25,13 +25,13 @@ export declare class AtwFrameProductRelate implements OnInit {
|
|
|
25
25
|
product: any;
|
|
26
26
|
isComponentExist: ElementRef<HTMLDivElement>;
|
|
27
27
|
private setinterval;
|
|
28
|
-
|
|
28
|
+
pageCurrent: number;
|
|
29
29
|
private link_page;
|
|
30
30
|
private link_object;
|
|
31
31
|
private link_category;
|
|
32
32
|
private id_category;
|
|
33
|
-
|
|
34
|
-
|
|
33
|
+
totalPages: number;
|
|
34
|
+
listProducts: any;
|
|
35
35
|
private maxZIndex;
|
|
36
36
|
private selectingItemOnFrame;
|
|
37
37
|
class: {
|
|
@@ -42,6 +42,11 @@ export declare class AtwFrameProductRelate implements OnInit {
|
|
|
42
42
|
'frame-products__right-arrow': {};
|
|
43
43
|
'frame-products__left-arrow--icon': {};
|
|
44
44
|
'frame-products__right-arrow--icon': {};
|
|
45
|
+
'frame-products__pagination': {};
|
|
46
|
+
'frame-products__pagination-list-button': {};
|
|
47
|
+
'frame-products__pagination-list-button--controll': {};
|
|
48
|
+
'frame-products__pagination-list-button--page-number': {};
|
|
49
|
+
'frame-products__pagination-list-button--active': {};
|
|
45
50
|
};
|
|
46
51
|
config: any;
|
|
47
52
|
loadComplete: boolean;
|
|
@@ -73,6 +78,16 @@ export declare class AtwFrameProductRelate implements OnInit {
|
|
|
73
78
|
private observer;
|
|
74
79
|
private subscription;
|
|
75
80
|
private isItemVisible;
|
|
81
|
+
/** ----------------- PAGINATION --------------------- */
|
|
82
|
+
pageShowChoose: any;
|
|
83
|
+
pageGoto: number;
|
|
84
|
+
/** ----------------- PAGINATION --------------------- */
|
|
85
|
+
private heightFrameDB;
|
|
86
|
+
heightFrameProducts: any;
|
|
87
|
+
private totalDocs;
|
|
88
|
+
prevHeight: any;
|
|
89
|
+
hanldleProcessResizeOffset: EventEmitter<any>;
|
|
90
|
+
loading: boolean;
|
|
76
91
|
constructor(vhQueryAutoWeb: VhQueryAutoWeb, route: ActivatedRoute, vhEventMediator: VhEventMediator, functionService: FunctionService, element: ElementRef, // Dùng cho hàm setAnimationVisible trong functionService
|
|
77
92
|
pipeFrameService: PipeFrameService, platformId: Object);
|
|
78
93
|
ngOnInit(): void;
|
|
@@ -116,6 +131,46 @@ export declare class AtwFrameProductRelate implements OnInit {
|
|
|
116
131
|
*/
|
|
117
132
|
onDrop(event: DragEvent): void;
|
|
118
133
|
private onGetProduct;
|
|
134
|
+
/** ----------------- PAGINATION --------------------- */
|
|
135
|
+
/** Chuyển trang -----------------
|
|
136
|
+
*
|
|
137
|
+
* @param value
|
|
138
|
+
*/
|
|
139
|
+
transferFn(value: number): void;
|
|
140
|
+
/** Chuyển về trang trước đó
|
|
141
|
+
*
|
|
142
|
+
*/
|
|
143
|
+
private previewFn;
|
|
144
|
+
/** Chuyển đến trang kế tiếp
|
|
145
|
+
*
|
|
146
|
+
*/
|
|
147
|
+
private nextFn;
|
|
148
|
+
/** Chuyển trang đến trang trước
|
|
149
|
+
*
|
|
150
|
+
*/
|
|
151
|
+
gotoPreviousPage(): void;
|
|
152
|
+
/** Chuyển trang đến trang sau
|
|
153
|
+
*
|
|
154
|
+
*/
|
|
155
|
+
gotoNextPage(): void;
|
|
156
|
+
private changePage;
|
|
157
|
+
/** ----------------- PAGINATION --------------------- */
|
|
158
|
+
private setHeight;
|
|
159
|
+
/**
|
|
160
|
+
* Kiểm tra sự thay đổi kích thước của object
|
|
161
|
+
*/
|
|
162
|
+
private checkResizeOffset;
|
|
163
|
+
/** Hàm này trả về một chuỗi để chia layout cho grid
|
|
164
|
+
* @param value
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* cols = 4
|
|
168
|
+
* gap = 12
|
|
169
|
+
* Kết quả: calc(25% - 9px)
|
|
170
|
+
* @return calc(${100/cols}% - ${(gap/cols)*(cols-1)}px)
|
|
171
|
+
*
|
|
172
|
+
*/
|
|
173
|
+
private calcSpaceGrid;
|
|
119
174
|
static ɵfac: i0.ɵɵFactoryDeclaration<AtwFrameProductRelate, never>;
|
|
120
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AtwFrameProductRelate, "atw-frame-product-relate", never, { "resolution": "resolution"; "data": "data"; "id_subproject": "id_subproject"; "type": "type"; "objectChoosing": "objectChoosing"; "device": "device"; "blockChoosing": "blockChoosing"; "isPressingShift": "isPressingShift"; "isClone": "isClone"; "array_object_selected": "array_object_selected"; }, { "showToolBarObject": "showToolBarObject"; }, never, never>;
|
|
175
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AtwFrameProductRelate, "atw-frame-product-relate", never, { "resolution": "resolution"; "data": "data"; "id_subproject": "id_subproject"; "type": "type"; "objectChoosing": "objectChoosing"; "device": "device"; "blockChoosing": "blockChoosing"; "isPressingShift": "isPressingShift"; "isClone": "isClone"; "array_object_selected": "array_object_selected"; }, { "showToolBarObject": "showToolBarObject"; "hanldleProcessResizeOffset": "hanldleProcessResizeOffset"; }, never, never>;
|
|
121
176
|
}
|
|
@@ -22,6 +22,7 @@ export declare class AtwFrameProductsFavorited implements OnInit {
|
|
|
22
22
|
isPressingShift: any;
|
|
23
23
|
isClone: any;
|
|
24
24
|
showToolBarObject: EventEmitter<any>;
|
|
25
|
+
hanldleProcessResizeOffset: EventEmitter<any>;
|
|
25
26
|
private indexObject;
|
|
26
27
|
translateX: any;
|
|
27
28
|
private setinterval;
|
|
@@ -29,16 +30,20 @@ export declare class AtwFrameProductsFavorited implements OnInit {
|
|
|
29
30
|
listProducts: any;
|
|
30
31
|
private selectingItemOnFrame;
|
|
31
32
|
products2D: any;
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
33
|
+
/** ----------------- PAGINATION --------------------- */
|
|
34
|
+
pageCurrent: number;
|
|
35
|
+
totalPages: number;
|
|
36
|
+
pageShowChoose: any;
|
|
37
|
+
pageGoto: number;
|
|
38
|
+
/** ----------------- PAGINATION --------------------- */
|
|
39
|
+
private heightFrameDB;
|
|
40
|
+
heightFrameProducts: any;
|
|
41
|
+
private totalDocs;
|
|
42
|
+
prevHeight: any;
|
|
43
|
+
class: any;
|
|
41
44
|
config: any;
|
|
45
|
+
private classUpdates;
|
|
46
|
+
private configUpdates;
|
|
42
47
|
private iconLeft;
|
|
43
48
|
private iconRight;
|
|
44
49
|
loadComplete: boolean;
|
|
@@ -109,6 +114,46 @@ export declare class AtwFrameProductsFavorited implements OnInit {
|
|
|
109
114
|
* @param event
|
|
110
115
|
*/
|
|
111
116
|
onDrop(event: DragEvent): void;
|
|
117
|
+
/** Hàm này trả về một chuỗi để chia layout cho grid
|
|
118
|
+
* @param value
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* cols = 4
|
|
122
|
+
* gap = 12
|
|
123
|
+
* Kết quả: calc(25% - 9px)
|
|
124
|
+
* @return calc(${100/cols}% - ${(gap/cols)*(cols-1)}px)
|
|
125
|
+
*
|
|
126
|
+
*/
|
|
127
|
+
private calcSpaceGrid;
|
|
128
|
+
/** ----------------- PAGINATION --------------------- */
|
|
129
|
+
/** Chuyển trang -----------------
|
|
130
|
+
*
|
|
131
|
+
* @param value
|
|
132
|
+
*/
|
|
133
|
+
transferFn(value: number): void;
|
|
134
|
+
/** Chuyển về trang trước đó
|
|
135
|
+
*
|
|
136
|
+
*/
|
|
137
|
+
private previewFn;
|
|
138
|
+
/** Chuyển đến trang kế tiếp
|
|
139
|
+
*
|
|
140
|
+
*/
|
|
141
|
+
private nextFn;
|
|
142
|
+
/** Chuyển trang đến trang trước
|
|
143
|
+
*
|
|
144
|
+
*/
|
|
145
|
+
gotoPreviousPage(): void;
|
|
146
|
+
/** Chuyển trang đến trang sau
|
|
147
|
+
*
|
|
148
|
+
*/
|
|
149
|
+
gotoNextPage(): void;
|
|
150
|
+
private changePage;
|
|
151
|
+
/** ----------------- PAGINATION --------------------- */
|
|
152
|
+
private setHeight;
|
|
153
|
+
/**
|
|
154
|
+
* Kiểm tra sự thay đổi kích thước của object
|
|
155
|
+
*/
|
|
156
|
+
private checkResizeOffset;
|
|
112
157
|
static ɵfac: i0.ɵɵFactoryDeclaration<AtwFrameProductsFavorited, never>;
|
|
113
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AtwFrameProductsFavorited, "atw-frame-products-favorited", never, { "array_object_selected": "array_object_selected"; "resolution": "resolution"; "data": "data"; "id_subproject": "id_subproject"; "type": "type"; "objectChoosing": "objectChoosing"; "device": "device"; "blockChoosing": "blockChoosing"; "isPressingShift": "isPressingShift"; "isClone": "isClone"; }, { "showToolBarObject": "showToolBarObject"; }, never, never>;
|
|
158
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AtwFrameProductsFavorited, "atw-frame-products-favorited", never, { "array_object_selected": "array_object_selected"; "resolution": "resolution"; "data": "data"; "id_subproject": "id_subproject"; "type": "type"; "objectChoosing": "objectChoosing"; "device": "device"; "blockChoosing": "blockChoosing"; "isPressingShift": "isPressingShift"; "isClone": "isClone"; }, { "showToolBarObject": "showToolBarObject"; "hanldleProcessResizeOffset": "hanldleProcessResizeOffset"; }, never, never>;
|
|
114
159
|
}
|
|
@@ -8,7 +8,7 @@ export declare class AtwFrameProductsViewed implements OnInit {
|
|
|
8
8
|
private vhQueryAutoWeb;
|
|
9
9
|
pipeFrameService: PipeFrameService;
|
|
10
10
|
private vhEventMediator;
|
|
11
|
-
|
|
11
|
+
functionService: FunctionService;
|
|
12
12
|
private element;
|
|
13
13
|
private platformId;
|
|
14
14
|
array_object_selected: any[];
|
|
@@ -22,24 +22,26 @@ export declare class AtwFrameProductsViewed implements OnInit {
|
|
|
22
22
|
isPressingShift: any;
|
|
23
23
|
isClone: any;
|
|
24
24
|
showToolBarObject: EventEmitter<any>;
|
|
25
|
+
hanldleProcessResizeOffset: EventEmitter<any>;
|
|
25
26
|
isComponentExist: ElementRef<HTMLDivElement>;
|
|
26
27
|
private indexObject;
|
|
27
28
|
translateX: any;
|
|
28
29
|
private setinterval;
|
|
29
30
|
private rows;
|
|
30
|
-
|
|
31
|
+
listProducts: any;
|
|
31
32
|
private selectingItemOnFrame;
|
|
32
33
|
products2D: any;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
34
|
+
/** ----------------- PAGINATION --------------------- */
|
|
35
|
+
pageCurrent: number;
|
|
36
|
+
totalPages: number;
|
|
37
|
+
pageShowChoose: any;
|
|
38
|
+
pageGoto: number;
|
|
39
|
+
/** ----------------- PAGINATION --------------------- */
|
|
40
|
+
private heightFrameDB;
|
|
41
|
+
heightFrameProducts: any;
|
|
42
|
+
private totalDocs;
|
|
43
|
+
prevHeight: any;
|
|
44
|
+
class: any;
|
|
43
45
|
config: any;
|
|
44
46
|
private iconLeft;
|
|
45
47
|
private iconRight;
|
|
@@ -108,6 +110,46 @@ export declare class AtwFrameProductsViewed implements OnInit {
|
|
|
108
110
|
* @param event
|
|
109
111
|
*/
|
|
110
112
|
onDrop(event: DragEvent): void;
|
|
113
|
+
/** ----------------- PAGINATION --------------------- */
|
|
114
|
+
/** Chuyển trang -----------------
|
|
115
|
+
*
|
|
116
|
+
* @param value
|
|
117
|
+
*/
|
|
118
|
+
transferFn(value: number): void;
|
|
119
|
+
/** Chuyển về trang trước đó
|
|
120
|
+
*
|
|
121
|
+
*/
|
|
122
|
+
private previewFn;
|
|
123
|
+
/** Chuyển đến trang kế tiếp
|
|
124
|
+
*
|
|
125
|
+
*/
|
|
126
|
+
private nextFn;
|
|
127
|
+
/** Chuyển trang đến trang trước
|
|
128
|
+
*
|
|
129
|
+
*/
|
|
130
|
+
gotoPreviousPage(): void;
|
|
131
|
+
/** Chuyển trang đến trang sau
|
|
132
|
+
*
|
|
133
|
+
*/
|
|
134
|
+
gotoNextPage(): void;
|
|
135
|
+
private changePage;
|
|
136
|
+
/** ----------------- PAGINATION --------------------- */
|
|
137
|
+
private setHeight;
|
|
138
|
+
/**
|
|
139
|
+
* Kiểm tra sự thay đổi kích thước của object
|
|
140
|
+
*/
|
|
141
|
+
private checkResizeOffset;
|
|
142
|
+
/** Hàm này trả về một chuỗi để chia layout cho grid
|
|
143
|
+
* @param value
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* cols = 4
|
|
147
|
+
* gap = 12
|
|
148
|
+
* Kết quả: calc(25% - 9px)
|
|
149
|
+
* @return calc(${100/cols}% - ${(gap/cols)*(cols-1)}px)
|
|
150
|
+
*
|
|
151
|
+
*/
|
|
152
|
+
private calcSpaceGrid;
|
|
111
153
|
static ɵfac: i0.ɵɵFactoryDeclaration<AtwFrameProductsViewed, never>;
|
|
112
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AtwFrameProductsViewed, "atw-frame-products-viewed", never, { "array_object_selected": "array_object_selected"; "resolution": "resolution"; "data": "data"; "id_subproject": "id_subproject"; "type": "type"; "objectChoosing": "objectChoosing"; "device": "device"; "blockChoosing": "blockChoosing"; "isPressingShift": "isPressingShift"; "isClone": "isClone"; }, { "showToolBarObject": "showToolBarObject"; }, never, never>;
|
|
154
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AtwFrameProductsViewed, "atw-frame-products-viewed", never, { "array_object_selected": "array_object_selected"; "resolution": "resolution"; "data": "data"; "id_subproject": "id_subproject"; "type": "type"; "objectChoosing": "objectChoosing"; "device": "device"; "blockChoosing": "blockChoosing"; "isPressingShift": "isPressingShift"; "isClone": "isClone"; }, { "showToolBarObject": "showToolBarObject"; "hanldleProcessResizeOffset": "hanldleProcessResizeOffset"; }, never, never>;
|
|
113
155
|
}
|
|
@@ -3,6 +3,7 @@ import { VhAlgorithm, VhEventMediator, VhQueryAutoWeb } from 'vhautowebdb';
|
|
|
3
3
|
import { Router } from '@angular/router';
|
|
4
4
|
import { Subscription } from 'rxjs';
|
|
5
5
|
import { FunctionService } from 'vhobjects-service/src/services';
|
|
6
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
export declare class AtwIcon implements OnInit {
|
|
8
9
|
private vhQueryAutoWeb;
|
|
@@ -11,6 +12,7 @@ export declare class AtwIcon implements OnInit {
|
|
|
11
12
|
private element;
|
|
12
13
|
private vhEventMediator;
|
|
13
14
|
private functionService;
|
|
15
|
+
sanitizer: DomSanitizer;
|
|
14
16
|
private platformId;
|
|
15
17
|
data: any;
|
|
16
18
|
type: string;
|
|
@@ -26,7 +28,7 @@ export declare class AtwIcon implements OnInit {
|
|
|
26
28
|
observer: IntersectionObserver;
|
|
27
29
|
loading: boolean;
|
|
28
30
|
configChangedSubscription: any;
|
|
29
|
-
constructor(vhQueryAutoWeb: VhQueryAutoWeb, router: Router, vhAlgorithm: VhAlgorithm, element: ElementRef, vhEventMediator: VhEventMediator, functionService: FunctionService, platformId: Object);
|
|
31
|
+
constructor(vhQueryAutoWeb: VhQueryAutoWeb, router: Router, vhAlgorithm: VhAlgorithm, element: ElementRef, vhEventMediator: VhEventMediator, functionService: FunctionService, sanitizer: DomSanitizer, platformId: Object);
|
|
30
32
|
ngOnInit(): void;
|
|
31
33
|
ngAfterViewInit(): void;
|
|
32
34
|
getDetailObject(): void;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { ElementRef, EventEmitter, OnInit, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { MatDialog } from '@angular/material/dialog';
|
|
3
|
+
import { ActivatedRoute, Router } from '@angular/router';
|
|
4
|
+
import { Subscription } from 'rxjs';
|
|
5
|
+
import { VhEventMediator, VhImage, VhQueryAutoWeb } from 'vhautowebdb';
|
|
6
|
+
import { FunctionService } from 'vhobjects-service/src/services';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export declare class AtwImageDetailRepeat implements OnInit {
|
|
9
|
+
private router;
|
|
10
|
+
private route;
|
|
11
|
+
private vhImage;
|
|
12
|
+
private matDialog;
|
|
13
|
+
functionService: FunctionService;
|
|
14
|
+
private vhQueryAutoWeb;
|
|
15
|
+
private element;
|
|
16
|
+
private vhEventMediator;
|
|
17
|
+
private platformId;
|
|
18
|
+
product: any;
|
|
19
|
+
resolution: any;
|
|
20
|
+
data: any;
|
|
21
|
+
type: any;
|
|
22
|
+
device: any;
|
|
23
|
+
id_subproject: any;
|
|
24
|
+
index: any;
|
|
25
|
+
onSomething: EventEmitter<any>;
|
|
26
|
+
addObjectDuplicate: EventEmitter<any>;
|
|
27
|
+
save: EventEmitter<any>;
|
|
28
|
+
deleteTools: EventEmitter<any>;
|
|
29
|
+
isComponentExist: ElementRef<HTMLDivElement>;
|
|
30
|
+
config: any;
|
|
31
|
+
cutWebMan: boolean;
|
|
32
|
+
animation: any;
|
|
33
|
+
staticdata: any;
|
|
34
|
+
class: any;
|
|
35
|
+
visible_config_tool: boolean;
|
|
36
|
+
visible_config_tool_image: boolean;
|
|
37
|
+
filter: string;
|
|
38
|
+
show_button_config: boolean;
|
|
39
|
+
show_button_router: boolean;
|
|
40
|
+
id_image: string;
|
|
41
|
+
cropper: any;
|
|
42
|
+
cropImageModal: boolean;
|
|
43
|
+
isOpenInputLink: boolean;
|
|
44
|
+
imageCroppedSize: any;
|
|
45
|
+
idImage: string;
|
|
46
|
+
zoomData: any;
|
|
47
|
+
carouselState: any;
|
|
48
|
+
isCarouselActive: boolean;
|
|
49
|
+
isCarouselOtherImageActive: boolean;
|
|
50
|
+
isHoverZoomActive: boolean;
|
|
51
|
+
gridClass: string;
|
|
52
|
+
gridObjSelected: any;
|
|
53
|
+
effectCarouselClass: any;
|
|
54
|
+
object_ID: string;
|
|
55
|
+
arrayImage: any;
|
|
56
|
+
counterIndex: number;
|
|
57
|
+
ImageIndex: number;
|
|
58
|
+
swipeCoord?: [number, number];
|
|
59
|
+
swipeTime?: number;
|
|
60
|
+
intervalId: any;
|
|
61
|
+
observer: IntersectionObserver;
|
|
62
|
+
subscription: Subscription;
|
|
63
|
+
dataItem: any;
|
|
64
|
+
constructor(router: Router, route: ActivatedRoute, vhImage: VhImage, matDialog: MatDialog, functionService: FunctionService, vhQueryAutoWeb: VhQueryAutoWeb, element: ElementRef, // Dùng cho hàm setAnimationVisible trong functionService
|
|
65
|
+
vhEventMediator: VhEventMediator, platformId: Object);
|
|
66
|
+
ngOnInit(): void;
|
|
67
|
+
ngOnChanges(change: SimpleChanges): void;
|
|
68
|
+
ngAfterViewInit(): void;
|
|
69
|
+
/**
|
|
70
|
+
*
|
|
71
|
+
* @description Hàm này dùng để chuyển tiếp tự động hiệu ứng.
|
|
72
|
+
*/
|
|
73
|
+
initAutoPlay(id: any): void;
|
|
74
|
+
ngOnDestroy(): void;
|
|
75
|
+
resetInterval(id: any): void;
|
|
76
|
+
getSizeImage(): void;
|
|
77
|
+
createElementID(): void;
|
|
78
|
+
hanldeNext(id: any): void;
|
|
79
|
+
hanldePrev(id: any): void;
|
|
80
|
+
swipe(e: TouchEvent, when: string, id: any): void;
|
|
81
|
+
onImageNext(id: any): void;
|
|
82
|
+
onImagePrev(id: any): void;
|
|
83
|
+
gotoImageIndex(id: any, number: any): void;
|
|
84
|
+
onMouseDown(id: any, event: any): void;
|
|
85
|
+
onMouseUp(id: any, event: any): void;
|
|
86
|
+
onMouseEnter_Carousel(id: any, event: any): void;
|
|
87
|
+
onMouseMove_Carousel(id: any, event: any): void;
|
|
88
|
+
checkBoundary(id: any): void;
|
|
89
|
+
onMouseEnter_Zoom(imgID: any, resultID: any, event: any): void;
|
|
90
|
+
onMouseMove_Zoom(e: any): void;
|
|
91
|
+
onMouseOut_Zoom(event: any): void;
|
|
92
|
+
getCursorPos(e: any): {
|
|
93
|
+
x: number;
|
|
94
|
+
y: number;
|
|
95
|
+
};
|
|
96
|
+
/**
|
|
97
|
+
* Điều hướng tới link hoặc hyper_link khi có.
|
|
98
|
+
*/
|
|
99
|
+
navigate(event: any): void;
|
|
100
|
+
/**
|
|
101
|
+
* Hàm chờ khối xuất hiện và cuộn đến
|
|
102
|
+
* */
|
|
103
|
+
private scrollToBlockWhenAvailable;
|
|
104
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AtwImageDetailRepeat, never>;
|
|
105
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AtwImageDetailRepeat, "atw-image-detail-repeat", never, { "product": "product"; "resolution": "resolution"; "data": "data"; "type": "type"; "device": "device"; "id_subproject": "id_subproject"; "index": "index"; }, { "onSomething": "onSomething"; "addObjectDuplicate": "addObjectDuplicate"; "save": "save"; "deleteTools": "deleteTools"; }, never, never>;
|
|
106
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ElementRef, EventEmitter, OnInit } from '@angular/core';
|
|
1
|
+
import { ElementRef, EventEmitter, OnInit, TemplateRef } from '@angular/core';
|
|
2
2
|
import { MatDialog } from '@angular/material/dialog';
|
|
3
3
|
import { Router } from '@angular/router';
|
|
4
4
|
import { VhEventMediator, VhQueryAutoWeb } from 'vhautowebdb';
|
|
@@ -29,6 +29,7 @@ export declare class AtwButtonOrder implements OnInit {
|
|
|
29
29
|
id_subproject: any;
|
|
30
30
|
hanldleProcessResizeOffset: EventEmitter<any>;
|
|
31
31
|
isComponentExist: ElementRef<HTMLDivElement>;
|
|
32
|
+
simpleDialog: TemplateRef<any>;
|
|
32
33
|
prevHeight: any;
|
|
33
34
|
clientSize: any;
|
|
34
35
|
block_popup: any;
|
|
@@ -32,7 +32,9 @@ export declare class AtwTableOfContent {
|
|
|
32
32
|
constructor(functionService: FunctionService, vhQueryAutoWeb: VhQueryAutoWeb, platformId: Object);
|
|
33
33
|
ngOnInit(): void;
|
|
34
34
|
ngAfterViewInit(): void;
|
|
35
|
+
ngOnChanges(changes: any): void;
|
|
35
36
|
ngOnDestroy(): void;
|
|
37
|
+
private initObserver;
|
|
36
38
|
/**
|
|
37
39
|
* Lấy ra component field của frame để gán
|
|
38
40
|
* vào selector để truy xuất cho phù hợp
|
|
@@ -4,6 +4,7 @@ import { VhEventMediator, VhImage, VhQueryAutoWeb } from 'vhautowebdb';
|
|
|
4
4
|
import { MatDialog } from '@angular/material/dialog';
|
|
5
5
|
import { FunctionService } from 'vhobjects-service/src/services';
|
|
6
6
|
import { Subscription } from 'rxjs';
|
|
7
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
export declare class AtwImageDetail implements OnInit {
|
|
9
10
|
private router;
|
|
@@ -15,6 +16,7 @@ export declare class AtwImageDetail implements OnInit {
|
|
|
15
16
|
private element;
|
|
16
17
|
private vhEventMediator;
|
|
17
18
|
private platformId;
|
|
19
|
+
private sanitizer;
|
|
18
20
|
product: any;
|
|
19
21
|
resolution: any;
|
|
20
22
|
data: any;
|
|
@@ -59,8 +61,10 @@ export declare class AtwImageDetail implements OnInit {
|
|
|
59
61
|
intervalId: any;
|
|
60
62
|
observer: IntersectionObserver;
|
|
61
63
|
subscription: Subscription;
|
|
64
|
+
loadingVideo: boolean;
|
|
65
|
+
srcIframe: any;
|
|
62
66
|
constructor(router: Router, route: ActivatedRoute, vhImage: VhImage, matDialog: MatDialog, functionService: FunctionService, vhQueryAutoWeb: VhQueryAutoWeb, element: ElementRef, // Dùng cho hàm setAnimationVisible trong functionService
|
|
63
|
-
vhEventMediator: VhEventMediator, platformId: Object);
|
|
67
|
+
vhEventMediator: VhEventMediator, platformId: Object, sanitizer: DomSanitizer);
|
|
64
68
|
ngOnInit(): void;
|
|
65
69
|
ngOnChanges(change: SimpleChanges): void;
|
|
66
70
|
ngAfterViewInit(): void;
|
|
@@ -99,6 +103,17 @@ export declare class AtwImageDetail implements OnInit {
|
|
|
99
103
|
* hàm này để set local những sp đã xem khi click xem chi tiết sp
|
|
100
104
|
*/
|
|
101
105
|
private setProductViewed;
|
|
106
|
+
/** Định nghĩa pattern lấy ID từ link embed (hỗ trợ cả nocookie) */
|
|
107
|
+
private youtubeEmbedPattern;
|
|
108
|
+
isYoutubeLink(src: string): boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Lấy link ảnh
|
|
111
|
+
* - Nếu là ảnh thật thì trực tiếp trả về chính nó không cần xử lý thêm
|
|
112
|
+
* - Nếu là link youtube thì xử lý lấy id và dùng với link thumbnail
|
|
113
|
+
* @param src link ảnh/link youtube
|
|
114
|
+
*/
|
|
115
|
+
getUrlImage(src: string): string;
|
|
116
|
+
private initVideoIframe;
|
|
102
117
|
static ɵfac: i0.ɵɵFactoryDeclaration<AtwImageDetail, never>;
|
|
103
118
|
static ɵcmp: i0.ɵɵComponentDeclaration<AtwImageDetail, "atw-image-detail", never, { "product": "product"; "resolution": "resolution"; "data": "data"; "type": "type"; "device": "device"; "id_subproject": "id_subproject"; }, { "onSomething": "onSomething"; "addObjectDuplicate": "addObjectDuplicate"; "save": "save"; "deleteTools": "deleteTools"; }, never, never>;
|
|
104
119
|
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
|
+
import { FunctionService } from 'vhobjects-service/src/services';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class AtwVideoProduct implements OnInit {
|
|
6
|
+
private sanitizer;
|
|
7
|
+
functionService: FunctionService;
|
|
8
|
+
device: any;
|
|
9
|
+
data: any;
|
|
10
|
+
type: any;
|
|
11
|
+
index?: any;
|
|
12
|
+
product: any;
|
|
13
|
+
class: any;
|
|
14
|
+
private config;
|
|
15
|
+
private cutWebMan;
|
|
16
|
+
loading: boolean;
|
|
17
|
+
staticdata: any;
|
|
18
|
+
SrcIframe: any;
|
|
19
|
+
private src;
|
|
20
|
+
constructor(sanitizer: DomSanitizer, functionService: FunctionService);
|
|
21
|
+
ngOnInit(): void;
|
|
22
|
+
private getDetailObject;
|
|
23
|
+
private formatEmbedUrl;
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AtwVideoProduct, never>;
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AtwVideoProduct, "atw-video-product", never, { "device": "device"; "data": "data"; "type": "type"; "index": "index"; "product": "product"; }, {}, never, never>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { ElementRef, EventEmitter, OnInit } from '@angular/core';
|
|
2
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
|
+
import { ActivatedRoute, Router } from '@angular/router';
|
|
4
|
+
import { Subscription } from 'rxjs';
|
|
5
|
+
import { FunctionService } from 'vhobjects-service/src/services';
|
|
6
|
+
import { VhImage, VhQueryAutoWeb } from 'vhautowebdb';
|
|
7
|
+
import { LanguageService } from 'vhobjects-service/src/services';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
interface Review {
|
|
10
|
+
id: string;
|
|
11
|
+
username: string;
|
|
12
|
+
rating: number;
|
|
13
|
+
variant: string;
|
|
14
|
+
content: string;
|
|
15
|
+
images: string[];
|
|
16
|
+
sellerResponse?: string;
|
|
17
|
+
likes: number;
|
|
18
|
+
}
|
|
19
|
+
export declare class AtwReview implements OnInit {
|
|
20
|
+
functionService: FunctionService;
|
|
21
|
+
private router;
|
|
22
|
+
private sanitizer;
|
|
23
|
+
private vhQueryAutoWeb;
|
|
24
|
+
private route;
|
|
25
|
+
private vhImage;
|
|
26
|
+
private languageService;
|
|
27
|
+
data: any;
|
|
28
|
+
device: string;
|
|
29
|
+
addObjectDuplicate: EventEmitter<any>;
|
|
30
|
+
hanldleProcessResizeOffset: EventEmitter<any>;
|
|
31
|
+
type: any;
|
|
32
|
+
componentChoosing: any;
|
|
33
|
+
resolution: any;
|
|
34
|
+
id_subproject: string;
|
|
35
|
+
blockChoosing: any;
|
|
36
|
+
product: any;
|
|
37
|
+
private cutWebMan;
|
|
38
|
+
isComponentExist: ElementRef<HTMLDivElement>;
|
|
39
|
+
pageCurrent: number;
|
|
40
|
+
pageGoto: number;
|
|
41
|
+
totalPages: number;
|
|
42
|
+
pageShowChoose: number[];
|
|
43
|
+
loading: boolean;
|
|
44
|
+
prevHeight: any;
|
|
45
|
+
averageRating: number;
|
|
46
|
+
totalReviews: number;
|
|
47
|
+
newReview: any;
|
|
48
|
+
selectedFiles: File[];
|
|
49
|
+
previewUrls: any;
|
|
50
|
+
ratingBreakdown: {
|
|
51
|
+
stars: number;
|
|
52
|
+
count: number;
|
|
53
|
+
}[];
|
|
54
|
+
totalWithMedia: number;
|
|
55
|
+
totalWithComments: number;
|
|
56
|
+
selectedFilter: string;
|
|
57
|
+
reviews: Review[];
|
|
58
|
+
class: any;
|
|
59
|
+
config: any;
|
|
60
|
+
staticdata: any;
|
|
61
|
+
private animation;
|
|
62
|
+
queryParamsSubscription: Subscription;
|
|
63
|
+
routerSubscription: Subscription;
|
|
64
|
+
constructor(functionService: FunctionService, router: Router, sanitizer: DomSanitizer, vhQueryAutoWeb: VhQueryAutoWeb, route: ActivatedRoute, vhImage: VhImage, languageService: LanguageService);
|
|
65
|
+
ngOnInit(): void;
|
|
66
|
+
ngAfterViewInit(): void;
|
|
67
|
+
getObject(): void;
|
|
68
|
+
getReviews(): Promise<void>;
|
|
69
|
+
getAllRatingStats(): void;
|
|
70
|
+
calculateRatingBreakdownFromAll(allReviews: any[]): void;
|
|
71
|
+
calculateAverageRating(): void;
|
|
72
|
+
getStarArray(rating: number): boolean[];
|
|
73
|
+
filterReviews(filter: string): void;
|
|
74
|
+
likeReview(reviewId: string): void;
|
|
75
|
+
getFilteredReviews(): Review[];
|
|
76
|
+
isVideoUrl(url: string): boolean;
|
|
77
|
+
canShowReviewForm(): boolean;
|
|
78
|
+
canSubmit(): boolean;
|
|
79
|
+
redirectToLogin(): void;
|
|
80
|
+
removeImage(i: number): void;
|
|
81
|
+
resetForm(): void;
|
|
82
|
+
/** ----------------- PAGINATION --------------------- */
|
|
83
|
+
/** Chuyển trang -----------------
|
|
84
|
+
*
|
|
85
|
+
* @param value
|
|
86
|
+
*/
|
|
87
|
+
transferFn(value: number): void;
|
|
88
|
+
/** Chuyển trang đến trang trước
|
|
89
|
+
*
|
|
90
|
+
*/
|
|
91
|
+
gotoPreviousPage(): void;
|
|
92
|
+
/** Chuyển trang đến trang sau
|
|
93
|
+
*
|
|
94
|
+
*/
|
|
95
|
+
gotoNextPage(): void;
|
|
96
|
+
onFileChange(evt: Event): void;
|
|
97
|
+
submitReview(): Promise<void>;
|
|
98
|
+
private uploadSelectedImages;
|
|
99
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AtwReview, never>;
|
|
100
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AtwReview, "app-review", never, { "data": "data"; "device": "device"; "type": "type"; "componentChoosing": "componentChoosing"; "resolution": "resolution"; "id_subproject": "id_subproject"; "blockChoosing": "blockChoosing"; "product": "product"; }, { "addObjectDuplicate": "addObjectDuplicate"; "hanldleProcessResizeOffset": "hanldleProcessResizeOffset"; }, never, never>;
|
|
101
|
+
}
|
|
102
|
+
export {};
|