@acoustte-digital-services/digitalstore-controls-dev 0.8.1-dev.20260709113231 → 0.8.1-dev.20260711052655
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/{EnterAnimationClient-RS3NQNR4.mjs → EnterAnimationClient-2NFKY4B5.mjs} +1 -0
- package/dist/{EnterAnimationClient-2JW323TH.mjs → EnterAnimationClient-R3GFCNRS.mjs} +1 -0
- package/dist/{InputControlClient-CS4JM7UY.mjs → InputControlClient-BO7WPPVX.mjs} +97 -6
- package/dist/{InputControlClient-XS52LLEE.mjs → InputControlClient-HSPSCMLF.mjs} +97 -6
- package/dist/{Pagination-4K7GMWUE.mjs → Pagination-NCJCOYHF.mjs} +2 -2
- package/dist/Pagination-T7YN2OMV.mjs +183 -0
- package/dist/chunk-5GHPW7SJ.mjs +111 -0
- package/dist/{chunk-7ZFZLN56.mjs → chunk-6NCGSAPP.mjs} +82 -0
- package/dist/{chunk-UWFXFVUU.mjs → chunk-DBHUCH4B.mjs} +2 -1
- package/dist/{chunk-YG6FKKQJ.mjs → chunk-NT56SZOV.mjs} +82 -0
- package/dist/{chunk-FYGNBMII.mjs → chunk-UFKPTMM7.mjs} +1 -1
- package/dist/chunk-X3YSXTD2.mjs +201 -0
- package/dist/index.d.mts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +818 -629
- package/dist/index.mjs +13 -12
- package/package.json +1 -1
|
@@ -24,7 +24,8 @@ var InputControlType = {
|
|
|
24
24
|
selectWithSearchInput: "selectWithSearchInput",
|
|
25
25
|
selectWithSearchPanel: "selectWithSearchPanel",
|
|
26
26
|
booleanSelect: "booleanSelect",
|
|
27
|
-
switchInput: "switchInput"
|
|
27
|
+
switchInput: "switchInput",
|
|
28
|
+
videoInput: "videoInput"
|
|
28
29
|
};
|
|
29
30
|
var InputControlType_default = InputControlType;
|
|
30
31
|
|
|
@@ -881,8 +881,90 @@ var AssetUtility = class {
|
|
|
881
881
|
};
|
|
882
882
|
var AssetUtility_default = AssetUtility;
|
|
883
883
|
|
|
884
|
+
// src/components/controls/view/VideoView.tsx
|
|
885
|
+
import { jsx as jsx15, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
886
|
+
var parseAssets = (value) => {
|
|
887
|
+
if (!value) return [];
|
|
888
|
+
if (Array.isArray(value)) {
|
|
889
|
+
return value;
|
|
890
|
+
}
|
|
891
|
+
if (typeof value === "string") {
|
|
892
|
+
const trimmed = value.trim();
|
|
893
|
+
if (!trimmed) return [];
|
|
894
|
+
try {
|
|
895
|
+
const parsed = JSON.parse(trimmed);
|
|
896
|
+
if (Array.isArray(parsed)) {
|
|
897
|
+
return parsed;
|
|
898
|
+
}
|
|
899
|
+
if (parsed && typeof parsed === "object") {
|
|
900
|
+
return [parsed];
|
|
901
|
+
}
|
|
902
|
+
} catch {
|
|
903
|
+
return [{ assetUrl: trimmed }];
|
|
904
|
+
}
|
|
905
|
+
return [{ assetUrl: trimmed }];
|
|
906
|
+
}
|
|
907
|
+
if (typeof value === "object") {
|
|
908
|
+
return [value];
|
|
909
|
+
}
|
|
910
|
+
return [];
|
|
911
|
+
};
|
|
912
|
+
var VideoView = (props) => {
|
|
913
|
+
const assets = parseAssets(props.value);
|
|
914
|
+
const asset = assets.find((item) => item.type?.toLowerCase() === "video") ?? assets[0];
|
|
915
|
+
if (!asset?.assetUrl) {
|
|
916
|
+
return null;
|
|
917
|
+
}
|
|
918
|
+
const resolvedAssetUrl = AssetUtility_default.resolveUrl(props.assetBaseUrl ?? props.apiBaseUrl, asset.assetUrl);
|
|
919
|
+
const resolvedPosterUrl = asset.posterUrl ? AssetUtility_default.resolveUrl(props.assetBaseUrl ?? props.apiBaseUrl, asset.posterUrl) : void 0;
|
|
920
|
+
const isHls = resolvedAssetUrl?.endsWith(".m3u8");
|
|
921
|
+
const isVideoFile = /\.(mp4|webm|ogg|mov)$/i.test(resolvedAssetUrl ?? "");
|
|
922
|
+
const titleText = typeof asset.title === "string" ? asset.title : typeof props.customProps?.title === "string" ? props.customProps.title : "Video";
|
|
923
|
+
const fileName = typeof asset.title === "string" ? asset.title : asset.assetUrl?.split("/").pop() || "video";
|
|
924
|
+
const containerStyle = {
|
|
925
|
+
width: props.width || "100%"
|
|
926
|
+
};
|
|
927
|
+
const renderMedia = () => {
|
|
928
|
+
if (resolvedAssetUrl && isVideoFile) {
|
|
929
|
+
return /* @__PURE__ */ jsx15("div", { className: "w-full overflow-hidden rounded-lg bg-black", children: /* @__PURE__ */ jsxs15(
|
|
930
|
+
"video",
|
|
931
|
+
{
|
|
932
|
+
controls: true,
|
|
933
|
+
playsInline: true,
|
|
934
|
+
preload: "metadata",
|
|
935
|
+
poster: resolvedPosterUrl,
|
|
936
|
+
className: "w-full h-auto max-h-[70vh] object-contain bg-black",
|
|
937
|
+
style: { width: "100%" },
|
|
938
|
+
children: [
|
|
939
|
+
/* @__PURE__ */ jsx15("source", { src: resolvedAssetUrl }),
|
|
940
|
+
"Your browser does not support the video tag."
|
|
941
|
+
]
|
|
942
|
+
}
|
|
943
|
+
) });
|
|
944
|
+
}
|
|
945
|
+
return null;
|
|
946
|
+
};
|
|
947
|
+
return /* @__PURE__ */ jsxs15("div", { style: containerStyle, className: "flex flex-col gap-2", children: [
|
|
948
|
+
titleText ? /* @__PURE__ */ jsx15("div", { className: "font-medium text-sm", children: titleText }) : null,
|
|
949
|
+
renderMedia(),
|
|
950
|
+
resolvedAssetUrl ? /* @__PURE__ */ jsx15(
|
|
951
|
+
"a",
|
|
952
|
+
{
|
|
953
|
+
href: resolvedAssetUrl,
|
|
954
|
+
download: fileName,
|
|
955
|
+
target: "_blank",
|
|
956
|
+
rel: "noreferrer",
|
|
957
|
+
className: "inline-flex w-fit items-center rounded-md border border-slate-300 px-3 py-2 text-sm font-medium text-slate-700 hover:bg-slate-50",
|
|
958
|
+
children: "Download video"
|
|
959
|
+
}
|
|
960
|
+
) : null
|
|
961
|
+
] });
|
|
962
|
+
};
|
|
963
|
+
var VideoView_default = VideoView;
|
|
964
|
+
|
|
884
965
|
export {
|
|
885
966
|
AssetUtility_default,
|
|
967
|
+
VideoView_default,
|
|
886
968
|
MultilineTextInput_default,
|
|
887
969
|
LineTextInput_default,
|
|
888
970
|
MoneyInput_default,
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
Constants
|
|
5
|
+
} from "./chunk-5GHPW7SJ.mjs";
|
|
6
|
+
|
|
7
|
+
// src/clients/OdataBuilder.tsx
|
|
8
|
+
var OdataBuilder = class {
|
|
9
|
+
constructor(url) {
|
|
10
|
+
this.baseUrl = url;
|
|
11
|
+
this.top = Constants.pagesize.toString();
|
|
12
|
+
this.skip = "0";
|
|
13
|
+
this.keyword = "";
|
|
14
|
+
this.filterBy = "";
|
|
15
|
+
this.orderBy = "";
|
|
16
|
+
}
|
|
17
|
+
// parseSearchParams(ReadonlyUrlSearchParams): DataQuery {
|
|
18
|
+
// this.top = top;
|
|
19
|
+
// return this;
|
|
20
|
+
// }
|
|
21
|
+
setQuery(odata) {
|
|
22
|
+
if (odata) {
|
|
23
|
+
for (const key in odata) {
|
|
24
|
+
if (odata[key] != null && odata[key] != "") {
|
|
25
|
+
if (key == "$skip") {
|
|
26
|
+
this.setSkip(odata[key]);
|
|
27
|
+
}
|
|
28
|
+
if (key == "$filter") {
|
|
29
|
+
this.setFilter(odata[key]);
|
|
30
|
+
}
|
|
31
|
+
if (key == "$top") {
|
|
32
|
+
this.setTop(odata[key]);
|
|
33
|
+
}
|
|
34
|
+
if (key == "$orderby") {
|
|
35
|
+
this.setOrderBy(odata[key]);
|
|
36
|
+
}
|
|
37
|
+
if (key == "searchTerm") {
|
|
38
|
+
this.searchTerm = odata[key];
|
|
39
|
+
}
|
|
40
|
+
if (key == "searchCols") {
|
|
41
|
+
this.searchCols = odata[key];
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return this;
|
|
47
|
+
}
|
|
48
|
+
// parseKeyValuePairs(inputString: string): { [key: string]: string } {
|
|
49
|
+
// return inputString.split('$')
|
|
50
|
+
// .map((pair) => pair.split('='))
|
|
51
|
+
// .reduce((result: { [key: string]: string }, [key, value]) => {
|
|
52
|
+
// if (key && value) {
|
|
53
|
+
// result[key.trim()] = value.trim();
|
|
54
|
+
// }
|
|
55
|
+
// return result;
|
|
56
|
+
// }, {});
|
|
57
|
+
// }
|
|
58
|
+
static getOdataQueryString(obj, defaultOrder) {
|
|
59
|
+
let queryString = "";
|
|
60
|
+
let skip = (obj && obj["$skip"]) ?? "0";
|
|
61
|
+
let top = (obj && obj["$top"]) ?? Constants.pagesize.toString();
|
|
62
|
+
queryString = `$skip=${skip}&$top=${top}&$count=true`;
|
|
63
|
+
if (obj?.["searchTerm"] && obj["searchTerm"].trim() !== "") {
|
|
64
|
+
queryString += `&searchTerm=${encodeURIComponent(obj["searchTerm"])}`;
|
|
65
|
+
}
|
|
66
|
+
if (obj?.["searchCols"] && obj["searchCols"].trim() !== "") {
|
|
67
|
+
queryString += `&searchCols=${encodeURIComponent(obj["searchCols"])}`;
|
|
68
|
+
}
|
|
69
|
+
if (obj) {
|
|
70
|
+
if (obj["$filter"] && obj["$filter"] !== null && obj["$filter"] !== "") {
|
|
71
|
+
queryString = queryString + `&$filter=${encodeURIComponent(obj["$filter"])}`;
|
|
72
|
+
}
|
|
73
|
+
if (obj["$orderby"] && obj["$orderby"] !== null && obj["$orderby"] !== "") {
|
|
74
|
+
queryString = queryString + `&$orderby=${encodeURIComponent(obj["$orderby"])}`;
|
|
75
|
+
} else if (defaultOrder) {
|
|
76
|
+
queryString = queryString + `&$orderby=${encodeURIComponent(defaultOrder)}`;
|
|
77
|
+
}
|
|
78
|
+
} else {
|
|
79
|
+
if (defaultOrder) {
|
|
80
|
+
queryString = queryString + `&$orderby=${encodeURIComponent(defaultOrder)}`;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return queryString;
|
|
84
|
+
}
|
|
85
|
+
setTop(top) {
|
|
86
|
+
this.top = top;
|
|
87
|
+
return this;
|
|
88
|
+
}
|
|
89
|
+
setSkip(skip) {
|
|
90
|
+
this.skip = skip;
|
|
91
|
+
return this;
|
|
92
|
+
}
|
|
93
|
+
setKeyword(keyword) {
|
|
94
|
+
this.keyword = keyword;
|
|
95
|
+
return this;
|
|
96
|
+
}
|
|
97
|
+
setFilter(filterBy) {
|
|
98
|
+
this.filterBy = filterBy;
|
|
99
|
+
return this;
|
|
100
|
+
}
|
|
101
|
+
setOrderBy(orderBy) {
|
|
102
|
+
this.orderBy = orderBy;
|
|
103
|
+
return this;
|
|
104
|
+
}
|
|
105
|
+
getPageNumber(pageSize) {
|
|
106
|
+
let pageNumber = 1;
|
|
107
|
+
if (this.skip && this.top) {
|
|
108
|
+
const skip = parseInt(this.skip);
|
|
109
|
+
const top = parseInt(this.top);
|
|
110
|
+
if (!isNaN(skip) && !isNaN(top)) {
|
|
111
|
+
pageNumber = skip / pageSize + 1;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return pageNumber;
|
|
115
|
+
}
|
|
116
|
+
getUrl() {
|
|
117
|
+
let url = `${this.baseUrl}?$skip=${this.skip}&$top=${this.top}&$count=true`;
|
|
118
|
+
if (this.filterBy !== null && this.filterBy !== "") {
|
|
119
|
+
url = url + `&$filter=${encodeURIComponent(this.filterBy)}`;
|
|
120
|
+
}
|
|
121
|
+
if (this.orderBy !== null && this.orderBy !== "") {
|
|
122
|
+
url = url + `&$orderby=${encodeURIComponent(this.orderBy)}`;
|
|
123
|
+
}
|
|
124
|
+
if (this.searchTerm) {
|
|
125
|
+
url += `&searchTerm=${encodeURIComponent(this.searchTerm)}`;
|
|
126
|
+
}
|
|
127
|
+
if (this.searchCols) {
|
|
128
|
+
url += `&searchCols=${encodeURIComponent(this.searchCols)}`;
|
|
129
|
+
}
|
|
130
|
+
console.log(url);
|
|
131
|
+
return url;
|
|
132
|
+
}
|
|
133
|
+
getNewOrderByUrl(orderBy) {
|
|
134
|
+
let url = `${this.baseUrl}?$skip=${0}&$top=${this.top}&$count=true`;
|
|
135
|
+
if (this.filterBy !== null && this.filterBy !== "") {
|
|
136
|
+
url = url + `&$filter=${encodeURIComponent(this.filterBy)}`;
|
|
137
|
+
}
|
|
138
|
+
if (this.searchTerm) {
|
|
139
|
+
url += `&searchTerm=${encodeURIComponent(this.searchTerm)}`;
|
|
140
|
+
}
|
|
141
|
+
if (this.searchCols) {
|
|
142
|
+
url += `&searchCols=${encodeURIComponent(this.searchCols)}`;
|
|
143
|
+
}
|
|
144
|
+
url = url + `&$orderby=${encodeURIComponent(orderBy)}`;
|
|
145
|
+
return url;
|
|
146
|
+
}
|
|
147
|
+
getNewFilterUrl(filterBy) {
|
|
148
|
+
let url = `${this.baseUrl}?$skip=${0}&$top=${this.top}&$count=true`;
|
|
149
|
+
if (filterBy !== null && filterBy !== "") {
|
|
150
|
+
url = url + `&$filter=${encodeURIComponent(filterBy)}`;
|
|
151
|
+
}
|
|
152
|
+
if (this.orderBy !== null && this.orderBy !== "") {
|
|
153
|
+
url = url + `&$orderby=${encodeURIComponent(this.orderBy)}`;
|
|
154
|
+
}
|
|
155
|
+
if (this.searchTerm) {
|
|
156
|
+
url += `&searchTerm=${encodeURIComponent(this.searchTerm)}`;
|
|
157
|
+
}
|
|
158
|
+
if (this.searchCols) {
|
|
159
|
+
url += `&searchCols=${encodeURIComponent(this.searchCols)}`;
|
|
160
|
+
}
|
|
161
|
+
return url;
|
|
162
|
+
}
|
|
163
|
+
getNewPageUrl(page) {
|
|
164
|
+
let skip = page * Constants.pagesize - Constants.pagesize;
|
|
165
|
+
let url = `${this.baseUrl}?$skip=${skip}&$top=${this.top}&$count=true`;
|
|
166
|
+
if (this.filterBy !== null && this.filterBy !== "") {
|
|
167
|
+
url = url + `&$filter=${encodeURIComponent(this.filterBy)}`;
|
|
168
|
+
}
|
|
169
|
+
if (this.orderBy !== null && this.orderBy !== "") {
|
|
170
|
+
url = url + `&$orderby=${encodeURIComponent(this.orderBy)}`;
|
|
171
|
+
}
|
|
172
|
+
if (this.searchTerm) {
|
|
173
|
+
url += `&searchTerm=${encodeURIComponent(this.searchTerm)}`;
|
|
174
|
+
}
|
|
175
|
+
if (this.searchCols) {
|
|
176
|
+
url += `&searchCols=${encodeURIComponent(this.searchCols)}`;
|
|
177
|
+
}
|
|
178
|
+
return url;
|
|
179
|
+
}
|
|
180
|
+
getNewPageSizeUrl(pageSize) {
|
|
181
|
+
const currentPage = this.getPageNumber(
|
|
182
|
+
parseInt(this.top || Constants.pagesize.toString())
|
|
183
|
+
);
|
|
184
|
+
const skip = (currentPage - 1) * pageSize;
|
|
185
|
+
let url = `${this.baseUrl}?$skip=${skip}&$top=${pageSize}&$count=true`;
|
|
186
|
+
if (this.filterBy !== null && this.filterBy !== "") {
|
|
187
|
+
url = url + `&$filter=${encodeURIComponent(this.filterBy)}`;
|
|
188
|
+
}
|
|
189
|
+
if (this.orderBy !== null && this.orderBy !== "") {
|
|
190
|
+
url = url + `&$orderby=${encodeURIComponent(this.orderBy)}`;
|
|
191
|
+
}
|
|
192
|
+
return url;
|
|
193
|
+
}
|
|
194
|
+
getOrderBy() {
|
|
195
|
+
return this.orderBy;
|
|
196
|
+
}
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
export {
|
|
200
|
+
OdataBuilder
|
|
201
|
+
};
|
package/dist/index.d.mts
CHANGED
|
@@ -19,6 +19,7 @@ declare const ViewControlTypes: {
|
|
|
19
19
|
lineText: string;
|
|
20
20
|
emailText: string;
|
|
21
21
|
asset: string;
|
|
22
|
+
video: string;
|
|
22
23
|
multilineTextBullets: string;
|
|
23
24
|
boolean: string;
|
|
24
25
|
checkboxInput: string;
|
|
@@ -62,6 +63,7 @@ declare const InputControlType: {
|
|
|
62
63
|
selectWithSearchPanel: string;
|
|
63
64
|
booleanSelect: string;
|
|
64
65
|
switchInput: string;
|
|
66
|
+
videoInput: string;
|
|
65
67
|
};
|
|
66
68
|
|
|
67
69
|
interface InputCallbackValues<T> {
|
package/dist/index.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ declare const ViewControlTypes: {
|
|
|
19
19
|
lineText: string;
|
|
20
20
|
emailText: string;
|
|
21
21
|
asset: string;
|
|
22
|
+
video: string;
|
|
22
23
|
multilineTextBullets: string;
|
|
23
24
|
boolean: string;
|
|
24
25
|
checkboxInput: string;
|
|
@@ -62,6 +63,7 @@ declare const InputControlType: {
|
|
|
62
63
|
selectWithSearchPanel: string;
|
|
63
64
|
booleanSelect: string;
|
|
64
65
|
switchInput: string;
|
|
66
|
+
videoInput: string;
|
|
65
67
|
};
|
|
66
68
|
|
|
67
69
|
interface InputCallbackValues<T> {
|