woodsportal-client-sdk 1.1.4-dev.4 → 1.1.4-dev.6
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/dist/index.js +24 -34
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -695,9 +695,6 @@ var getParamDetails = (props, isDetailsPage = false) => {
|
|
|
695
695
|
};
|
|
696
696
|
};
|
|
697
697
|
|
|
698
|
-
// src/clint/index.ts
|
|
699
|
-
init_auth_utils();
|
|
700
|
-
|
|
701
698
|
// src/breadcrumb/url.ts
|
|
702
699
|
var useUpdateLink = () => {
|
|
703
700
|
const updateLink = async (props, displayName = "prm") => {
|
|
@@ -806,9 +803,8 @@ var Client = {
|
|
|
806
803
|
authentication: {
|
|
807
804
|
preLogin: (data) => AuthHttpClient.post(API_ENDPOINTS.PRE_LOGIN, data),
|
|
808
805
|
login: (data) => {
|
|
809
|
-
const queryParams = config.hubId ? { hubId: config.hubId } : null;
|
|
810
806
|
return AuthHttpClient.post(
|
|
811
|
-
generateApiUrl({ route: API_ENDPOINTS.LOGIN, queryParams }),
|
|
807
|
+
generateApiUrl({ route: API_ENDPOINTS.LOGIN, queryParams: null }),
|
|
812
808
|
data,
|
|
813
809
|
config?.devPortalId && {
|
|
814
810
|
headers: {
|
|
@@ -851,17 +847,17 @@ var Client = {
|
|
|
851
847
|
apiParams.parentObjectTypeId = "0-2";
|
|
852
848
|
}
|
|
853
849
|
apiParams.isPrimaryCompany = param?.isPrimaryCompany;
|
|
854
|
-
apiParams.cache = payload?.
|
|
850
|
+
apiParams.cache = payload?.cache;
|
|
851
|
+
console.log("payload", payload);
|
|
855
852
|
const apiUrl = generateApiUrl({ route: API_ENDPOINTS.PIPELINES, params, queryParams: apiParams });
|
|
856
853
|
return HttpClient.get(apiUrl);
|
|
857
854
|
}
|
|
858
855
|
},
|
|
859
856
|
stage: {
|
|
860
857
|
list: (props = null) => {
|
|
861
|
-
const portalId = config.devPortalId;
|
|
862
858
|
const params = {
|
|
863
|
-
hubId: config.hubId,
|
|
864
|
-
portalId,
|
|
859
|
+
// hubId: config.hubId,
|
|
860
|
+
// portalId: portalId,
|
|
865
861
|
objectTypeId: props?.params?.objectTypeId,
|
|
866
862
|
pipelineId: props?.params?.pipelineId
|
|
867
863
|
};
|
|
@@ -871,6 +867,7 @@ var Client = {
|
|
|
871
867
|
},
|
|
872
868
|
object: {
|
|
873
869
|
list: async (payload = null, param = null) => {
|
|
870
|
+
param.cache = payload.cache;
|
|
874
871
|
const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId };
|
|
875
872
|
const { updateLink, getLinkParams } = useUpdateLink();
|
|
876
873
|
const { getParamDetails: getParamDetails2 } = routeParam;
|
|
@@ -961,10 +958,9 @@ var Client = {
|
|
|
961
958
|
},
|
|
962
959
|
details: (props = null) => {
|
|
963
960
|
const { paramsObject: urlParam, parentAccessLabel } = getParamDetails("", true);
|
|
964
|
-
const portalId = config.devPortalId;
|
|
965
961
|
const params = {
|
|
966
|
-
hubId: config.hubId,
|
|
967
|
-
portalId,
|
|
962
|
+
// hubId: config.hubId,
|
|
963
|
+
// portalId: portalId,
|
|
968
964
|
objectId: props?.params?.objectId,
|
|
969
965
|
id: props?.params?.id
|
|
970
966
|
};
|
|
@@ -977,10 +973,9 @@ var Client = {
|
|
|
977
973
|
return HttpClient.get(apiUrl);
|
|
978
974
|
},
|
|
979
975
|
update: (props = null) => {
|
|
980
|
-
const portalId = getPortal()?.portalId;
|
|
981
976
|
const params = {
|
|
982
|
-
hubId: config.hubId,
|
|
983
|
-
portalId,
|
|
977
|
+
// hubId: config.hubId,
|
|
978
|
+
// portalId: portalId,
|
|
984
979
|
objectId: props?.params?.objectId,
|
|
985
980
|
id: props?.params?.id
|
|
986
981
|
};
|
|
@@ -991,10 +986,9 @@ var Client = {
|
|
|
991
986
|
},
|
|
992
987
|
note: {
|
|
993
988
|
list: (props = null) => {
|
|
994
|
-
const portalId = getPortal()?.portalId;
|
|
995
989
|
const params = {
|
|
996
|
-
hubId: config.hubId,
|
|
997
|
-
portalId,
|
|
990
|
+
// hubId: config.hubId,
|
|
991
|
+
// portalId: portalId,
|
|
998
992
|
objectId: props?.params?.objectId,
|
|
999
993
|
id: props?.params?.id
|
|
1000
994
|
};
|
|
@@ -1009,10 +1003,9 @@ var Client = {
|
|
|
1009
1003
|
return HttpClient.post(apiUrl, payload);
|
|
1010
1004
|
},
|
|
1011
1005
|
update: (props = null) => {
|
|
1012
|
-
const portalId = getPortal()?.portalId;
|
|
1013
1006
|
const params = {
|
|
1014
|
-
hubId: config.hubId,
|
|
1015
|
-
portalId,
|
|
1007
|
+
// hubId: config.hubId,
|
|
1008
|
+
// portalId: portalId,
|
|
1016
1009
|
objectId: props?.params?.objectId,
|
|
1017
1010
|
id: props?.params?.id,
|
|
1018
1011
|
note_id: props?.params?.note_id
|
|
@@ -1050,10 +1043,9 @@ var Client = {
|
|
|
1050
1043
|
},
|
|
1051
1044
|
email: {
|
|
1052
1045
|
list: (props = null) => {
|
|
1053
|
-
const portalId = getPortal()?.portalId;
|
|
1054
1046
|
const params = {
|
|
1055
|
-
hubId: config.hubId,
|
|
1056
|
-
portalId,
|
|
1047
|
+
// hubId: config.hubId,
|
|
1048
|
+
// portalId: portalId,
|
|
1057
1049
|
objectId: props?.params?.objectId,
|
|
1058
1050
|
id: props?.params?.id
|
|
1059
1051
|
};
|
|
@@ -1068,10 +1060,9 @@ var Client = {
|
|
|
1068
1060
|
return HttpClient.post(apiUrl, payload);
|
|
1069
1061
|
},
|
|
1070
1062
|
update: (props = null) => {
|
|
1071
|
-
const portalId = getPortal()?.portalId;
|
|
1072
1063
|
const params = {
|
|
1073
|
-
hubId: config.hubId,
|
|
1074
|
-
portalId,
|
|
1064
|
+
// hubId: config.hubId,
|
|
1065
|
+
// portalId: portalId,
|
|
1075
1066
|
objectId: props?.params?.objectId,
|
|
1076
1067
|
id: props?.params?.id,
|
|
1077
1068
|
note_id: props?.params?.note_id
|
|
@@ -1109,25 +1100,25 @@ var Client = {
|
|
|
1109
1100
|
},
|
|
1110
1101
|
file: {
|
|
1111
1102
|
list: (props = null) => {
|
|
1112
|
-
const portalId = getPortal()?.portalId;
|
|
1113
1103
|
const params = {
|
|
1114
|
-
hubId: config.hubId,
|
|
1115
|
-
portalId,
|
|
1104
|
+
// hubId: config.hubId,
|
|
1105
|
+
// portalId: portalId,
|
|
1116
1106
|
objectId: props?.params?.objectId,
|
|
1117
1107
|
id: props?.params?.id
|
|
1118
1108
|
};
|
|
1109
|
+
console.log("params_0", params);
|
|
1119
1110
|
const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILES, params, queryParams: props?.queryParams });
|
|
1120
1111
|
return HttpClient.get(apiUrl);
|
|
1121
1112
|
},
|
|
1122
1113
|
details: (props = null) => {
|
|
1123
|
-
const portalId = getPortal()?.portalId;
|
|
1124
1114
|
const params = {
|
|
1125
|
-
hubId: config.hubId,
|
|
1126
|
-
portalId,
|
|
1115
|
+
// hubId: config.hubId,
|
|
1116
|
+
// portalId: portalId,
|
|
1127
1117
|
objectId: props?.params?.objectId,
|
|
1128
1118
|
id: props?.params?.id,
|
|
1129
1119
|
rowId: props?.params?.rowId
|
|
1130
1120
|
};
|
|
1121
|
+
console.log("params_1", params);
|
|
1131
1122
|
const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILE, params, queryParams: props?.queryParams });
|
|
1132
1123
|
return HttpClient.get(apiUrl);
|
|
1133
1124
|
},
|
|
@@ -1924,7 +1915,6 @@ function update3(options) {
|
|
|
1924
1915
|
function imageUpload(options) {
|
|
1925
1916
|
const { mutate, isLoading } = createMutation(
|
|
1926
1917
|
async (payload) => {
|
|
1927
|
-
console.log("payload", payload);
|
|
1928
1918
|
const response = payload?.type === "email" ? await Client.email.image(payload) : await Client.note.image(payload);
|
|
1929
1919
|
return response;
|
|
1930
1920
|
},
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/utils/constants.ts","../src/utils/cookie.ts","../src/clint/auth-utils.ts","../src/clint/token-store.ts","../src/utils/config.ts","../src/utils/localStoraget.ts","../src/utils/generateApiUrl.ts","../src/clint/api-endpoints.ts","../src/clint/http-clint.ts","../src/clint/config.ts","../src/data/user.ts","../src/utils/compress.ts","../src/breadcrumb/url-utils.ts","../src/breadcrumb/key-map.ts","../src/utils/param.ts","../src/breadcrumb/param.ts","../src/clint/index.ts","../src/breadcrumb/url.ts","../src/mutation/createMutation.ts","../src/apis/authentication.ts","../src/apis/sso.ts","../src/apis/users.ts","../src/store/index.ts","../src/utils/getCookieData.ts","../src/store/use-table.ts","../src/apis/pipeline.ts","../src/apis/stage.ts","../src/apis/object.ts","../src/apis/note.ts","../src/apis/email.ts","../src/apis/uploader.ts","../src/apis/file.ts","../src/index.ts","../src/breadcrumb/breadcrumbs.ts","../src/breadcrumb/generate-url.ts"],"names":["getRefreshToken","url","config","keyMap","getDeep","list","create","update","details","lastItem"],"mappings":";;;;;;;;;;;;;;;;AAAA,IACa,eACA,aAAA,EACA,MAAA,EACA,iBAAA,EAGA,YAAA,EACA,QACA,aAAA,EACA,SAAA;AAVb,IAAA,cAAA,GAAA,KAAA,CAAA;AAAA,EAAA,wBAAA,GAAA;AACO,IAAM,aAAA,GAAgB,cAAA;AACtB,IAAM,aAAA,GAAgB,cAAA;AACtB,IAAM,MAAA,GAAS,QAAA;AACf,IAAM,iBAAA,GAAoB,mBAAA;AAG1B,IAAM,YAAA,GAAe,aAAA;AACrB,IAAM,MAAA,GAAS,OAAA;AACf,IAAM,aAAA,GAAgB,aAAA;AACtB,IAAM,SAAA,GAAY,UAAA;AAAA,EAAA;AAAA,CAAA,CAAA;ACVzB,IAEa,SAAA,EAQA,WAQA,eAAA,EAYA,eAAA;AA9Bb,IAAA,WAAA,GAAA,KAAA,CAAA;AAAA,EAAA,qBAAA,GAAA;AAEO,IAAM,SAAA,GAAY,CAAC,GAAA,EAAa,KAAA,EAAe,MAAA,KAA2B;AAC7E,MAAA,OAAO,OAAA,CAAQ,GAAA,CAAI,GAAA,EAAK,KAAA,EAAO;AAAA,QAC3B,OAAA,EAAS,MAAA;AAAA,QACT,QAAA,EAAU,MAAA;AAAA,QACV,MAAA,EAAQ;AAAA,OACX,CAAA;AAAA,IACL,CAAA;AAEO,IAAM,SAAA,GAAiB,CAAC,GAAA,KAAa;AACxC,MAAA,OAAO,OAAA,CAAQ,IAAI,GAAG,CAAA;AAAA,IAC1B,CAAA;AAMO,IAAM,kBAAkB,MAAM;AACjC,MAAA,MAAA,CAAO,KAAK,OAAA,CAAQ,GAAA,EAAK,CAAA,CAAE,OAAA,CAAQ,CAAC,UAAA,KAAe;AAC/C,QAAA,OAAA,CAAQ,OAAO,UAAU,CAAA;AAAA,MAC7B,CAAC,CAAA;AAAA,IACL,CAAA;AAQO,IAAM,eAAA,GAAkB,CAAC,GAAA,KAAyB;AACvD,MAAA,MAAM,KAAA,GAAa,OAAA,CAAQ,GAAA,CAAI,GAAG,CAAA;AAClC,MAAA,IAAI;AACF,QAAA,MAAM,EAAE,SAAA,EAAU,GAAI,IAAA,CAAK,MAAM,KAAK,CAAA;AACtC,QAAA,OAAO,IAAA,CAAK,GAAA,EAAI,GAAI,SAAA,GAAY,IAAA,GAAO,KAAA;AAAA,MACzC,CAAA,CAAA,MAAQ;AACN,QAAA,OAAO,KAAA;AAAA,MACT;AAAA,IACF,CAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACtCA,IAAA,kBAAA,GAAA,EAAA;AAAA,QAAA,CAAA,kBAAA,EAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,UAAA,EAAA,MAAA,UAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,mBAAA,EAAA,MAAA,mBAAA;AAAA,EAAA,cAAA,EAAA,MAAA,cAAA;AAAA,EAAA,kBAAA,EAAA,MAAA,kBAAA;AAAA,EAAA,SAAA,EAAA,MAAA,SAAA;AAAA,EAAA,eAAA,EAAA,MAAA,eAAA;AAAA,EAAA,mBAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAiBO,SAAS,eAAA,CAAgB,OAAe,SAAA,EAAmB;AAChE,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,KAAiB;AACnC,IAAA,SAAA,CAAU,aAAA,EAAe,IAAA,CAAK,SAAA,CAAU,KAAK,GAAG,SAAS,CAAA;AACzD,IAAA,OAAA,EAAQ;AAAA,EACV,CAAC,CAAA;AACH;AAEO,SAAS,cAAA,CAAe,OAAe,SAAA,EAAoB;AAChE,EAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,KAAiB;AACnC,IAAA,eAAA,CAAgB,OAAO,SAAS,CAAA;AAChC,IAAA,OAAA,EAAQ;AAAA,EACV,CAAC,CAAA;AACH;AAiBO,SAAS,UAAA,GAA4B;AAC1C,EAAA,OAAO,KAAK,KAAA,CAAM,SAAA,CAAU,aAAA,IAAiB,IAAI,KAAK,IAAI,CAAA;AAC5D;AAEO,SAAS,eAAA,GAAiC;AAC/C,EAAA,OAAO,KAAK,KAAA,CAAM,SAAA,CAAU,aAAA,IAAiB,IAAI,KAAK,IAAI,CAAA;AAC5D;AAEO,SAAS,SAAA,GAAwB;AACtC,EAAA,OAAO,KAAK,KAAA,CAAM,SAAA,CAAU,MAAA,IAAU,IAAI,KAAK,IAAI,CAAA;AACrD;AAEO,SAAS,mBAAA,GAAqC;AACnD,EAAA,OAAO,KAAK,KAAA,CAAM,SAAA,CAAU,iBAAA,IAAqB,IAAI,KAAK,IAAI,CAAA;AAChE;AA5DA,IAUa,oBAqBA,SAAA,EAOA,mBAAA;AAtCb,IAAA,eAAA,GAAA,KAAA,CAAA;AAAA,EAAA,yBAAA,GAAA;AAKA,IAAA,cAAA,EAAA;AACA,IAAA,WAAA,EAAA;AACA,IAAA,gBAAA,EAAA;AAGO,IAAM,kBAAA,GAAqB,OAAO,IAAA,KAAc;AACrD,MAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,KAAiB;AACnC,QAAA,SAAA,CAAU,aAAA,EAAe,IAAA,CAAK,SAAA,CAAU,IAAI,CAAC,CAAA;AAC7C,QAAA,OAAA,EAAQ;AAAA,MACV,CAAC,CAAA;AAAA,IACH,CAAA;AAgBO,IAAM,SAAA,GAAY,OAAO,IAAA,KAAc;AAC5C,MAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,KAAiB;AACnC,QAAA,SAAA,CAAU,MAAA,EAAQ,IAAA,CAAK,SAAA,CAAU,IAAI,CAAC,CAAA;AACtC,QAAA,OAAA,EAAQ;AAAA,MACV,CAAC,CAAA;AAAA,IACH,CAAA;AAEO,IAAM,mBAAA,GAAsB,OAAO,IAAA,KAAc;AACtD,MAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,KAAiB;AACnC,QAAA,SAAA,CAAU,iBAAA,EAAmB,IAAA,CAAK,SAAA,CAAU,IAAI,CAAC,CAAA;AACjD,QAAA,OAAA,EAAQ;AAAA,MACV,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;AC/BO,SAAS,cAAA,GAAgC;AAC9C,EAAA,OAAO,WAAA;AACT;AAEO,SAAS,eAAA,CAAgB,OAAe,SAAA,EAA0B;AACvE,EAAA,WAAA,GAAc,KAAA;AACd,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,cAAA,GAAiB,IAAA,CAAK,GAAA,EAAI,GAAI,SAAA,GAAY,GAAA;AAAA,EAC5C,CAAA,MAAO;AACL,IAAA,cAAA,GAAiB,IAAA;AAAA,EACnB;AACF;AAEO,SAAS,gBAAA,GAAyB;AACvC,EAAA,WAAA,GAAc,IAAA;AACd,EAAA,cAAA,GAAiB,IAAA;AACnB;AAEO,SAAS,oBAAA,GAAgC;AAC9C,EAAA,IAAI,CAAC,gBAAgB,OAAO,IAAA;AAC5B,EAAA,OAAO,IAAA,CAAK,KAAI,IAAK,cAAA;AACvB;AAMO,SAAS,mBAAmB,QAAA,EAA+F;AAChI,EAAA,eAAA,GAAkB,QAAA;AACpB;AAKA,eAAsB,kBAAA,GAAoC;AACxD,EAAA,IAAI,oBAAA,MAA0B,eAAA,EAAiB;AAC7C,IAAA,MAAM,EAAE,eAAA,EAAAA,gBAAAA,EAAgB,GAAI,MAAM,OAAA,CAAA,OAAA,EAAA,CAAA,IAAA,CAAA,OAAA,eAAA,EAAA,EAAA,kBAAA,CAAA,CAAA;AAClC,IAAA,MAAM,eAAeA,gBAAAA,EAAgB;AACrC,IAAA,IAAI,YAAA,EAAc;AAChB,MAAA,MAAM,gBAAgB,YAAY,CAAA;AAAA,IACpC;AAAA,EACF;AACF;AAEO,SAAS,iBAAA,GAAoB;AAClC,EAAA,IAAI,eAAA,CAAgB,aAAa,CAAA,IAAK,oBAAA,EAAqB,EAAG;AAC5D,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,IAAA;AACT;AA7DA,IAQI,aACA,cAAA,EACA,eAAA;AAVJ,IAAA,gBAAA,GAAA,KAAA,CAAA;AAAA,EAAA,0BAAA,GAAA;AAKA,IAAA,WAAA,EAAA;AACA,IAAA,cAAA,EAAA;AAEA,IAAI,WAAA,GAA6B,IAAA;AACjC,IAAI,cAAA,GAAgC,IAAA;AACpC,IAAI,eAAA,GAA0G,IAAA;AAAA,EAAA;AAAA,CAAA,CAAA;;;ACT9G,cAAA,EAAA;;;ACsBO,IAAM,OAAA,GAAU;AAAA,EACnB,GAAA,EAAK,CAAC,GAAA,EAAa,KAAA,KAAe;AAC9B,IAAA,YAAA,CAAa,OAAA,CAAQ,GAAA,EAAK,IAAA,CAAK,SAAA,CAAU,KAAK,CAAC,CAAA;AAAA,EACnD,CAAA;AAAA,EAEA,GAAA,EAAK,CAAI,GAAA,KAA0B;AAC/B,IAAA,MAAM,IAAA,GAAO,YAAA,CAAa,OAAA,CAAQ,GAAG,CAAA;AACrC,IAAA,OAAO,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA,GAAI,IAAA;AAAA,EACrC,CAAA;AAAA,EAEA,MAAA,EAAQ,CAAC,GAAA,KAAgB;AACrB,IAAA,YAAA,CAAa,WAAW,GAAG,CAAA;AAAA,EAC/B;AACJ,CAAA;;;ADhCO,IAAM,MAAA,GAAS;AAAA,EACpB,IAAI,KAAA,GAAQ;AACV,IAAA,MAAM,WAAA,GAAmB,OAAA,CAAQ,GAAA,CAAsB,YAAY,CAAA;AACnE,IAAA,OAAO,WAAA,GAAc,MAAM,CAAA,IAAK,EAAA;AAAA,EAClC,CAAA;AAAA,EACA,IAAI,WAAA,GAAc;AAChB,IAAA,MAAM,WAAA,GAAmB,OAAA,CAAQ,GAAA,CAAsB,YAAY,CAAA;AACnE,IAAA,OAAO,WAAA,GAAc,aAAa,CAAA,IAAK,EAAA;AAAA,EACzC,CAAA;AAAA,EACA,IAAI,QAAA,GAAW;AACb,IAAA,MAAM,WAAA,GAAmB,OAAA,CAAQ,GAAA,CAAsB,YAAY,CAAA;AACnE,IAAA,OAAO,WAAA,GAAc,SAAS,CAAA,IAAK,EAAA;AAAA,EACrC;AACF,CAAA;AAEO,IAAM,SAAA,GAAY;AAAA,EACvB,eAAe,QAAA,EAAkB;AAC/B,IAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,GAAA,CAAoB,YAAY,KAAK,EAAC;AAE/D,IAAA,OAAA,CAAQ,IAAI,YAAA,EAAc;AAAA,MACxB,GAAG,QAAA;AAAA,MACH,CAAC,SAAS,GAAG;AAAA,KACd,CAAA;AAAA,EACH;AACF,CAAA;;;AE1BO,IAAM,iBAAiB,CAAC;AAAA,EAC7B,KAAA;AAAA,EACA,SAAS,EAAC;AAAA,EACV,WAAA,GAAc;AAChB,CAAA,KAIM;AACJ,EAAA,MAAM,aAAA,GAAgB;AAAA,IACpB,OAAO,MAAA,CAAO,KAAA;AAAA,IACd,UAAU,MAAA,CAAO;AAAA,GACnB;AACA,EAAA,MAAA,GAAS,EAAE,GAAG,aAAA,EAAe,GAAG,MAAA,EAAO;AACvC,EAAA,MAAMC,IAAAA,GAAM,aAAA,CAAc,KAAA,EAAO,MAAM,CAAA;AAEvC,EAAA,IAAI,WAAA,GAAc,EAAA;AAClB,EAAA,IAAI,WAAA,IAAe,OAAO,WAAA,KAAgB,QAAA,EAAU;AAClD,IAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,OAAA,CAAQ,WAAW,EAC7C,MAAA,CAAO,CAAC,CAAC,CAAA,EAAG,KAAK,CAAA,KAAM,KAAA,KAAU,IAAA,IAAQ,UAAU,MAAS,CAAA,CAC5D,MAAA,CAAO,CAAC,GAAA,EAAK,CAAC,GAAA,EAAK,KAAK,OAAO,EAAE,GAAG,GAAA,EAAK,CAAC,GAAG,GAAG,KAAA,EAAM,CAAA,EAAI,EAAE,CAAA;AAE/D,IAAA,WAAA,GAAc,IAAI,eAAA,CAAgB,aAAa,CAAA,CAAE,QAAA,EAAS;AAAA,EAC5D;AAEA,EAAA,OAAO,WAAA,GAAc,CAAA,EAAGA,IAAG,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA,GAAKA,IAAAA;AACjD,CAAA;AAEA,SAAS,aAAA,CACP,UACA,MAAA,EACA;AACA,EAAA,OAAO,QAAA,CAAS,OAAA;AAAA,IAAQ,cAAA;AAAA,IAAgB,CAAC,CAAA,EAAG,GAAA,KAC1C,GAAA,IAAO,MAAA,GAAS,MAAA,CAAO,MAAA,CAAO,GAAG,CAAC,CAAA,GAAI,CAAA,GAAA,EAAM,GAAG,CAAA,CAAA;AAAA,GACjD;AACF;;;ACrCO,IAAM,aAAA,GAAqB;AAAA;AAAA,EAEhC,SAAA,EAAW,qBAAA;AAAA,EACX,KAAA,EAAO,iBAAA;AAAA,EACP,YAAA,EAAc,mBAAA;AAAA,EACd,eAAA,EAAiB,2BAAA;AAAA,EACjB,2BAAA,EAA6B,0BAAA;AAAA,EAC7B,cAAA,EAAgB,0BAAA;AAAA,EAChB,YAAA,EAAc,wBAAA;AAAA,EACd,sBAAA,EAAwB,kCAAA;AAAA,EACxB,YAAA,EAAc,wBAAA;AAAA,EACd,MAAA,EAAQ,kBAAA;AAAA;AAAA,EAGR,WAAA,EAAa,sBAAA;AAAA,EACb,OAAA,EAAS,yBAAA;AAAA,EACT,YAAA,EAAc,wBAAA;AAAA;AAAA,EAGd,EAAA,EAAI,cAAA;AAAA,EACJ,OAAA,EAAS,oCAAA;AAAA,EACT,eAAA,EAAiB,2BAAA;AAAA;AAAA,EAGjB,SAAA,EAAW,0EAAA;AAAA;AAAA,EAGX,MAAA,EAAQ,wFAAA;AAAA;AAAA,EAGR,OAAA,EAAS,qEAAA;AAAA,EACT,YAAA,EAAc,6EAAA;AAAA,EACd,oBAAA,EAAsB,+EAAA;AAAA,EACtB,cAAA,EAAgB,6EAAA;AAAA,EAChB,uBAAA,EAAyB,4GAAA;AAAA,EACzB,uBAAA,EAAyB,4GAAA;AAAA,EACzB,eAAA,EAAiB,gEAAA;AAAA,EACjB,sBAAA,EAAwB,4EAAA;AAAA;AAAA,EAGxB,KAAA,EAAO,iEAAA;AAAA,EACP,YAAA,EAAc,iEAAA;AAAA,EACd,oBAAA,EAAsB,4EAAA;AAAA,EACtB,kBAAA,EAAoB,wEAAA;AAAA,EACpB,uBAAA,EAAyB,6EAAA;AAAA;AAAA,EAGzB,MAAA,EAAQ,kEAAA;AAAA,EACR,aAAA,EAAe,kEAAA;AAAA,EACf,qBAAA,EAAuB,6EAAA;AAAA,EACvB,mBAAA,EAAqB,yEAAA;AAAA,EACrB,wBAAA,EAA0B,8EAAA;AAAA;AAAA,EAG1B,KAAA,EAAO,iEAAA;AAAA,EACP,IAAA,EAAM,0EAAA;AAAA,EACN,mBAAA,EAAqB,mEAAA;AAAA,EACrB,YAAA,EAAc,iEAAA;AAAA,EACd,YAAA,EAAc;AAChB,CAAA;ACvDA,gBAAA,EAAA;;;ACGO,IAAMC,OAAAA,GAAiB;AAAA,EAC5B,OAAA,EAAS;AACX,CAAA;;;ADDA,eAAA,EAAA;AAgDA,IAAI,aAAA,GAAsC,IAAA;AAC1C,IAAIA,UAA2B,EAAC;AAKzB,SAAS,qBAAqB,YAAA,EAAsC;AACzE,EAAAA,OAAAA,GAAS,YAAA;AAET,EAAA,MAAM,OAAA,GAAUA,OAAAA,CAAO,OAAA,IAAWA,OAAAA,CAAc,OAAA;AAChD,EAAA,MAAM,OAAA,GAAUA,QAAO,OAAA,IAAW,GAAA;AAElC,EAAA,aAAA,GAAgB,MAAM,MAAA,CAAO;AAAA,IAC3B,OAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA,EAAS;AAAA,MACP,cAAA,EAAgB,kBAAA;AAAA,MAChB,GAAGA,OAAAA,CAAO;AAAA;AACZ,GACD,CAAA;AAGD,EAAA,kBAAA,CAAmB,mBAAmB,CAAA;AAGtC,EAAA,aAAA,CAAc,YAAA,CAAa,OAAA,CAAQ,GAAA,CAAI,CAACA,OAAAA,KAAuC;AAC7E,IAAA,MAAM,QAAQ,cAAA,EAAe;AAC7B,IAAA,IAAI,KAAA,EAAO;AACT,MAAAA,QAAO,OAAA,CAAQ,GAAA,CAAI,eAAA,EAAiB,CAAA,OAAA,EAAU,KAAK,CAAA,CAAE,CAAA;AAAA,IACvD;AACA,IAAA,OAAOA,OAAAA;AAAA,EACT,CAAC,CAAA;AAGD,EAAA,aAAA,CAAc,aAAa,QAAA,CAAS,GAAA;AAAA,IAClC,CAAC,QAAA,KAAa,QAAA;AAAA,IACd,CAAC,KAAA,KAAsB;AACrB,MAAA,IAAI,KAAA,CAAM,QAAA,IAAY,KAAA,CAAM,QAAA,CAAS,WAAW,GAAA,EAAK;AACnD,QAA8BA,OAAAA,CAAO,qBAAA,IAAwB,IAAK;AAmBlE,MACF;AACA,MAAA,OAAO,OAAA,CAAQ,OAAO,KAAK,CAAA;AAAA,IAC7B;AAAA,GACF;AACF;AAKA,SAAS,gBAAA,GAAkC;AACzC,EAAA,IAAI,CAAC,aAAA,EAAe;AAElB,IAAA,oBAAA,CAAqB;AAAA,MACnB,SAASA,OAAAA,CAAc,OAAA;AAAA,MACvB,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH;AACA,EAAA,OAAO,aAAA;AACT;AAEA,SAAS,wBAAA,CAAyB,KAAa,KAAA,EAAwB;AACrE,EAAA,OAAO,KAAA,GAAQ,CAAA,EAAG,GAAG,CAAA,EAAA,CAAA,GAAO,GAAG,GAAG,CAAA,CAAA,CAAA;AACpC;AAEO,IAAM,aAAN,MAAiB;AAAA,EACtB,aAAa,GAAA,CAAOD,IAAAA,EAAa,MAAA,EAA8B;AAC7D,IAAA,MAAM,kBAAA,EAAmB;AACzB,IAAA,MAAM,QAAA,GAAW,MAAM,gBAAA,EAAiB,CAAE,IAAOA,IAAAA,EAAK,EAAE,QAAQ,CAAA;AAChE,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,aAAa,IAAA,CAAQA,IAAAA,EAAa,IAAA,EAAe,OAAA,EAA2B;AAC1E,IAAA,MAAM,kBAAA,EAAmB;AACzB,IAAA,MAAM,WAAW,MAAM,gBAAA,GAAmB,IAAA,CAAQA,IAAAA,EAAK,MAAM,OAAO,CAAA;AACpE,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,aAAa,GAAA,CAAOA,IAAAA,EAAa,IAAA,EAA2B;AAC1D,IAAA,MAAM,kBAAA,EAAmB;AACzB,IAAA,MAAM,WAAW,MAAM,gBAAA,EAAiB,CAAE,GAAA,CAAOA,MAAK,IAAI,CAAA;AAC1D,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,aAAa,OAAUA,IAAAA,EAAyB;AAC9C,IAAA,MAAM,kBAAA,EAAmB;AACzB,IAAA,MAAM,QAAA,GAAW,MAAM,gBAAA,EAAiB,CAAE,OAAUA,IAAG,CAAA;AACvD,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,OAAO,mBAAmB,MAAA,EAA8B;AACtD,IAAA,OAAO,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,CACzB,MAAA,CAAO,CAAC,GAAG,KAAK,CAAA,KAAM,OAAA,CAAQ,KAAK,CAAC,CAAA,CACpC,GAAA;AAAA,MAAI,CAAC,CAAC,CAAA,EAAG,CAAC,CAAA,KACT;AAAA,QACE,MAAA;AAAA,QACA,YAAA;AAAA,QACA,MAAA;AAAA,QACA,QAAA;AAAA,QACA,cAAA;AAAA,QACA,OAAA;AAAA,QACA;AAAA,OACF,CAAE,SAAS,CAAC,CAAA,GACR,GAAG,CAAC,CAAA,MAAA,EAAS,CAAC,CAAA,CAAA,GACd,CAAC,aAAa,EAAE,QAAA,CAAS,CAAC,IACxB,wBAAA,CAAyB,CAAA,EAAG,CAAY,CAAA,GACxC,CAAA,EAAG,CAAC,CAAA,CAAA,EAAI,CAAC,CAAA;AAAA,KACjB,CACC,KAAK,GAAG,CAAA;AAAA,EACb;AACF,CAAA;AAEO,IAAM,iBAAN,MAAqB;AAAA,EAC1B,aAAa,GAAA,CAAOA,IAAAA,EAAa,MAAA,EAA8B;AAC7D,IAAA,MAAM,QAAA,GAAW,MAAM,gBAAA,EAAiB,CAAE,IAAOA,IAAAA,EAAK,EAAE,QAAQ,CAAA;AAChE,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,aAAa,IAAA,CAAQA,IAAAA,EAAa,IAAA,EAAe,OAAA,EAA2B;AAC1E,IAAA,MAAM,WAAW,MAAM,gBAAA,GAAmB,IAAA,CAAQA,IAAAA,EAAK,MAAM,OAAO,CAAA;AACpE,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AAAA,EAEA,aAAa,GAAA,CAAOA,IAAAA,EAAa,IAAA,EAAe,OAAA,EAA2B;AACzE,IAAA,MAAM,WAAW,MAAM,gBAAA,GAAmB,GAAA,CAAOA,IAAAA,EAAK,MAAM,OAAO,CAAA;AACnE,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB;AACF,CAAA;AAEO,SAAS,cAAc,KAAA,EAA+B;AAC3D,EAAA,IAAI,KAAA,CAAM,YAAA,CAAa,KAAK,CAAA,EAAG;AAC7B,IAAA,OAAQ,KAAA,CAAM,QAAA,EAAU,IAAA,EAAc,OAAA,IAAW,IAAA;AAAA,EACnD;AACA,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,eAAe,KAAA,EAAqB;AAClD,EAAA,IAAI,KAAA,CAAM,YAAA,CAAa,KAAK,CAAA,EAAG;AAC7B,IAAA,OAAQ,KAAA,CAAM,QAAA,EAAU,IAAA,EAAc,MAAA,IAAU,IAAA;AAAA,EAClD;AACA,EAAA,OAAO,IAAA;AACT;AAEA,eAAsB,oBAAoB,YAAA,EAGvC;AACD,EAAA,IAAI;AAEF,IAAA,MAAM,UAAkC,EAAC;AAEzC,IAAA,IAAI,OAAW,WAAA,EAAa;AAC1B,MAAA,OAAA,CAAQ,iBAAiB,IAAI,MAAA,CAAW,WAAA;AAAA,IAC1C;AAEA,IAAA,MAAM,OAAA,GAAU,cAAA,CAAe,EAAE,KAAA,EAAO,aAAA,CAAc,YAAA,EAAc,WAAA,EAAa,EAAE,KAAA,EAAO,MAAA,CAAW,KAAA,EAAM,EAAG,CAAA;AAE9G,IAAA,MAAM,QAAA,GAAW,MAAM,gBAAA,EAAiB,CAAE,IAAA;AAAA,MACxC,OAAA;AAAA,MACA,EAAE,YAAA,EAAa;AAAA,MACf,EAAE,OAAA;AAAQ,KACZ;AAEA,IAAA,MAAM,SAAA,GAAY,QAAA,EAAU,IAAA,EAAM,IAAA,IAAQ,QAAA,EAAU,IAAA;AACpD,IAAA,MAAM,SAAA,GAAY,SAAA,EAAW,SAAA,IAAa,SAAA,IAAa,EAAC;AACxD,IAAA,MAAM,kBAAkB,SAAA,EAAW,YAAA;AACnC,IAAA,MAAM,QAAQ,SAAA,EAAW,KAAA;AACzB,IAAA,MAAM,YAAY,SAAA,EAAW,SAAA;AAC7B,IAAA,MAAM,aAAa,SAAA,EAAW,gBAAA;AAC9B,IAAA,MAAM,aAAa,SAAA,EAAW,gBAAA;AAE9B,IAAA,IAAI,OAAO,oBAAoB,QAAA,EAAU;AACvC,MAAA,IAAI,QAAA,GAAW,CAAA;AACf,MAAA,IAAI,OAAO,eAAe,QAAA,EAAU;AAClC,QAAA,QAAA,GAAW,IAAA,CAAK,GAAA,EAAI,GAAI,UAAA,GAAa,GAAA;AAAA,MACvC,CAAA,MAAA,IAAW,OAAO,UAAA,KAAe,QAAA,EAAU;AACzC,QAAA,QAAA,GAAW,UAAA,GAAa,GAAA;AAAA,MAC1B;AACA,MAAA,eAAA,CAAgB,iBAAiB,QAAQ,CAAA;AAAA,IAC3C;AAEA,IAAA,IAAI,OAAO,UAAU,QAAA,EAAU;AAC7B,MAAA,cAAA,CAAe,KAAA,EAAO,OAAO,SAAA,KAAc,QAAA,GAAW,YAAY,KAAA,CAAS,CAAA;AAC3E,MAAA,OAAO,EAAE,KAAA,EAAO,OAAA,EAAS,IAAA,EAAK;AAAA,IAChC;AAEA,IAAA,OAAO,EAAE,KAAA,EAAO,IAAA,EAAM,OAAA,EAAS,KAAA,EAAM;AAAA,EACvC,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,EAAE,KAAA,EAAO,IAAA,EAAM,OAAA,EAAS,KAAA,EAAM;AAAA,EACvC;AACF;;;AEvQO,IAAI,OAAA,GAAe,IAAA;AAEnB,IAAM,cAAA,GAAiB,CAAC,IAAA,KAAc;AACzC,EAAA,OAAA,GAAU,IAAA;AACd,CAAA;AAEO,IAAM,iBAAiB,MAAM;AAChC,EAAA,OAAO,OAAA;AACX,CAAA;ACLO,SAAS,gBAAgB,GAAA,EAAsB;AACpD,EAAA,IAAI;AACF,IAAA,IAAI,CAAC,KAAK,OAAO,EAAA;AACjB,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,SAAA,CAAU,GAAG,CAAA;AAC/B,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,OAAA,CAAQ,IAAI,CAAA;AACpC,IAAA,MAAM,MAAA,GAAS,MAAA,CAAO,cAAA,CAAe,UAAA,EAAY,IAAI,CAAA;AAErD,IAAA,OAAO,MAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,KAAA,CAAM,4BAA4B,KAAK,CAAA;AAC/C,IAAA,OAAO,EAAA;AAAA,EACT;AACF;AAEO,SAAS,eAAe,OAAA,EAAsB;AACnD,EAAA,IAAI;AACF,IAAA,IAAI,CAAC,SAAS,OAAO,IAAA;AAErB,IAAA,MAAM,UAAA,GAAa,MAAA,CAAO,YAAA,CAAa,OAAO,CAAA;AAC9C,IAAA,MAAM,eAAe,IAAA,CAAK,OAAA,CAAQ,YAAY,EAAE,EAAA,EAAI,UAAU,CAAA;AAE9D,IAAA,OAAO,IAAA,CAAK,MAAM,YAAY,CAAA;AAAA,EAChC,SAAS,KAAA,EAAO;AACd,IAAA,OAAA,CAAQ,KAAA,CAAM,4BAA4B,KAAK,CAAA;AAC/C,IAAA,OAAO,IAAA;AAAA,EACT;AACF;;;AC1BO,SAAS,WAAA,CAAY,KAAUE,OAAAA,EAAqC;AACvE,EAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA,EAAG;AACpB,IAAA,OAAO,IAAI,GAAA,CAAI,CAAC,SAAS,WAAA,CAAY,IAAA,EAAMA,OAAM,CAAC,CAAA;AAAA,EACtD,CAAA,MAAA,IAAW,GAAA,KAAQ,IAAA,IAAQ,OAAO,QAAQ,QAAA,EAAU;AAChD,IAAA,OAAO,MAAA,CAAO,OAAA,CAAQ,GAAG,CAAA,CAAE,MAAA,CAAO,CAAC,GAAA,EAAK,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM;AACrD,MAAA,MAAM,SAAA,GAAYA,OAAAA,CAAO,GAAG,CAAA,IAAK,GAAA;AACjC,MAAA,GAAA,CAAI,SAAS,CAAA,GAAI,WAAA,CAAY,KAAA,EAAOA,OAAM,CAAA;AAC1C,MAAA,OAAO,GAAA;AAAA,IACX,CAAA,EAAG,EAAyB,CAAA;AAAA,EAChC;AACA,EAAA,OAAO,GAAA;AACX;AAGO,SAAS,gBAAgB,WAAA,EAAkB;AAC9C,EAAA,IAAI,QAAA,GAAW,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AACjD,EAAA,IAAI,SAAA,GAAY,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AAClD,EAAA,IAAI,SAAA,GAAY,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AAElD,EAAA,OAAQ,QAAA,EAAU,WAAW,CAAC,SAAA,EAAW,UAAU,SAAA,EAAW,MAAA,CAAA,IAAW,SAAA,EAAW,MAAA,GAAU,IAAA,GAAO,KAAA;AACzG;AAGO,SAAS,wBAAwB,WAAA,EAAkB;AACtD,EAAA,IAAI,QAAA,GAAW,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AACjD,EAAA,IAAI,SAAA,GAAY,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AAElD,EAAA,OAAQ,CAAC,QAAA,EAAU,MAAA,KAAW,WAAW,MAAA,IAAU,SAAA,EAAW,UAAW,KAAA,GAAQ,IAAA;AACrF;AAGO,SAAS,gBAAgB,eAAA,EAAsB;AAClD,EAAA,IAAI,cAAA,GAAyB,OAAA;AAE7B,EAAA,IAAI,eAAA,CAAgB,WAAW,CAAA,EAAG;AAC9B,IAAA,cAAA,GAAiB,MAAA;AAAA,EACrB,CAAA,MAAA,IAAW,eAAA,CAAgB,MAAA,KAAW,CAAA,EAAG;AACrC,IAAA,cAAA,GAAiB,cAAA;AAAA,EACrB;AAEA,EAAA,OAAO,cAAA;AACX;AAGO,IAAM,WAAA,GAAc,CAAC,KAAA,EAAY,WAAA,KAAqB;AACzD,EAAA,MAAM,SAAA,GAAY,gBAAgB,WAAW,CAAA;AAC7C,EAAA,IAAIF,IAAAA,GAAM,EAAA;AACV,EAAA,IAAI,KAAA,EAAO,YAAA,IAAgB,KAAA,EAAO,QAAA,EAAU;AACxC,IAAAA,IAAAA,GAAM,CAAA,CAAA,EAAI,KAAA,EAAO,QAAQ,CAAA,CAAA,EAAI,KAAA,EAAO,YAAY,CAAA,CAAA,EAAI,KAAA,EAAO,QAAQ,CAAA,GAAA,EAAM,SAAS,CAAA,CAAA;AAAA,EACtF,CAAA,MAAO;AACH,IAAAA,IAAAA,GAAM,CAAA,aAAA,EAAgB,KAAA,EAAO,YAAY,MAAM,SAAS,CAAA,CAAA;AAAA,EAC5D;AACA,EAAA,OAAOA,IAAAA;AACX,CAAA;AAGO,SAAS,qBAAqB,IAAA,EAAW;AAC5C,EAAA,OAAO,IAAA,CAAK,MAAA;AAAA,IAAO,CAAC,IAAA,KAAA,CACf,IAAA,CAAK,MAAM,IAAA,CAAK,MAAA,KAAW,CAAC,IAAA,CAAK;AAAA,GACtC,CAAE,MAAA;AACN;AAGO,IAAM,YAAA,GAAe,CAAC,WAAA,EAAkB,UAAA,EAAiB,KAAA,KAAe;AAC3E,EAAA,MAAM,KAAK,eAAA,CAAgB,WAAA,CAAY,MAAM,CAAA,EAAG,KAAA,GAAQ,CAAC,CAAC,CAAA;AAC1D,EAAA,IAAI,UAAU,CAAA,EAAG;AACb,IAAA,OAAO;AAAA,MACH,MAAM,UAAA,EAAY,CAAA;AAAA,MAClB,MAAM,CAAA,CAAA,EAAI,UAAA,EAAY,MAAM,UAAA,EAAY,MAAM,MAAM,EAAE,CAAA;AAAA,KAC1D;AAAA,EACJ,CAAA,MAAA,IAAW,UAAU,CAAA,EAAG;AACpB,IAAA,IAAI,YAAY,MAAA,EAAQ;AACpB,MAAA,OAAO;AAAA,QACH,MAAM,UAAA,EAAY,CAAA;AAAA,QAClB,IAAA,EAAM,CAAA,aAAA,EAAgB,UAAA,EAAY,MAAM,MAAM,EAAE,CAAA;AAAA,OACpD;AAAA,IACJ;AACA,IAAA,OAAO;AAAA,MACH,MAAM,UAAA,EAAY,CAAA;AAAA,MAClB,IAAA,EAAM,CAAA,CAAA,EAAI,UAAA,EAAY,MAAM,CAAA,CAAA,EAAI,UAAA,EAAY,MAAM,CAAA,CAAA,EAAI,UAAA,EAAY,MAAM,CAAA,GAAA,EAAM,EAAE,CAAA;AAAA,KACpF;AAAA,EACJ,CAAA,MAAO;AACH,IAAA,IAAI,YAAY,MAAA,IAAU,UAAA,EAAY,MAAA,IAAU,CAAC,YAAY,MAAA,EAAQ;AACjE,MAAA,OAAO;AAAA,QACH,MAAM,UAAA,EAAY,CAAA;AAAA,QAClB,IAAA,EAAM,CAAA,CAAA,EAAI,UAAA,EAAY,MAAM,CAAA,CAAA,EAAI,UAAA,EAAY,MAAM,CAAA,CAAA,EAAI,UAAA,EAAY,MAAM,CAAA,GAAA,EAAM,EAAE,CAAA;AAAA,OACpF;AAAA,IACJ,CAAA,MAAO;AACH,MAAA,OAAO;AAAA,QACH,MAAM,UAAA,EAAY,CAAA;AAAA,QAClB,IAAA,EAAM,CAAA,aAAA,EAAgB,UAAA,EAAY,MAAM,MAAM,EAAE,CAAA;AAAA,OACpD;AAAA,IACJ;AAAA,EACJ;AACJ,CAAA;;;ACjGO,IAAM,MAAA,GAAiC;AAAA,EAC1C,EAAA,EAAI,gBAAA;AAAA,EACJ,CAAA,EAAG,MAAA;AAAA,EACH,IAAA,EAAM,MAAA;AAAA,EACN,MAAA,EAAQ,cAAA;AAAA,EACR,CAAA,EAAG,QAAA;AAAA,EACH,GAAA,EAAK,oBAAA;AAAA,EACL,EAAA,EAAI,gBAAA;AAAA,EACJ,EAAA,EAAI,aAAA;AAAA,EACJ,CAAA,EAAG,OAAA;AAAA,EACH,IAAA,EAAM,kBAAA;AAAA,EACN,CAAA,EAAG,MAAA;AAAA,EACH,CAAA,EAAG,OAAA;AAAA,EACH,EAAA,EAAI,MAAA;AAAA,EACJ,CAAA,EAAG,MAAA;AAAA,EACH,CAAA,EAAG,OAAA;AAAA,EACH,IAAA,EAAM,gBAAA;AAAA,EACN,EAAA,EAAI,WAAA;AAAA,EACJ,EAAA,EAAI,QAAA;AAAA,EACJ,EAAA,EAAI,SAAA;AAAA,EACJ,EAAA,EAAI,eAAA;AAAA,EACJ,GAAA,EAAK;AACP,CAAA;;;ACpBK,SAAS,SAAS,SAAA,EAAkC;AACzD,EAAA,IAAI,OAAO,UAAA,KAAe,WAAA,IAAe,CAAE,UAAA,CAAmB,UAAU,OAAO,IAAA;AAE/E,EAAA,MAAM,IAAA,GAAgB,UAAA,CAAmB,QAAA,CAAS,IAAA,IAAQ,EAAA;AAC1D,EAAA,IAAI,CAAC,IAAA,CAAK,UAAA,CAAW,IAAI,GAAG,OAAO,IAAA;AAEnC,EAAA,MAAM,eAAA,GAAkB,KAAK,UAAA,CAAW,GAAG,IAAI,IAAA,CAAK,SAAA,CAAU,CAAC,CAAA,GAAI,IAAA;AAEnE,EAAA,MAAM,WAAA,GAAc,eAAA,CAAgB,KAAA,CAAM,GAAG,EAAE,CAAC,CAAA;AAChD,EAAA,IAAI,CAAC,aAAa,OAAO,IAAA;AAEzB,EAAA,MAAM,MAAA,GAAS,IAAI,eAAA,CAAgB,WAAW,CAAA;AAC9C,EAAA,OAAO,MAAA,CAAO,IAAI,SAAS,CAAA;AAC7B;AAEO,SAAS,OAAA,GAAyB;AACvC,EAAA,IAAI,OAAO,UAAA,KAAe,WAAA,IAAe,CAAE,UAAA,CAAmB,UAAU,OAAO,IAAA;AAE/E,EAAA,MAAM,IAAA,GAAgB,UAAA,CAAmB,QAAA,CAAS,IAAA,IAAQ,EAAA;AAC1D,EAAA,IAAI,CAAC,IAAA,CAAK,UAAA,CAAW,IAAI,GAAG,OAAO,IAAA;AAEnC,EAAA,OAAO,KACJ,KAAA,CAAM,CAAC,EACP,KAAA,CAAM,GAAG,EAAE,CAAC,CAAA;AACjB;;;ACrBO,IAAM,YAAA,GAAe,CAAC,IAAA,KAAiB;AAE5C,EAAA,MAAM,SAAA,GAAa,UAAA,EAAoB,SAAA,IAAa,EAAC;AACrD,EAAA,OAAO,UAAU,IAAA,CAAK,CAAC,IAAA,KAAc,IAAA,EAAM,SAAS,IAAI,CAAA;AAC1D,CAAA;AAEO,IAAM,kBAAkB,MAAM;AAGnC,EAAA,MAAM,MAAA,GAAc,SAAS,GAAG,CAAA;AAEhC,EAAA,MAAM,WAAA,GAAc,cAAA,CAAe,MAAM,CAAA,IAAK,EAAC;AAC/C,EAAA,MAAM,QAAA,GAAW,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AACnD,EAAA,MAAM,MAAA,GAAS,QAAA,GAAW,WAAA,CAAY,QAAA,EAAU,MAAM,CAAA,GAAI,IAAA;AAE1D,EAAA,OAAO,EAAE,cAAc,MAAA,EAAO;AAChC,CAAA;AAGO,IAAM,eAAA,GAAkB,CAAC,KAAA,EAAa,aAAA,GAAyB,KAAA,KAAU;AAI9E,EAAA,MAAM,MAAA,GAAc,SAAS,GAAG,CAAA;AAChC,EAAA,IAAI,WAAA,GAAc,cAAA,CAAe,MAAM,CAAA,IAAK,EAAC;AAE7C,EAAA,IAAI,YAAY,MAAA,GAAS,CAAA,IAAK,WAAA,GAAc,CAAC,GAAG,MAAA,EAAQ;AACtD,IAAA,WAAA,GAAc,WAAA,CAAY,MAAM,CAAC,CAAA;AAAA,EACnC;AAEA,EAAA,IAAI,oBAAA,GAAuB,EAAA;AAC3B,EAAA,IAAI,sBAAA,GAAyB,EAAA;AAC7B,EAAA,IAAI,kBAAA,GAAqB,EAAA;AACzB,EAAA,IAAI,oBAAA,GAAuB,EAAA;AAE3B,EAAA,IAAI,QAAA,GAAW,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AACjD,EAAA,MAAM,SAAA,GAAY,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AACpD,EAAA,MAAM,SAAA,GAAY,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AAEpD,EAAA,IAAI,aAAA,KAAkB,IAAA,IAAQ,QAAA,IAAY,KAAA,IAAS,QAAA,EAAU;AAC3D,IAAA,OAAO,QAAA,CAAS,GAAA;AAAA,EAClB;AAEA,EAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,IAAA,IAAI,KAAA,EAAO,IAAA,KAAS,QAAA,IAAY,KAAA,EAAO,SAAS,aAAA,EAAe;AAC7D,MAAA,oBAAA,GAAuB,WAAA,CAAY,CAAC,CAAA,EAAG,MAAA,IAAU,EAAA;AACjD,MAAA,sBAAA,GAAyB,WAAA,CAAY,CAAC,CAAA,EAAG,MAAA,IAAU,EAAA;AACnD,MAAA,kBAAA,GAAqB,UAAU,MAAA,IAAU,EAAA;AACzC,MAAA,oBAAA,GAAuB,UAAU,MAAA,IAAU,EAAA;AAAA,IAE7C,CAAA,MAAO;AACL,MAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,QAAA,oBAAA,GAAuB,WAAA,CAAY,CAAC,CAAA,EAAG,MAAA,IAAU,EAAA;AACjD,QAAA,sBAAA,GAAyB,WAAA,CAAY,CAAC,CAAA,EAAG,MAAA,IAAU,EAAA;AAAA,MACrD;AAEA,MAAA,IAAI,CAAC,QAAA,EAAU,MAAA,IAAU,WAAA,CAAY,SAAS,CAAA,EAAG;AAC/C,QAAA,kBAAA,GAAqB,WAAW,MAAA,IAAU,EAAA;AAC1C,QAAA,oBAAA,GAAuB,WAAW,MAAA,IAAU,EAAA;AAAA,MAE9C;AAEA,MAAA,IAAI,QAAA,EAAU,MAAA,IAAU,WAAA,CAAY,MAAA,GAAS,CAAA,EAAG;AAC9C,QAAA,kBAAA,GAAqB,WAAW,MAAA,IAAU,EAAA;AAC1C,QAAA,oBAAA,GAAuB,WAAW,MAAA,IAAU,EAAA;AAAA,MAE9C;AAEA,MAAA,IAAI,WAAW,MAAA,KAAW,KAAA,IAAS,CAAC,kBAAA,IAAsB,CAAC,oBAAA,EAAsB;AAC/E,QAAA,kBAAA,GAAqB,WAAW,MAAA,IAAU,EAAA;AAC1C,QAAA,oBAAA,GAAuB,WAAW,MAAA,IAAU,EAAA;AAAA,MAC9C;AAAA,IAEF;AAAA,EACF;AACA,EAAA,IAAI,eAAoB,EAAC;AAmBzB,EAAA,IAAI,WAAA,CAAY,CAAC,CAAA,EAAG,GAAA,EAAK,IAAA,IAAQ,WAAA,CAAY,CAAC,CAAA,EAAG,GAAA,EAAK,IAAA,IAAQ,QAAA,EAAU,GAAA,EAAK,IAAA,EAAM;AACjF,IAAA,YAAA,CAAa,kBAAkB,CAAA,GAAI,IAAA;AAAA,EACrC;AAGA,EAAA,IAAI,sBAAsB,oBAAA,EAAsB;AAC9C,IAAA,YAAA,CAAa,oBAAoB,CAAA,GAAI,kBAAA;AACrC,IAAA,YAAA,CAAa,sBAAsB,CAAA,GAAI,oBAAA;AAAA,EACzC;AACA,EAAA,IAAI,wBAAwB,sBAAA,EAAwB;AAClD,IAAA,YAAA,CAAa,sBAAsB,CAAA,GAAI,oBAAA;AACvC,IAAA,YAAA,CAAa,wBAAwB,CAAA,GAAI,sBAAA;AAAA,EAC3C;AAEA,EAAA,MAAM,sBAAsB,MAAA,CAAO,WAAA;AAAA,IACjC,MAAA,CAAO,OAAA,CAAQ,QAAA,EAAU,GAAA,IAAO,EAAE,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM;AAAA,MACxD,MAAA,CAAO,GAAG,CAAA,IAAK,GAAA;AAAA;AAAA,MACf;AAAA,KACD;AAAA,GACH;AAEA,EAAA,IAAI,WAAA,GAAc,IAAA;AAElB,EAAA,IAAI,KAAA,EAAO,SAAS,aAAA,EAAe;AACjC,IAAA,WAAA,GAAc,IAAI,eAAA,CAAgB,EAAE,GAAG,YAAA,EAAc,GAAG,EAAE,KAAA,EAAO,KAAA,EAAM,EAAU,CAAA,CAAE,QAAA,EAAS;AAAA,EAI9F,CAAA,MAAO;AACL,IAAA,WAAA,GAAc,IAAI,gBAAgB,EAAE,GAAG,cAAc,GAAG,mBAAA,EAA4B,CAAA,CAAE,QAAA,EAAS;AAAA,EACjG;AAMA,EAAA,IAAI,MAAA,GAAc,WAAA,GAAc,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA,GAAK,EAAA;AAYpD,EAAA,MAAM,iBAAA,GAAoB,qBAAqB,WAAW,CAAA;AAC1D,EAAA,IAAI,iBAAA,GAAoB,KAAA;AAGxB,EAAA,IACG,WAAA,CAAY,CAAC,CAAA,EAAG,GAAA,EAAK,QAAQ,iBAAA,GAAoB,CAAA;AAAA,EACjD,CAAC,WAAA,CAAY,CAAC,CAAA,EAAG,GAAA,EAAK,QAAQ,iBAAA,GAAoB,CAAA;AAAA,EAClD,WAAA,CAAY,CAAC,CAAA,EAAG,GAAA,EAAK,QAAQ,iBAAA,GAAoB,CAAA,IAAK,OAAO,IAAA,KAAS,QAAA;AAAA,EACtE,CAAC,WAAA,CAAY,CAAC,CAAA,EAAG,GAAA,EAAK,QAAQ,iBAAA,GAAoB,CAAA,IAAK,KAAA,EAAO,IAAA,KAAS,QAAA,EACxE;AACA,IAAA,iBAAA,GAAoB,IAAA;AAAA,EACtB;AAEA,EAAA,OAAO;AAAA,IACL,WAAA;AAAA;AAAA,IAEA,YAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACF;AACF,CAAA;;;AC/JA,eAAA,EAAA;;;ACHO,IAAM,gBAAgB,MAAM;AAC/B,EAAA,MAAM,UAAA,GAAa,OAAO,KAAA,EAAY,WAAA,GAAsB,KAAA,KAAU;AAClE,IAAA,MAAM,MAAA,GAAc,SAAS,GAAG,CAAA;AAChC,IAAA,MAAM,WAAgB,OAAA,EAAQ;AAE9B,IAAA,IAAI,WAAA,GAAc,cAAA,CAAe,MAAM,CAAA,IAAK,EAAC;AAE7C,IAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAExB,MAAA,MAAM,SAAA,GAAiB,aAAa,QAAQ,CAAA;AAC5C,MAAA,WAAA,GAAc;AAAA,QACV;AAAA,UACI,GAAG,SAAA,EAAW,KAAA;AAAA,UACd,IAAI,SAAA,EAAW;AAAA;AACnB,OACJ;AAAA,IACJ;AAGA,IAAA,MAAM,cAAA,GAAiB,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AAEzD,IAAA,IAAI,gBAAA,GAAmB,IAAA;AAEvB,IAAA,IAAI,WAAA,EAAa;AACb,MAAA,MAAM,KAAK,MAAM,OAAA,CAAQ,cAAA,EAAgB,WAAW,KAAK,EAAC;AAE1D,MAAA,gBAAA,GAAmB,MAAM,OAAA,CAAQ,cAAA,EAAgB,WAAA,EAAa;AAAA,QAC1D,GAAG,EAAA;AAAA,QACH,GAAG;AAAA,OACN,CAAA;AAAA,IACL,CAAA,MAAO;AACH,MAAA,gBAAA,GAAmB,MAAA,CAAO,MAAA,CAAO,cAAA,EAAgB,KAAK,CAAA;AAAA,IAC1D;AACA,IAAA,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA,GAAI,gBAAA;AACtC,IAAA,MAAM,SAAA,GAAY,gBAAgB,WAAW,CAAA;AAC7C,IAAA,YAAA,CAAa,SAAS,CAAA;AAAA,EAC1B,CAAA;AAIA,EAAA,SAAS,OAAA,CAAQ,GAAA,EAAU,IAAA,EAAc,KAAA,EAAY;AACjD,IAAA,MAAM,IAAA,GAAO,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA;AAC3B,IAAA,IAAI,IAAA,GAAO,GAAA;AACX,IAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,MAAA,GAAS,GAAG,CAAA,EAAA,EAAK;AACtC,MAAA,IAAI,CAAC,IAAA,CAAK,IAAA,CAAK,CAAC,CAAC,CAAA,IAAK,OAAO,IAAA,CAAK,IAAA,CAAK,CAAC,CAAC,CAAA,KAAM,QAAA,EAAU;AACrD,QAAA,IAAA,CAAK,IAAA,CAAK,CAAC,CAAC,CAAA,GAAI,EAAC;AAAA,MACrB;AACA,MAAA,IAAA,GAAO,IAAA,CAAK,IAAA,CAAK,CAAC,CAAC,CAAA;AAAA,IACvB;AACA,IAAA,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,MAAA,GAAS,CAAC,CAAC,CAAA,GAAI,KAAA;AAC9B,IAAA,OAAO,IAAA;AAAA,EACX;AAEA,EAAA,SAAS,OAAA,CAAQ,KAAU,IAAA,EAAc;AACrC,IAAA,OAAO,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,MAAA,CAAO,CAAC,GAAA,EAAK,GAAA,KAAQ,GAAA,GAAM,GAAG,CAAA,EAAG,GAAG,CAAA;AAAA,EAC/D;AAoBA,EAAA,MAAM,aAAA,GAAgB,CAAC,WAAA,GAAsB,KAAA,KAAU;AAGnD,IAAA,MAAM,MAAA,GAAc,SAAS,GAAG,CAAA;AAEhC,IAAA,IAAI,WAAA,GAAc,cAAA,CAAe,MAAM,CAAA,IAAK,EAAC;AAE7C,IAAA,IAAI,WAAA,CAAY,MAAA,GAAS,CAAA,EAAG,OAAO,IAAA;AAEnC,IAAA,MAAM,QAAA,GAAW,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AAGnD,IAAA,MAAMG,QAAAA,GAAU,CAAC,GAAA,EAAU,IAAA,KAAiB;AACxC,MAAA,OAAO,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,MAAA,CAAO,CAAC,GAAA,EAAK,GAAA,KAAQ,GAAA,GAAM,GAAG,CAAA,EAAG,GAAG,CAAA;AAAA,IAC/D,CAAA;AAGA,IAAA,MAAM,UAAA,GAAa,CAAC,GAAA,KAA6B;AAC7C,MAAA,OAAO,MAAA,CAAO,WAAA;AAAA,QACV,MAAA,CAAO,QAAQ,GAAG,CAAA,CAAE,IAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM;AAAA,UACtC,MAAA,CAAO,GAAG,CAAA,IAAK,GAAA;AAAA;AAAA,UACf;AAAA,SACH;AAAA,OACL;AAAA,IACJ,CAAA;AAGA,IAAA,MAAM,WAAA,GAAc,WAAA,GAAcA,QAAAA,CAAQ,QAAA,EAAU,WAAW,CAAA,GAAI,IAAA;AAEnE,IAAA,MAAM,MAAA,GAAS,WAAA,GAAc,UAAA,CAAW,WAAW,CAAA,GAAI,IAAA;AAEvD,IAAA,OAAO,MAAA;AAAA,EACX,CAAA;AAEA,EAAA,MAAM,YAAA,GAAe,CAAC,WAAA,GAAsB,KAAA,KAAU;AAGlD,IAAA,MAAM,MAAA,GAAc,SAAS,GAAG,CAAA;AAEhC,IAAA,IAAI,WAAA,GAAc,cAAA,CAAe,MAAM,CAAA,IAAK,EAAC;AAE7C,IAAA,IAAI,WAAA,CAAY,MAAA,GAAS,CAAA,EAAG,OAAO,IAAA;AAEnC,IAAA,MAAM,QAAA,GAAW,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AAGnD,IAAA,MAAMA,QAAAA,GAAU,CAAC,GAAA,EAAU,IAAA,KAAiB;AACxC,MAAA,OAAO,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,MAAA,CAAO,CAAC,GAAA,EAAK,GAAA,KAAQ,GAAA,GAAM,GAAG,CAAA,EAAG,GAAG,CAAA;AAAA,IAC/D,CAAA;AAGA,IAAA,MAAM,UAAA,GAAa,CAAC,GAAA,KAA6B;AAC7C,MAAA,OAAO,MAAA,CAAO,WAAA;AAAA,QACV,MAAA,CAAO,QAAQ,GAAG,CAAA,CAAE,IAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM;AAAA,UACtC,MAAA,CAAO,GAAG,CAAA,IAAK,GAAA;AAAA;AAAA,UACf;AAAA,SACH;AAAA,OACL;AAAA,IACJ,CAAA;AAGA,IAAA,MAAM,WAAA,GAAc,WAAA,GAAcA,QAAAA,CAAQ,QAAA,EAAU,WAAW,CAAA,GAAI,IAAA;AAEnE,IAAA,MAAM,SAAS,WAAA,GAAc,UAAA,CAAW,WAAW,CAAA,GAAI,WAAW,QAAQ,CAAA;AAE1E,IAAA,OAAO,MAAA;AAAA,EACX,CAAA;AAEA,EAAA,OAAO,EAAE,UAAA,EAAY,aAAA,EAAe,YAAA,EAAa;AACrD,CAAA;AAEA,IAAM,YAAA,GAAe,CAAC,QAAA,KAA2B;AAa7C,EAAA,IAAI,OAAO,UAAA,KAAe,WAAA,IAAe,CAAE,WAAmB,QAAA,EAAU;AAExE,EAAA,MAAM,IAAA,GAAgB,UAAA,CAAmB,QAAA,CAAS,IAAA,IAAQ,EAAA;AAG1D,EAAA,IAAI,CAAC,IAAA,CAAK,UAAA,CAAW,IAAI,CAAA,EAAG;AAE5B,EAAA,MAAM,WAAA,GAAc,IAAA,CAAK,KAAA,CAAM,CAAC,CAAA;AAChC,EAAA,MAAM,CAAC,IAAA,EAAM,WAAW,CAAA,GAAI,WAAA,CAAY,MAAM,GAAG,CAAA;AAEjD,EAAA,MAAM,MAAA,GAAS,IAAI,eAAA,CAAgB,WAAA,IAAe,EAAE,CAAA;AACpD,EAAA,MAAA,CAAO,GAAA,CAAI,KAAK,QAAQ,CAAA;AAExB,EAAA,MAAM,UAAU,CAAA,EAAA,EAAK,IAAI,CAAA,CAAA,EAAI,MAAA,CAAO,UAAU,CAAA,CAAA;AAG9C,EAAA,IAAI,OAAO,UAAA,KAAe,WAAA,IAAgB,WAAmB,OAAA,IAAY,UAAA,CAAmB,QAAQ,YAAA,EAAc;AAC9G,IAAC,UAAA,CAAmB,OAAA,CAAQ,YAAA,CAAa,IAAA,EAAM,IAAI,OAAO,CAAA;AAAA,EAC9D;AACJ,CAAA;;;AD5KO,IAAM,MAAA,GAAS;AAAA,EACpB,cAAA,EAAgB;AAAA,IACd,UAAU,CAAC,IAAA,KAA0B,eAAe,IAAA,CAAK,aAAA,CAAc,WAAW,IAAI,CAAA;AAAA,IACtF,KAAA,EAAO,CAAC,IAAA,KAAuB;AAC7B,MAAA,MAAM,cAAc,MAAA,CAAO,KAAA,GAAQ,EAAE,KAAA,EAAO,MAAA,CAAO,OAAM,GAAI,IAAA;AAC7D,MAAA,OAAO,cAAA,CAAe,IAAA;AAAA,QACpB,eAAe,EAAE,KAAA,EAAO,aAAA,CAAc,KAAA,EAAO,aAAa,CAAA;AAAA,QAC1D,IAAA;AAAA,QACA,QAAQ,WAAA,IAAe;AAAA,UACrB,OAAA,EAAS;AAAA,YACP,mBAAmB,MAAA,CAAO;AAAA;AAC5B;AACF,OACF;AAAA,IACF,CAAA;AAAA,IACA,aAAa,CAAC,IAAA,KAA6B,eAAe,IAAA,CAAK,aAAA,CAAc,cAAc,IAAI,CAAA;AAAA,IAC/F,0BAA0B,CAAC,IAAA,KAA0C,eAAe,IAAA,CAAK,aAAA,CAAc,6BAA6B,IAAI,CAAA;AAAA,IACxI,eAAe,CAAC,IAAA,KAA+B,eAAe,IAAA,CAAK,aAAA,CAAc,gBAAgB,IAAI,CAAA;AAAA,IACrG,gBAAgB,CAAC,IAAA,KAAgC,eAAe,IAAA,CAAK,aAAA,CAAc,iBAAiB,IAAI,CAAA;AAAA,IACxG,sBAAsB,CAAC,IAAA,KAAc,eAAe,IAAA,CAAK,aAAA,CAAc,wBAAwB,IAAI,CAAA;AAAA,IACnG,mBAAmB,CAAC,IAAA,KAAc,eAAe,IAAA,CAAK,aAAA,CAAc,wBAAwB,IAAI,CAAA;AAAA,IAChG,aAAa,CAAC,IAAA,KAAc,eAAe,IAAA,CAAK,aAAA,CAAc,cAAc,IAAI,CAAA;AAAA,IAChF,QAAQ,MAAM,UAAA,CAAW,IAAA,CAAK,aAAA,CAAc,QAAQ,IAAI;AAAA,GAC1D;AAAA,EACA,GAAA,EAAK;AAAA,IACH,aAAA,EAAe,MAAM,cAAA,CAAe,GAAA,CAAI,cAAc,WAAW,CAAA;AAAA,IACjE,cAAA,EAAgB,CAAC,OAAA,KAAiB,cAAA,CAAe,IAAI,cAAA,CAAe,EAAE,KAAA,EAAO,aAAA,CAAc,OAAA,EAAS,WAAA,EAAa,OAAA,EAAS,WAAA,EAAa,CAAC,CAAA;AAAA,IACxI,WAAA,EAAa,CAAC,OAAA,KAAiB,cAAA,CAAe,IAAI,cAAA,CAAe,EAAE,KAAA,EAAO,aAAA,CAAc,YAAA,EAAc,WAAA,EAAa,OAAA,EAAS,WAAA,EAAa,CAAC;AAAA,GAC5I;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,EAAA,EAAI,MAAM,UAAA,CAAW,GAAA,CAAI,cAAA,CAAe,EAAE,KAAA,EAAO,aAAA,CAAc,EAAA,EAAI,CAAC,CAAA;AAAA,IACpE,OAAA,EAAS,CAAC,OAAA,KAAiB,UAAA,CAAW,GAAA,CAAI,cAAA,CAAe,EAAE,KAAA,EAAO,aAAA,CAAc,OAAA,EAAS,WAAA,EAAa,OAAA,EAAS,CAAC,CAAA;AAAA,IAChH,gBAAgB,CAAC,IAAA,KAAgC,WAAW,IAAA,CAAK,aAAA,CAAc,iBAAiB,IAAI;AAAA,GACtG;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,CAAC,OAAA,GAAe,IAAA,EAAM,QAAa,IAAA,KAAS;AAIhD,MAAA,MAAM,MAAA,GAAS,EAAE,mBAAA,EAAqB,OAAA,EAAS,mBAAA,EAAoB;AAEnE,MAAA,MAAM,EAAE,eAAA,EAAiB,gBAAA,EAAiB,GAAI,UAAA;AAC9C,MAAA,MAAM,EAAE,cAAa,GAAI,gBAAA,CAAiB,EAAE,IAAA,EAAM,OAAA,EAAS,eAAe,CAAA;AAE1E,MAAA,MAAM,WAAW,cAAA,EAAe;AAEhC,MAAA,MAAM,YAAiB,EAAC;AAExB,MAAA,IAAI,cAAc,kBAAA,EAAoB;AACpC,QAAA,SAAA,CAAU,qBAAqB,YAAA,EAAc,kBAAA;AAAA,MAC/C,CAAA,MAAA,IAAW,SAAS,MAAA,IAAU,QAAA,EAAU,MAAM,IAAA,EAAM,YAAA,IAAgB,CAAC,KAAA,EAAO,gBAAA,EAAkB;AAC5F,QAAA,SAAA,CAAU,kBAAA,GAAqB,QAAA,EAAU,IAAA,EAAM,IAAA,EAAM,YAAA;AAAA,MACvD,CAAA,MAAA,IAAW,SAAS,MAAA,IAAU,QAAA,EAAU,MAAM,IAAA,EAAM,YAAA,IAAgB,OAAO,gBAAA,EAAkB;AAC3F,QAAA,SAAA,CAAU,kBAAA,GAAqB,KAAA;AAAA,MACjC;AAGA,MAAA,SAAA,CAAU,mBAAmB,KAAA,EAAO,gBAAA;AACpC,MAAA,SAAA,CAAU,KAAA,GAAQ,OAAA,EAAS,IAAA,GAAO,KAAA,GAAQ,IAAA;AAG1C,MAAA,MAAM,MAAA,GAAS,eAAe,EAAE,KAAA,EAAO,cAAc,SAAA,EAAW,MAAA,EAAQ,WAAA,EAAa,SAAA,EAAW,CAAA;AAChG,MAAA,OAAO,UAAA,CAAW,IAAI,MAAM,CAAA;AAAA,IAC9B;AAAA,GACF;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,CAAC,KAAA,GAAa,IAAA,KAAS;AAC3B,MAAA,MAAM,WAAW,MAAA,CAAO,WAAA;AACxB,MAAA,MAAM,MAAA,GAAS;AAAA,QACb,OAAO,MAAA,CAAO,KAAA;AAAA,QACd,QAAA;AAAA,QACA,YAAA,EAAc,OAAO,MAAA,EAAQ,YAAA;AAAA,QAC7B,UAAA,EAAY,OAAO,MAAA,EAAQ;AAAA,OAC7B;AACA,MAAA,MAAM,SAAS,cAAA,CAAe,EAAE,OAAO,aAAA,CAAc,MAAA,EAAQ,QAAQ,CAAA;AACrE,MAAA,OAAO,UAAA,CAAW,IAAI,MAAM,CAAA;AAAA,IAC9B;AAAA,GACF;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,OAAO,OAAA,GAAe,IAAA,EAAM,QAAa,IAAA,KAAS;AAItD,MAAA,MAAM,MAAA,GAAS,EAAE,mBAAA,EAAqB,OAAA,EAAS,mBAAA,EAAoB;AAInE,MAAA,MAAM,EAAE,UAAA,EAAY,aAAA,EAAc,GAAI,aAAA,EAAc;AAEpD,MAAA,MAAM,EAAE,eAAA,EAAiB,gBAAA,EAAiB,GAAI,UAAA;AAC9C,MAAA,MAAM,EAAE,cAAc,iBAAA,EAAkB,GAAI,iBAAiB,EAAE,IAAA,EAAM,OAAA,EAAS,aAAA,EAAe,CAAA;AAE7F,MAAA,MAAM,WAAW,cAAA,EAAe;AAKhC,MAAA,MAAM,QAAA,GAAW,SAAS,SAAA,EAAW,QAAA;AACrC,MAAA,MAAM,UAAA,GAAa,SAAS,SAAA,EAAW,UAAA;AAEvC,MAAA,MAAM,iBAAA,GAAoB,QAAA,KAAa,MAAA,GAAY,QAAA,GAAW,OAAA,EAAS,gBAAA;AAKvE,MAAA,IAAI,iBAAA,EAAmB;AACrB,QAAA,KAAA,CAAM,WAAA,GAAc,iBAAA;AAAA,MACtB,CAAA,MAAA,IAAW,OAAA,EAAS,YAAA,IAAgB,OAAA,EAAS,UAAA,EAAY;AACvD,QAAA,KAAA,CAAM,cAAc,OAAA,EAAS,UAAA;AAAA,MAC/B,WACS,OAAA,EAAS,mBAAA,IAAuB,KAAA,IAAS,OAAA,EAAS,uBAAuB,KAAA,EAAO;AACvF,QAAA,KAAA,CAAM,WAAA,GAAc,EAAA;AAAA,MACtB;AAKA,MAAA,MAAM,UAAU,aAAA,EAAc;AAE9B,MAAA,KAAA,GAAQ,EAAE,GAAI,OAAA,EAAS,mBAAA,IAAuB,OAAA,IAAW,CAAC,OAAA,EAAS,MAAA,GAAS,OAAA,GAAU,KAAA,EAAQ,GAAG,YAAA,EAAa;AAQ9G,MAAA,IAAI,CAAC,OAAA,EAAS,mBAAA,IAAuB,CAAC,OAAA,EAAS;AAC7C,QAAA,MAAM,UAAA,CAAW;AAAA,UACf,QAAQ,KAAA,EAAO,IAAA;AAAA,UACf,KAAK,KAAA,EAAO,MAAA;AAAA,UACZ,OAAO,KAAA,EAAO,kBAAA;AAAA,UACd,MAAM,KAAA,EAAO,cAAA;AAAA,UACb,MAAM,KAAA,EAAO,WAAA;AAAA,UACb,KAAK,KAAA,EAAO,KAAA;AAAA,UACZ,QAAQ,KAAA,EAAO,gBAAA;AAAA,UACf,KAAK,KAAA,EAAO,IAAA;AAAA,UACZ,KAAK,KAAA,EAAO,KAAA;AAAA,UACZ,KAAK,KAAA,EAAO,IAAA;AAAA,UACZ,KAAK,KAAA,EAAO;AAAA,SACb,CAAA;AAAA,MACH;AAEA,MAAA,IAAI,cAAc,MAAA,IAAa,UAAA,EAAY,WAAW,CAAA,IAAK,CAAC,SAAS,YAAA,EAAc;AACjF,QAAA,KAAA,CAAM,WAAA,GAAc,EAAA;AACpB,QAAA,MAAM,UAAA,CAAW;AAAA,UACf,MAAM,KAAA,EAAO;AAAA,SACd,CAAA;AAAA,MACH;AAEA,MAAA,IAAI,UAAA,IAAc,UAAa,UAAA,EAAY,MAAA,KAAW,KAAK,CAAC,OAAA,EAAS,YAAA,IAAgB,iBAAA,IAAqB,IAAA,EAAM;AAC9G,QAAA,KAAA,CAAM,WAAA,GAAc,UAAA,CAAW,CAAC,CAAA,CAAE,UAAA;AAClC,QAAA,MAAM,UAAA,CAAW;AAAA,UACf,MAAM,KAAA,EAAO;AAAA,SACd,CAAA;AAAA,MACH;AAEA,MAAA,IAAI,SAAS,MAAA,EAAQ;AACnB,QAAA,IAAI,kBAAA,GAAqB,EAAA;AACzB,QAAA,IAAI,QAAA,EAAU,IAAA,EAAM,YAAA,IAAgB,CAAC,OAAO,gBAAA,EAAkB;AAC5D,UAAA,kBAAA,GAAqB,UAAU,IAAA,EAAM,YAAA;AAAA,QACvC,CAAA,MAAA,IAAW,QAAA,EAAU,IAAA,EAAM,YAAA,IAAgB,OAAO,gBAAA,EAAkB;AAClE,UAAA,kBAAA,GAAqB,KAAA;AAAA,QACvB;AACA,QAAA,KAAA,CAAM,kBAAA,GAAqB,kBAAA;AAAA,MAE7B;AAEA,MAAA,KAAA,CAAM,iBAAA,GAAoB,iBAAA;AAM1B,MAAA,MAAM,MAAA,GAAS,eAAe,EAAE,KAAA,EAAO,cAAc,OAAA,EAAS,MAAA,EAAQ,WAAA,EAAa,KAAA,EAAO,CAAA;AAC1F,MAAA,OAAO,UAAA,CAAW,IAAI,MAAM,CAAA;AAAA,IAC9B,CAAA;AAAA,IACA,IAAA,EAAM,CAAC,OAAA,GAAe,IAAA,KAAS;AAC7B,MAAA,MAAM,MAAA,GAAS,EAAE,mBAAA,EAAqB,OAAA,EAAS,mBAAA,EAAoB;AACnE,MAAA,MAAM,MAAA,GAAS,cAAA,CAAe,EAAE,KAAA,EAAO,aAAA,CAAc,gBAAgB,MAAA,EAAQ,WAAA,EAAa,OAAA,EAAS,MAAA,EAAQ,CAAA;AAC3G,MAAA,OAAO,UAAA,CAAW,IAAI,MAAM,CAAA;AAAA,IAC9B,CAAA;AAAA,IACA,iBAAA,EAAmB,CAAC,OAAA,GAAe,IAAA,KAAS;AAC1C,MAAA,MAAM,MAAA,GAAS,EAAE,mBAAA,EAAqB,OAAA,EAAS,mBAAA,EAAoB;AACnE,MAAA,MAAM,MAAA,GAAS,cAAA,CAAe,EAAE,KAAA,EAAO,aAAA,CAAc,sBAAsB,MAAA,EAAQ,WAAA,EAAa,OAAA,EAAS,MAAA,EAAQ,CAAA;AACjH,MAAA,OAAO,UAAA,CAAW,IAAI,MAAM,CAAA;AAAA,IAC9B,CAAA;AAAA,IACA,MAAA,EAAQ,CAAC,KAAA,GAAa,IAAA,KAAS;AAC7B,MAAA,MAAM,MAAA,GAAS,EAAE,mBAAA,EAAqB,KAAA,EAAO,mBAAA,EAAoB;AACjE,MAAA,MAAM,cAAc,KAAA,CAAM,MAAA;AAC1B,MAAA,MAAM,UAAU,KAAA,CAAM,OAAA;AACtB,MAAA,MAAM,MAAA,GAAS,eAAe,EAAE,KAAA,EAAO,cAAc,cAAA,EAAgB,MAAA,EAAQ,aAAa,CAAA;AAC1F,MAAA,OAAO,UAAA,CAAW,IAAA,CAAK,MAAA,EAAQ,OAAO,CAAA;AAAA,IACxC,CAAA;AAAA,IACA,cAAA,EAAgB,CAAC,KAAA,GAAa,IAAA,KAAS;AACrC,MAAA,MAAM,MAAA,GAAS,EAAE,mBAAA,EAAqB,KAAA,EAAO,mBAAA,EAAoB;AACjE,MAAA,MAAM,cAAc,KAAA,CAAM,MAAA;AAC1B,MAAA,MAAM,UAAU,KAAA,CAAM,OAAA;AACtB,MAAA,MAAM,MAAA,GAAS,eAAe,EAAE,KAAA,EAAO,cAAc,uBAAA,EAAyB,MAAA,EAAQ,aAAa,CAAA;AACnG,MAAA,OAAO,UAAA,CAAW,IAAA,CAAK,MAAA,EAAQ,OAAO,CAAA;AAAA,IACxC,CAAA;AAAA,IACA,cAAA,EAAgB,CAAC,KAAA,GAAa,IAAA,KAAS;AACrC,MAAA,MAAM,MAAA,GAAS,EAAE,mBAAA,EAAqB,KAAA,EAAO,mBAAA,EAAoB;AACjE,MAAA,MAAM,cAAc,KAAA,CAAM,MAAA;AAC1B,MAAA,MAAM,UAAU,KAAA,CAAM,OAAA;AACtB,MAAA,MAAM,MAAA,GAAS,eAAe,EAAE,KAAA,EAAO,cAAc,uBAAA,EAAyB,MAAA,EAAQ,aAAa,CAAA;AACnG,MAAA,OAAO,UAAA,CAAW,IAAA,CAAK,MAAA,EAAQ,OAAO,CAAA;AAAA,IACxC,CAAA;AAAA,IACA,OAAA,EAAS,CAAC,KAAA,GAAa,IAAA,KAAS;AAC9B,MAAA,MAAM,EAAE,YAAA,EAAc,QAAA,EAAU,mBAAkB,GAAI,eAAA,CAAgB,IAAI,IAAI,CAAA;AAE9E,MAAA,MAAM,WAAW,MAAA,CAAO,WAAA;AACxB,MAAA,MAAM,MAAA,GAAS;AAAA,QACb,OAAO,MAAA,CAAO,KAAA;AAAA,QACd,QAAA;AAAA,QACA,QAAA,EAAU,OAAO,MAAA,EAAQ,QAAA;AAAA,QACzB,EAAA,EAAI,OAAO,MAAA,EAAQ;AAAA,OACrB;AAEA,MAAA,MAAM,WAAA,GAAc;AAAA,QAClB,iBAAA;AAAA,QACA,GAAG,KAAA,EAAO,WAAA;AAAA,QACV,GAAG;AAAA,OACL;AAEA,MAAA,MAAM,MAAA,GAAS,eAAe,EAAE,KAAA,EAAO,cAAc,eAAA,EAAiB,MAAA,EAAQ,aAAa,CAAA;AAC3F,MAAA,OAAO,UAAA,CAAW,IAAI,MAAM,CAAA;AAAA,IAC9B,CAAA;AAAA,IACA,MAAA,EAAQ,CAAC,KAAA,GAAa,IAAA,KAAS;AAC7B,MAAA,MAAM,QAAA,GAAW,WAAU,EAAG,QAAA;AAC9B,MAAA,MAAM,MAAA,GAAS;AAAA,QACb,OAAO,MAAA,CAAO,KAAA;AAAA,QACd,QAAA;AAAA,QACA,QAAA,EAAU,OAAO,MAAA,EAAQ,QAAA;AAAA,QACzB,EAAA,EAAI,OAAO,MAAA,EAAQ;AAAA,OACrB;AAEA,MAAA,MAAM,EAAE,YAAA,EAAc,WAAA,EAAY,GAAI,eAAA,EAAgB;AAEtD,MAAA,MAAM,MAAA,GAAS,eAAe,EAAE,KAAA,EAAO,cAAc,sBAAA,EAAwB,MAAA,EAAQ,aAAa,CAAA;AAClG,MAAA,OAAO,UAAA,CAAW,GAAA,CAAI,MAAA,EAAQ,KAAA,CAAM,OAAO,CAAA;AAAA,IAC7C;AAAA,GACF;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,CAAC,KAAA,GAAa,IAAA,KAAS;AAE3B,MAAA,MAAM,QAAA,GAAW,WAAU,EAAG,QAAA;AAC9B,MAAA,MAAM,MAAA,GAAS;AAAA,QACb,OAAO,MAAA,CAAO,KAAA;AAAA,QACd,QAAA;AAAA,QACA,QAAA,EAAU,OAAO,MAAA,EAAQ,QAAA;AAAA,QACzB,EAAA,EAAI,OAAO,MAAA,EAAQ;AAAA,OACrB;AAEA,MAAA,MAAM,MAAA,GAAS,cAAA,CAAe,EAAE,KAAA,EAAO,aAAA,CAAc,OAAO,MAAA,EAAQ,WAAA,EAAa,KAAA,EAAO,WAAA,EAAa,CAAA;AACrG,MAAA,OAAO,UAAA,CAAW,IAAI,MAAM,CAAA;AAAA,IAC9B,CAAA;AAAA,IACA,MAAA,EAAQ,CAAC,KAAA,GAAa,IAAA,KAAS;AAC7B,MAAA,MAAM,SAAS,EAAE,mBAAA,EAAqB,OAAO,mBAAA,EAAqB,GAAG,MAAM,MAAA,EAAO;AAClF,MAAA,MAAM,cAAc,KAAA,CAAM,WAAA;AAC1B,MAAA,MAAM,UAAU,KAAA,CAAM,OAAA;AACtB,MAAA,MAAM,MAAA,GAAS,eAAe,EAAE,KAAA,EAAO,cAAc,YAAA,EAAc,MAAA,EAAQ,aAAa,CAAA;AACxF,MAAA,OAAO,UAAA,CAAW,IAAA,CAAK,MAAA,EAAQ,OAAO,CAAA;AAAA,IACxC,CAAA;AAAA,IACA,MAAA,EAAQ,CAAC,KAAA,GAAa,IAAA,KAAS;AAC7B,MAAA,MAAM,QAAA,GAAW,WAAU,EAAG,QAAA;AAC9B,MAAA,MAAM,MAAA,GAAS;AAAA,QACb,OAAO,MAAA,CAAO,KAAA;AAAA,QACd,QAAA;AAAA,QACA,QAAA,EAAU,OAAO,MAAA,EAAQ,QAAA;AAAA,QACzB,EAAA,EAAI,OAAO,MAAA,EAAQ,EAAA;AAAA,QACnB,OAAA,EAAS,OAAO,MAAA,EAAQ;AAAA,OAC1B;AAEA,MAAA,MAAM,EAAE,YAAA,EAAc,WAAA,EAAY,GAAI,eAAA,EAAgB;AAEtD,MAAA,MAAM,MAAA,GAAS,eAAe,EAAE,KAAA,EAAO,cAAc,oBAAA,EAAsB,MAAA,EAAQ,aAAa,CAAA;AAChG,MAAA,OAAO,UAAA,CAAW,GAAA,CAAI,MAAA,EAAQ,KAAA,CAAM,OAAO,CAAA;AAAA,IAC7C,CAAA;AAAA,IACA,KAAA,EAAO,CAAC,KAAA,GAAa,IAAA,KAAS;AAC5B,MAAA,MAAM,SAAS,EAAE,mBAAA,EAAqB,OAAO,mBAAA,EAAqB,GAAG,MAAM,MAAA,EAAO;AAClF,MAAA,MAAM,cAAc,KAAA,CAAM,WAAA;AAC1B,MAAA,MAAM,UAAU,KAAA,CAAM,OAAA;AACtB,MAAA,MAAM,WAAA,GAAc,KAAA,CAAM,MAAA,IAAU,EAAC;AAErC,MAAA,MAAM,MAAA,GAAS,eAAe,EAAE,KAAA,EAAO,cAAc,kBAAA,EAAoB,MAAA,EAAQ,aAAa,CAAA;AAC9F,MAAA,OAAO,UAAA,CAAW,IAAA,CAAK,MAAA,EAAQ,OAAA,EAAS;AAAA,QACtC,OAAA,EAAS;AAAA,UACP,cAAA,EAAgB;AAAA,SAClB;AAAA,QACA,GAAG;AAAA,OACJ,CAAA;AAAA,IACH,CAAA;AAAA,IACA,UAAA,EAAY,CAAC,KAAA,GAAa,IAAA,KAAS;AACjC,MAAA,MAAM,SAAS,EAAE,mBAAA,EAAqB,OAAO,mBAAA,EAAqB,GAAG,MAAM,MAAA,EAAO;AAClF,MAAA,MAAM,cAAc,KAAA,CAAM,WAAA;AAC1B,MAAA,MAAM,UAAU,KAAA,CAAM,OAAA;AACtB,MAAA,MAAM,WAAA,GAAc,KAAA,CAAM,MAAA,IAAU,EAAC;AAErC,MAAA,MAAM,MAAA,GAAS,eAAe,EAAE,KAAA,EAAO,cAAc,uBAAA,EAAyB,MAAA,EAAQ,aAAa,CAAA;AACnG,MAAA,OAAO,UAAA,CAAW,IAAA,CAAK,MAAA,EAAQ,OAAA,EAAS;AAAA,QACtC,OAAA,EAAS;AAAA,UACP,cAAA,EAAgB;AAAA,SAClB;AAAA,QACA,GAAG;AAAA,OACJ,CAAA;AAAA,IACH;AAAA,GACF;AAAA,EACA,KAAA,EAAO;AAAA,IACL,IAAA,EAAM,CAAC,KAAA,GAAa,IAAA,KAAS;AAE3B,MAAA,MAAM,QAAA,GAAW,WAAU,EAAG,QAAA;AAC9B,MAAA,MAAM,MAAA,GAAS;AAAA,QACb,OAAO,MAAA,CAAO,KAAA;AAAA,QACd,QAAA;AAAA,QACA,QAAA,EAAU,OAAO,MAAA,EAAQ,QAAA;AAAA,QACzB,EAAA,EAAI,OAAO,MAAA,EAAQ;AAAA,OACrB;AAEA,MAAA,MAAM,MAAA,GAAS,cAAA,CAAe,EAAE,KAAA,EAAO,aAAA,CAAc,QAAQ,MAAA,EAAQ,WAAA,EAAa,KAAA,EAAO,WAAA,EAAa,CAAA;AACtG,MAAA,OAAO,UAAA,CAAW,IAAI,MAAM,CAAA;AAAA,IAC9B,CAAA;AAAA,IACA,MAAA,EAAQ,CAAC,KAAA,GAAa,IAAA,KAAS;AAC7B,MAAA,MAAM,SAAS,EAAE,mBAAA,EAAqB,OAAO,mBAAA,EAAqB,GAAG,MAAM,MAAA,EAAO;AAClF,MAAA,MAAM,cAAc,KAAA,CAAM,WAAA;AAC1B,MAAA,MAAM,UAAU,KAAA,CAAM,OAAA;AACtB,MAAA,MAAM,MAAA,GAAS,eAAe,EAAE,KAAA,EAAO,cAAc,aAAA,EAAe,MAAA,EAAQ,aAAa,CAAA;AACzF,MAAA,OAAO,UAAA,CAAW,IAAA,CAAK,MAAA,EAAQ,OAAO,CAAA;AAAA,IACxC,CAAA;AAAA,IACA,MAAA,EAAQ,CAAC,KAAA,GAAa,IAAA,KAAS;AAC7B,MAAA,MAAM,QAAA,GAAW,WAAU,EAAG,QAAA;AAC9B,MAAA,MAAM,MAAA,GAAS;AAAA,QACb,OAAO,MAAA,CAAO,KAAA;AAAA,QACd,QAAA;AAAA,QACA,QAAA,EAAU,OAAO,MAAA,EAAQ,QAAA;AAAA,QACzB,EAAA,EAAI,OAAO,MAAA,EAAQ,EAAA;AAAA,QACnB,OAAA,EAAS,OAAO,MAAA,EAAQ;AAAA,OAC1B;AAEA,MAAA,MAAM,EAAE,YAAA,EAAc,WAAA,EAAY,GAAI,eAAA,EAAgB;AAEtD,MAAA,MAAM,MAAA,GAAS,eAAe,EAAE,KAAA,EAAO,cAAc,qBAAA,EAAuB,MAAA,EAAQ,aAAa,CAAA;AACjG,MAAA,OAAO,UAAA,CAAW,GAAA,CAAI,MAAA,EAAQ,KAAA,CAAM,OAAO,CAAA;AAAA,IAC7C,CAAA;AAAA,IACA,KAAA,EAAO,CAAC,KAAA,GAAa,IAAA,KAAS;AAC5B,MAAA,MAAM,SAAS,EAAE,mBAAA,EAAqB,OAAO,mBAAA,EAAqB,GAAG,MAAM,MAAA,EAAO;AAClF,MAAA,MAAM,cAAc,KAAA,CAAM,WAAA;AAC1B,MAAA,MAAM,UAAU,KAAA,CAAM,OAAA;AACtB,MAAA,MAAM,WAAA,GAAc,KAAA,CAAM,MAAA,IAAU,EAAC;AAErC,MAAA,MAAM,MAAA,GAAS,eAAe,EAAE,KAAA,EAAO,cAAc,mBAAA,EAAqB,MAAA,EAAQ,aAAa,CAAA;AAC/F,MAAA,OAAO,UAAA,CAAW,IAAA,CAAK,MAAA,EAAQ,OAAA,EAAS;AAAA,QACtC,OAAA,EAAS;AAAA,UACP,cAAA,EAAgB;AAAA,SAClB;AAAA,QACA,GAAG;AAAA,OACJ,CAAA;AAAA,IACH,CAAA;AAAA,IACA,UAAA,EAAY,CAAC,KAAA,GAAa,IAAA,KAAS;AACjC,MAAA,MAAM,SAAS,EAAE,mBAAA,EAAqB,OAAO,mBAAA,EAAqB,GAAG,MAAM,MAAA,EAAO;AAClF,MAAA,MAAM,cAAc,KAAA,CAAM,WAAA;AAC1B,MAAA,MAAM,UAAU,KAAA,CAAM,OAAA;AACtB,MAAA,MAAM,WAAA,GAAc,KAAA,CAAM,MAAA,IAAU,EAAC;AAErC,MAAA,MAAM,MAAA,GAAS,eAAe,EAAE,KAAA,EAAO,cAAc,wBAAA,EAA0B,MAAA,EAAQ,aAAa,CAAA;AACpG,MAAA,OAAO,UAAA,CAAW,IAAA,CAAK,MAAA,EAAQ,OAAA,EAAS;AAAA,QACtC,OAAA,EAAS;AAAA,UACP,cAAA,EAAgB;AAAA,SAClB;AAAA,QACA,GAAG;AAAA,OACJ,CAAA;AAAA,IACH;AAAA,GACF;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,CAAC,KAAA,GAAa,IAAA,KAAS;AAC3B,MAAA,MAAM,QAAA,GAAW,WAAU,EAAG,QAAA;AAC9B,MAAA,MAAM,MAAA,GAAS;AAAA,QACb,OAAO,MAAA,CAAO,KAAA;AAAA,QACd,QAAA;AAAA,QACA,QAAA,EAAU,OAAO,MAAA,EAAQ,QAAA;AAAA,QACzB,EAAA,EAAI,OAAO,MAAA,EAAQ;AAAA,OACrB;AACA,MAAA,MAAM,MAAA,GAAS,cAAA,CAAe,EAAE,KAAA,EAAO,aAAA,CAAc,OAAO,MAAA,EAAQ,WAAA,EAAa,KAAA,EAAO,WAAA,EAAa,CAAA;AACrG,MAAA,OAAO,UAAA,CAAW,IAAI,MAAM,CAAA;AAAA,IAC9B,CAAA;AAAA,IACA,OAAA,EAAS,CAAC,KAAA,GAAa,IAAA,KAAS;AAC9B,MAAA,MAAM,QAAA,GAAW,WAAU,EAAG,QAAA;AAC9B,MAAA,MAAM,MAAA,GAAS;AAAA,QACb,OAAO,MAAA,CAAO,KAAA;AAAA,QACd,QAAA;AAAA,QACA,QAAA,EAAU,OAAO,MAAA,EAAQ,QAAA;AAAA,QACzB,EAAA,EAAI,OAAO,MAAA,EAAQ,EAAA;AAAA,QACnB,KAAA,EAAO,OAAO,MAAA,EAAQ;AAAA,OACxB;AACA,MAAA,MAAM,MAAA,GAAS,cAAA,CAAe,EAAE,KAAA,EAAO,aAAA,CAAc,MAAM,MAAA,EAAQ,WAAA,EAAa,KAAA,EAAO,WAAA,EAAa,CAAA;AACpG,MAAA,OAAO,UAAA,CAAW,IAAI,MAAM,CAAA;AAAA,IAC9B,CAAA;AAAA,IACA,SAAA,EAAW,CAAC,KAAA,GAAa,IAAA,KAAS;AAChC,MAAA,MAAM,SAAS,EAAE,mBAAA,EAAqB,OAAO,mBAAA,EAAqB,GAAG,MAAM,MAAA,EAAO;AAClF,MAAA,MAAM,cAAc,KAAA,CAAM,WAAA;AAC1B,MAAA,MAAM,UAAU,KAAA,CAAM,OAAA;AACtB,MAAA,MAAM,MAAA,GAAS,eAAe,EAAE,KAAA,EAAO,cAAc,mBAAA,EAAqB,MAAA,EAAQ,aAAa,CAAA;AAC/F,MAAA,OAAO,UAAA,CAAW,IAAA,CAAK,MAAA,EAAQ,OAAO,CAAA;AAAA,IACxC,CAAA;AAAA,IACA,OAAA,EAAS,CAAC,KAAA,GAAa,IAAA,KAAS;AAC9B,MAAA,MAAM,SAAS,EAAE,mBAAA,EAAqB,OAAO,mBAAA,EAAqB,GAAG,MAAM,MAAA,EAAO;AAClF,MAAA,MAAM,cAAc,KAAA,CAAM,WAAA;AAC1B,MAAA,MAAM,UAAU,KAAA,CAAM,OAAA;AACtB,MAAA,MAAM,WAAA,GAAc,KAAA,CAAM,MAAA,IAAU,EAAC;AAErC,MAAA,MAAM,MAAA,GAAS,eAAe,EAAE,KAAA,EAAO,cAAc,YAAA,EAAc,MAAA,EAAQ,aAAa,CAAA;AACxF,MAAA,OAAO,UAAA,CAAW,IAAA,CAAK,MAAA,EAAQ,OAAA,EAAS;AAAA,QACtC,OAAA,EAAS;AAAA,UACP,cAAA,EAAgB;AAAA,SAClB;AAAA,QACA,GAAG;AAAA,OACJ,CAAA;AAAA,IACH;AAAA;AAEJ,CAAA;;;AEtaO,SAAS,cAAA,CACd,YACA,OAAA,EACA;AACA,EAAA,IAAI,QAAA,GAAW,CAAA;AACf,EAAA,IAAI,mBAAA,GAAsC,IAAA;AAE1C,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,MAAM,SAAS,QAAA,GAAW,CAAA;AAC1B,IAAA,IAAI,wBAAwB,MAAA,EAAQ;AACpC,IAAA,mBAAA,GAAsB,MAAA;AACtB,IAAA,OAAA,EAAS,kBAAkB,MAAM,CAAA;AAAA,EACnC,CAAA;AAEA,EAAA,MAAM,MAAA,GAAS,OAAO,OAAA,KAAuB;AAC3C,IAAA,QAAA,IAAY,CAAA;AACZ,IAAA,WAAA,EAAY;AACZ,IAAA,IAAI;AACF,MAAA,MAAM,QAAA,GAAW,MAAM,UAAA,CAAW,OAAO,CAAA;AACzC,MAAA,MAAM,OAAA,EAAS,SAAA,GAAY,QAAA,EAAU,OAAO,CAAA;AAC5C,MAAA,OAAO,QAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,EAAS,OAAA,GAAU,OAAiB,OAAO,CAAA;AAC3C,MAAA,MAAM,KAAA;AAAA,IACR,CAAA,SAAE;AACA,MAAA,QAAA,IAAY,CAAA;AACZ,MAAA,WAAA,EAAY;AAAA,IACd;AAAA,EACF,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,SAAA,EAAW,MAAM,QAAA,GAAW;AAAA,GAC9B;AACF;;;ACvCA,eAAA,EAAA;AAEA,WAAA,EAAA;AACA,gBAAA,EAAA;AAGO,SAAS,SAAS,OAAA,EAAqC;AAC5D,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,cAAA,CAAe,SAAS,OAAO,CAAA;AAClE,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,KAAA,EAAO,MAAA;AAAA,IACP;AAAA,GACF;AACF;AAEO,SAAS,MAAM,OAAA,EAAqC;AACzD,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,cAAA,CAAe,MAAM,OAAO,CAAA;AAE/D,MAAA,MAAM,SAAA,GAAiB,QAAA,EAAU,IAAA,EAAM,SAAA,IAAa,EAAC;AACrD,MAAA,MAAM,eAAA,GAAuB,QAAA,EAAU,IAAA,EAAM,eAAA,IAAmB,EAAC;AACjE,MAAA,MAAM,aAAA,GAAqB,QAAA,EAAU,IAAA,EAAM,eAAA,EAAiB,iBAAiB,EAAC;AAC9E,MAAA,MAAM,eAAA,GAAuB,eAAe,QAAA,IAAY,IAAA;AACxD,MAAA,MAAM,gBAAA,GAAmB,iBAAiB,gBAAA,IAAoB,OAAA;AAE9D,MAAA,MAAM,QAAQ,SAAA,EAAW,KAAA;AACzB,MAAA,MAAM,eAAe,SAAA,EAAW,YAAA;AAChC,MAAA,MAAM,YAAY,SAAA,EAAW,SAAA;AAC7B,MAAA,MAAM,aAAa,SAAA,EAAW,gBAAA;AAE9B,MAAA,SAAA,CAAU,aAAa,CAAA;AACvB,MAAA,mBAAA,CAAoB,gBAAgB,CAAA;AACpC,MAAA,MAAM,cAAA,CAAe,OAAO,SAAS,CAAA;AAErC,MAAA,MAAM,eAAA,CAAgB,cAAc,UAAU,CAAA;AAC9C,MAAA,MAAM,kBAAA,CAAmB,SAAS,IAAI,CAAA;AAEtC,MAAA,SAAA,CAAU,eAAe,eAAe,CAAA;AAExC,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,KAAA,EAAO,MAAA;AAAA,IACP;AAAA,GACF;AACF;AAEO,SAAS,YAAY,OAAA,EAAqC;AAC/D,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,kBAAA,GAAyC,WAAW,EAAC;AAC3D,MAAA,MAAM,KAAA,GAAa,SAAS,OAAO,CAAA;AACnC,MAAA,IAAI,CAAC,kBAAA,EAAoB,KAAA,EAAO,kBAAA,CAAmB,KAAA,GAAQ,KAAA;AAC3D,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,cAAA,CAAe,YAAY,kBAAkB,CAAA;AAChF,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,WAAA,EAAa,MAAA;AAAA,IACb;AAAA,GACF;AACF;AAEO,SAAS,yBAAyB,OAAA,EAAqC;AAC5E,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,+BAAA,GAAmE,WAAW,EAAC;AACrF,MAAA,MAAM,KAAA,GAAa,SAAS,OAAO,CAAA;AACnC,MAAA,IAAI,CAAC,+BAAA,EAAiC,KAAA,EAAO,+BAAA,CAAgC,KAAA,GAAQ,KAAA;AACrF,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,cAAA,CAAe,yBAAyB,+BAA+B,CAAA;AAC1G,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,wBAAA,EAA0B,MAAA;AAAA,IAC1B;AAAA,GACF;AACF;AAEO,SAAS,cAAc,OAAA,EAAqC;AACjE,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,cAAA,CAAe,cAAc,OAAO,CAAA;AACvE,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,aAAA,EAAe,MAAA;AAAA,IACf;AAAA,GACF;AACF;AAEO,SAAS,eAAe,OAAA,EAAqC;AAClE,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,cAAA,CAAe,eAAe,OAAO,CAAA;AACxE,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,cAAA,EAAgB,MAAA;AAAA,IAChB;AAAA,GACF;AACF;AAEO,SAAS,OAAO,OAAA,EAAqC;AAC1D,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,YAAY;AACV,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,cAAA,CAAe,MAAA,EAAO;AAEzD,MAAA,gBAAA,EAAiB;AACjB,MAAA,eAAA,EAAgB;AAEhB,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,MAAA,EAAQ,MAAA;AAAA,IACR;AAAA,GACF;AACF;AAEO,SAAS,qBAAqB,OAAA,EAAqC;AACxE,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,cAAA,CAAe,qBAAqB,OAAO,CAAA;AAC9E,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,oBAAA,EAAsB,MAAA;AAAA,IACtB;AAAA,GACF;AACF;AAEO,SAAS,kBAAkB,OAAA,EAAqC;AACrE,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,cAAA,CAAe,kBAAkB,OAAO,CAAA;AAC3E,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,iBAAA,EAAmB,MAAA;AAAA,IACnB;AAAA,GACF;AACF;AAEO,SAAS,YAAY,OAAA,EAAqC;AAC/D,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,cAAA,CAAe,YAAY,OAAO,CAAA;AACrE,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,WAAA,EAAa,MAAA;AAAA,IACb;AAAA,GACF;AACF;;;ACjMO,SAAS,cAAc,OAAA,EAAqC;AACjE,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,YAAY;AACV,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,GAAA,CAAI,aAAA,EAAc;AACrD,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,aAAA,EAAe,MAAA;AAAA,IACf;AAAA,GACF;AACF;AAEO,SAAS,eAAe,OAAA,EAAqC;AAClE,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,GAAA,CAAI,eAAe,OAAO,CAAA;AAC7D,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,cAAA,EAAgB,MAAA;AAAA,IAChB;AAAA,GACF;AACF;AAEO,SAAS,YAAY,OAAA,EAAqC;AAC/D,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,GAAA,CAAI,YAAY,OAAO,CAAA;AAC1D,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,WAAA,EAAa,MAAA;AAAA,IACb;AAAA,GACF;AACF;;;AC7CO,SAAS,GAAG,OAAA,EAAqC;AACtD,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,YAAY;AACV,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,IAAA,CAAK,EAAA,EAAG;AAC3C,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,EAAA,EAAI,MAAA;AAAA,IACJ;AAAA,GACF;AACF;AAEO,SAAS,QAAQ,OAAA,EAAqC;AAC3D,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,IAAA,CAAK,QAAQ,OAAO,CAAA;AACvD,MAAA,cAAA,CAAe,QAAQ,CAAA;AACvB,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,OAAA,EAAS,MAAA;AAAA,IACT;AAAA,GACF;AACF;AAGO,SAAS,eAAe,OAAA,EAAqC;AAClE,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,IAAA,CAAK,eAAe,OAAO,CAAA;AAC9D,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,cAAA,EAAgB,MAAA;AAAA,IAChB;AAAA,GACF;AACF;;;AC6DO,SAAS,YACZ,WAAA,EAIF;AACE,EAAA,IAAI,KAAA;AACJ,EAAA,MAAM,SAAA,uBAAgB,GAAA,EAAiB;AAEvC,EAAA,MAAM,MAAM,MAAM,KAAA;AAElB,EAAA,MAAM,GAAA,GAAM,CAAC,OAAA,KAA6B;AACtC,IAAA,MAAM,SAAA,GAAY,KAAA;AAElB,IAAA,MAAM,eACF,OAAO,OAAA,KAAY,UAAA,GACb,OAAA,CAAQ,KAAK,CAAA,GACb,OAAA;AAEV,IAAA,KAAA,GAAQ;AAAA,MACJ,GAAG,KAAA;AAAA,MACH,GAAG;AAAA,KACP;AAEA,IAAA,SAAA,CAAU,OAAA;AAAA,MAAQ,CAAC,QAAA,KACf,QAAA,CAAS,KAAA,EAAO,SAAS;AAAA,KAC7B;AAAA,EACJ,CAAA;AAEA,EAAA,MAAM,SAAA,GAAY,CAAC,QAAA,KAA0B;AACzC,IAAA,SAAA,CAAU,IAAI,QAAQ,CAAA;AACtB,IAAA,OAAO,MAAM,SAAA,CAAU,MAAA,CAAO,QAAQ,CAAA;AAAA,EAC1C,CAAA;AAEA,EAAA,KAAA,GAAQ,WAAA,CAAY,KAAK,GAAG,CAAA;AAE5B,EAAA,OAAO;AAAA,IACH,QAAA,EAAU,GAAA;AAAA,IACV,QAAA,EAAU,GAAA;AAAA,IACV;AAAA,GACJ;AACJ;;;AC5JA,WAAA,EAAA;AAEO,IAAM,0BAA0B,MAAM;AACzC,EAAA,OAAO,UAAU,kBAAkB,CAAA;AACvC,CAAA;;;ACAA,IAAM,SAAA,GAAY,EAAA;AAElB,IAAM,UAAA,GAAa,WAAA,CAAY,CAAC,GAAA,EAAK,GAAA,MAAS;AAAA;AAAA;AAAA;AAAA,EAK1C,aAAA,EAAe,IAAA;AAAA,EACf,UAAU,EAAC;AAAA,EACX,IAAA,EAAM,gBAAA;AAAA,EACN,KAAA,EAAO,EAAA;AAAA,EACP,KAAA,EAAO,EAAA;AAAA,EACP,IAAA,EAAM,CAAA;AAAA,EACN,UAAA,EAAY,CAAA;AAAA,EACZ,UAAA,EAAY,CAAA;AAAA,EACZ,WAAA,EAAa,CAAA;AAAA,EACb,MAAA,EAAQ,EAAA;AAAA,EACR,kBAAA,EAAoB,aAAA;AAAA,EACpB,cAAA,EAAgB,IAAA;AAAA,EAChB,WAAA,EAAa,EAAA;AAAA,EACb,gBAAA,EAAkB,IAAA;AAAA,EAClB,IAAA,EAAM,IAAA;AAAA,EACN,gBAAA,EAAkB,EAAA;AAAA,EAClB,YAAY,EAAC;AAAA,EACb,qBAAqB,EAAC;AAAA;AAAA;AAAA;AAAA,EAMtB,kBAAkB,CAAC,CAAA,KAAqB,IAAI,EAAE,aAAA,EAAe,GAAG,CAAA;AAAA,EAChE,SAAS,CAAC,CAAA,KAAc,IAAI,EAAE,IAAA,EAAM,GAAG,CAAA;AAAA,EACvC,UAAU,CAAC,CAAA,KAAc,IAAI,EAAE,KAAA,EAAO,GAAG,CAAA;AAAA,EACzC,UAAU,CAAC,CAAA,KAAc,IAAI,EAAE,KAAA,EAAO,GAAG,CAAA;AAAA,EACzC,SAAS,CAAC,CAAA,KAAuB,IAAI,EAAE,IAAA,EAAM,GAAG,CAAA;AAAA,EAChD,eAAe,CAAC,CAAA,KAAc,IAAI,EAAE,UAAA,EAAY,GAAG,CAAA;AAAA,EACnD,eAAe,CAAC,CAAA,KAAc,IAAI,EAAE,UAAA,EAAY,GAAG,CAAA;AAAA,EACnD,gBAAgB,CAAC,CAAA,KAAc,IAAI,EAAE,WAAA,EAAa,GAAG,CAAA;AAAA,EACrD,WAAW,CAAC,CAAA,KAAc,IAAI,EAAE,MAAA,EAAQ,GAAG,CAAA;AAAA,EAC3C,uBAAuB,CAAC,CAAA,KAAc,IAAI,EAAE,kBAAA,EAAoB,GAAG,CAAA;AAAA,EACnE,mBAAmB,CAAC,CAAA,KAAc,IAAI,EAAE,cAAA,EAAgB,GAAG,CAAA;AAAA,EAC3D,gBAAgB,CAAC,CAAA,KAAc,IAAI,EAAE,WAAA,EAAa,GAAG,CAAA;AAAA,EACrD,qBAAqB,CAAC,CAAA,KAClB,IAAI,EAAE,gBAAA,EAAkB,GAAG,CAAA;AAAA;AAAA;AAAA;AAAA,EAM/B,OAAA,EAAS,CAAC,KAAA,KAAyB;AAC/B,IAAA,GAAA,CAAI;AAAA,MACA,IAAA,EACI,uBAAA,EAAwB,KAAM,MAAA,GAAS,EAAA,GAAK,CAAA;AAAA,MAChD,IAAA,EAAM;AAAA,KACT,CAAA;AAAA,EACL,CAAA;AAAA;AAAA;AAAA;AAAA,EAMA,cAAA,EAAgB,CAAC,KAAA,KAAyB;AACtC,IAAA,GAAA,CAAI;AAAA,MACA,IAAA,EACI,uBAAA,EAAwB,KAAM,MAAA,GAAS,EAAA,GAAK,CAAA;AAAA,MAChD,kBAAkB,KAAA,IAAS;AAAA,KAC9B,CAAA;AAAA,EACL,CAAA;AAAA,EAEA,mBAAA,EAAqB,CAEjB,SAAA,EACA,UAAA,KACC;AACD,IAAA,IAAI,WAAA,GAAc,EAAA;AAElB,IAAA,IAAI,UAAA,EAAY;AACZ,MAAA,MAAM,iBAAiB,SAAA,CAAU,IAAA;AAAA,QAC7B,CAAC,QAAA,KACG,QAAA,CAAS,UAAA,KAAe;AAAA,OAChC;AAEA,MAAA,WAAA,GACI,gBAAgB,UAAA,IAAc,EAAA;AAAA,IACtC;AAEA,IAAA,GAAA,CAAI;AAAA,MACA,kBAAA,EAAoB,aAAA;AAAA,MACpB,cAAA,EAAgB,IAAA;AAAA,MAChB,WAAA;AAAA,MACA,gBAAA,EAAkB;AAAA,KACrB,CAAA;AAAA,EACL,CAAA;AAAA;AAAA;AAAA;AAAA,EAMA,iBAAiB,MAAM;AACnB,IAAA,GAAA,CAAI;AAAA,MACA,IAAA,EAAM,gBAAA;AAAA,MACN,KAAA,EAAO,SAAA;AAAA,MACP,KAAA,EAAO,EAAA;AAAA,MACP,IAAA,EACI,uBAAA,EAAwB,KAAM,MAAA,GACxB,EAAA,GACA,CAAA;AAAA,MACV,UAAA,EAAY,CAAA;AAAA,MACZ,UAAA,EAAY,CAAA;AAAA,MACZ,WAAA,EAAa,CAAA;AAAA,MACb,MAAA,EAAQ,EAAA;AAAA,MACR,kBAAA,EAAoB,aAAA;AAAA,MACpB,cAAA,EAAgB,IAAA;AAAA,MAChB,WAAA,EAAa,EAAA;AAAA,MACb,gBAAA,EAAkB,IAAA;AAAA,MAClB,gBAAA,EAAkB;AAAA,KACrB,CAAA;AAAA,EACL,CAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAAA,EAAe,CACX,iBAAA,EACA,mBAAA,KACC;AACD,IAAA,MAAM,QAAa,GAAA,EAAI;AAEvB,IAAA,MAAM,UAAA,GAAkB;AAAA,MACpB,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,QAAQ,KAAA,CAAM,MAAA;AAAA,MACd,oBACI,KAAA,CAAM,kBAAA;AAAA,MACV,gBAAgB,KAAA,CAAM,cAAA;AAAA,MACtB,aAAa,KAAA,CAAM,gBAAA;AAAA,MACnB,KAAA,EAAO,IAAA;AAAA,MACP,kBACI,iBAAA,IAAqB,KAAA;AAAA,MACzB,MAAM,KAAA,CAAM;AAAA,KAChB;AAEA,IAAA,IACI,uBAAA,OAA8B,MAAA,EAChC;AACE,MAAA,OAAO;AAAA,QACH,GAAG,UAAA;AAAA,QACH,OAAO,KAAA,CAAM;AAAA,OACjB;AAAA,IACJ;AAEA,IAAA,OAAO;AAAA,MACH,GAAG,UAAA;AAAA,MACH,OAAO,KAAA,CAAM,KAAA;AAAA,MACb,IAAA,EACI,uBACA,KAAA,CAAM,IAAA;AAAA,MACV,GAAI,MAAM,KAAA,IAAS;AAAA,QACf,OAAO,KAAA,CAAM;AAAA;AACjB,KACJ;AAAA,EACJ,CAAA;AAAA;AAAA;AAAA;AAAA,EAMA,WAAA,EAAa,OACT,IAAA,EACA,KAAA,KACC;AACD,IAAA,IAAI,SAAS,OAAA,EAAS;AAClB,MAAA,GAAA,CAAI,EAAE,QAAA,EAAU,EAAC,EAAG,CAAA;AACpB,MAAA;AAAA,IACJ;AAEA,IAAA,IAAI,SAAS,UAAA,EAAY;AACrB,MAAA,GAAA,CAAI,EAAE,QAAA,EAAU,KAAA,EAAO,CAAA;AACvB,MAAA;AAAA,IACJ;AAEA,IAAA,MAAM,SAAA,GAAY,MAAM,KAAA,CAAM,GAAA;AAAA,MAC1B,CAAC,IAAA,KAAS;AACN,QAAA,MAAM,KAAA,GACF,IAAA,EAAM,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,GAAA;AAAA,UACvB,CAAC,GAAA,MAAc;AAAA,YACX,IAAI,GAAA,EAAK,YAAA;AAAA,YACT,GAAG,GAAA;AAAA,YACH,mBAAA,EACI,IAAA,KAAS,OAAA,GACH,KAAA,GACA;AAAA,WACd;AAAA,aACC,EAAC;AAEV,QAAA,OAAO;AAAA,UACH,IAAI,IAAA,CAAK,EAAA;AAAA,UACT,MAAM,IAAA,CAAK,KAAA;AAAA,UACX,KAAA,EAAO,MAAM,IAAA,EAAM,KAAA;AAAA,UACnB,GAAG,IAAA;AAAA,UACH;AAAA,SACJ;AAAA,MACJ;AAAA,KACJ;AAEA,IAAA,MAAM,GAAA,CAAI,EAAE,QAAA,EAAU,SAAA,EAAW,CAAA;AACjC,IAAA,OAAO,SAAA;AAAA,EACX,CAAA;AAAA;AAAA;AAAA;AAAA,EAMA,kBAAA,CACI,MACA,mBAAA,EAEF;AACE,IAAA,IAAI,CAAC,IAAA,EAAM;AACP,MAAA,GAAA,CAAI,EAAE,gBAAA,EAAkB,EAAA,EAAI,CAAA;AAC5B,MAAA,OAAO,EAAA;AAAA,IACX;AAGA,IAAA,MAAM,EAAE,UAAA,EAAY,YAAA,EAAa,GAAI,aAAA,EAAc;AAEnD,IAAA,MAAM,SAAS,YAAA,EAAa;AAC5B,IAAA,MAAM,cAAc,CAAC,KAAA,EAAO,KAAA,EAAO,KAAA,EAAO,OAAO,KAAK,CAAA;AAEtD,IAAA,MAAM,QAAa,GAAA,EAAI;AACvB,IAAA,MAAM,OAAO,KAAA,CAAM,IAAA;AACnB,IAAA,MAAM,mBAAmB,KAAA,CAAM,gBAAA;AAE/B,IAAA,IAAI,iBAAA,GAAoB,EAAA;AACxB,IAAA,IAAI,YAAA,GAAoB,EAAA;AAExB,IAAA,MAAM,eAAA,GAAkB,IAAA,EAAM,IAAA,GAAO,CAAC,CAAA;AAEtC,IAAA,IAAI,WAAA,CAAY,QAAA,CAAS,mBAAmB,CAAA,EAAG;AAC3C,MAAA,iBAAA,GAAoB,iBAAiB,UAAA,IAAc,EAAA;AAAA,IACvD;AAEA,IAAA,IACI,MAAA,IACA,MAAA,EAAQ,kBAAA,KAAuB,aAAA,IAC/B,QAAQ,WAAA,EACV;AACE,MAAA,YAAA,GAAe,MAAA,CAAO,WAAA;AAAA,IAC1B,CAAA,MAAO;AACH,MAAA,IAAI,IAAA,KAAS,OAAA,IAAW,CAAC,gBAAA,EAAkB;AACvC,QAAA,YAAA,GAAe,iBAAA;AAEf,QAAA,UAAA,CAAW;AAAA,UACP,EAAA,EAAI;AAAA,SACP,CAAA;AAAA,MACL,CAAA,MAAA,IAAW,CAAC,WAAA,CAAY,QAAA,CAAS,mBAAmB,CAAA,EAAG;AACnD,QAAA,YAAA,GAAe,gBAAA,IAAoB,IAAA;AAAA,MACvC,CAAA,MAAO;AACH,QAAA,YAAA,GACI,IAAA,CAAK,IAAA,CAAK,MAAA,KAAW,CAAA,GACf,iBAAA,GACA,gBAAA;AAAA,MACd;AAAA,IACJ;AAEA,IAAA,GAAA,CAAI,EAAE,gBAAA,EAAkB,YAAA,EAAc,CAAA;AACtC,IAAA,OAAO,YAAA;AAAA,EACX;AACJ,CAAA,CAAE,CAAA;AAKK,SAAS,QAAA,GAAW;AACvB,EAAA,MAAM,UAAA,GAAkB,WAAW,QAAA,EAAS;AAC5C,EAAA,OAAO;AAAA,IACH,GAAG,UAAA;AAAA,IAAY,GAAG,EAAE,SAAA,EAAW,EAAE,SAAA,EAAW,UAAA,CAAW,WAAU;AAAE,GACvE;AACJ;;;ACrRO,SAAS,KAAK,OAAA,EAAqC;AACxD,EAAA,MAAM;AAAA,IACJ;AAAA,MACO,QAAA,EAAS;AAElB,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AAEtB,MAAA,MAAM,KAAA,GAAQ,MAAM,aAAA,CAAc,OAAA,EAAS,iBAAiB,CAAA;AAE5D,MAAA,MAAM,WAAgB,MAAM,MAAA,CAAO,QAAA,CAAS,IAAA,CAAK,SAAS,KAAK,CAAA;AAC/D,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,YAAA,EAAc,MAAA;AAAA,IACd;AAAA,GACF;AACF;;;ACtBO,SAASC,MAAK,OAAA,EAAqC;AACxD,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,KAAA,CAAM,KAAK,OAAO,CAAA;AACrD,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,SAAA,EAAW,MAAA;AAAA,IACX;AAAA,GACF;AACF;;;ACbO,SAASA,MAAK,OAAA,EAAqC;AACxD,EAAA,MAAM;AAAA,IACJ;AAAA,MACO,QAAA,EAAS;AAElB,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,KAAA,GAAQ,MAAM,aAAA,CAAc,OAAA,EAAS,iBAAiB,CAAA;AAE5D,MAAA,MAAM,WAAgB,MAAM,MAAA,CAAO,MAAA,CAAO,IAAA,CAAK,SAAS,KAAK,CAAA;AAE7D,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,UAAA,EAAY,MAAA;AAAA,IACZ;AAAA,GACF;AACF;AAEO,SAAS,KAAK,OAAA,EAAqC;AACxD,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,MAAA,CAAO,KAAK,OAAO,CAAA;AAEtD,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,cAAA,EAAgB,MAAA;AAAA,IAChB;AAAA,GACF;AACF;AAEO,SAAS,kBAAkB,OAAA,EAAqC;AACrE,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,MAAA,CAAO,kBAAkB,OAAO,CAAA;AAEnE,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,iBAAA,EAAmB,MAAA;AAAA,IACnB;AAAA,GACF;AACF;AAEO,SAAS,OAAO,OAAA,EAAqC;AAC1D,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,KAAA,KAAe;AACpB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,MAAA,CAAO,OAAO,KAAK,CAAA;AAEtD,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,YAAA,EAAc,MAAA;AAAA,IACd;AAAA,GACF;AACF;AAEO,SAAS,eAAe,OAAA,EAAqC;AAClE,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,KAAA,KAAe;AACpB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,MAAA,CAAO,eAAe,KAAK,CAAA;AAE9D,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,oBAAA,EAAsB,MAAA;AAAA,IACtB;AAAA,GACF;AACF;AAGO,SAAS,eAAe,OAAA,EAAqC;AAClE,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,KAAA,KAAe;AACpB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,MAAA,CAAO,eAAe,KAAK,CAAA;AAE9D,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,cAAA,EAAgB,MAAA;AAAA,IAChB;AAAA,GACF;AACF;AAEO,SAAS,QAAQ,OAAA,EAAqC;AAC3D,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,MAAA,CAAO,QAAQ,OAAO,CAAA;AAEzD,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,iBAAA,EAAmB,MAAA;AAAA,IACnB;AAAA,GACF;AACF;AAEO,SAAS,OAAO,OAAA,EAAqC;AAC1D,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,MAAA,CAAO,OAAO,OAAO,CAAA;AAExD,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,oBAAA,EAAsB,MAAA;AAAA,IACtB;AAAA,GACF;AACF;;;AC9IO,SAASA,MAAK,OAAA,EAAqC;AACxD,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,IAAA,CAAK,KAAK,OAAO,CAAA;AAEpD,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,QAAA,EAAU,MAAA;AAAA,IACV;AAAA,GACF;AACF;AAEO,SAASC,QAAO,OAAA,EAAqC;AAC1D,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,KAAA,KAAe;AACpB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,IAAA,CAAK,OAAO,KAAK,CAAA;AAEpD,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,UAAA,EAAY,MAAA;AAAA,IACZ;AAAA,GACF;AACF;AAEO,SAASC,QAAO,OAAA,EAAqC;AAC1D,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AAatB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,IAAA,CAAK,OAAO,OAAO,CAAA;AAEtD,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,UAAA,EAAY,MAAA;AAAA,IACZ;AAAA,GACF;AACF;;;AC7DO,SAASF,MAAK,OAAA,EAAqC;AACxD,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,KAAA,CAAM,KAAK,OAAO,CAAA;AAErD,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,SAAA,EAAW,MAAA;AAAA,IACX;AAAA,GACF;AACF;AAEO,SAASC,QAAO,OAAA,EAAqC;AAC1D,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,KAAA,KAAe;AACpB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,KAAA,CAAM,OAAO,KAAK,CAAA;AAErD,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,WAAA,EAAa,MAAA;AAAA,IACb;AAAA,GACF;AACF;AAEO,SAASC,QAAO,OAAA,EAAqC;AAC1D,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,KAAA,CAAM,OAAO,OAAO,CAAA;AACvD,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,WAAA,EAAa,MAAA;AAAA,IACb;AAAA,GACF;AACF;;;AChDO,SAAS,YAAY,OAAA,EAAqC;AAC/D,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,OAAA,CAAQ,GAAA,CAAI,WAAW,OAAO,CAAA;AAC9B,MAAA,MAAM,QAAA,GAAgB,OAAA,EAAS,IAAA,KAAS,OAAA,GAAU,MAAM,MAAA,CAAO,KAAA,CAAM,KAAA,CAAM,OAAO,CAAA,GAAI,MAAM,MAAA,CAAO,IAAA,CAAK,MAAM,OAAO,CAAA;AAErH,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,WAAA,EAAa,MAAA;AAAA,IACb;AAAA,GACF;AACF;AAEO,SAAS,iBAAiB,OAAA,EAAqC;AACpE,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,OAAA,EAAS,IAAA,KAAS,OAAA,GAAU,MAAM,MAAA,CAAO,KAAA,CAAM,UAAA,CAAW,OAAO,CAAA,GAAI,MAAM,MAAA,CAAO,IAAA,CAAK,WAAW,OAAO,CAAA;AAE/H,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,gBAAA,EAAkB,MAAA;AAAA,IAClB;AAAA,GACF;AACF;;;ACjCO,SAASF,MAAK,OAAA,EAAqC;AACxD,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,IAAA,CAAK,KAAK,OAAO,CAAA;AAEpD,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,QAAA,EAAU,MAAA;AAAA,IACV;AAAA,GACF;AACF;AAEO,SAASG,SAAQ,OAAA,EAAqC;AAC3D,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,OAAA,KAAiB;AACtB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,IAAA,CAAK,QAAQ,OAAO,CAAA;AAEvD,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,OAAA,EAAS,MAAA;AAAA,IACT;AAAA,GACF;AACF;AAEO,SAAS,UAAU,OAAA,EAAqC;AAC7D,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,KAAA,KAAe;AACpB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,IAAA,CAAK,UAAU,KAAK,CAAA;AAEvD,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,SAAA,EAAW,MAAA;AAAA,IACX;AAAA,GACF;AACF;AAEO,SAAS,QAAQ,OAAA,EAAqC;AAC3D,EAAA,MAAM,EAAE,MAAA,EAAQ,SAAA,EAAU,GAAI,cAAA;AAAA,IAC5B,OAAO,KAAA,KAAe;AACpB,MAAA,MAAM,QAAA,GAAgB,MAAM,MAAA,CAAO,IAAA,CAAK,QAAQ,KAAK,CAAA;AAErD,MAAA,OAAO,QAAA;AAAA,IACT,CAAA;AAAA,IACA;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,MAAA;AAAA,IACA,OAAA,EAAS,MAAA;AAAA,IACT;AAAA,GACF;AACF;;;ACtDA,eAAA,EAAA;AAEA,gBAAA,EAAA;AACA,WAAA,EAAA;;;ACdO,IAAM,iBAAiB,MAAM;AAGlC,EAAA,MAAM,MAAA,GAAc,SAAS,GAAG,CAAA;AAEhC,EAAA,IAAI,WAAA,GAAc,cAAA,CAAe,MAAM,CAAA,IAAK,EAAC;AAE7C,EAAA,IAAI,CAAC,WAAA,IAAe,WAAA,CAAY,MAAA,GAAS,CAAA,SAAU,EAAC;AAEpD,EAAA,MAAM,OAAA,GAAU,WAAA,CAAY,GAAA,CAAI,CAAC,YAAiB,KAAA,KAAe;AAC/D,IAAA,OAAO,YAAA,CAAa,WAAA,EAAa,UAAA,EAAY,KAAK,CAAA;AAAA,EACpD,CAAC,CAAA;AAED,EAAA,IAAI,OAAA,CAAQ,SAAS,CAAA,EAAG;AACtB,IAAA,MAAM,WAAgB,OAAA,EAAQ;AAC9B,IAAA,MAAM,SAAA,GAAiB,aAAa,QAAQ,CAAA;AAC5C,IAAA,OAAO;AAAA,MACL;AAAA,QACE,MAAM,SAAA,EAAW,KAAA;AAAA,QACjB,MAAM,SAAA,EAAW;AAAA;AACnB,KACF;AAAA,EACF;AACA,EAAA,OAAO,OAAA;AACT,CAAA;AAGO,IAAM,aAAA,GAAgB,CAC3B,aAAA,EACA,KAAA,EACA,gBAAA,KACG;AAGH,EAAA,MAAM,MAAA,GAAc,SAAS,GAAG,CAAA;AAChC,EAAA,IAAI,WAAA,GAAc,cAAA,CAAe,MAAM,CAAA,IAAK,EAAC;AAI7C,EAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAG1B,IAAA,MAAM,WAAgB,OAAA,EAAQ;AAC9B,IAAA,MAAM,SAAA,GAAiB,aAAa,QAAQ,CAAA;AAE5C,IAAA,WAAA,GAAc;AAAA,MACZ;AAAA,QACE,GAAG,SAAA,EAAW,KAAA;AAAA,QACd,IAAI,SAAA,EAAW;AAAA;AACjB,KACF;AAAA,EACF;AAEA,EAAA,IAAI,4BAAA,GAAoC,EAAA;AACxC,EAAA,IAAI,UAAA,GAAkB,EAAA;AACtB,EAAA,IAAI,kBAAA,GAA0B,EAAA;AAE9B,EAAA,IAAI,WAAA,IAAe,WAAA,CAAY,MAAA,GAAS,CAAA,EAAG;AACzC,IAAA,MAAM,QAAA,GAAgB,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AACxD,IAAA,MAAM,IAAA,GAAY,WAAW,YAAA,CAAa,WAAA,EAAa,UAAU,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA,GAAI,IAAA;AAC3F,IAAA,MAAM,YAAA,GAAoB,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AAC5D,IAAA,MAAM,QAAA,GAAgB,eAAe,YAAA,CAAa,WAAA,EAAa,cAAc,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA,GAAI,IAAA;AACvG,IAAA,MAAM,mBAAmB,IAAA,EAAM,IAAA;AAE/B,IAAA,4BAAA,GAA+B,gBAAA;AAC/B,IAAA,IAAI,iBAAiB,QAAA,EAAU;AAC7B,MAAA,UAAA,GAAa,UAAU,IAAA,GACnB,EAAE,MAAY,QAAA,EAAmB,GACjC,EAAE,IAAA,EAAW;AACjB,MAAA,kBAAA,GAAqB,UAAU,IAAA,GAC3B,CAAA,EAAG,gBAAgB,CAAA,MAAA,EAAS,QAAA,EAAU,IAAI,CAAA,CAAA,GAC1C,gBAAA;AAAA,IACN,CAAA,MAAO;AACL,MAAA,MAAM,wBAAA,GAA2B,iBAAiB,QAAA,CAAS,GAAG,IAC1D,gBAAA,CAAiB,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA,GAC5B,gBAAA;AACJ,MAAA,UAAA,GAAa,EAAE,IAAA,EAAM,EAAE,IAAA,EAAM,OAAM,EAAE;AAErC,MAAA,kBAAA,GAAqB,UAAU,IAAA,GAC3B,CAAA,EAAG,wBAAwB,CAAA,MAAA,EAAS,gBAAgB,CAAA,CAAA,CAAA,GACpD,wBAAA;AAAA,IACN;AAAA,EACF;AACA,EAAA,OAAO,EAAE,4BAAA,EAA8B,UAAA,EAAY,kBAAA,EAAmB;AACxE,CAAA;AAGO,IAAM,YAAA,GAAe,CAC1B,IAAA,EACA,KAAA,EACA,SAAA,KACG;AAGH,EAAA,MAAM,MAAA,GAAc,SAAS,GAAG,CAAA;AAChC,EAAA,IAAI,WAAA,GAAc,cAAA,CAAe,MAAM,CAAA,IAAK,EAAC;AAE7C,EAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAG1B,IAAA,MAAM,WAAgB,OAAA,EAAQ;AAC9B,IAAA,MAAM,SAAA,GAAiB,aAAa,QAAQ,CAAA;AAC5C,IAAA,WAAA,GAAc;AAAA,MACZ;AAAA,QACE,GAAG,SAAA,EAAW,KAAA;AAAA,QACd,IAAI,SAAA,EAAW;AAAA;AACjB,KACF;AAAA,EACF;AAEA,EAAA,IAAI,UAAA,GAAkB,EAAA;AACtB,EAAA,IAAI,eAAA,GAAuB,EAAA;AAC3B,EAAA,IAAI,WAAA,GAAmB,EAAA;AAEvB,EAAA,IAAI,WAAA,IAAe,WAAA,EAAa,MAAA,GAAS,CAAA,EAAG;AAC1C,IAAA,MAAM,IAAA,GAAY,WAAA,CAAY,WAAA,EAAa,MAAA,GAAS,CAAC,CAAA;AACrD,IAAA,MAAM,WAAW,IAAA,EAAM,CAAA;AACvB,IAAA,MAAM,MAAA,GAAS,KAAA;AACf,IAAA,IAAI,IAAA,KAAS,aAAA,IAAiB,WAAA,IAAe,WAAA,EAAa,SAAS,CAAA,EAAG;AACpE,MAAA,UAAA,GAAa,KAAA;AACb,MAAA,eAAA,GAAkB,KAAA;AAClB,MAAA,WAAA,GAAc,GAAG,SAAA,IAAa,QAAA,GAAW,CAAA,aAAA,EAAgB,MAAM,QAAQ,YAAA,CAAa,QAAQ,CAAC,CAAA,CAAA,GAAK,yBAAyB,MAAM,CAAA,MAAA,EAAS,YAAA,CAAa,QAAQ,CAAC,CAAA,CAAE,CAAA,CAAA;AAAA,IACpK,CAAA,MAAO;AACL,MAAA,MAAM,gBAAA,GAAmB,OAAO,QAAA,KAAa,QAAA,IAAY,QAAA,EAAU,QAAA,CAAS,GAAG,CAAA,GAC3E,QAAA,CAAS,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA,GACpB,QAAA;AACJ,MAAA,UAAA,GAAa,gBAAA;AACb,MAAA,eAAA,GAAkB,QAAA;AAClB,MAAA,WAAA,GAAc,CAAA,EAAG,aAAa,QAAA,GAAW,CAAA,aAAA,EAAgB,QAAQ,QAAA,CAAS,MAAM,CAAA,GAAI,YAAA,CAAa,MAAA,EAAQ,OAAA,CAAQ,QAAQ,KAAK,CAAC,CAAA,GAAI,YAAA,CAAa,MAAM,CAAC,KAAK,CAAA,sBAAA,EAAyB,YAAA,CAAa,MAAM,CAAC,CAAA,CAAE,CAAA,CAAA;AAAA,IAC7M;AAAA,EACF;AACA,EAAA,OAAO,EAAE,UAAA,EAAY,eAAA,EAAiB,WAAA,EAAY;AACpD,CAAA;AAEA,IAAM,YAAA,GAAe,CAAC,IAAA,KAAc;AAClC,EAAA,OAAO,IAAA,EAAM,MAAA,GAAS,EAAA,GAAK,CAAA,EAAG,IAAA,EAAM,MAAM,CAAA,EAAG,EAAE,CAAA,GAAI,KAAK,CAAA,CAAA,GAAK,IAAA;AAC/D,CAAA;;;ACxIO,IAAM,cAAc,MAAM;AAG7B,EAAA,MAAM,MAAA,GAAc,SAAS,GAAG,CAAA;AAWhC,EAAA,MAAM,QAAA,GAAW,CAAC,KAAA,KAAe;AAC7B,IAAA,IAAI,CAAC,MAAA,IAAU,MAAA,IAAU,KAAA,EAAO;AAC5B,MAAA,OAAO,iBAAiB,KAAK,CAAA;AAAA,IACjC,CAAA,MAAO;AACH,MAAA,MAAM,eAAA,GAAkB,cAAA,CAAe,MAAM,CAAA,IAAK,EAAC;AACnD,MAAA,OAAO,eAAA,CAAgB,OAAO,eAAe,CAAA;AAAA,IACjD;AAAA,EACJ,CAAA;AAEA,EAAA,OAAO,EAAE,QAAA,EAAS;AACtB,CAAA;AAGA,IAAM,gBAAA,GAAmB,CAAC,KAAA,KAAe;AAGrC,EAAA,MAAM,WAAgB,OAAA,EAAQ;AAC9B,EAAA,MAAM,SAAA,GAAiB,aAAa,QAAQ,CAAA;AAE5C,EAAA,MAAM,eAAA,GAAuB;AAAA,IACzB;AAAA,MACI,GAAG,SAAA,EAAW,KAAA;AAAA,MACd,QAAQ,SAAA,EAAW,IAAA;AAAA,MACnB,MAAA,EAAQ,OAAO,MAAA,IAAU;AAAA;AAC7B,GACJ;AAEA,EAAA,OAAO,eAAA,CAAgB,OAAO,eAAe,CAAA;AACjD,CAAA;AAGA,IAAM,eAAA,GAAkB,CAAC,KAAA,EAAY,eAAA,KAAyB;AAE1D,EAAA,IAAI,WAAA,GAAc,CAAC,GAAG,eAAe,CAAA;AAQrC,EAAA,IAAI,cAAA,GAAiB,gBAAgB,eAAe,CAAA;AAEpD,EAAA,IAAI,KAAA,EAAO,MAAA,IAAU,uBAAA,CAAwB,eAAe,CAAA,EAAG;AAC3D,IAAA,MAAM,MAAA,GAAc;AAAA,MAChB,CAAA,EAAG,OAAO,KAAA,IAAS,EAAA;AAAA,MACnB,QAAQ,KAAA,EAAO,YAAA;AAAA,MACf,IAAA,EAAM,CAAA,aAAA,EAAgB,KAAA,EAAO,YAAY,CAAA,CAAA;AAAA,MACzC,MAAA,EAAQ,OAAO,MAAA,IAAU,KAAA;AAAA,MACzB,KAAA,EAAO;AAAA,QACH,MAAA,EAAQ,gBAAA;AAAA,QACR,GAAA,EAAK,EAAA;AAAA,QACL,KAAA,EAAO,aAAA;AAAA,QACP,IAAA,EAAM,IAAA;AAAA,QACN,IAAA,EAAM,EAAA;AAAA,QACN,GAAA,EAAK,IAAA;AAAA,QACL,QAAQ,KAAA,EAAO,IAAA;AAAA,QACf,GAAA,EAAK,MAAA;AAAA,QACL,GAAA,EAAK,IAAA;AAAA,QACL,GAAA,EAAK;AAAA;AACT,KACJ;AAEA,IAAA,WAAA,CAAY,KAAK,MAAM,CAAA;AAEvB,IAAA,MAAM,QAAA,GAAgB;AAAA,MAClB,GAAG,KAAA,EAAO,IAAA;AAAA,MACV,QAAQ,KAAA,EAAO,YAAA;AAAA,MACf,QAAQ,KAAA,EAAO;AAAA,KACnB;AACA,IAAA,WAAA,CAAY,KAAK,QAAQ,CAAA;AAAA,EAC7B,CAAA,MAAA,IAAW,mBAAmB,MAAA,EAAQ;AAClC,IAAA,MAAM,QAAA,GAAgB;AAAA,MAClB,GAAG,KAAA,EAAO,IAAA;AAAA,MACV,QAAQ,KAAA,EAAO,YAAA;AAAA,MACf,QAAQ,KAAA,EAAO;AAAA,KACnB;AAOA,IAAA,IAAI,OAAO,IAAA,EAAM;AACb,MAAA,QAAA,CAAS,GAAA,GAAM;AAAA,QACX,MAAM,KAAA,EAAO;AAAA,OACjB;AAAA,IACJ;AAEA,IAAA,WAAA,CAAY,KAAK,QAAQ,CAAA;AAAA,EAC7B,CAAA,MAAO;AACH,IAAA,MAAM,QAAA,GAAW,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AAEnD,IAAA,IAAK,KAAA,EAAO,YAAA,IAAgB,KAAA,IAAS,WAAA,CAAY,MAAA,GAAS,CAAA;AAAA,KACzD,CAAC,eAAA,CAAgB,eAAe,CAAA,IAAK,QAAA,EAAU,WAAW,KAAA,EAAO,YAAA,CAAA;AAAA,KACjE,KAAA,EAAO,MAAA,IAAU,CAAC,uBAAA,CAAwB,eAAe,CAAA,CAAA,EAAI;AAC1D,MAAA,MAAM,QAAA,GAAgB;AAAA,QAClB,GAAG,KAAA,EAAO,IAAA;AAAA,QACV,QAAQ,KAAA,EAAO,YAAA;AAAA,QACf,QAAQ,KAAA,EAAO;AAAA,OACnB;AAQA,MAAA,IAAI,OAAO,IAAA,EAAM;AACb,QAAA,QAAA,CAAS,GAAA,GAAM;AAAA,UACX,MAAM,KAAA,EAAO;AAAA,SACjB;AAAA,MACJ;AAEA,MAAA,WAAA,CAAY,KAAK,QAAQ,CAAA;AAAA,IAC7B,CAAA,MAAO;AACH,MAAA,MAAMC,SAAAA,GAAW,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AAGnD,MAAA,MAAM,MAAA,GAAc;AAAA,QAChB,CAAA,EAAG,KAAA,EAAO,gBAAA,IAAoB,KAAA,EAAO,IAAA;AAAA,QACrC,QAAQ,KAAA,EAAO;AAAA,OACnB;AAEA,MAAA,IAAI,OAAO,UAAA,EAAY;AACnB,QAAA,MAAA,CAAO,MAAM,KAAA,EAAO,UAAA;AAAA,MACxB;AAEA,MAAA,IAAI,OAAO,cAAA,EAAgB;AACvB,QAAA,MAAA,CAAO,KAAK,KAAA,EAAO,cAAA;AAAA,MACvB;AAEA,MAAA,IAAIA,SAAAA,EAAU,MAAA,IAAUA,SAAAA,EAAU,MAAA,EAAQ;AACtC,QAAA,WAAA,CAAY,KAAK,MAAM,CAAA;AAAA,MAC3B;AAGA,MAAA,IAAI,OAAO,QAAA,EAAU;AACjB,QAAA,MAAM,QAAA,GAAgB;AAAA,UAClB,GAAG,KAAA,EAAO,IAAA;AAAA,UACV,QAAQ,KAAA,EAAO,YAAA;AAAA,UACf,QAAQ,KAAA,EAAO;AAAA,SACnB;AAOA,QAAA,IAAI,OAAO,IAAA,EAAM;AACb,UAAA,QAAA,CAAS,GAAA,GAAM;AAAA,YACX,MAAM,KAAA,EAAO;AAAA,WACjB;AAAA,QACJ;AAEA,QAAA,WAAA,CAAY,KAAK,QAAQ,CAAA;AAAA,MAC7B;AAAA,IACJ;AAAA,EACJ;AACA,EAAA,OAAO,WAAA,CAAY,OAAO,WAAW,CAAA;AACzC,CAAA;;;AFpIO,IAAM,GAAA,GAAM;AAAA,EACjB,QAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,wBAAA;AAAA,EACA,aAAA;AAAA,EACA,oBAAA;AAAA,EACA,iBAAA;AAAA,EACA,WAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,EAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA;AAAA,EACA,SAAA,EAAA,IAAA;AAAA,EACA,MAAA,EAAAJ,KAAAA;AAAA,EACA,OAAA,EAAAA,KAAAA;AAAA,EACA,WAAA,EAAA,IAAA;AAAA,EACA,YAAA,EAAA,MAAA;AAAA,EACA,oBAAA,EAAA,cAAA;AAAA,EACA,oBAAA,EAAA,cAAA;AAAA,EACA,cAAA,EAAA,OAAA;AAAA,EACA,oBAAA,EAAA,MAAA;AAAA,EACA,iBAAA;AAAA,EACA,KAAA,EAAAA,KAAAA;AAAA,EACA,UAAA,EAAAC,OAAAA;AAAA,EACA,UAAA,EAAAC,OAAAA;AAAA,EACA,MAAA,EAAAF,KAAAA;AAAA,EACA,WAAA,EAAAC,OAAAA;AAAA,EACA,WAAA,EAAAC,OAAAA;AAAA,EACA,WAAA;AAAA,EACA,gBAAA;AAAA,EACA,KAAA,EAAAF,KAAAA;AAAA,EACA,IAAA,EAAAG,QAAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,eAAA;AAAA,EACA,mBAAA;AAAA,EACA,eAAA;AAAA,EACA,oBAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF;AAGO,IAAM,KAAA,GAAQ;AAAA,EACnB,OAAA;AAAA,EACA;AACF;AAGO,IAAM,kBAAA,GAAqB;AAAA,EAChC,cAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF;AAGO,IAAM,GAAA,GAAM;AAAA,EACjB,WAAA;AAAA,EACA;AACF;AAGO,IAAM,UAAA,GAAa;AAAA,EACxB,eAAA;AAAA,EACA;AACF","file":"index.js","sourcesContent":["// cookies\nexport const LOGIN_DETAILS = \"loginDetails\";\nexport const REFRESH_TOKEN = \"refreshToken\";\nexport const PORTAL = \"portal\";\nexport const SUBSCRIPTION_TYPE = \"ssubscriptionType\";\n\n// variables\nexport const HUBSPOT_DATA = \"hubSpotData\";\nexport const HUB_ID = \"hubId\";\nexport const DEV_PORTAL_ID = \"devPortalId\";\nexport const PORTAL_ID = \"portalId\";\n","import Cookies from 'js-cookie';\n\nexport const setCookie = (key: string, value: string, expire?: number | Date) => {\n return Cookies.set(key, value, {\n expires: expire,\n sameSite: 'none',\n secure: true,\n });\n}\n\nexport const getCookie: any = (key: any) => {\n return Cookies.get(key);\n}\n\nexport const removeCookie = (key: any) => {\n return Cookies.remove(key);\n}\n\nexport const removeAllCookie = () => {\n Object.keys(Cookies.get()).forEach((cookieName) => {\n Cookies.remove(cookieName);\n });\n}\n\n// export const isCookieExpired = (key: string): boolean => {\n// const value = Cookies.get(key);\n// return value === undefined; // true means expired or never set\n// };\n\n\nexport const isCookieExpired = (key: string): boolean => {\n const value: any = Cookies.get(key);\n try {\n const { expiresAt } = JSON.parse(value);\n return Date.now() > expiresAt ? true : false;\n } catch {\n return false; // if invalid format, treat as valid\n }\n};","/**\n * Authentication utility functions\n * These handle refresh token management\n */\n\nimport { LOGIN_DETAILS, REFRESH_TOKEN, PORTAL, SUBSCRIPTION_TYPE } from '../utils/constants';\nimport { setCookie, getCookie } from '../utils/cookie';\nimport { storAccessToken } from './token-store';\n\n// Set data\nexport const setLoggedInDetails = async (data: any) => {\n return new Promise((resolve: any) => {\n setCookie(LOGIN_DETAILS, JSON.stringify(data));\n resolve();\n });\n};\n\nexport function setRefreshToken(token: string, expiresAt: number) {\n return new Promise((resolve: any) => {\n setCookie(REFRESH_TOKEN, JSON.stringify(token), expiresAt);\n resolve();\n });\n}\n\nexport function setAccessToken(token: string, expiresIn?: number) {\n return new Promise((resolve: any) => {\n storAccessToken(token, expiresIn);\n resolve();\n });\n}\n\nexport const setPortal = async (data: any) => {\n return new Promise((resolve: any) => {\n setCookie(PORTAL, JSON.stringify(data));\n resolve();\n });\n};\n\nexport const setSubscriptionType = async (data: any) => {\n return new Promise((resolve: any) => {\n setCookie(SUBSCRIPTION_TYPE, JSON.stringify(data));\n resolve();\n });\n};\n\n// Get data\nexport function getProfile(): string | null {\n return JSON.parse(getCookie(LOGIN_DETAILS || null) || null);\n}\n\nexport function getRefreshToken(): string | null {\n return JSON.parse(getCookie(REFRESH_TOKEN || null) || null);\n}\n\nexport function getPortal(): any | null {\n return JSON.parse(getCookie(PORTAL || null) || null);\n}\n\nexport function getSubscriptionType(): string | null {\n return JSON.parse(getCookie(SUBSCRIPTION_TYPE || null) || null);\n}\n\n// Remove data\n// export const removeAllCookies = () => {\n// const cookies = document.cookie.split(\"; \");\n// cookies.forEach((cookie) => {\n// const name = cookie.split(\"=\")[0];\n// removeCookie(name);\n// });\n// };","/**\n * Token storage utilities\n * These functions handle access token management\n */\n\nimport { isCookieExpired } from '../utils/cookie.js';\nimport { REFRESH_TOKEN } from '../utils/constants';\n\nlet accessToken: string | null = null;\nlet tokenExpiresAt: number | null = null;\nlet refreshCallback: ((refreshToken: string) => Promise<{ token: string | null; success: boolean }>) | null = null;\n\nexport function getAccessToken(): string | null {\n return accessToken;\n}\n\nexport function storAccessToken(token: string, expiresIn?: number): void {\n accessToken = token;\n if (expiresIn) {\n tokenExpiresAt = Date.now() + expiresIn * 1000;\n } else {\n tokenExpiresAt = null;\n }\n}\n\nexport function clearAccessToken(): void {\n accessToken = null;\n tokenExpiresAt = null;\n}\n\nexport function isExpiresAccessToken(): boolean {\n if (!tokenExpiresAt) return true;\n return Date.now() >= tokenExpiresAt;\n}\n\n/**\n * Set the refresh callback function\n * This is called by the HTTP client during initialization\n */\nexport function setRefreshCallback(callback: (refreshToken: string) => Promise<{ token: string | null; success: boolean }>): void {\n refreshCallback = callback;\n}\n\n/**\n * Ensures the access token is valid, refreshing if necessary\n */\nexport async function ensureValidRefresh(): Promise<void> {\n if (isExpiresAccessToken() && refreshCallback) {\n const { getRefreshToken } = await import('./auth-utils.js');\n const refreshToken = getRefreshToken();\n if (refreshToken) {\n await refreshCallback(refreshToken);\n }\n }\n}\n\nexport function isAuthenticateApp() {\n if (isCookieExpired(REFRESH_TOKEN) || isExpiresAccessToken()) {\n return false;\n }\n return true;\n}","import { Config, HubspotStorage } from \"../types\";\nimport { HUBSPOT_DATA, HUB_ID, DEV_PORTAL_ID, PORTAL_ID } from \"./constants\";\nimport { storage } from \"./localStoraget\";\n\nexport const config = {\n get hubId() {\n const hubSpotData: any = storage.get<{ name: string }>(HUBSPOT_DATA);\n return hubSpotData?.[HUB_ID] || \"\";\n },\n get devPortalId() {\n const hubSpotData: any = storage.get<{ name: string }>(HUBSPOT_DATA);\n return hubSpotData?.[DEV_PORTAL_ID] || \"\";\n },\n get portalId() {\n const hubSpotData: any = storage.get<{ name: string }>(HUBSPOT_DATA);\n return hubSpotData?.[PORTAL_ID] || \"\";\n },\n} satisfies Config;\n\nexport const setConfig = {\n setDevPortalId(portalId: string) {\n const existing = storage.get<HubspotStorage>(HUBSPOT_DATA) || {};\n\n storage.set(HUBSPOT_DATA, {\n ...existing,\n [PORTAL_ID]: portalId,\n });\n },\n};","// export const setLocalStorage = (key: string, value: string) => {\n// return localStorage.setItem(key, JSON.stringify(value));\n// }\n\n// export const getLocalStorage: any = (key: any) => {\n// let data = null;\n// const storedUser = localStorage.getItem(key);\n// if (storedUser) {\n// data = JSON.parse(storedUser);\n// }\n// return data\n// }\n\n// export const removeLocalStorage = (key: any) => {\n// return Cookies.remove(key);\n// }\n\n// export const removeAllLocalStorage = () => {\n// Object.keys(Cookies.get()).forEach((cookieName) => {\n// Cookies.remove(cookieName);\n// });\n// }\n\nexport const storage = {\n set: (key: string, value: any) => {\n localStorage.setItem(key, JSON.stringify(value));\n },\n\n get: <T>(key: string): T | null => {\n const item = localStorage.getItem(key);\n return item ? JSON.parse(item) : null;\n },\n\n remove: (key: string) => {\n localStorage.removeItem(key);\n },\n};","import { config } from '../utils/config'\n\nexport const generateApiUrl = ({\n route,\n params = {},\n queryParams = '',\n}: {\n route: string;\n params?: Object;\n queryParams?: any;\n}) => {\n const defaultParams = {\n hubId: config.hubId,\n portalId: config.portalId,\n };\n params = { ...defaultParams, ...params };\n const url = replaceParams(route, params)\n\n let queryString = '';\n if (queryParams && typeof queryParams === 'object') {\n const cleanedParams = Object.entries(queryParams)\n .filter(([_, value]) => value !== null && value !== undefined)\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});\n\n queryString = new URLSearchParams(cleanedParams).toString();\n }\n\n return queryString ? `${url}?${queryString}` : url;\n}\n\nfunction replaceParams(\n template: string,\n values: any\n) {\n return template.replace(/\\$\\{(\\w+)\\}/g, (_, key) =>\n key in values ? String(values[key]) : `\\${${key}}`\n );\n}","export const API_ENDPOINTS: any = {\n // Auth\n PRE_LOGIN: \"/api/auth/pre-login\",\n LOGIN: \"/api/auth/login\",\n AUTH_REFRESH: \"/api/auth/refresh\",\n FORGET_PASSWORD: \"/api/auth/forget-password\",\n RESET_PASSWORD_VERIFY_TOKEN: \"/api/auth/token/validate\",\n RESET_PASSWORD: \"/api/auth/reset-password\",\n VERIFY_EMAIL: \"/api/auth/verify-email\",\n REGISTER_EXISTING_USER: \"/api/auth/existing-user-register\",\n RESEND_EMAIL: \"/api/auth/resend-email\",\n LOGOUT: \"/api/auth/logout\",\n\n // SSO\n SSO_DETAILS: \"/api/auth/sso/active\",\n SSO_URL: \"/api/auth/sso/authorize\",\n SSO_CALLBACK: \"/api/auth/sso/callback\",\n\n // User\n ME: \"/api/auth/me\",\n PROFILE: \"/api/${hubId}/${portalId}/profiles\",\n CHANGE_PASSWORD: \"/api/auth/change-password\",\n\n // Pipeline\n PIPELINES: \"api/${hubId}/${portalId}/hubspot-object-pipelines/${hubspotObjectTypeId}\",\n\n // Stage\n STAGES: \"api/${hubId}/${portalId}/hubspot-object-pipelines/${objectTypeId}/${pipelineId}/stages\",\n\n // Object\n OBJECTS: \"api/${hubId}/${portalId}/hubspot-object-data/${hubspotObjectTypeId}\",\n OBJECTS_FORM: \"api/${hubId}/${portalId}/hubspot-object-forms/${hubspotObjectTypeId}/fields\",\n OBJECTS_FORM_OPTIONS: \"api/${hubId}/${portalId}/hubspot-object-forms/:fromRecordId/:fromObjectTypeId\",\n OBJECTS_CREATE: \"api/${hubId}/${portalId}/hubspot-object-forms/${hubspotObjectTypeId}/fields\",\n OBJECTS_CREATE_EXISTING: \"api/${hubId}/${portalId}/hubspot-object-forms/:fromObjectTypeId/:fromRecordId/associations/:toObjectTypeId\",\n OBJECTS_REMOVE_EXISTING: \"api/${hubId}/${portalId}/hubspot-object-forms/:fromObjectTypeId/:fromRecordId/disassociate/:toObjectTypeId\",\n OBJECTS_DETAILS: \"api/${hubId}/${portalId}/hubspot-object-data/${objectId}/${id}\",\n OBJECTS_DETAILS_UPDATE: \"api/${hubId}/${portalId}/hubspot-object-forms/${objectId}/properties/${id}\",\n\n // Note\n NOTES: \"api/${hubId}/${portalId}/hubspot-object-notes/${objectId}/${id}\",\n NOTES_CREATE: \"api/${hubId}/${portalId}/hubspot-object-notes/${objectId}/${id}\",\n NOTES_DETAILS_UPDATE: \"api/${hubId}/${portalId}/hubspot-object-notes/${objectId}/${id}/${note_id}\",\n NOTES_IMAGE_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-notes/images/${objectId}/${id}\",\n NOTES_ATTACHMENT_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-notes/attachments/${objectId}/${id}\",\n\n // Email\n EMAILS: \"api/${hubId}/${portalId}/hubspot-object-emails/${objectId}/${id}\",\n EMAILS_CREATE: \"api/${hubId}/${portalId}/hubspot-object-emails/${objectId}/${id}\",\n EMAILS_DETAILS_UPDATE: \"api/${hubId}/${portalId}/hubspot-object-emails/${objectId}/${id}/${note_id}\",\n EMAILS_IMAGE_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-emails/images/${objectId}/${id}\",\n EMAILS_ATTACHMENT_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-emails/attachments/${objectId}/${id}\",\n\n // File\n FILES: \"api/${hubId}/${portalId}/hubspot-object-files/${objectId}/${id}\",\n FILE: \"api/${hubId}/${portalId}/hubspot-object-files/${objectId}/${id}/${rowId}\",\n FILES_CREATE_FOLDER: \"api/${hubId}/${portalId}/hubspot-object-folders/${objectId}/${id}\",\n FILES_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-files/${objectId}/${id}\",\n FILES_DELETE: \"api/feature-data/files/${me.hubspotPortals.templateName}${path}/${postId}/${fileId}\",\n};","import axios from \"axios\";\n// import type { AxiosError, AxiosInstance, AxiosRequestConfig, InternalAxiosRequestConfig } from \"axios\";\nimport type { AxiosError, AxiosInstance, InternalAxiosRequestConfig } from \"axios\";\nimport { API_ENDPOINTS } from './api-endpoints';\nimport { getAccessToken, ensureValidRefresh, setRefreshCallback } from './token-store';\nimport { config as defaultConfig } from './config';\nimport { config as storConfig } from '../utils/config'\nimport { generateApiUrl } from \"../utils/generateApiUrl\";\nimport { setAccessToken, setRefreshToken } from \"./auth-utils\";\n\nexport interface HttpClientConfig {\n /**\n * Base URL for API requests\n */\n baseURL?: string;\n\n /**\n * Request timeout in milliseconds\n */\n timeout?: number;\n\n /**\n * Custom headers to include in all requests\n */\n headers?: Record<string, string>;\n\n /**\n * Function to check if current path should skip auth error handling\n * Returns true if auth errors should be handled (redirect to login)\n */\n skipCurrentPublicPath?: () => boolean;\n\n /**\n * Routes configuration object with route paths\n */\n routes?: {\n unauthorized?: string;\n login?: string;\n };\n\n /**\n * Hub ID for API requests\n */\n hubId?: string;\n\n /**\n * Dev Portal ID for API requests\n */\n devPortalId?: string;\n\n /**\n * Function to handle logout\n */\n onLogout?: () => void | Promise<void>;\n}\n\nlet axiosInstance: AxiosInstance | null = null;\nlet config: HttpClientConfig = {};\n\n/**\n * Initialize the HTTP client with configuration\n */\nexport function initializeHttpClient(clientConfig: HttpClientConfig): void {\n config = clientConfig;\n\n const baseURL = config.baseURL ?? defaultConfig.baseURL;\n const timeout = config.timeout ?? 50000;\n\n axiosInstance = axios.create({\n baseURL,\n timeout,\n headers: {\n 'Content-Type': 'application/json',\n ...config.headers,\n },\n });\n\n // Set up refresh callback to avoid circular dependency\n setRefreshCallback(getAuthRefreshToken);\n\n // Request interceptor: inject auth token if available\n axiosInstance.interceptors.request.use((config: InternalAxiosRequestConfig) => {\n const token = getAccessToken();\n if (token) {\n config.headers.set('Authorization', `Bearer ${token}`);\n }\n return config;\n });\n\n // Response interceptor: handle errors\n axiosInstance.interceptors.response.use(\n (response) => response,\n (error: AxiosError) => {\n if (error.response && error.response.status === 401) {\n const shouldHandleAuthError = config.skipCurrentPublicPath?.() ?? false;\n\n if (shouldHandleAuthError) {\n // const payload = error.response.data as any ?? {};\n // const data = {\n // errorCode: payload.errorCode,\n // errorMessage: payload.errorMessage,\n // detailedMessage: payload.detailedMessage,\n // correlationId: payload.correlationId,\n // ts: Date.now(),\n // };\n\n // if (typeof window !== 'undefined' && window.sessionStorage) {\n // sessionStorage.setItem('authError', JSON.stringify(data));\n // }\n\n // if (config.routes?.unauthorized && typeof window !== 'undefined') {\n // window.location.replace(`#${config.routes.unauthorized}`);\n // }\n }\n }\n return Promise.reject(error);\n },\n );\n}\n\n/**\n * Get the axios instance (creates default if not initialized)\n */\nfunction getAxiosInstance(): AxiosInstance {\n if (!axiosInstance) {\n // Create default instance if not initialized\n initializeHttpClient({\n baseURL: defaultConfig.baseURL,\n timeout: 50000,\n });\n }\n return axiosInstance!;\n}\n\nfunction formatBooleanSearchParam(key: string, value: boolean): string {\n return value ? `${key}:1` : `${key}:`;\n}\n\nexport class HttpClient {\n static async get<T>(url: string, params?: unknown): Promise<T> {\n await ensureValidRefresh();\n const response = await getAxiosInstance().get<T>(url, { params });\n return response.data;\n }\n\n static async post<T>(url: string, data: unknown, options?: any): Promise<T> {\n await ensureValidRefresh();\n const response = await getAxiosInstance().post<T>(url, data, options);\n return response.data;\n }\n\n static async put<T>(url: string, data: unknown): Promise<T> {\n await ensureValidRefresh();\n const response = await getAxiosInstance().put<T>(url, data);\n return response.data;\n }\n\n static async delete<T>(url: string): Promise<T> {\n await ensureValidRefresh();\n const response = await getAxiosInstance().delete<T>(url);\n return response.data;\n }\n\n static formatSearchParams(params: Partial<any>): string {\n return Object.entries(params)\n .filter(([, value]) => Boolean(value))\n .map(([k, v]) =>\n [\n 'type',\n 'categories',\n 'tags',\n 'author',\n 'manufacturer',\n 'shops',\n 'refund_reason',\n ].includes(k)\n ? `${k}.slug:${v}`\n : ['is_approved'].includes(k)\n ? formatBooleanSearchParam(k, v as boolean)\n : `${k}:${v}`,\n )\n .join(';');\n }\n}\n\nexport class AuthHttpClient {\n static async get<T>(url: string, params?: unknown): Promise<T> {\n const response = await getAxiosInstance().get<T>(url, { params });\n return response.data;\n }\n\n static async post<T>(url: string, data: unknown, options?: any): Promise<T> {\n const response = await getAxiosInstance().post<T>(url, data, options);\n return response.data;\n }\n\n static async put<T>(url: string, data: unknown, options?: any): Promise<T> {\n const response = await getAxiosInstance().put<T>(url, data, options);\n return response.data;\n }\n}\n\nexport function getFormErrors(error: unknown): string | null {\n if (axios.isAxiosError(error)) {\n return (error.response?.data as any)?.message ?? null;\n }\n return null;\n}\n\nexport function getFieldErrors(error: unknown): any {\n if (axios.isAxiosError(error)) {\n return (error.response?.data as any)?.errors ?? null;\n }\n return null;\n}\n\nexport async function getAuthRefreshToken(refreshToken: string | null): Promise<{\n token: string | null;\n success: boolean;\n}> {\n try {\n // const hubId = config.hubId ?? '';\n const headers: Record<string, string> = {};\n\n if (storConfig.devPortalId) {\n headers['X-Dev-Portal-Id'] = storConfig.devPortalId;\n }\n\n const api_url = generateApiUrl({ route: API_ENDPOINTS.AUTH_REFRESH, queryParams: { hubId: storConfig.hubId } })\n\n const response = await getAxiosInstance().post(\n api_url,\n { refreshToken },\n { headers }\n );\n\n const maybeData = response?.data?.data || response?.data;\n const tokenData = maybeData?.tokenData || maybeData || {} as any;\n const newRefreshToken = tokenData?.refreshToken as string;\n const token = tokenData?.token as string | undefined;\n const expiresIn = tokenData?.expiresIn as number | undefined;\n const rExpiresIn = tokenData?.refreshExpiresIn as number | undefined;\n const rExpiresAt = tokenData?.refreshExpiresAt as number | undefined; // epoch seconds\n\n if (typeof newRefreshToken === 'string') {\n let rExpires = 0;\n if (typeof rExpiresIn === 'number') {\n rExpires = Date.now() + rExpiresIn * 1000;\n } else if (typeof rExpiresAt === 'number') {\n rExpires = rExpiresAt * 1000;\n }\n setRefreshToken(newRefreshToken, rExpires);\n }\n\n if (typeof token === 'string') {\n setAccessToken(token, typeof expiresIn === 'number' ? expiresIn : undefined);\n return { token, success: true };\n }\n\n return { token: null, success: false };\n } catch {\n return { token: null, success: false };\n }\n}\n\n// Export the axios instance getter for advanced usage\nexport { getAxiosInstance };\n","export interface Config {\n /**\n * Base URL for API requests\n */\n baseURL: string;\n}\n\nexport const config: Config = {\n baseURL: 'https://api.dev.woodsportal.com',\n};\n\n","export let PROFILE: any = null\n\nexport const setProfileData = (data: any) => {\n PROFILE = data\n}\n\nexport const getProfileData = () => {\n return PROFILE\n}","import pako from 'pako'\nimport { Base64 } from 'js-base64'\n\nexport function convertToBase64(obj: unknown): string {\n try {\n if (!obj) return \"\"\n const json = JSON.stringify(obj)\n const compressed = pako.deflate(json) // returns Uint8Array\n const base64 = Base64.fromUint8Array(compressed, true) // URL-safe\n\n return base64\n } catch (error) {\n console.error('Failed to encode object:', error)\n return ''\n }\n}\n\nexport function decodeToBase64(encoded: string): any {\n try {\n if (!encoded) return null\n\n const uint8Array = Base64.toUint8Array(encoded)\n const decompressed = pako.inflate(uint8Array, { to: 'string' })\n\n return JSON.parse(decompressed)\n } catch (error) {\n console.error('Failed to decode object:', error)\n return null\n }\n}\n","import { convertToBase64 } from \"../utils/compress\"\n\n// map Keys\nexport function mapKeysDeep(obj: any, keyMap: Record<string, string>): any {\n if (Array.isArray(obj)) {\n return obj.map((item) => mapKeysDeep(item, keyMap));\n } else if (obj !== null && typeof obj === 'object') {\n return Object.entries(obj).reduce((acc, [key, value]) => {\n const mappedKey = keyMap[key] || key; // rename if matched\n acc[mappedKey] = mapKeysDeep(value, keyMap); // recurse into nested\n return acc;\n }, {} as Record<string, any>);\n }\n return obj;\n}\n\n// check parent is messing\nexport function isMessingParent(breadcrumbs: any) {\n let lastItem = breadcrumbs[breadcrumbs.length - 1]\n let lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n let lastItem3 = breadcrumbs[breadcrumbs.length - 3]\n\n return (lastItem?.o_r_id && (!lastItem2?.o_r_id && lastItem2?.o_t_id) && lastItem3?.o_r_id) ? true : false\n}\n\n// check parent last item if messing\nexport function isMessingParentLastItem(breadcrumbs: any) {\n let lastItem = breadcrumbs[breadcrumbs.length - 1]\n let lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n\n return (!lastItem?.o_t_id && (lastItem2?.o_r_id && lastItem2?.o_t_id)) ? false : true\n}\n\n// check breadcrumb position, return root, root_details, child\nexport function breadcrumbStage(breadcrumbItems: any) {\n let breadcrumbType: string = 'child'\n\n if (breadcrumbItems.length === 1) {\n breadcrumbType = 'root'\n } else if (breadcrumbItems.length === 2) {\n breadcrumbType = 'root_details'\n }\n\n return breadcrumbType;\n}\n\n// generate link url\nexport const generateUrl = (props: any, breadcrumbs: any) => {\n const newBase64 = convertToBase64(breadcrumbs)\n let url = ''\n if (props?.objectTypeId && props?.recordId) {\n url = `/${props?.recordId}/${props?.objectTypeId}/${props?.recordId}?b=${newBase64}`\n } else {\n url = `/association/${props?.objectTypeId}?b=${newBase64}`\n }\n return url\n}\n\n// get total parent\nexport function getTotalParentLength(data: any) {\n return data.filter((item: any) =>\n (item.pt || item.o_t_id) && !item.o_r_id\n ).length;\n}\n\n// only for generate path\nexport const generatePath = (breadcrumbs: any, breadcrumb: any, index: any) => {\n const bc = convertToBase64(breadcrumbs.slice(0, index + 1))\n if (index === 0) {\n return {\n name: breadcrumb?.n,\n path: `/${breadcrumb?.pt || breadcrumb?.o_t_id}?b=${bc}`,\n }\n } else if (index === 1) {\n if (breadcrumb?.isHome) { // its for home side bard card data\n return {\n name: breadcrumb?.n,\n path: `/association/${breadcrumb?.o_t_id}?b=${bc}`,\n }\n }\n return {\n name: breadcrumb?.n,\n path: `/${breadcrumb?.o_r_id}/${breadcrumb?.o_t_id}/${breadcrumb?.o_r_id}?b=${bc}`,\n }\n } else {\n if (breadcrumb?.o_t_id && breadcrumb?.o_r_id && !breadcrumb?.isHome) {\n return {\n name: breadcrumb?.n,\n path: `/${breadcrumb?.o_r_id}/${breadcrumb?.o_t_id}/${breadcrumb?.o_r_id}?b=${bc}`,\n }\n } else {\n return {\n name: breadcrumb?.n,\n path: `/association/${breadcrumb?.o_t_id}?b=${bc}`,\n }\n }\n }\n}","export const keyMap: Record<string, string> = {\n dp: 'defPermissions',\n n: 'name',\n sort: 'sort',\n o_t_id: 'objectTypeId',\n s: 'search',\n fPn: 'filterPropertyName',\n fO: 'filterOperator',\n fV: 'filterValue',\n c: 'cache',\n isPC: 'isPrimaryCompany',\n v: 'view',\n l: 'limit',\n pt: 'path',\n p: 'page',\n a: 'after',\n aPip: 'activePipeline',\n aT: 'activeTab',\n cT: 'create',\n dP: 'display',\n dL: 'display_label',\n pId: 'pipeline_id',\n }","import { getUrlPathName } from '../utils/url';\n\nexport function getParam(paramName: string): string | null {\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return null;\n\n const hash: string = (globalThis as any).location.hash || '';\n if (!hash.startsWith(\"#/\")) return null;\n\n const hashWithoutHash = hash.startsWith('#') ? hash.substring(1) : hash;\n\n const queryString = hashWithoutHash.split('?')[1];\n if (!queryString) return null;\n\n const params = new URLSearchParams(queryString);\n return params.get(paramName);\n}\n\nexport function getPath(): string | null {\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return null;\n\n const hash: string = (globalThis as any).location.hash || '';\n if (!hash.startsWith(\"#/\")) return null;\n\n return hash\n .slice(1) // remove \"#\"\n .split(\"?\")[0]; // remove query params\n}\n\nexport const generateParam = <T extends object>(\n payload?: any\n): any => {\n const urlPathName = getUrlPathName();\n\n return {\n ...(payload ?? {} as T),\n hubspotObjectTypeId:\n payload?.hubspotObjectTypeId ?? urlPathName,\n };\n};\n\nexport const getHubId = <T extends object>(\n payload?: any\n): any => {\n const urlPathName = getUrlPathName();\n\n return {\n ...(payload ?? {} as T),\n hubspotObjectTypeId:\n payload?.hubspotObjectTypeId ?? urlPathName,\n };\n};\n","import { getTotalParentLength, mapKeysDeep } from \"./url-utils\";\nimport { decodeToBase64 } from \"../utils/compress\"\nimport { keyMap } from \"./key-map\";\nimport { getParam } from \"../utils/param\";\n\nexport const getRouteMenu = (path: string) => {\n // Use globalThis for cross-environment compatibility and to fix 'window' not defined error\n const apiRoutes = (globalThis as any)?.apiRoutes || [];\n return apiRoutes.find((menu: any) => menu?.path === path);\n}\n\nexport const getRouteDetails = () => {\n // const router = useRouter();\n // const search: any = router.state.location.search;\n const search: any = getParam(\"b\");\n\n const breadcrumbs = decodeToBase64(search) || [];\n const lastItem = breadcrumbs[breadcrumbs.length - 1];\n const mapped = lastItem ? mapKeysDeep(lastItem, keyMap) : null;\n\n return { routeDetails: mapped };\n};\n\n// return current route details\nexport const getParamDetails = (props?: any, isDetailsPage: boolean = false) => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n // let breadcrumbs = decodeToBase64(search?.b) || []\n const search: any = getParam(\"b\");\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length > 0 && breadcrumbs?.[0]?.isHome) { // skip 1st breadcrumb for home page sidebar data\n breadcrumbs = breadcrumbs.slice(1)\n }\n\n let mediatorObjectTypeId = ''\n let mediatorObjectRecordId = ''\n let parentObjectTypeId = ''\n let parentObjectRecordId = ''\n // let bParams = ''\n let lastItem = breadcrumbs[breadcrumbs.length - 1]\n const lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n const lastItem3 = breadcrumbs[breadcrumbs.length - 3]\n\n if (isDetailsPage === true && lastItem && \"prm\" in lastItem) { // if details page then dont deent prm key\n delete lastItem.prm;\n }\n\n if (breadcrumbs.length > 1) {\n if (props?.type === 'ticket' || props?.type === 'association') {\n mediatorObjectTypeId = breadcrumbs[1]?.o_t_id || ''\n mediatorObjectRecordId = breadcrumbs[1]?.o_r_id || ''\n parentObjectTypeId = lastItem?.o_t_id || ''\n parentObjectRecordId = lastItem?.o_r_id || ''\n // bParams = lastItem?.p || ''\n } else {\n if (breadcrumbs.length > 2) {\n mediatorObjectTypeId = breadcrumbs[1]?.o_t_id || ''\n mediatorObjectRecordId = breadcrumbs[1]?.o_r_id || ''\n }\n\n if (!lastItem?.o_r_id && breadcrumbs.length > 2) {\n parentObjectTypeId = lastItem2?.o_t_id || ''\n parentObjectRecordId = lastItem2?.o_r_id || ''\n // bParams = lastItem?.p || ''\n }\n\n if (lastItem?.o_r_id && breadcrumbs.length > 2) {\n parentObjectTypeId = lastItem3?.o_t_id || ''\n parentObjectRecordId = lastItem3?.o_r_id || ''\n // bParams = lastItem?.p || ''\n }\n\n if (lastItem2?.o_t_id === '0-5' && !parentObjectTypeId && !parentObjectRecordId) {\n parentObjectTypeId = lastItem2?.o_t_id || ''\n parentObjectRecordId = lastItem2?.o_r_id || ''\n }\n\n }\n }\n let paramsObject: any = {}\n\n // if isPrimaryCompany\n // const arr = Array.from(new URLSearchParams(lastItem?.p))\n // const map = new Map(arr)\n // if (map.get('isPrimaryCompany') === 'true') {\n // paramsObject['isPrimaryCompany'] = true\n // } else {\n // // if not isPrimaryCompany\n // if (parentObjectTypeId && parentObjectRecordId) {\n // paramsObject['parentObjectTypeId'] = parentObjectTypeId\n // paramsObject['parentObjectRecordId'] = parentObjectRecordId\n // }\n // if (mediatorObjectTypeId && mediatorObjectRecordId) {\n // paramsObject['mediatorObjectTypeId'] = mediatorObjectTypeId\n // paramsObject['mediatorObjectRecordId'] = mediatorObjectRecordId\n // }\n // }\n\n if (breadcrumbs[0]?.prm?.isPC || breadcrumbs[1]?.prm?.isPC || lastItem?.prm?.isPC) { // 1st check fot normal object, 2dn & 3rd and check for db associated data\n paramsObject['isPrimaryCompany'] = true\n }\n\n\n if (parentObjectTypeId && parentObjectRecordId) {\n paramsObject['parentObjectTypeId'] = parentObjectTypeId\n paramsObject['parentObjectRecordId'] = parentObjectRecordId\n }\n if (mediatorObjectTypeId && mediatorObjectRecordId) {\n paramsObject['mediatorObjectTypeId'] = mediatorObjectTypeId\n paramsObject['mediatorObjectRecordId'] = mediatorObjectRecordId\n }\n\n const mappedLastItemParam = Object.fromEntries(\n Object.entries(lastItem?.prm || {}).map(([key, value]) => [\n keyMap[key] || key, // use mapped name if exists, else keep original\n value,\n ])\n );\n\n let queryString = null\n\n if (props?.type === 'association') { // if association association then don't need mappedLastItemParam \n queryString = new URLSearchParams({ ...paramsObject, ...{ cache: false } } as any).toString()\n // } else if (breadcrumbs.length < 2) { // if root path then don't need paramsObject \n // paramsObject = {}\n // queryString = new URLSearchParams({...mappedLastItemParam} as any).toString()\n } else {\n queryString = new URLSearchParams({ ...paramsObject, ...mappedLastItemParam } as any).toString()\n }\n\n\n\n\n // let params = bParams ? `${bParams}&${queryString}` : `?${queryString}`\n let params: any = queryString ? `?${queryString}` : ''\n\n // if (breadcrumbs.length < 2 && map.get('isPrimaryCompany') != 'true')\n\n // if (breadcrumbs.length < 2 && !breadcrumbs[0]?.prm?.isPC)\n // params = ''\n\n // const mParamsObject: any = {\n // ...paramsObject,\n // ...(params ? { params } : {}),\n // };\n\n const totalParentLength = getTotalParentLength(breadcrumbs)\n let parentAccessLabel = false\n\n // param for GF, F, SON to GF relation\n if (\n (breadcrumbs[0]?.prm?.isPC && totalParentLength > 2) || // company object\n (!breadcrumbs[0]?.prm?.isPC && totalParentLength > 3) || // normal object\n (breadcrumbs[0]?.prm?.isPC && totalParentLength > 1 && props?.type === 'ticket') || // company ticket\n (!breadcrumbs[0]?.prm?.isPC && totalParentLength > 2 && props?.type === 'ticket') // normal ticket\n ) {\n parentAccessLabel = true\n }\n\n return {\n breadcrumbs,\n // paramsObject: Object.keys(mParamsObject).length === 0 ? null : mParamsObject,\n paramsObject: paramsObject,\n params,\n parentAccessLabel\n }\n}\n","import { generateApiUrl } from '../utils/generateApiUrl';\nimport { API_ENDPOINTS } from './api-endpoints';\nimport { AuthHttpClient, HttpClient } from './http-clint';\nimport { config } from '../utils/config'\nimport { PreLoginPayload, LoginPayload, ForgetPasswordPayload, ChangePasswordPayload, VerifyEmailPayload, ResetPasswordVerifyTokenPayload, ResetPasswordPayload } from '../types';\nimport { getProfileData } from '../data/user';\nimport { routeParam } from '..';\nimport { getParamDetails } from '../breadcrumb/param';\nimport { getPortal } from './auth-utils';\nimport { useUpdateLink } from \"../breadcrumb/url\";\n\nexport const Client = {\n authentication: {\n preLogin: (data: PreLoginPayload) => AuthHttpClient.post(API_ENDPOINTS.PRE_LOGIN, data),\n login: (data: LoginPayload) => {\n const queryParams = config.hubId ? { hubId: config.hubId } : null;\n return AuthHttpClient.post(\n generateApiUrl({ route: API_ENDPOINTS.LOGIN, queryParams }),\n data,\n config?.devPortalId && {\n headers: {\n 'X-Dev-Portal-Id': config.devPortalId,\n },\n }\n )\n },\n verifyEmail: (data: VerifyEmailPayload) => AuthHttpClient.post(API_ENDPOINTS.VERIFY_EMAIL, data),\n resetPasswordVerifyToken: (data: ResetPasswordVerifyTokenPayload) => AuthHttpClient.post(API_ENDPOINTS.RESET_PASSWORD_VERIFY_TOKEN, data),\n resetPassword: (data: ResetPasswordPayload) => AuthHttpClient.post(API_ENDPOINTS.RESET_PASSWORD, data),\n forgetPassword: (data: ForgetPasswordPayload) => AuthHttpClient.post(API_ENDPOINTS.FORGET_PASSWORD, data),\n registerExistingUser: (data: any) => AuthHttpClient.post(API_ENDPOINTS.REGISTER_EXISTING_USER, data),\n verifyEmailResend: (data: any) => AuthHttpClient.post(API_ENDPOINTS.REGISTER_EXISTING_USER, data),\n resendEmail: (data: any) => AuthHttpClient.post(API_ENDPOINTS.RESEND_EMAIL, data),\n logout: () => HttpClient.post(API_ENDPOINTS.LOGOUT, null),\n },\n sso: {\n getSsoDetails: () => AuthHttpClient.get(API_ENDPOINTS.SSO_DETAILS),\n generateSsoUrl: (payload: any) => AuthHttpClient.get(generateApiUrl({ route: API_ENDPOINTS.SSO_URL, queryParams: payload?.queryParams })),\n ssoCallback: (payload: any) => AuthHttpClient.get(generateApiUrl({ route: API_ENDPOINTS.SSO_CALLBACK, queryParams: payload?.queryParams })),\n },\n user: {\n me: () => HttpClient.get(generateApiUrl({ route: API_ENDPOINTS.ME })),\n profile: (payload: any) => HttpClient.get(generateApiUrl({ route: API_ENDPOINTS.PROFILE, queryParams: payload })),\n changePassword: (data: ChangePasswordPayload) => HttpClient.post(API_ENDPOINTS.CHANGE_PASSWORD, data),\n },\n pipeline: {\n list: (payload: any = null, param: any = null) => {\n // const params = generateParam(payload) || null\n // const queryParams = payload?.queryParams || null\n // console.log(\"getProfileData\", getProfileData())\n const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId }\n\n const { getParamDetails: getParamDetails2 } = routeParam\n const { paramsObject } = getParamDetails2({ type: payload?.componentName });\n\n const userData = getProfileData()\n\n const apiParams: any = {}\n\n if (paramsObject?.parentObjectTypeId) {\n apiParams.parentObjectTypeId = paramsObject?.parentObjectTypeId;\n } else if (payload?.isHome && userData?.data?.info?.objectTypeId && !param?.isPrimaryCompany) {\n apiParams.parentObjectTypeId = userData?.data?.info?.objectTypeId;\n } else if (payload?.isHome && userData?.data?.info?.objectTypeId && param?.isPrimaryCompany) {\n apiParams.parentObjectTypeId = \"0-2\";\n }\n // setParentObjectTypeId(apiParams?.parentObjectTypeId || \"\")\n\n apiParams.isPrimaryCompany = param?.isPrimaryCompany;\n apiParams.cache = payload?.sync ? false : true;\n\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.PIPELINES, params, queryParams: apiParams })\n return HttpClient.get(apiUrl)\n },\n },\n stage: {\n list: (props: any = null) => {\n const portalId = config.devPortalId;\n const params = {\n hubId: config.hubId,\n portalId: portalId,\n objectTypeId: props?.params?.objectTypeId,\n pipelineId: props?.params?.pipelineId,\n }\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.STAGES, params })\n return HttpClient.get(apiUrl)\n },\n },\n object: {\n list: async (payload: any = null, param: any = null) => {\n // const params = generateParam(payload) || null\n // const queryParams = payload?.queryParams || null\n\n const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId }\n\n // const { useUpdateLink: useUpdateLink2 } = url\n // const { updateLink, getLinkParams } = useUpdateLink2();\n const { updateLink, getLinkParams } = useUpdateLink();\n\n const { getParamDetails: getParamDetails2 } = routeParam\n const { paramsObject, parentAccessLabel } = getParamDetails2({ type: payload?.componentName });\n\n const userData = getProfileData()\n\n // console.log(\"payload\", payload)\n\n // const { pipeline, mPipelines } = payload?.variables;\n const pipeline = payload?.variables?.pipeline;\n const mPipelines = payload?.variables?.mPipelines;\n\n const mSelectedPipeline = pipeline !== undefined ? pipeline : payload?.selectedPipeline;\n\n // console.log(\"mSelectedPipeline\", mSelectedPipeline)\n\n\n if (mSelectedPipeline) {\n param.filterValue = mSelectedPipeline\n } else if (payload?.specPipeLine && payload?.pipeLineId) {\n param.filterValue = payload?.pipeLineId\n }\n else if (payload?.hubspotObjectTypeId != \"0-3\" || payload?.hubspotObjectTypeId != \"0-5\") {\n param.filterValue = ''\n }\n\n\n // const API_ENDPOINT = apis.tableAPI;\n\n const fParams = getLinkParams()\n\n param = { ...(payload?.isFristTimeLoadData && fParams && !payload?.isHome ? fParams : param), ...paramsObject }\n\n // console.log(\"payload?.isFristTimeLoadData\", payload?.isFristTimeLoadData)\n // console.log(\"paramsObject\", paramsObject)\n // console.log(\"fParams\", fParams)\n // console.log(\"param\", param)\n\n\n if (!payload?.isFristTimeLoadData || !fParams) {\n await updateLink({\n \"sort\": param?.sort,\n \"s\": param?.search,\n \"fPn\": param?.filterPropertyName,\n \"fO\": param?.filterOperator,\n \"fV\": param?.filterValue,\n \"c\": param?.cache,\n \"isPC\": param?.isPrimaryCompany,\n \"v\": param?.view,\n \"l\": param?.limit,\n \"p\": param?.page,\n \"a\": param?.after,\n })\n }\n\n if (mPipelines != undefined && mPipelines?.length === 0 && !payload?.specPipeLine) { // if pipelines empty then set filter value is empty (n-a)\n param.filterValue = \"\"\n await updateLink({\n \"fV\": param?.filterValue,\n })\n }\n\n if (mPipelines != undefined && mPipelines?.length === 1 && !payload?.specPipeLine && mSelectedPipeline != null) { // if pipelines length is 0 then forcefully set 0 index pipeline\n param.filterValue = mPipelines[0].pipelineId\n await updateLink({\n \"fV\": param?.filterValue,\n })\n }\n\n if (payload?.isHome) { // Only for home tickets\n let parentObjectTypeId = \"\"\n if (userData?.info?.objectTypeId && !param?.isPrimaryCompany) {\n parentObjectTypeId = userData?.info?.objectTypeId\n } else if (userData?.info?.objectTypeId && param?.isPrimaryCompany) {\n parentObjectTypeId = \"0-2\"\n }\n param.parentObjectTypeId = parentObjectTypeId\n // setParentObjectTypeId(parentObjectTypeId)\n }\n\n param.parentAccessLabel = parentAccessLabel\n\n // console.log(\"params\", params)\n // console.log(\"param\", param)\n\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS, params, queryParams: param })\n return HttpClient.get(apiUrl)\n },\n form: (payload: any = null) => {\n const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId }\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_CREATE, params, queryParams: payload?.params })\n return HttpClient.get(apiUrl)\n },\n objectFormOptions: (payload: any = null) => {\n const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId }\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_FORM_OPTIONS, params, queryParams: payload?.params })\n return HttpClient.get(apiUrl)\n },\n create: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId }\n const queryParams = props.params\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_CREATE, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n createExisting: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId }\n const queryParams = props.params\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_CREATE_EXISTING, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n removeExisting: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId }\n const queryParams = props.params\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_REMOVE_EXISTING, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n details: (props: any = null) => {\n const { paramsObject: urlParam, parentAccessLabel } = getParamDetails(\"\", true)\n\n const portalId = config.devPortalId;\n const params = {\n hubId: config.hubId,\n portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n\n const queryParams = {\n parentAccessLabel: parentAccessLabel,\n ...props?.queryParams,\n ...urlParam\n }\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_DETAILS, params, queryParams })\n return HttpClient.get(apiUrl)\n },\n update: (props: any = null) => {\n const portalId = getPortal()?.portalId;\n const params = {\n hubId: config.hubId,\n portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n\n const { paramsObject: queryParams } = getParamDetails();\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_DETAILS_UPDATE, params, queryParams })\n return HttpClient.put(apiUrl, props.payload)\n }\n },\n note: {\n list: (props: any = null) => {\n\n const portalId = getPortal()?.portalId;\n const params = {\n hubId: config.hubId,\n portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES, params, queryParams: props?.queryParams })\n return HttpClient.get(apiUrl)\n },\n create: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES_CREATE, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n update: (props: any = null) => {\n const portalId = getPortal()?.portalId;\n const params = {\n hubId: config.hubId,\n portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n note_id: props?.params?.note_id,\n }\n\n const { paramsObject: queryParams } = getParamDetails();\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES_DETAILS_UPDATE, params, queryParams })\n return HttpClient.put(apiUrl, props.payload)\n },\n image: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES_IMAGE_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n attachment: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES_ATTACHMENT_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n },\n email: {\n list: (props: any = null) => {\n\n const portalId = getPortal()?.portalId;\n const params = {\n hubId: config.hubId,\n portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS, params, queryParams: props?.queryParams })\n return HttpClient.get(apiUrl)\n },\n create: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS_CREATE, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n update: (props: any = null) => {\n const portalId = getPortal()?.portalId;\n const params = {\n hubId: config.hubId,\n portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n note_id: props?.params?.note_id,\n }\n\n const { paramsObject: queryParams } = getParamDetails();\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS_DETAILS_UPDATE, params, queryParams })\n return HttpClient.put(apiUrl, props.payload)\n },\n image: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS_IMAGE_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n attachment: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS_ATTACHMENT_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n },\n file: {\n list: (props: any = null) => {\n const portalId = getPortal()?.portalId;\n const params = {\n hubId: config.hubId,\n portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILES, params, queryParams: props?.queryParams })\n return HttpClient.get(apiUrl)\n },\n details: (props: any = null) => {\n const portalId = getPortal()?.portalId;\n const params = {\n hubId: config.hubId,\n portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n rowId: props?.params?.rowId,\n }\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILE, params, queryParams: props?.queryParams })\n return HttpClient.get(apiUrl)\n },\n addFolder: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILES_CREATE_FOLDER, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n addFile: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILES_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n }\n}","import { convertToBase64, decodeToBase64 } from \"../utils/compress\";\nimport { getParam, getPath } from \"../utils/param\";\nimport { keyMap } from \"./key-map\";\nimport { getRouteMenu } from \"./param\";\n\nexport const useUpdateLink = () => {\n const updateLink = async (props: any, displayName: string = \"prm\") => {\n const search: any = getParam(\"b\");\n const pathname: any = getPath()\n\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length < 1) {\n // const { pathname } = router.state.location;\n const routeMenu: any = getRouteMenu(pathname);\n breadcrumbs = [\n {\n n: routeMenu?.title,\n pt: routeMenu?.path,\n },\n ];\n }\n\n // Get the last breadcrumb\n const lastBreadcrumb = breadcrumbs[breadcrumbs.length - 1];\n\n let udatedBreadcrumb = null\n // If displayName is provided, apply nested update\n if (displayName) {\n const ex = await getDeep(lastBreadcrumb, displayName) || {}\n\n udatedBreadcrumb = await setDeep(lastBreadcrumb, displayName, {\n ...ex,\n ...props,\n });\n } else {\n udatedBreadcrumb = Object.assign(lastBreadcrumb, props);\n }\n breadcrumbs[breadcrumbs.length - 1] = udatedBreadcrumb\n const newBase64 = convertToBase64(breadcrumbs);\n updateBParam(newBase64);\n };\n\n // --- Helpers ---\n\n function setDeep(obj: any, path: string, value: any) {\n const keys = path.split(\".\");\n let curr = obj;\n for (let i = 0; i < keys.length - 1; i++) {\n if (!curr[keys[i]] || typeof curr[keys[i]] !== \"object\") {\n curr[keys[i]] = {};\n }\n curr = curr[keys[i]];\n }\n curr[keys[keys.length - 1]] = value;\n return curr\n }\n\n function getDeep(obj: any, path: string) {\n return path.split(\".\").reduce((acc, key) => acc?.[key], obj);\n }\n\n\n // const filterParams = (displayName : string = \"prm\") => {\n // const search: any = router.state.location.search\n // let breadcrumbs = decodeToBase64(search?.b) || []\n // if (breadcrumbs.length < 1) return null\n // const lastItem = breadcrumbs[breadcrumbs.length - 1]\n // const expandKeys = (obj: Record<string, any>) => {\n // return Object.fromEntries(\n // Object.entries(obj).map(([key, value]) => [\n // keyMap[key] || key, // map if exists, else keep original\n // value,\n // ]),\n // )\n // }\n // const output = displayName && lastItem[displayName] ? expandKeys(lastItem[displayName]) : lastItem\n // return output\n // }\n\n const getLinkParams = (displayName: string = \"prm\") => { // for API param\n // const search: any = router.state.location.search;\n // let breadcrumbs = decodeToBase64(search?.b) || [];\n const search: any = getParam(\"b\");\n\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length < 1) return null;\n\n const lastItem = breadcrumbs[breadcrumbs.length - 1];\n\n // Helper to deeply get a nested value\n const getDeep = (obj: any, path: string) => {\n return path.split(\".\").reduce((acc, key) => acc?.[key], obj);\n };\n\n // Map keys if needed\n const expandKeys = (obj: Record<string, any>) => {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n keyMap[key] || key, // map if exists, else keep original\n value,\n ])\n );\n };\n\n // Get nested value if displayName has dots\n const nestedValue = displayName ? getDeep(lastItem, displayName) : null;\n\n const output = nestedValue ? expandKeys(nestedValue) : null;\n\n return output;\n };\n\n const filterParams = (displayName: string = \"prm\") => { // for select old value\n // const search: any = router.state.location.search;\n // let breadcrumbs = decodeToBase64(search?.b) || [];\n const search: any = getParam(\"b\");\n\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length < 1) return null;\n\n const lastItem = breadcrumbs[breadcrumbs.length - 1];\n\n // Helper to deeply get a nested value\n const getDeep = (obj: any, path: string) => {\n return path.split(\".\").reduce((acc, key) => acc?.[key], obj);\n };\n\n // Map keys if needed\n const expandKeys = (obj: Record<string, any>) => {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n keyMap[key] || key, // map if exists, else keep original\n value,\n ])\n );\n };\n\n // Get nested value if displayName has dots\n const nestedValue = displayName ? getDeep(lastItem, displayName) : null;\n\n const output = nestedValue ? expandKeys(nestedValue) : expandKeys(lastItem);\n\n return output;\n };\n\n return { updateLink, getLinkParams, filterParams }\n}\n\nconst updateBParam = (newValue: string): void => {\n // const currentSearch = router.state.location.search || {}\n\n // router.navigate({\n // to: router.state.location.pathname, // stay on same path\n // search: {\n // ...currentSearch,\n // b: newValue, // add or replace `b`\n // },\n // replace: true, // don't push new history entry\n // })\n\n // If running in a non-browser environment, do nothing\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return;\n\n const hash: string = (globalThis as any).location.hash || '';\n // \"#/0-3-796859474?b=eJxNjkEL\"\n\n if (!hash.startsWith(\"#/\")) return;\n\n const withoutHash = hash.slice(2); // remove \"#/\"\n const [path, queryString] = withoutHash.split(\"?\");\n\n const params = new URLSearchParams(queryString || \"\");\n params.set(\"b\", newValue); // add or replace `b`\n\n const newHash = `#/${path}?${params.toString()}`;\n\n // ✅ same as router.navigate({ replace: true })\n if (typeof globalThis !== 'undefined' && (globalThis as any).history && (globalThis as any).history.replaceState) {\n (globalThis as any).history.replaceState(null, \"\", newHash);\n }\n}\n","import { MutationOptions } from \"../types\";\n\n/**\n * Shared mutation helper used across `api.*` factories.\n *\n * - **Concurrency:** overlapping `mutate()` calls keep loading true until all finish.\n * - **Errors:** `onError` runs for failures; the promise still rejects so callers can `try/catch`.\n */\nexport function createMutation<TPayload, TSuccess, TError = unknown>(\n mutationFn: (payload?: TPayload) => Promise<TSuccess>,\n options?: MutationOptions<TSuccess, TError>\n) {\n let inFlight = 0;\n let lastReportedLoading: boolean | null = null;\n\n const syncLoading = () => {\n const active = inFlight > 0;\n if (lastReportedLoading === active) return;\n lastReportedLoading = active;\n options?.onLoadingChange?.(active);\n };\n\n const mutate = async (payload?: TPayload) => {\n inFlight += 1;\n syncLoading();\n try {\n const response = await mutationFn(payload);\n await options?.onSuccess?.(response, payload);\n return response;\n } catch (error) {\n options?.onError?.(error as TError, payload);\n throw error;\n } finally {\n inFlight -= 1;\n syncLoading();\n }\n };\n\n return {\n mutate,\n isLoading: () => inFlight > 0,\n };\n}\n","import { Client } from \"../clint/index\";\nimport type { LoginPayload, MutationOptions, PreLoginPayload, ForgetPasswordPayload, VerifyEmailPayload, ResetPasswordVerifyTokenPayload, ResetPasswordPayload } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\nimport { setPortal, setSubscriptionType, setAccessToken, setRefreshToken, setLoggedInDetails } from \"../clint/auth-utils\";\nimport { getParam } from \"../utils/param\";\nimport { removeAllCookie } from \"../utils/cookie\";\nimport { clearAccessToken } from \"../clint/token-store\";\nimport { setConfig } from \"../utils/config\";\n\nexport function preLogin(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.preLogin(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n login: mutate,\n isLoading,\n };\n}\n\nexport function login(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<LoginPayload, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.login(payload);\n\n const tokenData: any = response?.data?.tokenData || {}\n const loggedInDetails: any = response?.data?.loggedInDetails || {}\n const currentPortal: any = response?.data?.loggedInDetails?.currentPortal || {}\n const currentPortalId: any = currentPortal?.portalId || null\n const SubscriptionType = loggedInDetails?.subscriptionType || \"BASIC\";\n\n const token = tokenData?.token;\n const refreshToken = tokenData?.refreshToken;\n const expiresIn = tokenData?.expiresIn;\n const rExpiresIn = tokenData?.refreshExpiresIn;\n\n setPortal(currentPortal);\n setSubscriptionType(SubscriptionType);\n await setAccessToken(token, expiresIn);\n\n await setRefreshToken(refreshToken, rExpiresIn);\n await setLoggedInDetails(response.data);\n\n setConfig.setDevPortalId(currentPortalId);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n login: mutate,\n isLoading,\n };\n}\n\nexport function verifyEmail(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<VerifyEmailPayload, any>(\n async (payload: any) => {\n const verifyEmailPayload: VerifyEmailPayload = payload || {};\n const token: any = getParam(\"token\")\n if (!verifyEmailPayload?.token) verifyEmailPayload.token = token;\n const response: any = await Client.authentication.verifyEmail(verifyEmailPayload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n verifyEmail: mutate,\n isLoading,\n };\n}\n\nexport function resetPasswordVerifyToken(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ResetPasswordVerifyTokenPayload, any>(\n async (payload: any) => {\n const resetPasswordVerifyTokenPayload: ResetPasswordVerifyTokenPayload = payload || {};\n const token: any = getParam(\"token\")\n if (!resetPasswordVerifyTokenPayload?.token) resetPasswordVerifyTokenPayload.token = token;\n const response: any = await Client.authentication.resetPasswordVerifyToken(resetPasswordVerifyTokenPayload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n resetPasswordVerifyToken: mutate,\n isLoading,\n };\n}\n\nexport function resetPassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ResetPasswordPayload, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.resetPassword(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n resetPassword: mutate,\n isLoading,\n };\n}\n\nexport function forgetPassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ForgetPasswordPayload, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.forgetPassword(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n forgetPassword: mutate,\n isLoading,\n };\n}\n\nexport function logout(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(\n async () => {\n const response: any = await Client.authentication.logout();\n\n clearAccessToken()\n removeAllCookie()\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n logout: mutate,\n isLoading,\n };\n}\n\nexport function registerExistingUser(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.registerExistingUser(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n registerExistingUser: mutate,\n isLoading,\n };\n}\n\nexport function verifyEmailResend(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.verifyEmailResend(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n verifyEmailResend: mutate,\n isLoading,\n };\n}\n\nexport function resendEmail(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.resendEmail(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n resendEmail: mutate,\n isLoading,\n };\n}","import { Client } from \"../clint/index\";\nimport type { MutationOptions, PreLoginPayload } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\n\nexport function getSsoDetails(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(\n async () => {\n const response: any = await Client.sso.getSsoDetails();\n return response;\n },\n options\n );\n\n return {\n mutate,\n getSsoDetails: mutate,\n isLoading,\n };\n}\n\nexport function generateSsoUrl(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(\n async (payload: any) => {\n const response: any = await Client.sso.generateSsoUrl(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n generateSsoUrl: mutate,\n isLoading,\n };\n}\n\nexport function ssoCallback(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(\n async (payload: any) => {\n const response: any = await Client.sso.ssoCallback(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n ssoCallback: mutate,\n isLoading,\n };\n}\n","import { Client } from \"../clint/index\";\nimport type { ChangePasswordPayload, MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\nimport { setProfileData } from \"../data/user\";\n\n\nexport function me(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(\n async () => {\n const response: any = await Client.user.me();\n return response;\n },\n options\n );\n\n return {\n mutate,\n me: mutate,\n isLoading,\n };\n}\n\nexport function profile(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(\n async (paylaod: any) => {\n const response: any = await Client.user.profile(paylaod);\n setProfileData(response)\n return response;\n },\n options\n );\n\n return {\n mutate,\n profile: mutate,\n isLoading,\n };\n}\n\n\nexport function changePassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ChangePasswordPayload, any>(\n async (payload: any) => {\n const response: any = await Client.user.changePassword(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n changePassword: mutate,\n isLoading,\n };\n}","// // store.ts\n\n// export type Listener<T> = (state: T) => void;\n\n// export interface Store<T> {\n// get: () => T;\n// set: (value: T | ((prev: T) => T)) => void;\n// subscribe: (listener: Listener<T>) => () => void;\n// reset: () => void;\n\n// // atom-like usage\n// use: () => [T, (value: T | ((prev: T) => T)) => void, (listener: Listener<T>) => () => void];\n// }\n\n// export function createStore<T>(initialState: T): Store<T> {\n// let state = initialState;\n// const listeners: Listener<T>[] = [];\n\n// const get = () => state;\n\n// const set = (value: T | ((prev: T) => T)) => {\n// state =\n// typeof value === \"function\"\n// ? (value as (prev: T) => T)(state)\n// : value;\n\n// listeners.forEach((listener) => listener(state));\n// };\n\n// const subscribe = (listener: Listener<T>) => {\n// listeners.push(listener);\n\n// return () => {\n// const index = listeners.indexOf(listener);\n// if (index > -1) {\n// listeners.splice(index, 1);\n// }\n// };\n// };\n\n// const reset = () => {\n// state = initialState;\n// listeners.forEach((listener) => listener(state));\n// };\n\n// const use = () => {\n// return [get(), set, subscribe];\n// };\n\n// return {\n// get,\n// set,\n// subscribe,\n// reset,\n// use,\n// };\n// }\n\n\n\n// store.ts\n\n// export type Listener<T> = (state: T) => void;\n\n// export interface Store<T> {\n// get: () => T;\n// set: (value: T | ((prev: T) => T)) => void;\n// subscribe: (listener: Listener<T>) => () => void;\n// reset: () => void;\n// }\n\n// export function createStore<T>(initialState: T): Store<T> {\n// let state = initialState;\n// const listeners: Listener<T>[] = [];\n\n// const get = () => state;\n\n// const set = (value: T | ((prev: T) => T)) => {\n// state =\n// typeof value === \"function\"\n// ? (value as (prev: T) => T)(state)\n// : value;\n\n// listeners.forEach((l) => l(state));\n// };\n\n// const subscribe = (listener: Listener<T>) => {\n// listeners.push(listener);\n\n// return () => {\n// const index = listeners.indexOf(listener);\n// if (index > -1) listeners.splice(index, 1);\n// };\n// };\n\n// const reset = () => {\n// state = initialState;\n// listeners.forEach((l) => l(state));\n// };\n\n// return {\n// get,\n// set,\n// subscribe,\n// reset,\n// };\n// }\n\n\ntype Listener<T> = (state: T, prevState: T) => void;\n\ntype PartialState<T> =\n | Partial<T>\n | ((state: T) => Partial<T>);\n\nexport function createStore<T>(\n initializer: (\n set: (partial: PartialState<T>) => void,\n get: () => T\n ) => T\n) {\n let state: T;\n const listeners = new Set<Listener<T>>();\n\n const get = () => state;\n\n const set = (partial: PartialState<T>) => {\n const prevState = state;\n\n const partialState =\n typeof partial === \"function\"\n ? partial(state)\n : partial;\n\n state = {\n ...state,\n ...partialState,\n };\n\n listeners.forEach((listener) =>\n listener(state, prevState)\n );\n };\n\n const subscribe = (listener: Listener<T>) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n\n state = initializer(set, get);\n\n return {\n getState: get,\n setState: set,\n subscribe,\n };\n}","import { getCookie } from \"./cookie\"\n\nexport const getAuthSubscriptionType = () => {\n return getCookie(\"subscriptionType\")\n}","import { createStore } from \"./\";\nimport { getAuthSubscriptionType } from \"../utils/getCookieData\";\nimport { useUpdateLink } from \"../breadcrumb/url\";\n\nconst pageLimit = 10;\n\nconst tableStore = createStore((set, get) => ({\n // ==============================\n // STATE\n // ==============================\n\n tableUniqueId: null as string | null,\n gridData: [],\n sort: \"-hs_createdate\",\n limit: 10,\n after: \"\",\n page: 1 as number | string,\n totalItems: 1,\n numOfPages: 1,\n currentPage: 1,\n search: \"\",\n filterPropertyName: \"hs_pipeline\",\n filterOperator: \"eq\",\n filterValue: \"\",\n isPrimaryCompany: null as boolean | null,\n view: null as string | null,\n selectedPipeline: \"\",\n tableParam: {},\n tableDefPermissions: {},\n\n // ==============================\n // BASIC SETTERS\n // ==============================\n\n setTableUniqueId: (v: string | null) => set({ tableUniqueId: v }),\n setSort: (v: string) => set({ sort: v }),\n setLimit: (v: number) => set({ limit: v }),\n setAfter: (v: string) => set({ after: v }),\n setPage: (v: number | string) => set({ page: v }),\n setTotalItems: (v: number) => set({ totalItems: v }),\n setNumOfPages: (v: number) => set({ numOfPages: v }),\n setCurrentPage: (v: number) => set({ currentPage: v }),\n setSearch: (v: string) => set({ search: v }),\n setFilterPropertyName: (v: string) => set({ filterPropertyName: v }),\n setFilterOperator: (v: string) => set({ filterOperator: v }),\n setFilterValue: (v: string) => set({ filterValue: v }),\n setIsPrimaryCompany: (v: boolean | null) =>\n set({ isPrimaryCompany: v }),\n\n // ==============================\n // VIEW\n // ==============================\n\n setView: (mView: string | null) => {\n set({\n page:\n getAuthSubscriptionType() === \"FREE\" ? \"\" : 1,\n view: mView,\n });\n },\n\n // ==============================\n // PIPELINE\n // ==============================\n\n changePipeline: (mView: string | null) => {\n set({\n page:\n getAuthSubscriptionType() === \"FREE\" ? \"\" : 1,\n selectedPipeline: mView || \"\",\n });\n },\n\n setSelectedPipeline: (\n // hubspotObjectTypeId: string,\n pipelines: any[],\n pipeLineId?: string\n ) => {\n let filterValue = \"\";\n\n if (pipeLineId) {\n const pipelineSingle = pipelines.find(\n (pipeline) =>\n pipeline.pipelineId === pipeLineId\n );\n\n filterValue =\n pipelineSingle?.pipelineId || \"\";\n }\n\n set({\n filterPropertyName: \"hs_pipeline\",\n filterOperator: \"eq\",\n filterValue,\n selectedPipeline: filterValue,\n });\n },\n\n // ==============================\n // RESET\n // ==============================\n\n resetTableParam: () => {\n set({\n sort: \"-hs_createdate\",\n limit: pageLimit,\n after: \"\",\n page:\n getAuthSubscriptionType() === \"FREE\"\n ? \"\"\n : 1,\n totalItems: 1,\n numOfPages: 1,\n currentPage: 1,\n search: \"\",\n filterPropertyName: \"hs_pipeline\",\n filterOperator: \"eq\",\n filterValue: \"\",\n isPrimaryCompany: null,\n selectedPipeline: \"\",\n });\n },\n\n // ==============================\n // PARAM BUILDER\n // ==============================\n\n getTableParam: (\n companyAsMediator?: boolean,\n currentPageOverride?: number\n ) => {\n const state: any = get();\n\n const baseParams: any = {\n sort: state.sort,\n search: state.search,\n filterPropertyName:\n state.filterPropertyName,\n filterOperator: state.filterOperator,\n filterValue: state.selectedPipeline,\n cache: true,\n isPrimaryCompany:\n companyAsMediator || false,\n view: state.view,\n };\n\n if (\n getAuthSubscriptionType() === \"FREE\"\n ) {\n return {\n ...baseParams,\n after: state.page,\n };\n }\n\n return {\n ...baseParams,\n limit: state.limit,\n page:\n currentPageOverride ||\n state.page,\n ...(state.after && {\n after: state.after,\n }),\n };\n },\n\n // ==============================\n // GRID DATA\n // ==============================\n\n setGridData: async (\n type: string,\n deals: any[]\n ) => {\n if (type === \"reset\") {\n set({ gridData: [] });\n return;\n }\n\n if (type === \"directly\") {\n set({ gridData: deals });\n return;\n }\n\n const finalData = await deals.map(\n (deal) => {\n const cards =\n deal?.data?.results?.rows?.map(\n (row: any) => ({\n id: row?.hs_object_id,\n ...row,\n hubspotObjectTypeId:\n type === \"deals\"\n ? \"0-3\"\n : \"0-5\",\n })\n ) || [];\n\n return {\n id: deal.id,\n name: deal.label,\n count: deal?.data?.total,\n ...deal,\n cards,\n };\n }\n );\n\n await set({ gridData: finalData });\n return finalData\n },\n\n // ==============================\n // DEFAULT PIPELINE\n // ==============================\n\n setDefaultPipeline(\n data: any,\n hubspotObjectTypeId: string,\n // companyAsMediator?: boolean\n ) {\n if (!data) {\n set({ selectedPipeline: \"\" });\n return \"\";\n }\n\n // const { useUpdateLink } = url;\n const { updateLink, filterParams } = useUpdateLink();\n\n const params = filterParams();\n const excludedIds = [\"0-1\", \"0-2\", \"0-3\", \"0-4\", \"0-5\"];\n\n const state: any = get();\n const view = state.view;\n const selectedPipeline = state.selectedPipeline;\n\n let defaultPipelineId = \"\";\n let mFilterValue: any = \"\";\n\n const defaultPipeline = data?.data?.[0];\n\n if (excludedIds.includes(hubspotObjectTypeId)) {\n defaultPipelineId = defaultPipeline?.pipelineId || \"\";\n }\n\n if (\n params &&\n params?.filterPropertyName === \"hs_pipeline\" &&\n params?.filterValue\n ) {\n mFilterValue = params.filterValue;\n } else {\n if (view === \"BOARD\" && !selectedPipeline) {\n mFilterValue = defaultPipelineId;\n\n updateLink({\n fV: defaultPipelineId,\n });\n } else if (!excludedIds.includes(hubspotObjectTypeId)) {\n mFilterValue = selectedPipeline || null;\n } else {\n mFilterValue =\n data.data.length === 1\n ? defaultPipelineId\n : selectedPipeline;\n }\n }\n\n set({ selectedPipeline: mFilterValue });\n return mFilterValue;\n },\n}));\n\n// ==============================\n// USAGE HELPER\n// ==============================\nexport function useTable() {\n const tableState: any = tableStore.getState()\n return {\n ...tableState, ...{ listeners: { subscribe: tableStore.subscribe } }\n }\n}","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\nimport { useTable } from \"../store/use-table\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const {\n getTableParam\n }: any = useTable();\n\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n\n const param = await getTableParam(payload?.companyAsMediator);\n\n const response: any = await Client.pipeline.list(payload, param);\n return response;\n },\n options\n );\n\n return {\n mutate,\n getPipelines: mutate,\n isLoading,\n };\n}\n","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.stage.list(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n getStages: mutate,\n isLoading,\n };\n}\n","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\nimport { useTable } from \"../store/use-table\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const {\n getTableParam\n }: any = useTable();\n\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const param = await getTableParam(payload?.companyAsMediator);\n\n const response: any = await Client.object.list(payload, param);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getObjects: mutate,\n isLoading,\n };\n}\n\nexport function form(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.form(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getObjectsForm: mutate,\n isLoading,\n };\n}\n\nexport function objectFormOptions(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.objectFormOptions(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n objectFormOptions: mutate,\n isLoading,\n };\n}\n\nexport function create(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.object.create(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n createObject: mutate,\n isLoading,\n };\n}\n\nexport function createExisting(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.object.createExisting(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n createExistingObject: mutate,\n isLoading,\n };\n}\n\n\nexport function removeExisting(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.object.removeExisting(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n removeExisting: mutate,\n isLoading,\n };\n}\n\nexport function details(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.details(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getObjectsDetails: mutate,\n isLoading,\n };\n}\n\nexport function update(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.update(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n updateObjectsDetails: mutate,\n isLoading,\n };\n}","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.note.list(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getNotes: mutate,\n isLoading,\n };\n}\n\nexport function create(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.note.create(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n createNote: mutate,\n isLoading,\n };\n}\n\nexport function update(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n\n // let params: any = makeParam()\n // let mParams: any = { cache: !!params?.cache, isPrimaryCompany: params?.isPrimaryCompany, limit: params?.limit || 5 }\n\n // if (getAuthSubscriptionType() === 'FREE') {\n // mParams.after = params?.after || \"\";\n // } else {\n // mParams.limit = params?.limit || \"\";\n // mParams.page = params?.page || \"\";\n // }\n\n\n const response: any = await Client.note.update(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n updateNote: mutate,\n isLoading,\n };\n}\n\n\n// const makeParam = () => {\n// let params: any = {};\n// const tab = filterParams(\"tabs.notes\")\n// const baseParams: any = {\n// objectId: objectId,\n// id: id,\n// portalId: portalId,\n// cache: (sync || apiSync) ? false : true,\n// isPrimaryCompany: tab?.isPrimaryCompany ? true : false,\n// };\n\n// if (getAuthSubscriptionType() === \"FREE\") {\n// params = {\n// ...baseParams,\n// ...({ after: isFristTimeLoadData && tab?.page ? tab?.page : page }),\n// };\n// } else {\n// params = {\n// ...baseParams,\n// ...({\n// limit: limit,\n// page: isFristTimeLoadData && tab?.page ? tab?.page : page,\n// }),\n// };\n// }\n// return params\n// }","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.email.list(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getEmails: mutate,\n isLoading,\n };\n}\n\nexport function create(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.email.create(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n createEmail: mutate,\n isLoading,\n };\n}\n\nexport function update(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.email.update(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n updateEmail: mutate,\n isLoading,\n };\n}\n\n\n// const makeParam = () => {\n// let params: any = {};\n// const tab = filterParams(\"tabs.notes\")\n// const baseParams: any = {\n// objectId: objectId,\n// id: id,\n// portalId: portalId,\n// cache: (sync || apiSync) ? false : true,\n// isPrimaryCompany: tab?.isPrimaryCompany ? true : false,\n// };\n\n// if (getAuthSubscriptionType() === \"FREE\") {\n// params = {\n// ...baseParams,\n// ...({ after: isFristTimeLoadData && tab?.page ? tab?.page : page }),\n// };\n// } else {\n// params = {\n// ...baseParams,\n// ...({\n// limit: limit,\n// page: isFristTimeLoadData && tab?.page ? tab?.page : page,\n// }),\n// };\n// }\n// return params\n// }","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function imageUpload(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n console.log(\"payload\", payload)\n const response: any = payload?.type === \"email\" ? await Client.email.image(payload) : await Client.note.image(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n imageUpload: mutate,\n isLoading,\n };\n}\n\nexport function attachmentUpload(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = payload?.type === \"email\" ? await Client.email.attachment(payload) : await Client.note.attachment(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n attachmentUpload: mutate,\n isLoading,\n };\n}","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.file.list(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getFiles: mutate,\n isLoading,\n };\n}\n\nexport function details(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.file.details(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getFile: mutate,\n isLoading,\n };\n}\n\nexport function addFolder(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.file.addFolder(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n addFolder: mutate,\n isLoading,\n };\n}\n\nexport function addFile(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.file.addFile(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n addFile: mutate,\n isLoading,\n };\n}","/**\n * WoodsPortal client SDK — public entry module.\n *\n * Configure HTTP once with {@link initializeHttpClient} in production, then use\n * {@link api}, {@link store}, {@link url}, {@link routeParam}, and {@link breadcrumbsDetails}.\n */\nimport { preLogin, login, verifyEmail, forgetPassword, logout, resetPasswordVerifyToken, resetPassword, registerExistingUser, verifyEmailResend, resendEmail } from \"./apis/authentication\";\nimport { getSsoDetails, generateSsoUrl, ssoCallback } from \"./apis/sso\";\nimport { changePassword, me, profile } from \"./apis/users\";\nimport { list as pipelines } from \"./apis/pipeline\";\nimport { list as stages } from \"./apis/stage\";\nimport { list as objects, form as objectsForm, create as createObject, createExisting as createExistingObject, removeExisting as removeExistingObject, details as objectsDetails, update as updateObjectsDetails, objectFormOptions } from \"./apis/object\";\nimport { list as notes, create as createNote, update as updateNote } from \"./apis/note\";\nimport { list as emails, create as createEmail, update as updateEmail } from \"./apis/email\";\nimport { imageUpload, attachmentUpload } from \"./apis/uploader\";\nimport { list as files, addFolder, addFile, details as file } from \"./apis/file\";\nimport { getRefreshToken } from \"./clint/auth-utils\";\nimport { getAuthRefreshToken } from \"./clint/http-clint\";\nimport { getAccessToken, isAuthenticateApp, isExpiresAccessToken } from \"./clint/token-store\";\nimport { isCookieExpired } from \"./utils/cookie\";\nimport { useUpdateLink } from \"./breadcrumb/url\";\nimport { getParamDetails, getRouteDetails } from \"./breadcrumb/param\";\nimport { getBreadcrumbs, getFormTitle, getTableTitle } from \"./breadcrumb/breadcrumbs\";\nimport { useMakeLink } from \"./breadcrumb/generate-url\";\nimport { useTable } from \"./store/use-table\";\nimport { storage } from \"./utils/localStoraget\";\n\n/** Axios setup, error helpers, and {@link HttpClientConfig}. */\nexport { initializeHttpClient, getFormErrors, getFieldErrors } from \"./clint/http-clint\";\nexport type { HttpClientConfig } from \"./clint/http-clint\";\n\nexport type {\n Config,\n MutationOptions,\n PreLoginPayload,\n LoginPayload,\n VerifyEmailPayload,\n ResetPasswordVerifyTokenPayload,\n ResetPasswordPayload,\n ForgetPasswordPayload,\n ChangePasswordPayload,\n} from \"./types\";\n\n/**\n * API facades (auth, SSO, users, CRM objects, files, uploads, token helpers).\n * Most methods return `{ mutate, isLoading }` from {@link createMutation}; see README.\n */\nexport const api = {\n preLogin,\n login,\n verifyEmail,\n resetPasswordVerifyToken,\n resetPassword,\n registerExistingUser,\n verifyEmailResend,\n resendEmail,\n getSsoDetails,\n generateSsoUrl,\n ssoCallback,\n forgetPassword,\n logout,\n me,\n profile,\n changePassword,\n pipelines,\n stages,\n objects,\n objectsForm,\n createObject,\n createExistingObject,\n removeExistingObject,\n objectsDetails,\n updateObjectsDetails,\n objectFormOptions,\n notes,\n createNote,\n updateNote,\n emails,\n createEmail,\n updateEmail,\n imageUpload,\n attachmentUpload,\n files,\n file,\n addFolder,\n addFile,\n getRefreshToken,\n getAuthRefreshToken,\n isCookieExpired,\n isExpiresAccessToken,\n isAuthenticateApp,\n getAccessToken,\n};\n\n/** Lightweight storage helpers and table UI state. */\nexport const store = {\n storage,\n useTable\n};\n\n/** Breadcrumb copy helpers for list/form chrome. */\nexport const breadcrumbsDetails = {\n getBreadcrumbs,\n getTableTitle,\n getFormTitle\n};\n\n/** URL builders that read query/path context (not React hooks despite the `use*` names). */\nexport const url = {\n useMakeLink,\n useUpdateLink\n};\n\n/** Route and query-param introspection for embedded HubSpot-style navigation. */\nexport const routeParam = {\n getRouteDetails,\n getParamDetails\n};\n","import { decodeToBase64 } from \"../utils/compress\"\nimport { getParam, getPath } from \"../utils/param\";\nimport { getRouteMenu } from \"./param\";\nimport { generatePath } from \"./url-utils\"\n\nexport const getBreadcrumbs = () => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n const search: any = getParam(\"b\");\n\n let breadcrumbs = decodeToBase64(search) || []\n\n if (!breadcrumbs && breadcrumbs.length < 1) return []\n\n const updated = breadcrumbs.map((breadcrumb: any, index: any) => {\n return generatePath(breadcrumbs, breadcrumb, index)\n })\n\n if (updated.length < 1) {\n const pathname: any = getPath()\n const routeMenu: any = getRouteMenu(pathname)\n return [\n {\n name: routeMenu?.title,\n path: routeMenu?.path,\n },\n ]\n }\n return updated\n}\n\n\nexport const getTableTitle = (\n componentName: string,\n title: string,\n ticketTableTitle: string,\n) => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n const search: any = getParam(\"b\");\n let breadcrumbs = decodeToBase64(search) || []\n\n\n\n if (breadcrumbs.length < 1) {\n // const router = useRouter()\n // const { pathname } = router.state.location\n const pathname: any = getPath()\n const routeMenu: any = getRouteMenu(pathname)\n\n breadcrumbs = [\n {\n n: routeMenu?.title,\n pt: routeMenu?.path,\n },\n ]\n }\n\n let associatedtableTitleSingular: any = ''\n let tableTitle: any = ''\n let singularTableTitle: any = ''\n\n if (breadcrumbs && breadcrumbs.length > 0) {\n const lastItem: any = breadcrumbs[breadcrumbs.length - 1]\n const last: any = lastItem ? generatePath(breadcrumbs, lastItem, breadcrumbs.length - 1) : null\n const previousItem: any = breadcrumbs[breadcrumbs.length - 2]\n const previous: any = previousItem ? generatePath(breadcrumbs, previousItem, breadcrumbs.length - 2) : null\n const singularLastName = last?.name\n\n associatedtableTitleSingular = singularLastName\n if (componentName != 'ticket') {\n tableTitle = previous?.name\n ? { last: last, previous: previous }\n : { last: last }\n singularTableTitle = previous?.name\n ? `${singularLastName} with ${previous?.name}`\n : singularLastName\n } else {\n const ticketTableTitleSingular = ticketTableTitle.endsWith('s')\n ? ticketTableTitle.slice(0, -1)\n : ticketTableTitle\n tableTitle = { last: { name: title } }\n\n singularTableTitle = previous?.name\n ? `${ticketTableTitleSingular} with ${singularLastName} `\n : ticketTableTitleSingular\n }\n }\n return { associatedtableTitleSingular, tableTitle, singularTableTitle }\n}\n\n\nexport const getFormTitle = (\n type: string,\n title: string,\n activeTab: string,\n) => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n const search: any = getParam(\"b\");\n let breadcrumbs = decodeToBase64(search) || []\n\n if (breadcrumbs.length < 1) {\n // const router = useRouter()\n // const { pathname } = router.state.location\n const pathname: any = getPath()\n const routeMenu: any = getRouteMenu(pathname)\n breadcrumbs = [\n {\n n: routeMenu?.title,\n pt: routeMenu?.path,\n },\n ]\n }\n\n let objectName: any = ''\n let puralObjectName: any = ''\n let dialogTitle: any = ''\n\n if (breadcrumbs && breadcrumbs?.length > 0) {\n const last: any = breadcrumbs[breadcrumbs?.length - 1]\n const lastName = last?.n\n const mTitle = title\n if (type === 'association' && breadcrumbs && breadcrumbs?.length > 0) {\n objectName = title\n puralObjectName = title\n dialogTitle = `${activeTab == 'addNew' ? `Create a new ${mTitle} for ${nameTrancate(lastName)}` : `Associate an Existing ${mTitle} with ${nameTrancate(lastName)}`}`\n } else {\n const singularLastName = typeof lastName === 'string' && lastName?.endsWith('s')\n ? lastName.slice(0, -1)\n : lastName\n objectName = singularLastName\n puralObjectName = lastName\n dialogTitle = `${activeTab == 'addNew' ? `Create a new ${mTitle?.includes('with') ? nameTrancate(mTitle?.replace('with', 'for')) : nameTrancate(mTitle)}` : `Associate an Existing ${nameTrancate(mTitle)}`}`\n }\n }\n return { objectName, puralObjectName, dialogTitle }\n}\n\nconst nameTrancate = (name: any) => {\n return name?.length > 30 ? `${name?.slice(0, 30) + '...'}` : name\n}","import { decodeToBase64 } from \"../utils/compress\"\nimport { breadcrumbStage, generateUrl, isMessingParent, isMessingParentLastItem } from \"./url-utils\"\nimport { getParam, getPath } from \"../utils/param\";\nimport { getRouteMenu } from \"./param\";\n\nexport const useMakeLink = () => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n const search: any = getParam(\"b\")\n\n // const makeLink = (props: any) => {\n // if (!search.b || \"isPC\" in props) { // check props?.isPC if dashbaord sidebar\n // return buildParentRoute(props, search, router) // pure helper\n // } else {\n // const breadcrumbItems = decodeToBase64(search?.b) || []\n // return buildChildRoute(props, search, breadcrumbItems) // pure helper\n // }\n // }\n\n const makeLink = (props: any) => {\n if (!search || \"isPC\" in props) { // check props?.isPC if dashbaord sidebar\n return buildParentRoute(props)\n } else {\n const breadcrumbItems = decodeToBase64(search) || []\n return buildChildRoute(props, breadcrumbItems)\n }\n }\n\n return { makeLink }\n}\n\n// if 0 index iths mean have no parent then add this\nconst buildParentRoute = (props: any) => {\n // const { pathname } = router.state.location\n // const routeMenu: any = getRouteMenu(pathname)\n const pathname: any = getPath()\n const routeMenu: any = getRouteMenu(pathname)\n\n const breadcrumbItems: any = [\n {\n n: routeMenu?.title,\n o_t_id: routeMenu?.path,\n isHome: props?.isHome || false,\n },\n ]\n // return buildChildRoute(props, search, breadcrumbItems)\n return buildChildRoute(props, breadcrumbItems)\n}\n\n// if hav parent then add this\nconst buildChildRoute = (props: any, breadcrumbItems: any) => {\n \n let breadcrumbs = [...breadcrumbItems]\n // let breadcrumbType: string = 'child'\n\n // if (breadcrumbItems.length === 1) {\n // breadcrumbType = 'root'\n // } else if (breadcrumbItems.length === 2) {\n // breadcrumbType = 'root_details'\n // }\n let breadcrumbType = breadcrumbStage(breadcrumbItems)\n\n if (props?.isHome && isMessingParentLastItem(breadcrumbItems)) { // its for home side bard card data\n const parent: any = {\n n: props?.title || \"\",\n o_t_id: props?.objectTypeId,\n \"pt\": `/association/${props?.objectTypeId}`,\n isHome: props?.isHome || false,\n \"prm\": {\n \"sort\": \"-hs_createdate\",\n \"s\": \"\",\n \"fPn\": \"hs_pipeline\",\n \"fO\": \"eq\",\n \"fV\": \"\",\n \"c\": true,\n \"isPC\": props?.isPC,\n \"v\": \"LIST\",\n \"l\": \"10\",\n \"p\": 1\n }\n }\n\n breadcrumbs.push(parent)\n\n const newCrumb: any = {\n n: props?.name,\n o_t_id: props?.objectTypeId,\n o_r_id: props?.recordId,\n }\n breadcrumbs.push(newCrumb)\n } else if (breadcrumbType === 'root') {\n const newCrumb: any = {\n n: props?.name,\n o_t_id: props?.objectTypeId,\n o_r_id: props?.recordId,\n }\n\n // ✅ Add params if available\n // if (props.params) {\n // newCrumb.p = props.params\n // }\n\n if (props?.isPC) {\n newCrumb.prm = {\n isPC: props?.isPC\n }\n }\n\n breadcrumbs.push(newCrumb)\n } else {\n const lastItem = breadcrumbs[breadcrumbs.length - 1]\n\n if ((props?.objectTypeId != '0-5' && breadcrumbs.length > 2) && // check for only association ticket object\n (!isMessingParent(breadcrumbItems) && lastItem?.o_t_id === props?.objectTypeId) && // check for all associated object and check isMessingParent for skip parent to child and child to parent association data \n (props?.isHome && !isMessingParentLastItem(breadcrumbItems))) { // check home side bar child last item is messing parent then skip\n const newCrumb: any = {\n n: props?.name,\n o_t_id: props?.objectTypeId,\n o_r_id: props?.recordId,\n }\n\n // ✅ Add params if available\n // if (props.params) {\n // newCrumb.p = props.params\n // }\n\n\n if (props?.isPC) {\n newCrumb.prm = {\n isPC: props?.isPC\n }\n }\n\n breadcrumbs.push(newCrumb)\n } else {\n const lastItem = breadcrumbs[breadcrumbs.length - 1]\n\n // if associated data have no parent\n const parent: any = {\n n: props?.associationLabel || props?.name,\n o_t_id: props?.objectTypeId,\n }\n\n if (props?.tableParam) {\n parent.prm = props?.tableParam\n }\n\n if (props?.defPermissions) {\n parent.dp = props?.defPermissions\n }\n\n if (lastItem?.o_t_id && lastItem?.o_r_id) { // check if last item have no parent\n breadcrumbs.push(parent) // association list data\n }\n // end\n\n if (props?.recordId) { // association single data\n const newCrumb: any = {\n n: props?.name,\n o_t_id: props?.objectTypeId,\n o_r_id: props?.recordId,\n }\n\n // ✅ Add params if available\n // if (props.params) {\n // newCrumb.p = props.params\n // }\n\n if (props?.isPC) {\n newCrumb.prm = {\n isPC: props?.isPC\n }\n }\n\n breadcrumbs.push(newCrumb)\n }\n }\n }\n return generateUrl(props, breadcrumbs)\n}\n\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/utils/constants.ts","../src/utils/cookie.ts","../src/clint/auth-utils.ts","../src/clint/token-store.ts","../src/utils/config.ts","../src/utils/localStoraget.ts","../src/utils/generateApiUrl.ts","../src/clint/api-endpoints.ts","../src/clint/http-clint.ts","../src/clint/config.ts","../src/data/user.ts","../src/utils/compress.ts","../src/breadcrumb/url-utils.ts","../src/breadcrumb/key-map.ts","../src/utils/param.ts","../src/breadcrumb/param.ts","../src/breadcrumb/url.ts","../src/clint/index.ts","../src/mutation/createMutation.ts","../src/apis/authentication.ts","../src/apis/sso.ts","../src/apis/users.ts","../src/store/index.ts","../src/utils/getCookieData.ts","../src/store/use-table.ts","../src/apis/pipeline.ts","../src/apis/stage.ts","../src/apis/object.ts","../src/apis/note.ts","../src/apis/email.ts","../src/apis/uploader.ts","../src/apis/file.ts","../src/index.ts","../src/breadcrumb/breadcrumbs.ts","../src/breadcrumb/generate-url.ts"],"names":["getRefreshToken","url","config","keyMap","getDeep","list","create","update","details","lastItem"],"mappings":"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","file":"index.js","sourcesContent":["// cookies\nexport const LOGIN_DETAILS = \"loginDetails\";\nexport const REFRESH_TOKEN = \"refreshToken\";\nexport const PORTAL = \"portal\";\nexport const SUBSCRIPTION_TYPE = \"ssubscriptionType\";\n\n// variables\nexport const HUBSPOT_DATA = \"hubSpotData\";\nexport const HUB_ID = \"hubId\";\nexport const DEV_PORTAL_ID = \"devPortalId\";\nexport const PORTAL_ID = \"portalId\";\n","import Cookies from 'js-cookie';\n\nexport const setCookie = (key: string, value: string, expire?: number | Date) => {\n return Cookies.set(key, value, {\n expires: expire,\n sameSite: 'none',\n secure: true,\n });\n}\n\nexport const getCookie: any = (key: any) => {\n return Cookies.get(key);\n}\n\nexport const removeCookie = (key: any) => {\n return Cookies.remove(key);\n}\n\nexport const removeAllCookie = () => {\n Object.keys(Cookies.get()).forEach((cookieName) => {\n Cookies.remove(cookieName);\n });\n}\n\n// export const isCookieExpired = (key: string): boolean => {\n// const value = Cookies.get(key);\n// return value === undefined; // true means expired or never set\n// };\n\n\nexport const isCookieExpired = (key: string): boolean => {\n const value: any = Cookies.get(key);\n try {\n const { expiresAt } = JSON.parse(value);\n return Date.now() > expiresAt ? true : false;\n } catch {\n return false; // if invalid format, treat as valid\n }\n};","/**\n * Authentication utility functions\n * These handle refresh token management\n */\n\nimport { LOGIN_DETAILS, REFRESH_TOKEN, PORTAL, SUBSCRIPTION_TYPE } from '../utils/constants';\nimport { setCookie, getCookie } from '../utils/cookie';\nimport { storAccessToken } from './token-store';\n\n// Set data\nexport const setLoggedInDetails = async (data: any) => {\n return new Promise((resolve: any) => {\n setCookie(LOGIN_DETAILS, JSON.stringify(data));\n resolve();\n });\n};\n\nexport function setRefreshToken(token: string, expiresAt: number) {\n return new Promise((resolve: any) => {\n setCookie(REFRESH_TOKEN, JSON.stringify(token), expiresAt);\n resolve();\n });\n}\n\nexport function setAccessToken(token: string, expiresIn?: number) {\n return new Promise((resolve: any) => {\n storAccessToken(token, expiresIn);\n resolve();\n });\n}\n\nexport const setPortal = async (data: any) => {\n return new Promise((resolve: any) => {\n setCookie(PORTAL, JSON.stringify(data));\n resolve();\n });\n};\n\nexport const setSubscriptionType = async (data: any) => {\n return new Promise((resolve: any) => {\n setCookie(SUBSCRIPTION_TYPE, JSON.stringify(data));\n resolve();\n });\n};\n\n// Get data\nexport function getProfile(): string | null {\n return JSON.parse(getCookie(LOGIN_DETAILS || null) || null);\n}\n\nexport function getRefreshToken(): string | null {\n return JSON.parse(getCookie(REFRESH_TOKEN || null) || null);\n}\n\nexport function getPortal(): any | null {\n return JSON.parse(getCookie(PORTAL || null) || null);\n}\n\nexport function getSubscriptionType(): string | null {\n return JSON.parse(getCookie(SUBSCRIPTION_TYPE || null) || null);\n}\n\n// Remove data\n// export const removeAllCookies = () => {\n// const cookies = document.cookie.split(\"; \");\n// cookies.forEach((cookie) => {\n// const name = cookie.split(\"=\")[0];\n// removeCookie(name);\n// });\n// };","/**\n * Token storage utilities\n * These functions handle access token management\n */\n\nimport { isCookieExpired } from '../utils/cookie.js';\nimport { REFRESH_TOKEN } from '../utils/constants';\n\nlet accessToken: string | null = null;\nlet tokenExpiresAt: number | null = null;\nlet refreshCallback: ((refreshToken: string) => Promise<{ token: string | null; success: boolean }>) | null = null;\n\nexport function getAccessToken(): string | null {\n return accessToken;\n}\n\nexport function storAccessToken(token: string, expiresIn?: number): void {\n accessToken = token;\n if (expiresIn) {\n tokenExpiresAt = Date.now() + expiresIn * 1000;\n } else {\n tokenExpiresAt = null;\n }\n}\n\nexport function clearAccessToken(): void {\n accessToken = null;\n tokenExpiresAt = null;\n}\n\nexport function isExpiresAccessToken(): boolean {\n if (!tokenExpiresAt) return true;\n return Date.now() >= tokenExpiresAt;\n}\n\n/**\n * Set the refresh callback function\n * This is called by the HTTP client during initialization\n */\nexport function setRefreshCallback(callback: (refreshToken: string) => Promise<{ token: string | null; success: boolean }>): void {\n refreshCallback = callback;\n}\n\n/**\n * Ensures the access token is valid, refreshing if necessary\n */\nexport async function ensureValidRefresh(): Promise<void> {\n if (isExpiresAccessToken() && refreshCallback) {\n const { getRefreshToken } = await import('./auth-utils.js');\n const refreshToken = getRefreshToken();\n if (refreshToken) {\n await refreshCallback(refreshToken);\n }\n }\n}\n\nexport function isAuthenticateApp() {\n if (isCookieExpired(REFRESH_TOKEN) || isExpiresAccessToken()) {\n return false;\n }\n return true;\n}","import { Config, HubspotStorage } from \"../types\";\nimport { HUBSPOT_DATA, HUB_ID, DEV_PORTAL_ID, PORTAL_ID } from \"./constants\";\nimport { storage } from \"./localStoraget\";\n\nexport const config = {\n get hubId() {\n const hubSpotData: any = storage.get<{ name: string }>(HUBSPOT_DATA);\n return hubSpotData?.[HUB_ID] || \"\";\n },\n get devPortalId() {\n const hubSpotData: any = storage.get<{ name: string }>(HUBSPOT_DATA);\n return hubSpotData?.[DEV_PORTAL_ID] || \"\";\n },\n get portalId() {\n const hubSpotData: any = storage.get<{ name: string }>(HUBSPOT_DATA);\n return hubSpotData?.[PORTAL_ID] || \"\";\n },\n} satisfies Config;\n\nexport const setConfig = {\n setDevPortalId(portalId: string) {\n const existing = storage.get<HubspotStorage>(HUBSPOT_DATA) || {};\n\n storage.set(HUBSPOT_DATA, {\n ...existing,\n [PORTAL_ID]: portalId,\n });\n },\n};","// export const setLocalStorage = (key: string, value: string) => {\n// return localStorage.setItem(key, JSON.stringify(value));\n// }\n\n// export const getLocalStorage: any = (key: any) => {\n// let data = null;\n// const storedUser = localStorage.getItem(key);\n// if (storedUser) {\n// data = JSON.parse(storedUser);\n// }\n// return data\n// }\n\n// export const removeLocalStorage = (key: any) => {\n// return Cookies.remove(key);\n// }\n\n// export const removeAllLocalStorage = () => {\n// Object.keys(Cookies.get()).forEach((cookieName) => {\n// Cookies.remove(cookieName);\n// });\n// }\n\nexport const storage = {\n set: (key: string, value: any) => {\n localStorage.setItem(key, JSON.stringify(value));\n },\n\n get: <T>(key: string): T | null => {\n const item = localStorage.getItem(key);\n return item ? JSON.parse(item) : null;\n },\n\n remove: (key: string) => {\n localStorage.removeItem(key);\n },\n};","import { config } from '../utils/config'\n\nexport const generateApiUrl = ({\n route,\n params = {},\n queryParams = '',\n}: {\n route: string;\n params?: Object;\n queryParams?: any;\n}) => {\n const defaultParams = {\n hubId: config.hubId,\n portalId: config.portalId,\n };\n\n params = { ...defaultParams, ...params };\n const url = replaceParams(route, params)\n\n let queryString = '';\n if (queryParams && typeof queryParams === 'object') {\n const cleanedParams = Object.entries(queryParams)\n .filter(([_, value]) => value !== null && value !== undefined)\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {});\n\n queryString = new URLSearchParams(cleanedParams).toString();\n }\n\n return queryString ? `${url}?${queryString}` : url;\n}\n\nfunction replaceParams(\n template: string,\n values: any\n) {\n return template.replace(/\\$\\{(\\w+)\\}/g, (_, key) =>\n key in values ? String(values[key]) : `\\${${key}}`\n );\n}","export const API_ENDPOINTS: any = {\n // Auth\n PRE_LOGIN: \"/api/auth/pre-login\",\n LOGIN: \"/api/auth/login\",\n AUTH_REFRESH: \"/api/auth/refresh\",\n FORGET_PASSWORD: \"/api/auth/forget-password\",\n RESET_PASSWORD_VERIFY_TOKEN: \"/api/auth/token/validate\",\n RESET_PASSWORD: \"/api/auth/reset-password\",\n VERIFY_EMAIL: \"/api/auth/verify-email\",\n REGISTER_EXISTING_USER: \"/api/auth/existing-user-register\",\n RESEND_EMAIL: \"/api/auth/resend-email\",\n LOGOUT: \"/api/auth/logout\",\n\n // SSO\n SSO_DETAILS: \"/api/auth/sso/active\",\n SSO_URL: \"/api/auth/sso/authorize\",\n SSO_CALLBACK: \"/api/auth/sso/callback\",\n\n // User\n ME: \"/api/auth/me\",\n PROFILE: \"/api/${hubId}/${portalId}/profiles\",\n CHANGE_PASSWORD: \"/api/auth/change-password\",\n\n // Pipeline\n PIPELINES: \"api/${hubId}/${portalId}/hubspot-object-pipelines/${hubspotObjectTypeId}\",\n\n // Stage\n STAGES: \"api/${hubId}/${portalId}/hubspot-object-pipelines/${objectTypeId}/${pipelineId}/stages\",\n\n // Object\n OBJECTS: \"api/${hubId}/${portalId}/hubspot-object-data/${hubspotObjectTypeId}\",\n OBJECTS_FORM: \"api/${hubId}/${portalId}/hubspot-object-forms/${hubspotObjectTypeId}/fields\",\n OBJECTS_FORM_OPTIONS: \"api/${hubId}/${portalId}/hubspot-object-forms/:fromRecordId/:fromObjectTypeId\",\n OBJECTS_CREATE: \"api/${hubId}/${portalId}/hubspot-object-forms/${hubspotObjectTypeId}/fields\",\n OBJECTS_CREATE_EXISTING: \"api/${hubId}/${portalId}/hubspot-object-forms/:fromObjectTypeId/:fromRecordId/associations/:toObjectTypeId\",\n OBJECTS_REMOVE_EXISTING: \"api/${hubId}/${portalId}/hubspot-object-forms/:fromObjectTypeId/:fromRecordId/disassociate/:toObjectTypeId\",\n OBJECTS_DETAILS: \"api/${hubId}/${portalId}/hubspot-object-data/${objectId}/${id}\",\n OBJECTS_DETAILS_UPDATE: \"api/${hubId}/${portalId}/hubspot-object-forms/${objectId}/properties/${id}\",\n\n // Note\n NOTES: \"api/${hubId}/${portalId}/hubspot-object-notes/${objectId}/${id}\",\n NOTES_CREATE: \"api/${hubId}/${portalId}/hubspot-object-notes/${objectId}/${id}\",\n NOTES_DETAILS_UPDATE: \"api/${hubId}/${portalId}/hubspot-object-notes/${objectId}/${id}/${note_id}\",\n NOTES_IMAGE_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-notes/images/${objectId}/${id}\",\n NOTES_ATTACHMENT_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-notes/attachments/${objectId}/${id}\",\n\n // Email\n EMAILS: \"api/${hubId}/${portalId}/hubspot-object-emails/${objectId}/${id}\",\n EMAILS_CREATE: \"api/${hubId}/${portalId}/hubspot-object-emails/${objectId}/${id}\",\n EMAILS_DETAILS_UPDATE: \"api/${hubId}/${portalId}/hubspot-object-emails/${objectId}/${id}/${note_id}\",\n EMAILS_IMAGE_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-emails/images/${objectId}/${id}\",\n EMAILS_ATTACHMENT_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-emails/attachments/${objectId}/${id}\",\n\n // File\n FILES: \"api/${hubId}/${portalId}/hubspot-object-files/${objectId}/${id}\",\n FILE: \"api/${hubId}/${portalId}/hubspot-object-files/${objectId}/${id}/${rowId}\",\n FILES_CREATE_FOLDER: \"api/${hubId}/${portalId}/hubspot-object-folders/${objectId}/${id}\",\n FILES_UPLOAD: \"api/${hubId}/${portalId}/hubspot-object-files/${objectId}/${id}\",\n FILES_DELETE: \"api/feature-data/files/${me.hubspotPortals.templateName}${path}/${postId}/${fileId}\",\n};","import axios from \"axios\";\n// import type { AxiosError, AxiosInstance, AxiosRequestConfig, InternalAxiosRequestConfig } from \"axios\";\nimport type { AxiosError, AxiosInstance, InternalAxiosRequestConfig } from \"axios\";\nimport { API_ENDPOINTS } from './api-endpoints';\nimport { getAccessToken, ensureValidRefresh, setRefreshCallback } from './token-store';\nimport { config as defaultConfig } from './config';\nimport { config as storConfig } from '../utils/config'\nimport { generateApiUrl } from \"../utils/generateApiUrl\";\nimport { setAccessToken, setRefreshToken } from \"./auth-utils\";\n\nexport interface HttpClientConfig {\n /**\n * Base URL for API requests\n */\n baseURL?: string;\n\n /**\n * Request timeout in milliseconds\n */\n timeout?: number;\n\n /**\n * Custom headers to include in all requests\n */\n headers?: Record<string, string>;\n\n /**\n * Function to check if current path should skip auth error handling\n * Returns true if auth errors should be handled (redirect to login)\n */\n skipCurrentPublicPath?: () => boolean;\n\n /**\n * Routes configuration object with route paths\n */\n routes?: {\n unauthorized?: string;\n login?: string;\n };\n\n /**\n * Hub ID for API requests\n */\n hubId?: string;\n\n /**\n * Dev Portal ID for API requests\n */\n devPortalId?: string;\n\n /**\n * Function to handle logout\n */\n onLogout?: () => void | Promise<void>;\n}\n\nlet axiosInstance: AxiosInstance | null = null;\nlet config: HttpClientConfig = {};\n\n/**\n * Initialize the HTTP client with configuration\n */\nexport function initializeHttpClient(clientConfig: HttpClientConfig): void {\n config = clientConfig;\n\n const baseURL = config.baseURL ?? defaultConfig.baseURL;\n const timeout = config.timeout ?? 50000;\n\n axiosInstance = axios.create({\n baseURL,\n timeout,\n headers: {\n 'Content-Type': 'application/json',\n ...config.headers,\n },\n });\n\n // Set up refresh callback to avoid circular dependency\n setRefreshCallback(getAuthRefreshToken);\n\n // Request interceptor: inject auth token if available\n axiosInstance.interceptors.request.use((config: InternalAxiosRequestConfig) => {\n const token = getAccessToken();\n if (token) {\n config.headers.set('Authorization', `Bearer ${token}`);\n }\n return config;\n });\n\n // Response interceptor: handle errors\n axiosInstance.interceptors.response.use(\n (response) => response,\n (error: AxiosError) => {\n if (error.response && error.response.status === 401) {\n const shouldHandleAuthError = config.skipCurrentPublicPath?.() ?? false;\n\n if (shouldHandleAuthError) {\n // const payload = error.response.data as any ?? {};\n // const data = {\n // errorCode: payload.errorCode,\n // errorMessage: payload.errorMessage,\n // detailedMessage: payload.detailedMessage,\n // correlationId: payload.correlationId,\n // ts: Date.now(),\n // };\n\n // if (typeof window !== 'undefined' && window.sessionStorage) {\n // sessionStorage.setItem('authError', JSON.stringify(data));\n // }\n\n // if (config.routes?.unauthorized && typeof window !== 'undefined') {\n // window.location.replace(`#${config.routes.unauthorized}`);\n // }\n }\n }\n return Promise.reject(error);\n },\n );\n}\n\n/**\n * Get the axios instance (creates default if not initialized)\n */\nfunction getAxiosInstance(): AxiosInstance {\n if (!axiosInstance) {\n // Create default instance if not initialized\n initializeHttpClient({\n baseURL: defaultConfig.baseURL,\n timeout: 50000,\n });\n }\n return axiosInstance!;\n}\n\nfunction formatBooleanSearchParam(key: string, value: boolean): string {\n return value ? `${key}:1` : `${key}:`;\n}\n\nexport class HttpClient {\n static async get<T>(url: string, params?: unknown): Promise<T> {\n await ensureValidRefresh();\n const response = await getAxiosInstance().get<T>(url, { params });\n return response.data;\n }\n\n static async post<T>(url: string, data: unknown, options?: any): Promise<T> {\n await ensureValidRefresh();\n const response = await getAxiosInstance().post<T>(url, data, options);\n return response.data;\n }\n\n static async put<T>(url: string, data: unknown): Promise<T> {\n await ensureValidRefresh();\n const response = await getAxiosInstance().put<T>(url, data);\n return response.data;\n }\n\n static async delete<T>(url: string): Promise<T> {\n await ensureValidRefresh();\n const response = await getAxiosInstance().delete<T>(url);\n return response.data;\n }\n\n static formatSearchParams(params: Partial<any>): string {\n return Object.entries(params)\n .filter(([, value]) => Boolean(value))\n .map(([k, v]) =>\n [\n 'type',\n 'categories',\n 'tags',\n 'author',\n 'manufacturer',\n 'shops',\n 'refund_reason',\n ].includes(k)\n ? `${k}.slug:${v}`\n : ['is_approved'].includes(k)\n ? formatBooleanSearchParam(k, v as boolean)\n : `${k}:${v}`,\n )\n .join(';');\n }\n}\n\nexport class AuthHttpClient {\n static async get<T>(url: string, params?: unknown): Promise<T> {\n const response = await getAxiosInstance().get<T>(url, { params });\n return response.data;\n }\n\n static async post<T>(url: string, data: unknown, options?: any): Promise<T> {\n const response = await getAxiosInstance().post<T>(url, data, options);\n return response.data;\n }\n\n static async put<T>(url: string, data: unknown, options?: any): Promise<T> {\n const response = await getAxiosInstance().put<T>(url, data, options);\n return response.data;\n }\n}\n\nexport function getFormErrors(error: unknown): string | null {\n if (axios.isAxiosError(error)) {\n return (error.response?.data as any)?.message ?? null;\n }\n return null;\n}\n\nexport function getFieldErrors(error: unknown): any {\n if (axios.isAxiosError(error)) {\n return (error.response?.data as any)?.errors ?? null;\n }\n return null;\n}\n\nexport async function getAuthRefreshToken(refreshToken: string | null): Promise<{\n token: string | null;\n success: boolean;\n}> {\n try {\n // const hubId = config.hubId ?? '';\n const headers: Record<string, string> = {};\n\n if (storConfig.devPortalId) {\n headers['X-Dev-Portal-Id'] = storConfig.devPortalId;\n }\n\n const api_url = generateApiUrl({ route: API_ENDPOINTS.AUTH_REFRESH, queryParams: { hubId: storConfig.hubId } })\n\n const response = await getAxiosInstance().post(\n api_url,\n { refreshToken },\n { headers }\n );\n\n const maybeData = response?.data?.data || response?.data;\n const tokenData = maybeData?.tokenData || maybeData || {} as any;\n const newRefreshToken = tokenData?.refreshToken as string;\n const token = tokenData?.token as string | undefined;\n const expiresIn = tokenData?.expiresIn as number | undefined;\n const rExpiresIn = tokenData?.refreshExpiresIn as number | undefined;\n const rExpiresAt = tokenData?.refreshExpiresAt as number | undefined; // epoch seconds\n\n if (typeof newRefreshToken === 'string') {\n let rExpires = 0;\n if (typeof rExpiresIn === 'number') {\n rExpires = Date.now() + rExpiresIn * 1000;\n } else if (typeof rExpiresAt === 'number') {\n rExpires = rExpiresAt * 1000;\n }\n setRefreshToken(newRefreshToken, rExpires);\n }\n\n if (typeof token === 'string') {\n setAccessToken(token, typeof expiresIn === 'number' ? expiresIn : undefined);\n return { token, success: true };\n }\n\n return { token: null, success: false };\n } catch {\n return { token: null, success: false };\n }\n}\n\n// Export the axios instance getter for advanced usage\nexport { getAxiosInstance };\n","export interface Config {\n /**\n * Base URL for API requests\n */\n baseURL: string;\n}\n\nexport const config: Config = {\n baseURL: 'https://api.dev.woodsportal.com',\n};\n\n","export let PROFILE: any = null\n\nexport const setProfileData = (data: any) => {\n PROFILE = data\n}\n\nexport const getProfileData = () => {\n return PROFILE\n}","import pako from 'pako'\nimport { Base64 } from 'js-base64'\n\nexport function convertToBase64(obj: unknown): string {\n try {\n if (!obj) return \"\"\n const json = JSON.stringify(obj)\n const compressed = pako.deflate(json) // returns Uint8Array\n const base64 = Base64.fromUint8Array(compressed, true) // URL-safe\n\n return base64\n } catch (error) {\n console.error('Failed to encode object:', error)\n return ''\n }\n}\n\nexport function decodeToBase64(encoded: string): any {\n try {\n if (!encoded) return null\n\n const uint8Array = Base64.toUint8Array(encoded)\n const decompressed = pako.inflate(uint8Array, { to: 'string' })\n\n return JSON.parse(decompressed)\n } catch (error) {\n console.error('Failed to decode object:', error)\n return null\n }\n}\n","import { convertToBase64 } from \"../utils/compress\"\n\n// map Keys\nexport function mapKeysDeep(obj: any, keyMap: Record<string, string>): any {\n if (Array.isArray(obj)) {\n return obj.map((item) => mapKeysDeep(item, keyMap));\n } else if (obj !== null && typeof obj === 'object') {\n return Object.entries(obj).reduce((acc, [key, value]) => {\n const mappedKey = keyMap[key] || key; // rename if matched\n acc[mappedKey] = mapKeysDeep(value, keyMap); // recurse into nested\n return acc;\n }, {} as Record<string, any>);\n }\n return obj;\n}\n\n// check parent is messing\nexport function isMessingParent(breadcrumbs: any) {\n let lastItem = breadcrumbs[breadcrumbs.length - 1]\n let lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n let lastItem3 = breadcrumbs[breadcrumbs.length - 3]\n\n return (lastItem?.o_r_id && (!lastItem2?.o_r_id && lastItem2?.o_t_id) && lastItem3?.o_r_id) ? true : false\n}\n\n// check parent last item if messing\nexport function isMessingParentLastItem(breadcrumbs: any) {\n let lastItem = breadcrumbs[breadcrumbs.length - 1]\n let lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n\n return (!lastItem?.o_t_id && (lastItem2?.o_r_id && lastItem2?.o_t_id)) ? false : true\n}\n\n// check breadcrumb position, return root, root_details, child\nexport function breadcrumbStage(breadcrumbItems: any) {\n let breadcrumbType: string = 'child'\n\n if (breadcrumbItems.length === 1) {\n breadcrumbType = 'root'\n } else if (breadcrumbItems.length === 2) {\n breadcrumbType = 'root_details'\n }\n\n return breadcrumbType;\n}\n\n// generate link url\nexport const generateUrl = (props: any, breadcrumbs: any) => {\n const newBase64 = convertToBase64(breadcrumbs)\n let url = ''\n if (props?.objectTypeId && props?.recordId) {\n url = `/${props?.recordId}/${props?.objectTypeId}/${props?.recordId}?b=${newBase64}`\n } else {\n url = `/association/${props?.objectTypeId}?b=${newBase64}`\n }\n return url\n}\n\n// get total parent\nexport function getTotalParentLength(data: any) {\n return data.filter((item: any) =>\n (item.pt || item.o_t_id) && !item.o_r_id\n ).length;\n}\n\n// only for generate path\nexport const generatePath = (breadcrumbs: any, breadcrumb: any, index: any) => {\n const bc = convertToBase64(breadcrumbs.slice(0, index + 1))\n if (index === 0) {\n return {\n name: breadcrumb?.n,\n path: `/${breadcrumb?.pt || breadcrumb?.o_t_id}?b=${bc}`,\n }\n } else if (index === 1) {\n if (breadcrumb?.isHome) { // its for home side bard card data\n return {\n name: breadcrumb?.n,\n path: `/association/${breadcrumb?.o_t_id}?b=${bc}`,\n }\n }\n return {\n name: breadcrumb?.n,\n path: `/${breadcrumb?.o_r_id}/${breadcrumb?.o_t_id}/${breadcrumb?.o_r_id}?b=${bc}`,\n }\n } else {\n if (breadcrumb?.o_t_id && breadcrumb?.o_r_id && !breadcrumb?.isHome) {\n return {\n name: breadcrumb?.n,\n path: `/${breadcrumb?.o_r_id}/${breadcrumb?.o_t_id}/${breadcrumb?.o_r_id}?b=${bc}`,\n }\n } else {\n return {\n name: breadcrumb?.n,\n path: `/association/${breadcrumb?.o_t_id}?b=${bc}`,\n }\n }\n }\n}","export const keyMap: Record<string, string> = {\n dp: 'defPermissions',\n n: 'name',\n sort: 'sort',\n o_t_id: 'objectTypeId',\n s: 'search',\n fPn: 'filterPropertyName',\n fO: 'filterOperator',\n fV: 'filterValue',\n c: 'cache',\n isPC: 'isPrimaryCompany',\n v: 'view',\n l: 'limit',\n pt: 'path',\n p: 'page',\n a: 'after',\n aPip: 'activePipeline',\n aT: 'activeTab',\n cT: 'create',\n dP: 'display',\n dL: 'display_label',\n pId: 'pipeline_id',\n }","import { getUrlPathName } from '../utils/url';\n\nexport function getParam(paramName: string): string | null {\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return null;\n\n const hash: string = (globalThis as any).location.hash || '';\n if (!hash.startsWith(\"#/\")) return null;\n\n const hashWithoutHash = hash.startsWith('#') ? hash.substring(1) : hash;\n\n const queryString = hashWithoutHash.split('?')[1];\n if (!queryString) return null;\n\n const params = new URLSearchParams(queryString);\n return params.get(paramName);\n}\n\nexport function getPath(): string | null {\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return null;\n\n const hash: string = (globalThis as any).location.hash || '';\n if (!hash.startsWith(\"#/\")) return null;\n\n return hash\n .slice(1) // remove \"#\"\n .split(\"?\")[0]; // remove query params\n}\n\nexport const generateParam = <T extends object>(\n payload?: any\n): any => {\n const urlPathName = getUrlPathName();\n\n return {\n ...(payload ?? {} as T),\n hubspotObjectTypeId:\n payload?.hubspotObjectTypeId ?? urlPathName,\n };\n};\n\nexport const getHubId = <T extends object>(\n payload?: any\n): any => {\n const urlPathName = getUrlPathName();\n\n return {\n ...(payload ?? {} as T),\n hubspotObjectTypeId:\n payload?.hubspotObjectTypeId ?? urlPathName,\n };\n};\n","import { getTotalParentLength, mapKeysDeep } from \"./url-utils\";\nimport { decodeToBase64 } from \"../utils/compress\"\nimport { keyMap } from \"./key-map\";\nimport { getParam } from \"../utils/param\";\n\nexport const getRouteMenu = (path: string) => {\n // Use globalThis for cross-environment compatibility and to fix 'window' not defined error\n const apiRoutes = (globalThis as any)?.apiRoutes || [];\n return apiRoutes.find((menu: any) => menu?.path === path);\n}\n\nexport const getRouteDetails = () => {\n // const router = useRouter();\n // const search: any = router.state.location.search;\n const search: any = getParam(\"b\");\n\n const breadcrumbs = decodeToBase64(search) || [];\n const lastItem = breadcrumbs[breadcrumbs.length - 1];\n const mapped = lastItem ? mapKeysDeep(lastItem, keyMap) : null;\n\n return { routeDetails: mapped };\n};\n\n// return current route details\nexport const getParamDetails = (props?: any, isDetailsPage: boolean = false) => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n // let breadcrumbs = decodeToBase64(search?.b) || []\n const search: any = getParam(\"b\");\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length > 0 && breadcrumbs?.[0]?.isHome) { // skip 1st breadcrumb for home page sidebar data\n breadcrumbs = breadcrumbs.slice(1)\n }\n\n let mediatorObjectTypeId = ''\n let mediatorObjectRecordId = ''\n let parentObjectTypeId = ''\n let parentObjectRecordId = ''\n // let bParams = ''\n let lastItem = breadcrumbs[breadcrumbs.length - 1]\n const lastItem2 = breadcrumbs[breadcrumbs.length - 2]\n const lastItem3 = breadcrumbs[breadcrumbs.length - 3]\n\n if (isDetailsPage === true && lastItem && \"prm\" in lastItem) { // if details page then dont deent prm key\n delete lastItem.prm;\n }\n\n if (breadcrumbs.length > 1) {\n if (props?.type === 'ticket' || props?.type === 'association') {\n mediatorObjectTypeId = breadcrumbs[1]?.o_t_id || ''\n mediatorObjectRecordId = breadcrumbs[1]?.o_r_id || ''\n parentObjectTypeId = lastItem?.o_t_id || ''\n parentObjectRecordId = lastItem?.o_r_id || ''\n // bParams = lastItem?.p || ''\n } else {\n if (breadcrumbs.length > 2) {\n mediatorObjectTypeId = breadcrumbs[1]?.o_t_id || ''\n mediatorObjectRecordId = breadcrumbs[1]?.o_r_id || ''\n }\n\n if (!lastItem?.o_r_id && breadcrumbs.length > 2) {\n parentObjectTypeId = lastItem2?.o_t_id || ''\n parentObjectRecordId = lastItem2?.o_r_id || ''\n // bParams = lastItem?.p || ''\n }\n\n if (lastItem?.o_r_id && breadcrumbs.length > 2) {\n parentObjectTypeId = lastItem3?.o_t_id || ''\n parentObjectRecordId = lastItem3?.o_r_id || ''\n // bParams = lastItem?.p || ''\n }\n\n if (lastItem2?.o_t_id === '0-5' && !parentObjectTypeId && !parentObjectRecordId) {\n parentObjectTypeId = lastItem2?.o_t_id || ''\n parentObjectRecordId = lastItem2?.o_r_id || ''\n }\n\n }\n }\n let paramsObject: any = {}\n\n // if isPrimaryCompany\n // const arr = Array.from(new URLSearchParams(lastItem?.p))\n // const map = new Map(arr)\n // if (map.get('isPrimaryCompany') === 'true') {\n // paramsObject['isPrimaryCompany'] = true\n // } else {\n // // if not isPrimaryCompany\n // if (parentObjectTypeId && parentObjectRecordId) {\n // paramsObject['parentObjectTypeId'] = parentObjectTypeId\n // paramsObject['parentObjectRecordId'] = parentObjectRecordId\n // }\n // if (mediatorObjectTypeId && mediatorObjectRecordId) {\n // paramsObject['mediatorObjectTypeId'] = mediatorObjectTypeId\n // paramsObject['mediatorObjectRecordId'] = mediatorObjectRecordId\n // }\n // }\n\n if (breadcrumbs[0]?.prm?.isPC || breadcrumbs[1]?.prm?.isPC || lastItem?.prm?.isPC) { // 1st check fot normal object, 2dn & 3rd and check for db associated data\n paramsObject['isPrimaryCompany'] = true\n }\n\n\n if (parentObjectTypeId && parentObjectRecordId) {\n paramsObject['parentObjectTypeId'] = parentObjectTypeId\n paramsObject['parentObjectRecordId'] = parentObjectRecordId\n }\n if (mediatorObjectTypeId && mediatorObjectRecordId) {\n paramsObject['mediatorObjectTypeId'] = mediatorObjectTypeId\n paramsObject['mediatorObjectRecordId'] = mediatorObjectRecordId\n }\n\n const mappedLastItemParam = Object.fromEntries(\n Object.entries(lastItem?.prm || {}).map(([key, value]) => [\n keyMap[key] || key, // use mapped name if exists, else keep original\n value,\n ])\n );\n\n let queryString = null\n\n if (props?.type === 'association') { // if association association then don't need mappedLastItemParam \n queryString = new URLSearchParams({ ...paramsObject, ...{ cache: false } } as any).toString()\n // } else if (breadcrumbs.length < 2) { // if root path then don't need paramsObject \n // paramsObject = {}\n // queryString = new URLSearchParams({...mappedLastItemParam} as any).toString()\n } else {\n queryString = new URLSearchParams({ ...paramsObject, ...mappedLastItemParam } as any).toString()\n }\n\n\n\n\n // let params = bParams ? `${bParams}&${queryString}` : `?${queryString}`\n let params: any = queryString ? `?${queryString}` : ''\n\n // if (breadcrumbs.length < 2 && map.get('isPrimaryCompany') != 'true')\n\n // if (breadcrumbs.length < 2 && !breadcrumbs[0]?.prm?.isPC)\n // params = ''\n\n // const mParamsObject: any = {\n // ...paramsObject,\n // ...(params ? { params } : {}),\n // };\n\n const totalParentLength = getTotalParentLength(breadcrumbs)\n let parentAccessLabel = false\n\n // param for GF, F, SON to GF relation\n if (\n (breadcrumbs[0]?.prm?.isPC && totalParentLength > 2) || // company object\n (!breadcrumbs[0]?.prm?.isPC && totalParentLength > 3) || // normal object\n (breadcrumbs[0]?.prm?.isPC && totalParentLength > 1 && props?.type === 'ticket') || // company ticket\n (!breadcrumbs[0]?.prm?.isPC && totalParentLength > 2 && props?.type === 'ticket') // normal ticket\n ) {\n parentAccessLabel = true\n }\n\n return {\n breadcrumbs,\n // paramsObject: Object.keys(mParamsObject).length === 0 ? null : mParamsObject,\n paramsObject: paramsObject,\n params,\n parentAccessLabel\n }\n}\n","import { convertToBase64, decodeToBase64 } from \"../utils/compress\";\nimport { getParam, getPath } from \"../utils/param\";\nimport { keyMap } from \"./key-map\";\nimport { getRouteMenu } from \"./param\";\n\nexport const useUpdateLink = () => {\n const updateLink = async (props: any, displayName: string = \"prm\") => {\n const search: any = getParam(\"b\");\n const pathname: any = getPath()\n\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length < 1) {\n // const { pathname } = router.state.location;\n const routeMenu: any = getRouteMenu(pathname);\n breadcrumbs = [\n {\n n: routeMenu?.title,\n pt: routeMenu?.path,\n },\n ];\n }\n\n // Get the last breadcrumb\n const lastBreadcrumb = breadcrumbs[breadcrumbs.length - 1];\n\n let udatedBreadcrumb = null\n // If displayName is provided, apply nested update\n if (displayName) {\n const ex = await getDeep(lastBreadcrumb, displayName) || {}\n\n udatedBreadcrumb = await setDeep(lastBreadcrumb, displayName, {\n ...ex,\n ...props,\n });\n } else {\n udatedBreadcrumb = Object.assign(lastBreadcrumb, props);\n }\n breadcrumbs[breadcrumbs.length - 1] = udatedBreadcrumb\n const newBase64 = convertToBase64(breadcrumbs);\n updateBParam(newBase64);\n };\n\n // --- Helpers ---\n\n function setDeep(obj: any, path: string, value: any) {\n const keys = path.split(\".\");\n let curr = obj;\n for (let i = 0; i < keys.length - 1; i++) {\n if (!curr[keys[i]] || typeof curr[keys[i]] !== \"object\") {\n curr[keys[i]] = {};\n }\n curr = curr[keys[i]];\n }\n curr[keys[keys.length - 1]] = value;\n return curr\n }\n\n function getDeep(obj: any, path: string) {\n return path.split(\".\").reduce((acc, key) => acc?.[key], obj);\n }\n\n\n // const filterParams = (displayName : string = \"prm\") => {\n // const search: any = router.state.location.search\n // let breadcrumbs = decodeToBase64(search?.b) || []\n // if (breadcrumbs.length < 1) return null\n // const lastItem = breadcrumbs[breadcrumbs.length - 1]\n // const expandKeys = (obj: Record<string, any>) => {\n // return Object.fromEntries(\n // Object.entries(obj).map(([key, value]) => [\n // keyMap[key] || key, // map if exists, else keep original\n // value,\n // ]),\n // )\n // }\n // const output = displayName && lastItem[displayName] ? expandKeys(lastItem[displayName]) : lastItem\n // return output\n // }\n\n const getLinkParams = (displayName: string = \"prm\") => { // for API param\n // const search: any = router.state.location.search;\n // let breadcrumbs = decodeToBase64(search?.b) || [];\n const search: any = getParam(\"b\");\n\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length < 1) return null;\n\n const lastItem = breadcrumbs[breadcrumbs.length - 1];\n\n // Helper to deeply get a nested value\n const getDeep = (obj: any, path: string) => {\n return path.split(\".\").reduce((acc, key) => acc?.[key], obj);\n };\n\n // Map keys if needed\n const expandKeys = (obj: Record<string, any>) => {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n keyMap[key] || key, // map if exists, else keep original\n value,\n ])\n );\n };\n\n // Get nested value if displayName has dots\n const nestedValue = displayName ? getDeep(lastItem, displayName) : null;\n\n const output = nestedValue ? expandKeys(nestedValue) : null;\n\n return output;\n };\n\n const filterParams = (displayName: string = \"prm\") => { // for select old value\n // const search: any = router.state.location.search;\n // let breadcrumbs = decodeToBase64(search?.b) || [];\n const search: any = getParam(\"b\");\n\n let breadcrumbs = decodeToBase64(search) || [];\n\n if (breadcrumbs.length < 1) return null;\n\n const lastItem = breadcrumbs[breadcrumbs.length - 1];\n\n // Helper to deeply get a nested value\n const getDeep = (obj: any, path: string) => {\n return path.split(\".\").reduce((acc, key) => acc?.[key], obj);\n };\n\n // Map keys if needed\n const expandKeys = (obj: Record<string, any>) => {\n return Object.fromEntries(\n Object.entries(obj).map(([key, value]) => [\n keyMap[key] || key, // map if exists, else keep original\n value,\n ])\n );\n };\n\n // Get nested value if displayName has dots\n const nestedValue = displayName ? getDeep(lastItem, displayName) : null;\n\n const output = nestedValue ? expandKeys(nestedValue) : expandKeys(lastItem);\n\n return output;\n };\n\n return { updateLink, getLinkParams, filterParams }\n}\n\nconst updateBParam = (newValue: string): void => {\n // const currentSearch = router.state.location.search || {}\n\n // router.navigate({\n // to: router.state.location.pathname, // stay on same path\n // search: {\n // ...currentSearch,\n // b: newValue, // add or replace `b`\n // },\n // replace: true, // don't push new history entry\n // })\n\n // If running in a non-browser environment, do nothing\n if (typeof globalThis === 'undefined' || !(globalThis as any).location) return;\n\n const hash: string = (globalThis as any).location.hash || '';\n // \"#/0-3-796859474?b=eJxNjkEL\"\n\n if (!hash.startsWith(\"#/\")) return;\n\n const withoutHash = hash.slice(2); // remove \"#/\"\n const [path, queryString] = withoutHash.split(\"?\");\n\n const params = new URLSearchParams(queryString || \"\");\n params.set(\"b\", newValue); // add or replace `b`\n\n const newHash = `#/${path}?${params.toString()}`;\n\n // ✅ same as router.navigate({ replace: true })\n if (typeof globalThis !== 'undefined' && (globalThis as any).history && (globalThis as any).history.replaceState) {\n (globalThis as any).history.replaceState(null, \"\", newHash);\n }\n}\n","import { generateApiUrl } from '../utils/generateApiUrl';\nimport { API_ENDPOINTS } from './api-endpoints';\nimport { AuthHttpClient, HttpClient } from './http-clint';\nimport { config } from '../utils/config'\nimport { PreLoginPayload, LoginPayload, ForgetPasswordPayload, ChangePasswordPayload, VerifyEmailPayload, ResetPasswordVerifyTokenPayload, ResetPasswordPayload } from '../types';\nimport { getProfileData } from '../data/user';\nimport { routeParam } from '..';\nimport { getParamDetails } from '../breadcrumb/param';\n// import { getPortal } from './auth-utils';\nimport { useUpdateLink } from \"../breadcrumb/url\";\n\nexport const Client = {\n authentication: {\n preLogin: (data: PreLoginPayload) => AuthHttpClient.post(API_ENDPOINTS.PRE_LOGIN, data),\n login: (data: LoginPayload) => {\n // const queryParams = config.hubId ? { hubId: config.hubId } : null;\n return AuthHttpClient.post(\n generateApiUrl({ route: API_ENDPOINTS.LOGIN, queryParams: null }),\n data,\n config?.devPortalId && {\n headers: {\n 'X-Dev-Portal-Id': config.devPortalId,\n },\n }\n )\n },\n verifyEmail: (data: VerifyEmailPayload) => AuthHttpClient.post(API_ENDPOINTS.VERIFY_EMAIL, data),\n resetPasswordVerifyToken: (data: ResetPasswordVerifyTokenPayload) => AuthHttpClient.post(API_ENDPOINTS.RESET_PASSWORD_VERIFY_TOKEN, data),\n resetPassword: (data: ResetPasswordPayload) => AuthHttpClient.post(API_ENDPOINTS.RESET_PASSWORD, data),\n forgetPassword: (data: ForgetPasswordPayload) => AuthHttpClient.post(API_ENDPOINTS.FORGET_PASSWORD, data),\n registerExistingUser: (data: any) => AuthHttpClient.post(API_ENDPOINTS.REGISTER_EXISTING_USER, data),\n verifyEmailResend: (data: any) => AuthHttpClient.post(API_ENDPOINTS.REGISTER_EXISTING_USER, data),\n resendEmail: (data: any) => AuthHttpClient.post(API_ENDPOINTS.RESEND_EMAIL, data),\n logout: () => HttpClient.post(API_ENDPOINTS.LOGOUT, null),\n },\n sso: {\n getSsoDetails: () => AuthHttpClient.get(API_ENDPOINTS.SSO_DETAILS),\n generateSsoUrl: (payload: any) => AuthHttpClient.get(generateApiUrl({ route: API_ENDPOINTS.SSO_URL, queryParams: payload?.queryParams })),\n ssoCallback: (payload: any) => AuthHttpClient.get(generateApiUrl({ route: API_ENDPOINTS.SSO_CALLBACK, queryParams: payload?.queryParams })),\n },\n user: {\n me: () => HttpClient.get(generateApiUrl({ route: API_ENDPOINTS.ME })),\n profile: (payload: any) => HttpClient.get(generateApiUrl({ route: API_ENDPOINTS.PROFILE, queryParams: payload })),\n changePassword: (data: ChangePasswordPayload) => HttpClient.post(API_ENDPOINTS.CHANGE_PASSWORD, data),\n },\n pipeline: {\n list: (payload: any = null, param: any = null) => {\n // const params = generateParam(payload) || null\n // const queryParams = payload?.queryParams || null\n // console.log(\"getProfileData\", getProfileData())\n const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId }\n\n const { getParamDetails: getParamDetails2 } = routeParam\n const { paramsObject } = getParamDetails2({ type: payload?.componentName });\n\n const userData = getProfileData()\n\n const apiParams: any = {}\n\n if (paramsObject?.parentObjectTypeId) {\n apiParams.parentObjectTypeId = paramsObject?.parentObjectTypeId;\n } else if (payload?.isHome && userData?.data?.info?.objectTypeId && !param?.isPrimaryCompany) {\n apiParams.parentObjectTypeId = userData?.data?.info?.objectTypeId;\n } else if (payload?.isHome && userData?.data?.info?.objectTypeId && param?.isPrimaryCompany) {\n apiParams.parentObjectTypeId = \"0-2\";\n }\n // setParentObjectTypeId(apiParams?.parentObjectTypeId || \"\")\n\n apiParams.isPrimaryCompany = param?.isPrimaryCompany;\n apiParams.cache = payload?.cache;\n\n console.log(\"payload\", payload)\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.PIPELINES, params, queryParams: apiParams })\n return HttpClient.get(apiUrl)\n },\n },\n stage: {\n list: (props: any = null) => {\n // const portalId = config.devPortalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectTypeId: props?.params?.objectTypeId,\n pipelineId: props?.params?.pipelineId,\n }\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.STAGES, params })\n return HttpClient.get(apiUrl)\n },\n },\n object: {\n list: async (payload: any = null, param: any = null) => {\n // const params = generateParam(payload) || null\n // const queryParams = payload?.queryParams || null\n\n param.cache = payload.cache\n\n const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId }\n\n // const { useUpdateLink: useUpdateLink2 } = url\n // const { updateLink, getLinkParams } = useUpdateLink2();\n const { updateLink, getLinkParams } = useUpdateLink();\n\n const { getParamDetails: getParamDetails2 } = routeParam\n const { paramsObject, parentAccessLabel } = getParamDetails2({ type: payload?.componentName });\n\n const userData = getProfileData()\n\n // console.log(\"payload\", payload)\n\n // const { pipeline, mPipelines } = payload?.variables;\n const pipeline = payload?.variables?.pipeline;\n const mPipelines = payload?.variables?.mPipelines;\n\n const mSelectedPipeline = pipeline !== undefined ? pipeline : payload?.selectedPipeline;\n\n // console.log(\"mSelectedPipeline\", mSelectedPipeline)\n\n\n if (mSelectedPipeline) {\n param.filterValue = mSelectedPipeline\n } else if (payload?.specPipeLine && payload?.pipeLineId) {\n param.filterValue = payload?.pipeLineId\n }\n else if (payload?.hubspotObjectTypeId != \"0-3\" || payload?.hubspotObjectTypeId != \"0-5\") {\n param.filterValue = ''\n }\n\n\n // const API_ENDPOINT = apis.tableAPI;\n\n const fParams = getLinkParams()\n\n param = { ...(payload?.isFristTimeLoadData && fParams && !payload?.isHome ? fParams : param), ...paramsObject }\n\n // console.log(\"payload?.isFristTimeLoadData\", payload?.isFristTimeLoadData)\n // console.log(\"paramsObject\", paramsObject)\n // console.log(\"fParams\", fParams)\n // console.log(\"param\", param)\n\n\n if (!payload?.isFristTimeLoadData || !fParams) {\n await updateLink({\n \"sort\": param?.sort,\n \"s\": param?.search,\n \"fPn\": param?.filterPropertyName,\n \"fO\": param?.filterOperator,\n \"fV\": param?.filterValue,\n \"c\": param?.cache,\n \"isPC\": param?.isPrimaryCompany,\n \"v\": param?.view,\n \"l\": param?.limit,\n \"p\": param?.page,\n \"a\": param?.after,\n })\n }\n\n if (mPipelines != undefined && mPipelines?.length === 0 && !payload?.specPipeLine) { // if pipelines empty then set filter value is empty (n-a)\n param.filterValue = \"\"\n await updateLink({\n \"fV\": param?.filterValue,\n })\n }\n\n if (mPipelines != undefined && mPipelines?.length === 1 && !payload?.specPipeLine && mSelectedPipeline != null) { // if pipelines length is 0 then forcefully set 0 index pipeline\n param.filterValue = mPipelines[0].pipelineId\n await updateLink({\n \"fV\": param?.filterValue,\n })\n }\n\n if (payload?.isHome) { // Only for home tickets\n let parentObjectTypeId = \"\"\n if (userData?.info?.objectTypeId && !param?.isPrimaryCompany) {\n parentObjectTypeId = userData?.info?.objectTypeId\n } else if (userData?.info?.objectTypeId && param?.isPrimaryCompany) {\n parentObjectTypeId = \"0-2\"\n }\n param.parentObjectTypeId = parentObjectTypeId\n // setParentObjectTypeId(parentObjectTypeId)\n }\n\n param.parentAccessLabel = parentAccessLabel\n\n // console.log(\"params\", params)\n // console.log(\"param\", param)\n\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS, params, queryParams: param })\n return HttpClient.get(apiUrl)\n },\n form: (payload: any = null) => {\n const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId }\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_CREATE, params, queryParams: payload?.params })\n return HttpClient.get(apiUrl)\n },\n objectFormOptions: (payload: any = null) => {\n const params = { hubspotObjectTypeId: payload?.hubspotObjectTypeId }\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_FORM_OPTIONS, params, queryParams: payload?.params })\n return HttpClient.get(apiUrl)\n },\n create: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId }\n const queryParams = props.params\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_CREATE, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n createExisting: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId }\n const queryParams = props.params\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_CREATE_EXISTING, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n removeExisting: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId }\n const queryParams = props.params\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_REMOVE_EXISTING, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n details: (props: any = null) => {\n const { paramsObject: urlParam, parentAccessLabel } = getParamDetails(\"\", true)\n\n // const portalId = config.devPortalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n\n const queryParams = {\n parentAccessLabel: parentAccessLabel,\n ...props?.queryParams,\n ...urlParam\n }\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_DETAILS, params, queryParams })\n return HttpClient.get(apiUrl)\n },\n update: (props: any = null) => {\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n\n const { paramsObject: queryParams } = getParamDetails();\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.OBJECTS_DETAILS_UPDATE, params, queryParams })\n return HttpClient.put(apiUrl, props.payload)\n }\n },\n note: {\n list: (props: any = null) => {\n\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES, params, queryParams: props?.queryParams })\n return HttpClient.get(apiUrl)\n },\n create: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES_CREATE, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n update: (props: any = null) => {\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n note_id: props?.params?.note_id,\n }\n\n const { paramsObject: queryParams } = getParamDetails();\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES_DETAILS_UPDATE, params, queryParams })\n return HttpClient.put(apiUrl, props.payload)\n },\n image: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES_IMAGE_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n attachment: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.NOTES_ATTACHMENT_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n },\n email: {\n list: (props: any = null) => {\n\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS, params, queryParams: props?.queryParams })\n return HttpClient.get(apiUrl)\n },\n create: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS_CREATE, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n update: (props: any = null) => {\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n note_id: props?.params?.note_id,\n }\n\n const { paramsObject: queryParams } = getParamDetails();\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS_DETAILS_UPDATE, params, queryParams })\n return HttpClient.put(apiUrl, props.payload)\n },\n image: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS_IMAGE_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n attachment: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.EMAILS_ATTACHMENT_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n },\n file: {\n list: (props: any = null) => {\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n }\n console.log(\"params_0\", params)\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILES, params, queryParams: props?.queryParams })\n return HttpClient.get(apiUrl)\n },\n details: (props: any = null) => {\n\n // const portalId = getPortal()?.portalId;\n const params = {\n // hubId: config.hubId,\n // portalId: portalId,\n objectId: props?.params?.objectId,\n id: props?.params?.id,\n rowId: props?.params?.rowId,\n }\n console.log(\"params_1\", params)\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILE, params, queryParams: props?.queryParams })\n return HttpClient.get(apiUrl)\n },\n addFolder: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILES_CREATE_FOLDER, params, queryParams })\n return HttpClient.post(apiUrl, payload)\n },\n addFile: (props: any = null) => {\n const params = { hubspotObjectTypeId: props?.hubspotObjectTypeId, ...props.params }\n const queryParams = props.queryParams\n const payload = props.payload\n const axiosConfig = props.config || {}\n\n const apiUrl = generateApiUrl({ route: API_ENDPOINTS.FILES_UPLOAD, params, queryParams })\n return HttpClient.post(apiUrl, payload, {\n headers: {\n \"Content-Type\": \"multipart/form-data\",\n },\n ...axiosConfig\n })\n },\n }\n}","import { MutationOptions } from \"../types\";\n\n/**\n * Shared mutation helper used across `api.*` factories.\n *\n * - **Concurrency:** overlapping `mutate()` calls keep loading true until all finish.\n * - **Errors:** `onError` runs for failures; the promise still rejects so callers can `try/catch`.\n */\nexport function createMutation<TPayload, TSuccess, TError = unknown>(\n mutationFn: (payload?: TPayload) => Promise<TSuccess>,\n options?: MutationOptions<TSuccess, TError>\n) {\n let inFlight = 0;\n let lastReportedLoading: boolean | null = null;\n\n const syncLoading = () => {\n const active = inFlight > 0;\n if (lastReportedLoading === active) return;\n lastReportedLoading = active;\n options?.onLoadingChange?.(active);\n };\n\n const mutate = async (payload?: TPayload) => {\n inFlight += 1;\n syncLoading();\n try {\n const response = await mutationFn(payload);\n await options?.onSuccess?.(response, payload);\n return response;\n } catch (error) {\n options?.onError?.(error as TError, payload);\n throw error;\n } finally {\n inFlight -= 1;\n syncLoading();\n }\n };\n\n return {\n mutate,\n isLoading: () => inFlight > 0,\n };\n}\n","import { Client } from \"../clint/index\";\nimport type { LoginPayload, MutationOptions, PreLoginPayload, ForgetPasswordPayload, VerifyEmailPayload, ResetPasswordVerifyTokenPayload, ResetPasswordPayload } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\nimport { setPortal, setSubscriptionType, setAccessToken, setRefreshToken, setLoggedInDetails } from \"../clint/auth-utils\";\nimport { getParam } from \"../utils/param\";\nimport { removeAllCookie } from \"../utils/cookie\";\nimport { clearAccessToken } from \"../clint/token-store\";\nimport { setConfig } from \"../utils/config\";\n\nexport function preLogin(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.preLogin(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n login: mutate,\n isLoading,\n };\n}\n\nexport function login(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<LoginPayload, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.login(payload);\n\n const tokenData: any = response?.data?.tokenData || {}\n const loggedInDetails: any = response?.data?.loggedInDetails || {}\n const currentPortal: any = response?.data?.loggedInDetails?.currentPortal || {}\n const currentPortalId: any = currentPortal?.portalId || null\n const SubscriptionType = loggedInDetails?.subscriptionType || \"BASIC\";\n\n const token = tokenData?.token;\n const refreshToken = tokenData?.refreshToken;\n const expiresIn = tokenData?.expiresIn;\n const rExpiresIn = tokenData?.refreshExpiresIn;\n\n setPortal(currentPortal);\n setSubscriptionType(SubscriptionType);\n await setAccessToken(token, expiresIn);\n\n await setRefreshToken(refreshToken, rExpiresIn);\n await setLoggedInDetails(response.data);\n\n setConfig.setDevPortalId(currentPortalId);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n login: mutate,\n isLoading,\n };\n}\n\nexport function verifyEmail(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<VerifyEmailPayload, any>(\n async (payload: any) => {\n const verifyEmailPayload: VerifyEmailPayload = payload || {};\n const token: any = getParam(\"token\")\n if (!verifyEmailPayload?.token) verifyEmailPayload.token = token;\n const response: any = await Client.authentication.verifyEmail(verifyEmailPayload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n verifyEmail: mutate,\n isLoading,\n };\n}\n\nexport function resetPasswordVerifyToken(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ResetPasswordVerifyTokenPayload, any>(\n async (payload: any) => {\n const resetPasswordVerifyTokenPayload: ResetPasswordVerifyTokenPayload = payload || {};\n const token: any = getParam(\"token\")\n if (!resetPasswordVerifyTokenPayload?.token) resetPasswordVerifyTokenPayload.token = token;\n const response: any = await Client.authentication.resetPasswordVerifyToken(resetPasswordVerifyTokenPayload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n resetPasswordVerifyToken: mutate,\n isLoading,\n };\n}\n\nexport function resetPassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ResetPasswordPayload, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.resetPassword(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n resetPassword: mutate,\n isLoading,\n };\n}\n\nexport function forgetPassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ForgetPasswordPayload, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.forgetPassword(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n forgetPassword: mutate,\n isLoading,\n };\n}\n\nexport function logout(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(\n async () => {\n const response: any = await Client.authentication.logout();\n\n clearAccessToken()\n removeAllCookie()\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n logout: mutate,\n isLoading,\n };\n}\n\nexport function registerExistingUser(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.registerExistingUser(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n registerExistingUser: mutate,\n isLoading,\n };\n}\n\nexport function verifyEmailResend(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.verifyEmailResend(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n verifyEmailResend: mutate,\n isLoading,\n };\n}\n\nexport function resendEmail(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.authentication.resendEmail(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n resendEmail: mutate,\n isLoading,\n };\n}","import { Client } from \"../clint/index\";\nimport type { MutationOptions, PreLoginPayload } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\n\nexport function getSsoDetails(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(\n async () => {\n const response: any = await Client.sso.getSsoDetails();\n return response;\n },\n options\n );\n\n return {\n mutate,\n getSsoDetails: mutate,\n isLoading,\n };\n}\n\nexport function generateSsoUrl(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(\n async (payload: any) => {\n const response: any = await Client.sso.generateSsoUrl(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n generateSsoUrl: mutate,\n isLoading,\n };\n}\n\nexport function ssoCallback(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<PreLoginPayload, any>(\n async (payload: any) => {\n const response: any = await Client.sso.ssoCallback(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n ssoCallback: mutate,\n isLoading,\n };\n}\n","import { Client } from \"../clint/index\";\nimport type { ChangePasswordPayload, MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\nimport { setProfileData } from \"../data/user\";\n\n\nexport function me(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(\n async () => {\n const response: any = await Client.user.me();\n return response;\n },\n options\n );\n\n return {\n mutate,\n me: mutate,\n isLoading,\n };\n}\n\nexport function profile(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation(\n async (paylaod: any) => {\n const response: any = await Client.user.profile(paylaod);\n setProfileData(response)\n return response;\n },\n options\n );\n\n return {\n mutate,\n profile: mutate,\n isLoading,\n };\n}\n\n\nexport function changePassword(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<ChangePasswordPayload, any>(\n async (payload: any) => {\n const response: any = await Client.user.changePassword(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n changePassword: mutate,\n isLoading,\n };\n}","// // store.ts\n\n// export type Listener<T> = (state: T) => void;\n\n// export interface Store<T> {\n// get: () => T;\n// set: (value: T | ((prev: T) => T)) => void;\n// subscribe: (listener: Listener<T>) => () => void;\n// reset: () => void;\n\n// // atom-like usage\n// use: () => [T, (value: T | ((prev: T) => T)) => void, (listener: Listener<T>) => () => void];\n// }\n\n// export function createStore<T>(initialState: T): Store<T> {\n// let state = initialState;\n// const listeners: Listener<T>[] = [];\n\n// const get = () => state;\n\n// const set = (value: T | ((prev: T) => T)) => {\n// state =\n// typeof value === \"function\"\n// ? (value as (prev: T) => T)(state)\n// : value;\n\n// listeners.forEach((listener) => listener(state));\n// };\n\n// const subscribe = (listener: Listener<T>) => {\n// listeners.push(listener);\n\n// return () => {\n// const index = listeners.indexOf(listener);\n// if (index > -1) {\n// listeners.splice(index, 1);\n// }\n// };\n// };\n\n// const reset = () => {\n// state = initialState;\n// listeners.forEach((listener) => listener(state));\n// };\n\n// const use = () => {\n// return [get(), set, subscribe];\n// };\n\n// return {\n// get,\n// set,\n// subscribe,\n// reset,\n// use,\n// };\n// }\n\n\n\n// store.ts\n\n// export type Listener<T> = (state: T) => void;\n\n// export interface Store<T> {\n// get: () => T;\n// set: (value: T | ((prev: T) => T)) => void;\n// subscribe: (listener: Listener<T>) => () => void;\n// reset: () => void;\n// }\n\n// export function createStore<T>(initialState: T): Store<T> {\n// let state = initialState;\n// const listeners: Listener<T>[] = [];\n\n// const get = () => state;\n\n// const set = (value: T | ((prev: T) => T)) => {\n// state =\n// typeof value === \"function\"\n// ? (value as (prev: T) => T)(state)\n// : value;\n\n// listeners.forEach((l) => l(state));\n// };\n\n// const subscribe = (listener: Listener<T>) => {\n// listeners.push(listener);\n\n// return () => {\n// const index = listeners.indexOf(listener);\n// if (index > -1) listeners.splice(index, 1);\n// };\n// };\n\n// const reset = () => {\n// state = initialState;\n// listeners.forEach((l) => l(state));\n// };\n\n// return {\n// get,\n// set,\n// subscribe,\n// reset,\n// };\n// }\n\n\ntype Listener<T> = (state: T, prevState: T) => void;\n\ntype PartialState<T> =\n | Partial<T>\n | ((state: T) => Partial<T>);\n\nexport function createStore<T>(\n initializer: (\n set: (partial: PartialState<T>) => void,\n get: () => T\n ) => T\n) {\n let state: T;\n const listeners = new Set<Listener<T>>();\n\n const get = () => state;\n\n const set = (partial: PartialState<T>) => {\n const prevState = state;\n\n const partialState =\n typeof partial === \"function\"\n ? partial(state)\n : partial;\n\n state = {\n ...state,\n ...partialState,\n };\n\n listeners.forEach((listener) =>\n listener(state, prevState)\n );\n };\n\n const subscribe = (listener: Listener<T>) => {\n listeners.add(listener);\n return () => listeners.delete(listener);\n };\n\n state = initializer(set, get);\n\n return {\n getState: get,\n setState: set,\n subscribe,\n };\n}","import { getCookie } from \"./cookie\"\n\nexport const getAuthSubscriptionType = () => {\n return getCookie(\"subscriptionType\")\n}","import { createStore } from \"./\";\nimport { getAuthSubscriptionType } from \"../utils/getCookieData\";\nimport { useUpdateLink } from \"../breadcrumb/url\";\n\nconst pageLimit = 10;\n\nconst tableStore = createStore((set, get) => ({\n // ==============================\n // STATE\n // ==============================\n\n tableUniqueId: null as string | null,\n gridData: [],\n sort: \"-hs_createdate\",\n limit: 10,\n after: \"\",\n page: 1 as number | string,\n totalItems: 1,\n numOfPages: 1,\n currentPage: 1,\n search: \"\",\n filterPropertyName: \"hs_pipeline\",\n filterOperator: \"eq\",\n filterValue: \"\",\n isPrimaryCompany: null as boolean | null,\n view: null as string | null,\n selectedPipeline: \"\",\n tableParam: {},\n tableDefPermissions: {},\n\n // ==============================\n // BASIC SETTERS\n // ==============================\n\n setTableUniqueId: (v: string | null) => set({ tableUniqueId: v }),\n setSort: (v: string) => set({ sort: v }),\n setLimit: (v: number) => set({ limit: v }),\n setAfter: (v: string) => set({ after: v }),\n setPage: (v: number | string) => set({ page: v }),\n setTotalItems: (v: number) => set({ totalItems: v }),\n setNumOfPages: (v: number) => set({ numOfPages: v }),\n setCurrentPage: (v: number) => set({ currentPage: v }),\n setSearch: (v: string) => set({ search: v }),\n setFilterPropertyName: (v: string) => set({ filterPropertyName: v }),\n setFilterOperator: (v: string) => set({ filterOperator: v }),\n setFilterValue: (v: string) => set({ filterValue: v }),\n setIsPrimaryCompany: (v: boolean | null) =>\n set({ isPrimaryCompany: v }),\n\n // ==============================\n // VIEW\n // ==============================\n\n setView: (mView: string | null) => {\n set({\n page:\n getAuthSubscriptionType() === \"FREE\" ? \"\" : 1,\n view: mView,\n });\n },\n\n // ==============================\n // PIPELINE\n // ==============================\n\n changePipeline: (mView: string | null) => {\n set({\n page:\n getAuthSubscriptionType() === \"FREE\" ? \"\" : 1,\n selectedPipeline: mView || \"\",\n });\n },\n\n setSelectedPipeline: (\n // hubspotObjectTypeId: string,\n pipelines: any[],\n pipeLineId?: string\n ) => {\n let filterValue = \"\";\n\n if (pipeLineId) {\n const pipelineSingle = pipelines.find(\n (pipeline) =>\n pipeline.pipelineId === pipeLineId\n );\n\n filterValue =\n pipelineSingle?.pipelineId || \"\";\n }\n\n set({\n filterPropertyName: \"hs_pipeline\",\n filterOperator: \"eq\",\n filterValue,\n selectedPipeline: filterValue,\n });\n },\n\n // ==============================\n // RESET\n // ==============================\n\n resetTableParam: () => {\n set({\n sort: \"-hs_createdate\",\n limit: pageLimit,\n after: \"\",\n page:\n getAuthSubscriptionType() === \"FREE\"\n ? \"\"\n : 1,\n totalItems: 1,\n numOfPages: 1,\n currentPage: 1,\n search: \"\",\n filterPropertyName: \"hs_pipeline\",\n filterOperator: \"eq\",\n filterValue: \"\",\n isPrimaryCompany: null,\n selectedPipeline: \"\",\n });\n },\n\n // ==============================\n // PARAM BUILDER\n // ==============================\n\n getTableParam: (\n companyAsMediator?: boolean,\n currentPageOverride?: number\n ) => {\n const state: any = get();\n\n const baseParams: any = {\n sort: state.sort,\n search: state.search,\n filterPropertyName:\n state.filterPropertyName,\n filterOperator: state.filterOperator,\n filterValue: state.selectedPipeline,\n cache: true,\n isPrimaryCompany:\n companyAsMediator || false,\n view: state.view,\n };\n\n if (\n getAuthSubscriptionType() === \"FREE\"\n ) {\n return {\n ...baseParams,\n after: state.page,\n };\n }\n\n return {\n ...baseParams,\n limit: state.limit,\n page:\n currentPageOverride ||\n state.page,\n ...(state.after && {\n after: state.after,\n }),\n };\n },\n\n // ==============================\n // GRID DATA\n // ==============================\n\n setGridData: async (\n type: string,\n deals: any[]\n ) => {\n if (type === \"reset\") {\n set({ gridData: [] });\n return;\n }\n\n if (type === \"directly\") {\n set({ gridData: deals });\n return;\n }\n\n const finalData = await deals.map(\n (deal) => {\n const cards =\n deal?.data?.results?.rows?.map(\n (row: any) => ({\n id: row?.hs_object_id,\n ...row,\n hubspotObjectTypeId:\n type === \"deals\"\n ? \"0-3\"\n : \"0-5\",\n })\n ) || [];\n\n return {\n id: deal.id,\n name: deal.label,\n count: deal?.data?.total,\n ...deal,\n cards,\n };\n }\n );\n\n await set({ gridData: finalData });\n return finalData\n },\n\n // ==============================\n // DEFAULT PIPELINE\n // ==============================\n\n setDefaultPipeline(\n data: any,\n hubspotObjectTypeId: string,\n // companyAsMediator?: boolean\n ) {\n if (!data) {\n set({ selectedPipeline: \"\" });\n return \"\";\n }\n\n // const { useUpdateLink } = url;\n const { updateLink, filterParams } = useUpdateLink();\n\n const params = filterParams();\n const excludedIds = [\"0-1\", \"0-2\", \"0-3\", \"0-4\", \"0-5\"];\n\n const state: any = get();\n const view = state.view;\n const selectedPipeline = state.selectedPipeline;\n\n let defaultPipelineId = \"\";\n let mFilterValue: any = \"\";\n\n const defaultPipeline = data?.data?.[0];\n\n if (excludedIds.includes(hubspotObjectTypeId)) {\n defaultPipelineId = defaultPipeline?.pipelineId || \"\";\n }\n\n if (\n params &&\n params?.filterPropertyName === \"hs_pipeline\" &&\n params?.filterValue\n ) {\n mFilterValue = params.filterValue;\n } else {\n if (view === \"BOARD\" && !selectedPipeline) {\n mFilterValue = defaultPipelineId;\n\n updateLink({\n fV: defaultPipelineId,\n });\n } else if (!excludedIds.includes(hubspotObjectTypeId)) {\n mFilterValue = selectedPipeline || null;\n } else {\n mFilterValue =\n data.data.length === 1\n ? defaultPipelineId\n : selectedPipeline;\n }\n }\n\n set({ selectedPipeline: mFilterValue });\n return mFilterValue;\n },\n}));\n\n// ==============================\n// USAGE HELPER\n// ==============================\nexport function useTable() {\n const tableState: any = tableStore.getState()\n return {\n ...tableState, ...{ listeners: { subscribe: tableStore.subscribe } }\n }\n}","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\nimport { useTable } from \"../store/use-table\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const {\n getTableParam\n }: any = useTable();\n\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n\n const param = await getTableParam(payload?.companyAsMediator);\n\n const response: any = await Client.pipeline.list(payload, param);\n return response;\n },\n options\n );\n\n return {\n mutate,\n getPipelines: mutate,\n isLoading,\n };\n}\n","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.stage.list(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n getStages: mutate,\n isLoading,\n };\n}\n","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\nimport { useTable } from \"../store/use-table\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const {\n getTableParam\n }: any = useTable();\n\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const param = await getTableParam(payload?.companyAsMediator);\n\n const response: any = await Client.object.list(payload, param);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getObjects: mutate,\n isLoading,\n };\n}\n\nexport function form(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.form(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getObjectsForm: mutate,\n isLoading,\n };\n}\n\nexport function objectFormOptions(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.objectFormOptions(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n objectFormOptions: mutate,\n isLoading,\n };\n}\n\nexport function create(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.object.create(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n createObject: mutate,\n isLoading,\n };\n}\n\nexport function createExisting(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.object.createExisting(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n createExistingObject: mutate,\n isLoading,\n };\n}\n\n\nexport function removeExisting(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.object.removeExisting(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n removeExisting: mutate,\n isLoading,\n };\n}\n\nexport function details(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.details(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getObjectsDetails: mutate,\n isLoading,\n };\n}\n\nexport function update(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.object.update(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n updateObjectsDetails: mutate,\n isLoading,\n };\n}","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.note.list(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getNotes: mutate,\n isLoading,\n };\n}\n\nexport function create(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.note.create(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n createNote: mutate,\n isLoading,\n };\n}\n\nexport function update(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n\n // let params: any = makeParam()\n // let mParams: any = { cache: !!params?.cache, isPrimaryCompany: params?.isPrimaryCompany, limit: params?.limit || 5 }\n\n // if (getAuthSubscriptionType() === 'FREE') {\n // mParams.after = params?.after || \"\";\n // } else {\n // mParams.limit = params?.limit || \"\";\n // mParams.page = params?.page || \"\";\n // }\n\n\n const response: any = await Client.note.update(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n updateNote: mutate,\n isLoading,\n };\n}\n\n\n// const makeParam = () => {\n// let params: any = {};\n// const tab = filterParams(\"tabs.notes\")\n// const baseParams: any = {\n// objectId: objectId,\n// id: id,\n// portalId: portalId,\n// cache: (sync || apiSync) ? false : true,\n// isPrimaryCompany: tab?.isPrimaryCompany ? true : false,\n// };\n\n// if (getAuthSubscriptionType() === \"FREE\") {\n// params = {\n// ...baseParams,\n// ...({ after: isFristTimeLoadData && tab?.page ? tab?.page : page }),\n// };\n// } else {\n// params = {\n// ...baseParams,\n// ...({\n// limit: limit,\n// page: isFristTimeLoadData && tab?.page ? tab?.page : page,\n// }),\n// };\n// }\n// return params\n// }","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.email.list(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getEmails: mutate,\n isLoading,\n };\n}\n\nexport function create(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.email.create(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n createEmail: mutate,\n isLoading,\n };\n}\n\nexport function update(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.email.update(payload);\n return response;\n },\n options\n );\n\n return {\n mutate,\n updateEmail: mutate,\n isLoading,\n };\n}\n\n\n// const makeParam = () => {\n// let params: any = {};\n// const tab = filterParams(\"tabs.notes\")\n// const baseParams: any = {\n// objectId: objectId,\n// id: id,\n// portalId: portalId,\n// cache: (sync || apiSync) ? false : true,\n// isPrimaryCompany: tab?.isPrimaryCompany ? true : false,\n// };\n\n// if (getAuthSubscriptionType() === \"FREE\") {\n// params = {\n// ...baseParams,\n// ...({ after: isFristTimeLoadData && tab?.page ? tab?.page : page }),\n// };\n// } else {\n// params = {\n// ...baseParams,\n// ...({\n// limit: limit,\n// page: isFristTimeLoadData && tab?.page ? tab?.page : page,\n// }),\n// };\n// }\n// return params\n// }","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function imageUpload(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = payload?.type === \"email\" ? await Client.email.image(payload) : await Client.note.image(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n imageUpload: mutate,\n isLoading,\n };\n}\n\nexport function attachmentUpload(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = payload?.type === \"email\" ? await Client.email.attachment(payload) : await Client.note.attachment(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n attachmentUpload: mutate,\n isLoading,\n };\n}","import { Client } from \"../clint/index\";\nimport type { MutationOptions } from '../types';\nimport { createMutation } from \"../mutation/createMutation\";\n\nexport function list(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.file.list(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getFiles: mutate,\n isLoading,\n };\n}\n\nexport function details(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (payload: any) => {\n const response: any = await Client.file.details(payload);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n getFile: mutate,\n isLoading,\n };\n}\n\nexport function addFolder(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.file.addFolder(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n addFolder: mutate,\n isLoading,\n };\n}\n\nexport function addFile(options?: MutationOptions<any, any>) {\n const { mutate, isLoading } = createMutation<any, any>(\n async (props: any) => {\n const response: any = await Client.file.addFile(props);\n\n return response;\n },\n options\n );\n\n return {\n mutate,\n addFile: mutate,\n isLoading,\n };\n}","/**\n * WoodsPortal client SDK — public entry module.\n *\n * Configure HTTP once with {@link initializeHttpClient} in production, then use\n * {@link api}, {@link store}, {@link url}, {@link routeParam}, and {@link breadcrumbsDetails}.\n */\nimport { preLogin, login, verifyEmail, forgetPassword, logout, resetPasswordVerifyToken, resetPassword, registerExistingUser, verifyEmailResend, resendEmail } from \"./apis/authentication\";\nimport { getSsoDetails, generateSsoUrl, ssoCallback } from \"./apis/sso\";\nimport { changePassword, me, profile } from \"./apis/users\";\nimport { list as pipelines } from \"./apis/pipeline\";\nimport { list as stages } from \"./apis/stage\";\nimport { list as objects, form as objectsForm, create as createObject, createExisting as createExistingObject, removeExisting as removeExistingObject, details as objectsDetails, update as updateObjectsDetails, objectFormOptions } from \"./apis/object\";\nimport { list as notes, create as createNote, update as updateNote } from \"./apis/note\";\nimport { list as emails, create as createEmail, update as updateEmail } from \"./apis/email\";\nimport { imageUpload, attachmentUpload } from \"./apis/uploader\";\nimport { list as files, addFolder, addFile, details as file } from \"./apis/file\";\nimport { getRefreshToken } from \"./clint/auth-utils\";\nimport { getAuthRefreshToken } from \"./clint/http-clint\";\nimport { getAccessToken, isAuthenticateApp, isExpiresAccessToken } from \"./clint/token-store\";\nimport { isCookieExpired } from \"./utils/cookie\";\nimport { useUpdateLink } from \"./breadcrumb/url\";\nimport { getParamDetails, getRouteDetails } from \"./breadcrumb/param\";\nimport { getBreadcrumbs, getFormTitle, getTableTitle } from \"./breadcrumb/breadcrumbs\";\nimport { useMakeLink } from \"./breadcrumb/generate-url\";\nimport { useTable } from \"./store/use-table\";\nimport { storage } from \"./utils/localStoraget\";\n\n/** Axios setup, error helpers, and {@link HttpClientConfig}. */\nexport { initializeHttpClient, getFormErrors, getFieldErrors } from \"./clint/http-clint\";\nexport type { HttpClientConfig } from \"./clint/http-clint\";\n\nexport type {\n Config,\n MutationOptions,\n PreLoginPayload,\n LoginPayload,\n VerifyEmailPayload,\n ResetPasswordVerifyTokenPayload,\n ResetPasswordPayload,\n ForgetPasswordPayload,\n ChangePasswordPayload,\n} from \"./types\";\n\n/**\n * API facades (auth, SSO, users, CRM objects, files, uploads, token helpers).\n * Most methods return `{ mutate, isLoading }` from {@link createMutation}; see README.\n */\nexport const api = {\n preLogin,\n login,\n verifyEmail,\n resetPasswordVerifyToken,\n resetPassword,\n registerExistingUser,\n verifyEmailResend,\n resendEmail,\n getSsoDetails,\n generateSsoUrl,\n ssoCallback,\n forgetPassword,\n logout,\n me,\n profile,\n changePassword,\n pipelines,\n stages,\n objects,\n objectsForm,\n createObject,\n createExistingObject,\n removeExistingObject,\n objectsDetails,\n updateObjectsDetails,\n objectFormOptions,\n notes,\n createNote,\n updateNote,\n emails,\n createEmail,\n updateEmail,\n imageUpload,\n attachmentUpload,\n files,\n file,\n addFolder,\n addFile,\n getRefreshToken,\n getAuthRefreshToken,\n isCookieExpired,\n isExpiresAccessToken,\n isAuthenticateApp,\n getAccessToken,\n};\n\n/** Lightweight storage helpers and table UI state. */\nexport const store = {\n storage,\n useTable\n};\n\n/** Breadcrumb copy helpers for list/form chrome. */\nexport const breadcrumbsDetails = {\n getBreadcrumbs,\n getTableTitle,\n getFormTitle\n};\n\n/** URL builders that read query/path context (not React hooks despite the `use*` names). */\nexport const url = {\n useMakeLink,\n useUpdateLink\n};\n\n/** Route and query-param introspection for embedded HubSpot-style navigation. */\nexport const routeParam = {\n getRouteDetails,\n getParamDetails\n};\n","import { decodeToBase64 } from \"../utils/compress\"\nimport { getParam, getPath } from \"../utils/param\";\nimport { getRouteMenu } from \"./param\";\nimport { generatePath } from \"./url-utils\"\n\nexport const getBreadcrumbs = () => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n const search: any = getParam(\"b\");\n\n let breadcrumbs = decodeToBase64(search) || []\n\n if (!breadcrumbs && breadcrumbs.length < 1) return []\n\n const updated = breadcrumbs.map((breadcrumb: any, index: any) => {\n return generatePath(breadcrumbs, breadcrumb, index)\n })\n\n if (updated.length < 1) {\n const pathname: any = getPath()\n const routeMenu: any = getRouteMenu(pathname)\n return [\n {\n name: routeMenu?.title,\n path: routeMenu?.path,\n },\n ]\n }\n return updated\n}\n\n\nexport const getTableTitle = (\n componentName: string,\n title: string,\n ticketTableTitle: string,\n) => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n const search: any = getParam(\"b\");\n let breadcrumbs = decodeToBase64(search) || []\n\n\n\n if (breadcrumbs.length < 1) {\n // const router = useRouter()\n // const { pathname } = router.state.location\n const pathname: any = getPath()\n const routeMenu: any = getRouteMenu(pathname)\n\n breadcrumbs = [\n {\n n: routeMenu?.title,\n pt: routeMenu?.path,\n },\n ]\n }\n\n let associatedtableTitleSingular: any = ''\n let tableTitle: any = ''\n let singularTableTitle: any = ''\n\n if (breadcrumbs && breadcrumbs.length > 0) {\n const lastItem: any = breadcrumbs[breadcrumbs.length - 1]\n const last: any = lastItem ? generatePath(breadcrumbs, lastItem, breadcrumbs.length - 1) : null\n const previousItem: any = breadcrumbs[breadcrumbs.length - 2]\n const previous: any = previousItem ? generatePath(breadcrumbs, previousItem, breadcrumbs.length - 2) : null\n const singularLastName = last?.name\n\n associatedtableTitleSingular = singularLastName\n if (componentName != 'ticket') {\n tableTitle = previous?.name\n ? { last: last, previous: previous }\n : { last: last }\n singularTableTitle = previous?.name\n ? `${singularLastName} with ${previous?.name}`\n : singularLastName\n } else {\n const ticketTableTitleSingular = ticketTableTitle.endsWith('s')\n ? ticketTableTitle.slice(0, -1)\n : ticketTableTitle\n tableTitle = { last: { name: title } }\n\n singularTableTitle = previous?.name\n ? `${ticketTableTitleSingular} with ${singularLastName} `\n : ticketTableTitleSingular\n }\n }\n return { associatedtableTitleSingular, tableTitle, singularTableTitle }\n}\n\n\nexport const getFormTitle = (\n type: string,\n title: string,\n activeTab: string,\n) => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n const search: any = getParam(\"b\");\n let breadcrumbs = decodeToBase64(search) || []\n\n if (breadcrumbs.length < 1) {\n // const router = useRouter()\n // const { pathname } = router.state.location\n const pathname: any = getPath()\n const routeMenu: any = getRouteMenu(pathname)\n breadcrumbs = [\n {\n n: routeMenu?.title,\n pt: routeMenu?.path,\n },\n ]\n }\n\n let objectName: any = ''\n let puralObjectName: any = ''\n let dialogTitle: any = ''\n\n if (breadcrumbs && breadcrumbs?.length > 0) {\n const last: any = breadcrumbs[breadcrumbs?.length - 1]\n const lastName = last?.n\n const mTitle = title\n if (type === 'association' && breadcrumbs && breadcrumbs?.length > 0) {\n objectName = title\n puralObjectName = title\n dialogTitle = `${activeTab == 'addNew' ? `Create a new ${mTitle} for ${nameTrancate(lastName)}` : `Associate an Existing ${mTitle} with ${nameTrancate(lastName)}`}`\n } else {\n const singularLastName = typeof lastName === 'string' && lastName?.endsWith('s')\n ? lastName.slice(0, -1)\n : lastName\n objectName = singularLastName\n puralObjectName = lastName\n dialogTitle = `${activeTab == 'addNew' ? `Create a new ${mTitle?.includes('with') ? nameTrancate(mTitle?.replace('with', 'for')) : nameTrancate(mTitle)}` : `Associate an Existing ${nameTrancate(mTitle)}`}`\n }\n }\n return { objectName, puralObjectName, dialogTitle }\n}\n\nconst nameTrancate = (name: any) => {\n return name?.length > 30 ? `${name?.slice(0, 30) + '...'}` : name\n}","import { decodeToBase64 } from \"../utils/compress\"\nimport { breadcrumbStage, generateUrl, isMessingParent, isMessingParentLastItem } from \"./url-utils\"\nimport { getParam, getPath } from \"../utils/param\";\nimport { getRouteMenu } from \"./param\";\n\nexport const useMakeLink = () => {\n // const router = useRouter()\n // const search: any = router.state.location.search\n const search: any = getParam(\"b\")\n\n // const makeLink = (props: any) => {\n // if (!search.b || \"isPC\" in props) { // check props?.isPC if dashbaord sidebar\n // return buildParentRoute(props, search, router) // pure helper\n // } else {\n // const breadcrumbItems = decodeToBase64(search?.b) || []\n // return buildChildRoute(props, search, breadcrumbItems) // pure helper\n // }\n // }\n\n const makeLink = (props: any) => {\n if (!search || \"isPC\" in props) { // check props?.isPC if dashbaord sidebar\n return buildParentRoute(props)\n } else {\n const breadcrumbItems = decodeToBase64(search) || []\n return buildChildRoute(props, breadcrumbItems)\n }\n }\n\n return { makeLink }\n}\n\n// if 0 index iths mean have no parent then add this\nconst buildParentRoute = (props: any) => {\n // const { pathname } = router.state.location\n // const routeMenu: any = getRouteMenu(pathname)\n const pathname: any = getPath()\n const routeMenu: any = getRouteMenu(pathname)\n\n const breadcrumbItems: any = [\n {\n n: routeMenu?.title,\n o_t_id: routeMenu?.path,\n isHome: props?.isHome || false,\n },\n ]\n // return buildChildRoute(props, search, breadcrumbItems)\n return buildChildRoute(props, breadcrumbItems)\n}\n\n// if hav parent then add this\nconst buildChildRoute = (props: any, breadcrumbItems: any) => {\n \n let breadcrumbs = [...breadcrumbItems]\n // let breadcrumbType: string = 'child'\n\n // if (breadcrumbItems.length === 1) {\n // breadcrumbType = 'root'\n // } else if (breadcrumbItems.length === 2) {\n // breadcrumbType = 'root_details'\n // }\n let breadcrumbType = breadcrumbStage(breadcrumbItems)\n\n if (props?.isHome && isMessingParentLastItem(breadcrumbItems)) { // its for home side bard card data\n const parent: any = {\n n: props?.title || \"\",\n o_t_id: props?.objectTypeId,\n \"pt\": `/association/${props?.objectTypeId}`,\n isHome: props?.isHome || false,\n \"prm\": {\n \"sort\": \"-hs_createdate\",\n \"s\": \"\",\n \"fPn\": \"hs_pipeline\",\n \"fO\": \"eq\",\n \"fV\": \"\",\n \"c\": true,\n \"isPC\": props?.isPC,\n \"v\": \"LIST\",\n \"l\": \"10\",\n \"p\": 1\n }\n }\n\n breadcrumbs.push(parent)\n\n const newCrumb: any = {\n n: props?.name,\n o_t_id: props?.objectTypeId,\n o_r_id: props?.recordId,\n }\n breadcrumbs.push(newCrumb)\n } else if (breadcrumbType === 'root') {\n const newCrumb: any = {\n n: props?.name,\n o_t_id: props?.objectTypeId,\n o_r_id: props?.recordId,\n }\n\n // ✅ Add params if available\n // if (props.params) {\n // newCrumb.p = props.params\n // }\n\n if (props?.isPC) {\n newCrumb.prm = {\n isPC: props?.isPC\n }\n }\n\n breadcrumbs.push(newCrumb)\n } else {\n const lastItem = breadcrumbs[breadcrumbs.length - 1]\n\n if ((props?.objectTypeId != '0-5' && breadcrumbs.length > 2) && // check for only association ticket object\n (!isMessingParent(breadcrumbItems) && lastItem?.o_t_id === props?.objectTypeId) && // check for all associated object and check isMessingParent for skip parent to child and child to parent association data \n (props?.isHome && !isMessingParentLastItem(breadcrumbItems))) { // check home side bar child last item is messing parent then skip\n const newCrumb: any = {\n n: props?.name,\n o_t_id: props?.objectTypeId,\n o_r_id: props?.recordId,\n }\n\n // ✅ Add params if available\n // if (props.params) {\n // newCrumb.p = props.params\n // }\n\n\n if (props?.isPC) {\n newCrumb.prm = {\n isPC: props?.isPC\n }\n }\n\n breadcrumbs.push(newCrumb)\n } else {\n const lastItem = breadcrumbs[breadcrumbs.length - 1]\n\n // if associated data have no parent\n const parent: any = {\n n: props?.associationLabel || props?.name,\n o_t_id: props?.objectTypeId,\n }\n\n if (props?.tableParam) {\n parent.prm = props?.tableParam\n }\n\n if (props?.defPermissions) {\n parent.dp = props?.defPermissions\n }\n\n if (lastItem?.o_t_id && lastItem?.o_r_id) { // check if last item have no parent\n breadcrumbs.push(parent) // association list data\n }\n // end\n\n if (props?.recordId) { // association single data\n const newCrumb: any = {\n n: props?.name,\n o_t_id: props?.objectTypeId,\n o_r_id: props?.recordId,\n }\n\n // ✅ Add params if available\n // if (props.params) {\n // newCrumb.p = props.params\n // }\n\n if (props?.isPC) {\n newCrumb.prm = {\n isPC: props?.isPC\n }\n }\n\n breadcrumbs.push(newCrumb)\n }\n }\n }\n return generateUrl(props, breadcrumbs)\n}\n\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "woodsportal-client-sdk",
|
|
3
|
-
"version": "1.1.4-dev.
|
|
3
|
+
"version": "1.1.4-dev.6",
|
|
4
4
|
"description": "Official TypeScript/JavaScript SDK for WoodsPortal API - Authentication, user management, pipelines, and more",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|