@razorpay/blade 12.92.0 → 12.93.0
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/assets/spark/bottom-frame.jpg +0 -0
- package/assets/spark/colorama-center-gradient-map.jpg +0 -0
- package/assets/spark/colorama-gradient-map-blue.jpg +0 -0
- package/assets/spark/colorama-gradient-map-green.jpg +0 -0
- package/assets/spark/ray-pulse.mp4 +0 -0
- package/assets/spark/spark-base-video.mp4 +0 -0
- package/assets/spark/success-animation-circle.mp4 +0 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/FluidGradient.js +9 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/FluidGradient.js.map +1 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/FluidGradientMount.js +18 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/FluidGradientMount.js.map +1 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/shader.js +69 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/shader.js.map +1 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/useFluidGradient.js +7 -0
- package/build/lib/native/components/Spark/RazorSenseGradient/useFluidGradient.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/PerformanceManager.js +7 -0
- package/build/lib/native/components/Spark/RzpGlass/PerformanceManager.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/RzpGlass.js +13 -0
- package/build/lib/native/components/Spark/RzpGlass/RzpGlass.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/RzpGlassMount.js +28 -0
- package/build/lib/native/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/presets.js +4 -0
- package/build/lib/native/components/Spark/RzpGlass/presets.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/rzpGlassShader.js +920 -0
- package/build/lib/native/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/utils.js +4 -0
- package/build/lib/native/components/Spark/RzpGlass/utils.js.map +1 -0
- package/build/lib/native/components/Spark/RzpGlass/webgl-utils.js +7 -0
- package/build/lib/native/components/Spark/RzpGlass/webgl-utils.js.map +1 -0
- package/build/lib/native/components/index.js +2 -0
- package/build/lib/native/components/index.js.map +1 -1
- package/build/lib/web/development/_virtual/flatten.js +1 -1
- package/build/lib/web/development/_virtual/flatten3.js +1 -1
- package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js +23 -15
- package/build/lib/web/development/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
- package/build/lib/web/development/components/SideNav/SideNav.web.js +21 -21
- package/build/lib/web/development/components/SideNav/SideNav.web.js.map +1 -1
- package/build/lib/web/development/components/SideNav/SideNavItems/SideNavLink.web.js +4 -4
- package/build/lib/web/development/components/SideNav/SideNavItems/SideNavLink.web.js.map +1 -1
- package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradient.js +92 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradient.js.map +1 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradientMount.js +110 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/FluidGradientMount.js.map +1 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/index.js +2 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/index.js.map +1 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/shader.js +18 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/shader.js.map +1 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/useFluidGradient.js +34 -0
- package/build/lib/web/development/components/Spark/RazorSenseGradient/useFluidGradient.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/PerformanceManager.js +455 -0
- package/build/lib/web/development/components/Spark/RzpGlass/PerformanceManager.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js +263 -0
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlass.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js +908 -0
- package/build/lib/web/development/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/index.js +24 -0
- package/build/lib/web/development/components/Spark/RzpGlass/index.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/presets.js +151 -0
- package/build/lib/web/development/components/Spark/RzpGlass/presets.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js +5 -0
- package/build/lib/web/development/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/utils.js +77 -0
- package/build/lib/web/development/components/Spark/RzpGlass/utils.js.map +1 -0
- package/build/lib/web/development/components/Spark/RzpGlass/webgl-utils.js +200 -0
- package/build/lib/web/development/components/Spark/RzpGlass/webgl-utils.js.map +1 -0
- package/build/lib/web/development/components/Spark/index.js +3 -0
- package/build/lib/web/development/components/Spark/index.js.map +1 -0
- package/build/lib/web/development/components/index.js +3 -0
- package/build/lib/web/development/components/index.js.map +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/array/flatten.js +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/flatten.js +1 -1
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/array/sortBy.js +2 -2
- package/build/lib/web/development/node_modules/es-toolkit/dist/compat/object/omit.js +2 -2
- package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js +23 -15
- package/build/lib/web/production/components/Dropdown/FilterChipSelectInput.web.js.map +1 -1
- package/build/lib/web/production/components/SideNav/SideNav.web.js +21 -21
- package/build/lib/web/production/components/SideNav/SideNav.web.js.map +1 -1
- package/build/lib/web/production/components/SideNav/SideNavItems/SideNavLink.web.js +4 -4
- package/build/lib/web/production/components/SideNav/SideNavItems/SideNavLink.web.js.map +1 -1
- package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradient.js +92 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradient.js.map +1 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradientMount.js +110 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/FluidGradientMount.js.map +1 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/index.js +2 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/index.js.map +1 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/shader.js +18 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/shader.js.map +1 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/useFluidGradient.js +34 -0
- package/build/lib/web/production/components/Spark/RazorSenseGradient/useFluidGradient.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/PerformanceManager.js +455 -0
- package/build/lib/web/production/components/Spark/RzpGlass/PerformanceManager.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js +263 -0
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlass.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js +908 -0
- package/build/lib/web/production/components/Spark/RzpGlass/RzpGlassMount.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/index.js +24 -0
- package/build/lib/web/production/components/Spark/RzpGlass/index.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/presets.js +151 -0
- package/build/lib/web/production/components/Spark/RzpGlass/presets.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js +5 -0
- package/build/lib/web/production/components/Spark/RzpGlass/rzpGlassShader.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/utils.js +77 -0
- package/build/lib/web/production/components/Spark/RzpGlass/utils.js.map +1 -0
- package/build/lib/web/production/components/Spark/RzpGlass/webgl-utils.js +200 -0
- package/build/lib/web/production/components/Spark/RzpGlass/webgl-utils.js.map +1 -0
- package/build/lib/web/production/components/Spark/index.js +3 -0
- package/build/lib/web/production/components/Spark/index.js.map +1 -0
- package/build/lib/web/production/components/index.js +3 -0
- package/build/lib/web/production/components/index.js.map +1 -1
- package/build/types/components/index.d.ts +297 -1
- package/build/types/components/index.native.d.ts +297 -1
- package/package.json +2 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RzpGlass Utility Functions
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Load an image from URL
|
|
7
|
+
*/
|
|
8
|
+
function loadImage(src) {
|
|
9
|
+
return new Promise(function (resolve, reject) {
|
|
10
|
+
var img = new Image();
|
|
11
|
+
img.crossOrigin = 'anonymous';
|
|
12
|
+
img.onload = function () {
|
|
13
|
+
return resolve(img);
|
|
14
|
+
};
|
|
15
|
+
img.onerror = function () {
|
|
16
|
+
return reject(new Error("Failed to load image: ".concat(src)));
|
|
17
|
+
};
|
|
18
|
+
img.src = src;
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Load a video from URL
|
|
24
|
+
*/
|
|
25
|
+
function loadVideo(src) {
|
|
26
|
+
return new Promise(function (resolve, reject) {
|
|
27
|
+
var video = document.createElement('video');
|
|
28
|
+
video.src = src;
|
|
29
|
+
video.crossOrigin = 'anonymous';
|
|
30
|
+
video.loop = true;
|
|
31
|
+
video.muted = true;
|
|
32
|
+
video.playsInline = true;
|
|
33
|
+
video.preload = 'auto';
|
|
34
|
+
video.oncanplaythrough = function () {
|
|
35
|
+
return resolve(video);
|
|
36
|
+
};
|
|
37
|
+
video.onerror = function () {
|
|
38
|
+
return reject(new Error("Failed to load video: ".concat(src)));
|
|
39
|
+
};
|
|
40
|
+
video.load();
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Check if browser is Safari
|
|
46
|
+
*/
|
|
47
|
+
function isSafari() {
|
|
48
|
+
var ua = navigator.userAgent.toLowerCase();
|
|
49
|
+
return ua.includes('safari') && !ua.includes('chrome') && !ua.includes('android');
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Best guess browser zoom level (for Safari which doesn't include zoom in devicePixelRatio)
|
|
54
|
+
*/
|
|
55
|
+
function bestGuessBrowserZoom() {
|
|
56
|
+
var _visualViewport$scale, _visualViewport, _visualViewport$width, _visualViewport2;
|
|
57
|
+
var viewportScale = (_visualViewport$scale = (_visualViewport = visualViewport) === null || _visualViewport === void 0 ? void 0 : _visualViewport.scale) !== null && _visualViewport$scale !== void 0 ? _visualViewport$scale : 1;
|
|
58
|
+
var viewportWidth = (_visualViewport$width = (_visualViewport2 = visualViewport) === null || _visualViewport2 === void 0 ? void 0 : _visualViewport2.width) !== null && _visualViewport$width !== void 0 ? _visualViewport$width : window.innerWidth;
|
|
59
|
+
var scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;
|
|
60
|
+
var innerWidth = viewportScale * viewportWidth + scrollbarWidth;
|
|
61
|
+
var ratio = outerWidth / innerWidth;
|
|
62
|
+
var zoomPercentageRounded = Math.round(100 * ratio);
|
|
63
|
+
|
|
64
|
+
// Common zoom levels divisible by 5%
|
|
65
|
+
if (zoomPercentageRounded % 5 === 0) {
|
|
66
|
+
return zoomPercentageRounded / 100;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Handle special zoom levels
|
|
70
|
+
if (zoomPercentageRounded === 33) return 1 / 3;
|
|
71
|
+
if (zoomPercentageRounded === 67) return 2 / 3;
|
|
72
|
+
if (zoomPercentageRounded === 133) return 4 / 3;
|
|
73
|
+
return ratio;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
export { bestGuessBrowserZoom, isSafari, loadImage, loadVideo };
|
|
77
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../../src/components/Spark/RzpGlass/utils.ts"],"sourcesContent":["/**\n * RzpGlass Utility Functions\n */\n\n/**\n * Load an image from URL\n */\nexport function loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => resolve(img);\n img.onerror = () => reject(new Error(`Failed to load image: ${src}`));\n img.src = src;\n });\n}\n\n/**\n * Load a video from URL\n */\nexport function loadVideo(src: string): Promise<HTMLVideoElement> {\n return new Promise((resolve, reject) => {\n const video = document.createElement('video');\n video.src = src;\n video.crossOrigin = 'anonymous';\n video.loop = true;\n video.muted = true;\n video.playsInline = true;\n video.preload = 'auto';\n video.oncanplaythrough = () => resolve(video);\n video.onerror = () => reject(new Error(`Failed to load video: ${src}`));\n video.load();\n });\n}\n\n/**\n * Check if browser is Safari\n */\nexport function isSafari(): boolean {\n const ua = navigator.userAgent.toLowerCase();\n return ua.includes('safari') && !ua.includes('chrome') && !ua.includes('android');\n}\n\n/**\n * Best guess browser zoom level (for Safari which doesn't include zoom in devicePixelRatio)\n */\nexport function bestGuessBrowserZoom(): number {\n const viewportScale = visualViewport?.scale ?? 1;\n const viewportWidth = visualViewport?.width ?? window.innerWidth;\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n const innerWidth = viewportScale * viewportWidth + scrollbarWidth;\n\n const ratio = outerWidth / innerWidth;\n const zoomPercentageRounded = Math.round(100 * ratio);\n\n // Common zoom levels divisible by 5%\n if (zoomPercentageRounded % 5 === 0) {\n return zoomPercentageRounded / 100;\n }\n\n // Handle special zoom levels\n if (zoomPercentageRounded === 33) return 1 / 3;\n if (zoomPercentageRounded === 67) return 2 / 3;\n if (zoomPercentageRounded === 133) return 4 / 3;\n\n return ratio;\n}\n"],"names":["loadImage","src","Promise","resolve","reject","img","Image","crossOrigin","onload","onerror","Error","concat","loadVideo","video","document","createElement","loop","muted","playsInline","preload","oncanplaythrough","load","isSafari","ua","navigator","userAgent","toLowerCase","includes","bestGuessBrowserZoom","_visualViewport$scale","_visualViewport","_visualViewport$width","_visualViewport2","viewportScale","visualViewport","scale","viewportWidth","width","window","innerWidth","scrollbarWidth","documentElement","clientWidth","ratio","outerWidth","zoomPercentageRounded","Math","round"],"mappings":"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"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
2
|
+
import _createClass from '@babel/runtime/helpers/createClass';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* WebGL utility functions for shader compilation, program creation,
|
|
6
|
+
* geometry setup, and texture handling.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
// Fullscreen quad vertices (two triangles covering clip space -1 to 1)
|
|
10
|
+
// prettier-ignore
|
|
11
|
+
var FULLSCREEN_QUAD_POSITIONS = new Float32Array([-1, -1,
|
|
12
|
+
// bottom-left
|
|
13
|
+
1, -1,
|
|
14
|
+
// bottom-right
|
|
15
|
+
-1, 1,
|
|
16
|
+
// top-left
|
|
17
|
+
-1, 1,
|
|
18
|
+
// top-left
|
|
19
|
+
1, -1,
|
|
20
|
+
// bottom-right
|
|
21
|
+
1, 1 // top-right
|
|
22
|
+
]);
|
|
23
|
+
|
|
24
|
+
// Standard UV coordinates for fullscreen quad
|
|
25
|
+
// prettier-ignore
|
|
26
|
+
var FULLSCREEN_QUAD_UVS = new Float32Array([0, 0,
|
|
27
|
+
// bottom-left
|
|
28
|
+
1, 0,
|
|
29
|
+
// bottom-right
|
|
30
|
+
0, 1,
|
|
31
|
+
// top-left
|
|
32
|
+
0, 1,
|
|
33
|
+
// top-left
|
|
34
|
+
1, 0,
|
|
35
|
+
// bottom-right
|
|
36
|
+
1, 1 // top-right
|
|
37
|
+
]);
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Creates and compiles a WebGL shader
|
|
41
|
+
*/
|
|
42
|
+
function createShader(gl, type, source) {
|
|
43
|
+
var shader = gl.createShader(type);
|
|
44
|
+
if (!shader) return null;
|
|
45
|
+
gl.shaderSource(shader, source);
|
|
46
|
+
gl.compileShader(shader);
|
|
47
|
+
if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
|
|
48
|
+
console.error('Shader compilation error:', gl.getShaderInfoLog(shader));
|
|
49
|
+
gl.deleteShader(shader);
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
return shader;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Creates a WebGL program from vertex and fragment shaders
|
|
57
|
+
*/
|
|
58
|
+
function createProgram(gl, vertexSource, fragmentSource) {
|
|
59
|
+
// Check shader precision and upgrade if needed
|
|
60
|
+
var format = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT);
|
|
61
|
+
var precision = format ? format.precision : null;
|
|
62
|
+
|
|
63
|
+
// MEDIUM_FLOAT precision can be 10, 16 or 23 bits depending on device
|
|
64
|
+
// Shaders fail on 10 bit => we force 23-bit by switching to highp
|
|
65
|
+
if (precision && precision < 23) {
|
|
66
|
+
vertexSource = vertexSource.replace(/precision\s+(lowp|mediump)\s+float;/g, 'precision highp float;');
|
|
67
|
+
fragmentSource = fragmentSource.replace(/precision\s+(lowp|mediump)\s+float/g, 'precision highp float').replace(/\b(uniform|varying|attribute)\s+(lowp|mediump)\s+(\w+)/g, '$1 highp $3');
|
|
68
|
+
}
|
|
69
|
+
var vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexSource);
|
|
70
|
+
var fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentSource);
|
|
71
|
+
if (!vertexShader || !fragmentShader) return null;
|
|
72
|
+
var program = gl.createProgram();
|
|
73
|
+
if (!program) return null;
|
|
74
|
+
gl.attachShader(program, vertexShader);
|
|
75
|
+
gl.attachShader(program, fragmentShader);
|
|
76
|
+
gl.linkProgram(program);
|
|
77
|
+
if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
|
|
78
|
+
console.error('Program linking error:', gl.getProgramInfoLog(program));
|
|
79
|
+
gl.deleteProgram(program);
|
|
80
|
+
gl.deleteShader(vertexShader);
|
|
81
|
+
gl.deleteShader(fragmentShader);
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// Clean up shaders after successful linking
|
|
86
|
+
gl.detachShader(program, vertexShader);
|
|
87
|
+
gl.detachShader(program, fragmentShader);
|
|
88
|
+
gl.deleteShader(vertexShader);
|
|
89
|
+
gl.deleteShader(fragmentShader);
|
|
90
|
+
return program;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Sets up a fullscreen quad with position and UV attributes.
|
|
94
|
+
* This is the standard geometry for post-processing shaders.
|
|
95
|
+
*
|
|
96
|
+
* @param gl - WebGL rendering context
|
|
97
|
+
* @param program - WebGL program to get attribute locations from
|
|
98
|
+
* @param positionAttr - Name of position attribute (default: 'position')
|
|
99
|
+
* @param uvAttr - Name of UV attribute (default: 'uv')
|
|
100
|
+
* @returns The created buffers for cleanup, or null if setup failed
|
|
101
|
+
*/
|
|
102
|
+
function setupFullscreenQuad(gl, program) {
|
|
103
|
+
var positionAttr = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'position';
|
|
104
|
+
var uvAttr = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 'uv';
|
|
105
|
+
// Position attribute
|
|
106
|
+
var positionLocation = gl.getAttribLocation(program, positionAttr);
|
|
107
|
+
var positionBuffer = gl.createBuffer();
|
|
108
|
+
if (!positionBuffer) return null;
|
|
109
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);
|
|
110
|
+
gl.bufferData(gl.ARRAY_BUFFER, FULLSCREEN_QUAD_POSITIONS, gl.STATIC_DRAW);
|
|
111
|
+
gl.enableVertexAttribArray(positionLocation);
|
|
112
|
+
gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);
|
|
113
|
+
|
|
114
|
+
// UV attribute
|
|
115
|
+
var uvLocation = gl.getAttribLocation(program, uvAttr);
|
|
116
|
+
var uvBuffer = gl.createBuffer();
|
|
117
|
+
if (!uvBuffer) return null;
|
|
118
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, uvBuffer);
|
|
119
|
+
gl.bufferData(gl.ARRAY_BUFFER, FULLSCREEN_QUAD_UVS, gl.STATIC_DRAW);
|
|
120
|
+
gl.enableVertexAttribArray(uvLocation);
|
|
121
|
+
gl.vertexAttribPointer(uvLocation, 2, gl.FLOAT, false, 0, 0);
|
|
122
|
+
return {
|
|
123
|
+
positionBuffer: positionBuffer,
|
|
124
|
+
uvBuffer: uvBuffer
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* OGL-style Texture class for WebGL texture management.
|
|
130
|
+
* Supports images, videos, and canvas elements as sources.
|
|
131
|
+
*
|
|
132
|
+
* @see https://github.com/oframe/ogl/blob/master/src/core/Texture.js
|
|
133
|
+
*/
|
|
134
|
+
var Texture = /*#__PURE__*/function () {
|
|
135
|
+
function Texture(gl) {
|
|
136
|
+
var _params$textureUnit, _params$minFilter, _params$magFilter, _params$wrapS, _params$wrapT, _params$flipY;
|
|
137
|
+
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
138
|
+
_classCallCheck(this, Texture);
|
|
139
|
+
this.gl = gl;
|
|
140
|
+
this.textureUnit = (_params$textureUnit = params.textureUnit) !== null && _params$textureUnit !== void 0 ? _params$textureUnit : 0;
|
|
141
|
+
this.minFilter = (_params$minFilter = params.minFilter) !== null && _params$minFilter !== void 0 ? _params$minFilter : gl.NEAREST;
|
|
142
|
+
this.magFilter = (_params$magFilter = params.magFilter) !== null && _params$magFilter !== void 0 ? _params$magFilter : gl.NEAREST;
|
|
143
|
+
this.wrapS = (_params$wrapS = params.wrapS) !== null && _params$wrapS !== void 0 ? _params$wrapS : gl.CLAMP_TO_EDGE;
|
|
144
|
+
this.wrapT = (_params$wrapT = params.wrapT) !== null && _params$wrapT !== void 0 ? _params$wrapT : gl.CLAMP_TO_EDGE;
|
|
145
|
+
this.flipY = (_params$flipY = params.flipY) !== null && _params$flipY !== void 0 ? _params$flipY : true;
|
|
146
|
+
this.texture = gl.createTexture();
|
|
147
|
+
this.bind();
|
|
148
|
+
this.setParameters();
|
|
149
|
+
}
|
|
150
|
+
return _createClass(Texture, [{
|
|
151
|
+
key: "bind",
|
|
152
|
+
value: function bind() {
|
|
153
|
+
var gl = this.gl;
|
|
154
|
+
gl.activeTexture(gl.TEXTURE0 + this.textureUnit);
|
|
155
|
+
gl.bindTexture(gl.TEXTURE_2D, this.texture);
|
|
156
|
+
}
|
|
157
|
+
}, {
|
|
158
|
+
key: "setParameters",
|
|
159
|
+
value: function setParameters() {
|
|
160
|
+
var gl = this.gl;
|
|
161
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, this.minFilter);
|
|
162
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, this.magFilter);
|
|
163
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, this.wrapS);
|
|
164
|
+
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, this.wrapT);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Upload image data to the texture (OGL-style)
|
|
169
|
+
*/
|
|
170
|
+
}, {
|
|
171
|
+
key: "image",
|
|
172
|
+
value: function image(source) {
|
|
173
|
+
var gl = this.gl;
|
|
174
|
+
if (!source) return;
|
|
175
|
+
this.bind();
|
|
176
|
+
if (this.flipY) {
|
|
177
|
+
gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);
|
|
178
|
+
}
|
|
179
|
+
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, source);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Update texture from video frame (call each frame for video textures)
|
|
184
|
+
*/
|
|
185
|
+
}, {
|
|
186
|
+
key: "update",
|
|
187
|
+
value: function update(source) {
|
|
188
|
+
this.image(source);
|
|
189
|
+
}
|
|
190
|
+
}, {
|
|
191
|
+
key: "destroy",
|
|
192
|
+
value: function destroy() {
|
|
193
|
+
this.gl.deleteTexture(this.texture);
|
|
194
|
+
this.texture = null;
|
|
195
|
+
}
|
|
196
|
+
}]);
|
|
197
|
+
}();
|
|
198
|
+
|
|
199
|
+
export { Texture, createProgram, createShader, setupFullscreenQuad };
|
|
200
|
+
//# sourceMappingURL=webgl-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webgl-utils.js","sources":["../../../../../../../src/components/Spark/RzpGlass/webgl-utils.ts"],"sourcesContent":["/**\n * WebGL utility functions for shader compilation, program creation,\n * geometry setup, and texture handling.\n */\n\n// Fullscreen quad vertices (two triangles covering clip space -1 to 1)\n// prettier-ignore\nconst FULLSCREEN_QUAD_POSITIONS = new Float32Array([\n -1, -1, // bottom-left\n 1, -1, // bottom-right\n -1, 1, // top-left\n -1, 1, // top-left\n 1, -1, // bottom-right\n 1, 1, // top-right\n]);\n\n// Standard UV coordinates for fullscreen quad\n// prettier-ignore\nconst FULLSCREEN_QUAD_UVS = new Float32Array([\n 0, 0, // bottom-left\n 1, 0, // bottom-right\n 0, 1, // top-left\n 0, 1, // top-left\n 1, 0, // bottom-right\n 1, 1, // top-right\n]);\n\n/**\n * Creates and compiles a WebGL shader\n */\nfunction createShader(gl: WebGLRenderingContext, type: number, source: string): WebGLShader | null {\n const shader = gl.createShader(type);\n if (!shader) return null;\n\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n console.error('Shader compilation error:', gl.getShaderInfoLog(shader));\n gl.deleteShader(shader);\n return null;\n }\n\n return shader;\n}\n\n/**\n * Creates a WebGL program from vertex and fragment shaders\n */\nfunction createProgram(\n gl: WebGLRenderingContext,\n vertexSource: string,\n fragmentSource: string,\n): WebGLProgram | null {\n // Check shader precision and upgrade if needed\n const format = gl.getShaderPrecisionFormat(gl.FRAGMENT_SHADER, gl.MEDIUM_FLOAT);\n const precision = format ? format.precision : null;\n\n // MEDIUM_FLOAT precision can be 10, 16 or 23 bits depending on device\n // Shaders fail on 10 bit => we force 23-bit by switching to highp\n if (precision && precision < 23) {\n vertexSource = vertexSource.replace(\n /precision\\s+(lowp|mediump)\\s+float;/g,\n 'precision highp float;',\n );\n fragmentSource = fragmentSource\n .replace(/precision\\s+(lowp|mediump)\\s+float/g, 'precision highp float')\n .replace(/\\b(uniform|varying|attribute)\\s+(lowp|mediump)\\s+(\\w+)/g, '$1 highp $3');\n }\n\n const vertexShader = createShader(gl, gl.VERTEX_SHADER, vertexSource);\n const fragmentShader = createShader(gl, gl.FRAGMENT_SHADER, fragmentSource);\n\n if (!vertexShader || !fragmentShader) return null;\n\n const program = gl.createProgram();\n if (!program) return null;\n\n gl.attachShader(program, vertexShader);\n gl.attachShader(program, fragmentShader);\n gl.linkProgram(program);\n\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n console.error('Program linking error:', gl.getProgramInfoLog(program));\n gl.deleteProgram(program);\n gl.deleteShader(vertexShader);\n gl.deleteShader(fragmentShader);\n return null;\n }\n\n // Clean up shaders after successful linking\n gl.detachShader(program, vertexShader);\n gl.detachShader(program, fragmentShader);\n gl.deleteShader(vertexShader);\n gl.deleteShader(fragmentShader);\n\n return program;\n}\n\ntype FullscreenQuadBuffers = {\n positionBuffer: WebGLBuffer;\n uvBuffer: WebGLBuffer;\n};\n\n/**\n * Sets up a fullscreen quad with position and UV attributes.\n * This is the standard geometry for post-processing shaders.\n *\n * @param gl - WebGL rendering context\n * @param program - WebGL program to get attribute locations from\n * @param positionAttr - Name of position attribute (default: 'position')\n * @param uvAttr - Name of UV attribute (default: 'uv')\n * @returns The created buffers for cleanup, or null if setup failed\n */\nfunction setupFullscreenQuad(\n gl: WebGLRenderingContext,\n program: WebGLProgram,\n positionAttr = 'position',\n uvAttr = 'uv',\n): FullscreenQuadBuffers | null {\n // Position attribute\n const positionLocation = gl.getAttribLocation(program, positionAttr);\n const positionBuffer = gl.createBuffer();\n if (!positionBuffer) return null;\n\n gl.bindBuffer(gl.ARRAY_BUFFER, positionBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, FULLSCREEN_QUAD_POSITIONS, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(positionLocation);\n gl.vertexAttribPointer(positionLocation, 2, gl.FLOAT, false, 0, 0);\n\n // UV attribute\n const uvLocation = gl.getAttribLocation(program, uvAttr);\n const uvBuffer = gl.createBuffer();\n if (!uvBuffer) return null;\n\n gl.bindBuffer(gl.ARRAY_BUFFER, uvBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, FULLSCREEN_QUAD_UVS, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(uvLocation);\n gl.vertexAttribPointer(uvLocation, 2, gl.FLOAT, false, 0, 0);\n\n return { positionBuffer, uvBuffer };\n}\n\ntype TextureOptions = {\n minFilter?: number;\n magFilter?: number;\n wrapS?: number;\n wrapT?: number;\n};\n\n/**\n * OGL-style Texture class for WebGL texture management.\n * Supports images, videos, and canvas elements as sources.\n *\n * @see https://github.com/oframe/ogl/blob/master/src/core/Texture.js\n */\ntype TextureParams = {\n textureUnit?: number;\n minFilter?: number;\n magFilter?: number;\n wrapS?: number;\n wrapT?: number;\n flipY?: boolean;\n};\n\ntype TextureSource = HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | null;\n\nclass Texture {\n public gl: WebGLRenderingContext;\n public texture: WebGLTexture | null;\n public textureUnit: number;\n\n private minFilter: number;\n private magFilter: number;\n private wrapS: number;\n private wrapT: number;\n private flipY: boolean;\n\n constructor(gl: WebGLRenderingContext, params: TextureParams = {}) {\n this.gl = gl;\n this.textureUnit = params.textureUnit ?? 0;\n this.minFilter = params.minFilter ?? gl.NEAREST;\n this.magFilter = params.magFilter ?? gl.NEAREST;\n this.wrapS = params.wrapS ?? gl.CLAMP_TO_EDGE;\n this.wrapT = params.wrapT ?? gl.CLAMP_TO_EDGE;\n this.flipY = params.flipY ?? true;\n\n this.texture = gl.createTexture();\n this.bind();\n this.setParameters();\n }\n\n bind(): void {\n const { gl } = this;\n gl.activeTexture(gl.TEXTURE0 + this.textureUnit);\n gl.bindTexture(gl.TEXTURE_2D, this.texture);\n }\n\n private setParameters(): void {\n const { gl } = this;\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, this.minFilter);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, this.magFilter);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, this.wrapS);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, this.wrapT);\n }\n\n /**\n * Upload image data to the texture (OGL-style)\n */\n image(source: TextureSource): void {\n const { gl } = this;\n if (!source) return;\n\n this.bind();\n\n if (this.flipY) {\n gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\n }\n\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, source);\n }\n\n /**\n * Update texture from video frame (call each frame for video textures)\n */\n update(source: TextureSource): void {\n this.image(source);\n }\n\n destroy(): void {\n this.gl.deleteTexture(this.texture);\n this.texture = null;\n }\n}\n\nexport { createShader, createProgram, setupFullscreenQuad, Texture };\n\nexport type { FullscreenQuadBuffers, TextureOptions, TextureParams, TextureSource };\n"],"names":["FULLSCREEN_QUAD_POSITIONS","Float32Array","FULLSCREEN_QUAD_UVS","createShader","gl","type","source","shader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","console","error","getShaderInfoLog","deleteShader","createProgram","vertexSource","fragmentSource","format","getShaderPrecisionFormat","FRAGMENT_SHADER","MEDIUM_FLOAT","precision","replace","vertexShader","VERTEX_SHADER","fragmentShader","program","attachShader","linkProgram","getProgramParameter","LINK_STATUS","getProgramInfoLog","deleteProgram","detachShader","setupFullscreenQuad","positionAttr","arguments","length","undefined","uvAttr","positionLocation","getAttribLocation","positionBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","STATIC_DRAW","enableVertexAttribArray","vertexAttribPointer","FLOAT","uvLocation","uvBuffer","Texture","_params$textureUnit","_params$minFilter","_params$magFilter","_params$wrapS","_params$wrapT","_params$flipY","params","_classCallCheck","textureUnit","minFilter","NEAREST","magFilter","wrapS","CLAMP_TO_EDGE","wrapT","flipY","texture","createTexture","bind","setParameters","_createClass","key","value","activeTexture","TEXTURE0","bindTexture","TEXTURE_2D","texParameteri","TEXTURE_MIN_FILTER","TEXTURE_MAG_FILTER","TEXTURE_WRAP_S","TEXTURE_WRAP_T","image","pixelStorei","UNPACK_FLIP_Y_WEBGL","texImage2D","RGBA","UNSIGNED_BYTE","update","destroy","deleteTexture"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -78,6 +78,7 @@ import './LightBox/index.js';
|
|
|
78
78
|
import './ListView/index.js';
|
|
79
79
|
import './Preview/index.js';
|
|
80
80
|
import './GenUI/index.js';
|
|
81
|
+
import './Spark/index.js';
|
|
81
82
|
export { Accordion } from './Accordion/Accordion.js';
|
|
82
83
|
export { AccordionItemHeader } from './Accordion/AccordionItemHeader.js';
|
|
83
84
|
export { AccordionItemBody } from './Accordion/AccordionItemBody.js';
|
|
@@ -683,4 +684,6 @@ export { Preview, PreviewBody, PreviewFooter, PreviewHeader } from './Preview/Pr
|
|
|
683
684
|
export { GenUIProvider } from './GenUI/GenUIProvider.web.js';
|
|
684
685
|
export { useGenUI, useGenUIAction } from './GenUI/GenUIContext.web.js';
|
|
685
686
|
export { GenUISchemaRenderer } from './GenUI/GenUISchemaRenderer.web.js';
|
|
687
|
+
export { RzpGlass as RazorSense } from './Spark/RzpGlass/RzpGlass.js';
|
|
688
|
+
export { FluidGradient as RazorSenseGradient } from './Spark/RazorSenseGradient/FluidGradient.js';
|
|
686
689
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getDefaultExportFromCjs } from '../../../../_virtual/_commonjsHelpers.js';
|
|
2
|
-
import { __exports as flatten$1 } from '../../../../_virtual/
|
|
2
|
+
import { __exports as flatten$1 } from '../../../../_virtual/flatten4.js';
|
|
3
3
|
|
|
4
4
|
(function (exports) {
|
|
5
5
|
'use strict';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getDefaultExportFromCjs } from '../../../../../_virtual/_commonjsHelpers.js';
|
|
2
|
-
import { __exports as flatten$1 } from '../../../../../_virtual/
|
|
2
|
+
import { __exports as flatten$1 } from '../../../../../_virtual/flatten2.js';
|
|
3
3
|
import '../../../../../_virtual/isArrayLike.js';
|
|
4
4
|
import { __exports as isArrayLike } from '../../../../../_virtual/isArrayLike2.js';
|
|
5
5
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { getDefaultExportFromCjs } from '../../../../../_virtual/_commonjsHelpers.js';
|
|
2
2
|
import { __exports as sortBy$1 } from '../../../../../_virtual/sortBy2.js';
|
|
3
3
|
import '../../../../../_virtual/orderBy.js';
|
|
4
|
-
import '../../../../../_virtual/
|
|
4
|
+
import '../../../../../_virtual/flatten3.js';
|
|
5
5
|
import '../../../../../_virtual/isIterateeCall.js';
|
|
6
6
|
import { __exports as orderBy } from '../../../../../_virtual/orderBy2.js';
|
|
7
|
-
import { __exports as flatten } from '../../../../../_virtual/
|
|
7
|
+
import { __exports as flatten } from '../../../../../_virtual/flatten4.js';
|
|
8
8
|
import { __exports as isIterateeCall } from '../../../../../_virtual/isIterateeCall2.js';
|
|
9
9
|
|
|
10
10
|
(function (exports) {
|
|
@@ -5,14 +5,14 @@ import '../../../../../_virtual/keysIn.js';
|
|
|
5
5
|
import '../../../../../_virtual/unset.js';
|
|
6
6
|
import '../../../../../_virtual/getSymbolsIn.js';
|
|
7
7
|
import '../../../../../_virtual/isDeepKey.js';
|
|
8
|
-
import '../../../../../_virtual/
|
|
8
|
+
import '../../../../../_virtual/flatten.js';
|
|
9
9
|
import '../../../../../_virtual/isPlainObject.js';
|
|
10
10
|
import { __exports as cloneDeepWith } from '../../../../../_virtual/cloneDeepWith2.js';
|
|
11
11
|
import { __exports as keysIn } from '../../../../../_virtual/keysIn2.js';
|
|
12
12
|
import { __exports as unset } from '../../../../../_virtual/unset2.js';
|
|
13
13
|
import { __exports as getSymbolsIn } from '../../../../../_virtual/getSymbolsIn2.js';
|
|
14
14
|
import { __exports as isDeepKey } from '../../../../../_virtual/isDeepKey2.js';
|
|
15
|
-
import { __exports as flatten } from '../../../../../_virtual/
|
|
15
|
+
import { __exports as flatten } from '../../../../../_virtual/flatten2.js';
|
|
16
16
|
import { __exports as isPlainObject } from '../../../../../_virtual/isPlainObject2.js';
|
|
17
17
|
|
|
18
18
|
(function (exports) {
|
|
@@ -80,33 +80,44 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
|
|
|
80
80
|
};
|
|
81
81
|
useEffect(function () {
|
|
82
82
|
var valueNotEmpty = typeof value === 'string' && value.trim() !== '' || Array.isArray(value) && value.length > 0;
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
|
|
84
|
+
// Compare actual selected values (not just lengths) to detect controlled value changes
|
|
85
|
+
var currentSelectedValues = selectedIndices.map(function (i) {
|
|
86
|
+
var _options$i;
|
|
87
|
+
return (_options$i = options[i]) === null || _options$i === void 0 ? void 0 : _options$i.value;
|
|
88
|
+
});
|
|
89
|
+
var isSingleValueSynced = typeof value === 'string' && currentSelectedValues.length === 1 && currentSelectedValues[0] === value;
|
|
90
|
+
var isMultiValueSynced = Array.isArray(value) && value.length === currentSelectedValues.length && value.every(function (v) {
|
|
91
|
+
return currentSelectedValues.includes(v);
|
|
92
|
+
});
|
|
93
|
+
var isValueAndSelectedIndicesSynced = isSingleValueSynced || isMultiValueSynced;
|
|
85
94
|
if (isUnControlled) {
|
|
86
95
|
if (listViewSelectedFilters[label]) {
|
|
87
|
-
var
|
|
88
|
-
setSelectedIndices(
|
|
89
|
-
var inputValue =
|
|
96
|
+
var savedIndices = listViewSelectedFilters[label];
|
|
97
|
+
setSelectedIndices(savedIndices);
|
|
98
|
+
var inputValue = savedIndices.map(function (selectionIndex) {
|
|
90
99
|
return options[selectionIndex].value;
|
|
91
100
|
});
|
|
92
101
|
setUncontrolledInputValue(inputValue);
|
|
93
102
|
setFilterChipGroupSelectedFilters(function (prev) {
|
|
94
103
|
return prev.includes(label) ? prev : [].concat(_toConsumableArray(prev), [label]);
|
|
95
104
|
});
|
|
105
|
+
} else {
|
|
106
|
+
setSelectedIndices([]);
|
|
96
107
|
}
|
|
97
108
|
} else if (listViewSelectedFilters[label]) {
|
|
98
|
-
var
|
|
99
|
-
setSelectedIndices(
|
|
100
|
-
//
|
|
101
|
-
} else if (valueNotEmpty && !
|
|
102
|
-
var
|
|
109
|
+
var _savedIndices = listViewSelectedFilters[label];
|
|
110
|
+
setSelectedIndices(_savedIndices);
|
|
111
|
+
// Sync selected indices when controlled value changes or on first render with options loaded
|
|
112
|
+
} else if (valueNotEmpty && !isValueAndSelectedIndicesSynced && options.length > 0) {
|
|
113
|
+
var newSelectedIndices = typeof value === 'string' ? [options.findIndex(function (option) {
|
|
103
114
|
return option.value === value;
|
|
104
115
|
})] : options.map(function (option, index) {
|
|
105
116
|
return value.includes(option.value) ? index : -1;
|
|
106
117
|
}).filter(function (index) {
|
|
107
118
|
return index !== -1;
|
|
108
119
|
});
|
|
109
|
-
setSelectedIndices(
|
|
120
|
+
setSelectedIndices(newSelectedIndices);
|
|
110
121
|
}
|
|
111
122
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
112
123
|
}, [isUnControlled, options]);
|
|
@@ -135,10 +146,6 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
|
|
|
135
146
|
name: name !== null && name !== void 0 ? name : idBase,
|
|
136
147
|
values: []
|
|
137
148
|
});
|
|
138
|
-
if (isUnControlled) {
|
|
139
|
-
setUncontrolledInputValue([]);
|
|
140
|
-
setSelectedIndices([]);
|
|
141
|
-
}
|
|
142
149
|
setFilterChipGroupSelectedFilters(function (prev) {
|
|
143
150
|
return prev.filter(function (filter) {
|
|
144
151
|
return filter !== label;
|
|
@@ -149,6 +156,7 @@ var _FilterChipSelectInput = function _FilterChipSelectInput(props) {
|
|
|
149
156
|
updatedFilters = _objectWithoutProperties(prev, [label].map(_toPropertyKey));
|
|
150
157
|
return updatedFilters;
|
|
151
158
|
});
|
|
159
|
+
setUncontrolledInputValue([]);
|
|
152
160
|
setSelectedIndices([]);
|
|
153
161
|
};
|
|
154
162
|
useEffect(function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterChipSelectInput.web.js","sources":["../../../../../../src/components/Dropdown/FilterChipSelectInput.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n\nimport React, { useEffect } from 'react';\nimport { useDropdown } from './useDropdown';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { useFilterChipGroupContext } from './FilterChipGroupContext.web';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { BaseFilterChip } from '~components/FilterChip/BaseFilterChip';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport type { BaseFilterChipProps } from '~components/FilterChip/types';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { useId } from '~utils/useId';\nimport { useListViewFilterContext } from '~components/ListView/ListViewFiltersContext.web';\nimport { useFirstRender } from '~utils/useFirstRender';\n\ntype FilterChipSelectInputProps = Pick<\n BaseFilterChipProps,\n 'onKeyDown' | 'value' | 'label' | 'testID' | 'onClick' | 'selectionType' | 'onBlur'\n> & {\n accessibilityLabel?: string;\n onChange?: (props: { name: string; values: string[] }) => void;\n name?: string;\n onClearButtonClick?: (props: { name: string; values: string[] }) => void;\n isDisabled?: boolean;\n} & DataAnalyticsAttribute;\n\nconst _FilterChipSelectInput = (props: FilterChipSelectInputProps): React.ReactElement => {\n const idBase = useId('filter-chip-select-input');\n const {\n onClick,\n onBlur,\n onKeyDown,\n accessibilityLabel,\n testID,\n value,\n onClearButtonClick,\n label,\n onChange,\n name,\n isDisabled,\n ...rest\n } = props;\n const [uncontrolledInputValue, setUncontrolledInputValue] = React.useState<string[]>([]);\n const isFirstRender = useFirstRender();\n\n const {\n options,\n selectedIndices,\n onTriggerClick,\n onTriggerKeydown,\n dropdownBaseId,\n isOpen,\n activeIndex,\n hasFooterAction,\n triggererRef,\n selectionType,\n isControlled,\n setSelectedIndices,\n controlledValueIndices,\n changeCallbackTriggerer,\n } = useDropdown();\n const valueTitle = options.find((option) => option.value === value)?.title ?? value;\n\n const isUnControlled = options.length > 0 && props.value === undefined;\n // Currently we are having 2 context for selectedFilters. One is for FilterChipGroup and other is for ListView\n const { listViewSelectedFilters, setListViewSelectedFilters } = useListViewFilterContext();\n const {\n clearFilterCallbackTriggerer,\n setFilterChipGroupSelectedFilters,\n } = useFilterChipGroupContext();\n\n const getValuesArrayFromIndices = (): string[] => {\n let indices: number[] = [];\n if (isControlled) {\n indices = controlledValueIndices;\n } else {\n indices = selectedIndices;\n }\n\n return indices.map((selectionIndex) => options[selectionIndex].value);\n };\n\n useEffect(() => {\n const valueNotEmpty =\n (typeof value === 'string' && value.trim() !== '') ||\n (Array.isArray(value) && value.length > 0);\n // since we need to sync state only one time so skipping value checking.\n const isValueAndSelectedOptoinsSynced =\n (typeof value === 'string' && value && selectedIndices.length === 1) ||\n (Array.isArray(value) && value.length === selectedIndices.length);\n if (isUnControlled) {\n if (listViewSelectedFilters[label]) {\n const value = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(value);\n const inputValue = value.map((selectionIndex) => options[selectionIndex].value);\n setUncontrolledInputValue(inputValue);\n setFilterChipGroupSelectedFilters((prev) =>\n prev.includes(label) ? prev : [...prev, label],\n );\n }\n } else if (listViewSelectedFilters[label]) {\n const value = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(value);\n // This would be the case when filterChipSelectInput is controlled and are being opened first time\n } else if (valueNotEmpty && !isValueAndSelectedOptoinsSynced && options.length > 0) {\n const selectedIndices =\n typeof value === 'string'\n ? [options.findIndex((option) => option.value === value)]\n : options\n .map((option, index) => (value.includes(option.value) ? index : -1))\n .filter((index) => index !== -1);\n setSelectedIndices(selectedIndices);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isUnControlled, options]);\n\n const getTitleFromValue = (value: string): string => {\n const option = options.find((option) => option.value === value);\n return option ? option.title : '';\n };\n\n const getUnControlledFilterChipValue = (): string | string[] => {\n if (selectionType === 'single') {\n if (uncontrolledInputValue.length > 0) {\n return getTitleFromValue(uncontrolledInputValue[0]);\n }\n return '';\n }\n return uncontrolledInputValue;\n };\n\n const handleClearButtonClick = (): void => {\n props.onClearButtonClick?.({ name: name ?? idBase, values: getValuesArrayFromIndices() });\n props.onChange?.({ name: name ?? idBase, values: [] });\n if (isUnControlled) {\n setUncontrolledInputValue([]);\n setSelectedIndices([]);\n }\n setFilterChipGroupSelectedFilters((prev) => prev.filter((filter) => filter !== label));\n setListViewSelectedFilters((prev) => {\n const { [label]: _, ...updatedFilters } = prev;\n return updatedFilters;\n });\n setSelectedIndices([]);\n };\n\n useEffect(() => {\n if (clearFilterCallbackTriggerer) {\n handleClearButtonClick();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clearFilterCallbackTriggerer]);\n\n useEffect(() => {\n if (!isFirstRender) {\n props.onChange?.({\n name: props.name || idBase,\n values: getValuesArrayFromIndices(),\n });\n if (isUnControlled) {\n setUncontrolledInputValue(getValuesArrayFromIndices());\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n useEffect(() => {\n const isValueEmpty = selectedIndices.length === 0;\n if (!isFirstRender && !isValueEmpty) {\n setFilterChipGroupSelectedFilters((prev) => (prev.includes(label) ? prev : [...prev, label]));\n setListViewSelectedFilters((prev) => ({\n ...prev,\n [label]: selectedIndices as number[],\n }));\n } else if (!isFirstRender && isValueEmpty) {\n setFilterChipGroupSelectedFilters((prev) => prev.filter((filter) => filter !== label));\n setListViewSelectedFilters((prev) => {\n const { [label]: _, ...updatedFilters } = prev;\n return updatedFilters;\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n\n const handleKeyDown = (e: React.KeyboardEvent<Element>): void => {\n onKeyDown?.(e);\n onTriggerKeydown?.({ event: e as React.KeyboardEvent<HTMLInputElement> });\n\n if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n }\n\n if ((e.key === 'Enter' || e.key === ' ') && !isOpen) {\n e.preventDefault();\n e.stopPropagation();\n onTriggerClick();\n }\n };\n\n return (\n <BaseFilterChip\n label={label}\n value={valueTitle ?? getUnControlledFilterChipValue()}\n onClearButtonClick={handleClearButtonClick}\n selectionType={selectionType}\n {...rest}\n ref={triggererRef as any}\n onKeyDown={handleKeyDown}\n accessibilityProps={{\n label: accessibilityLabel ?? label,\n hasPopup: getActionListContainerRole(hasFooterAction, 'FilterChipSelectInput'),\n expanded: isOpen,\n controls: `${dropdownBaseId}-actionlist`,\n activeDescendant: activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined,\n }}\n onClick={(e) => {\n onTriggerClick();\n onClick?.(e);\n }}\n onBlur={(e) => {\n onBlur?.(e);\n }}\n isDisabled={isDisabled}\n />\n );\n};\n\nconst FilterChipSelectInput = assignWithoutSideEffects(_FilterChipSelectInput, {\n componentId: dropdownComponentIds.triggers.FilterChipSelectInput,\n});\n\nexport { FilterChipSelectInput };\n"],"names":["_FilterChipSelectInput","props","_options$find$title","_options$find","idBase","useId","onClick","onBlur","onKeyDown","accessibilityLabel","testID","value","onClearButtonClick","label","onChange","name","isDisabled","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","uncontrolledInputValue","setUncontrolledInputValue","isFirstRender","useFirstRender","_useDropdown","useDropdown","options","selectedIndices","onTriggerClick","onTriggerKeydown","dropdownBaseId","isOpen","activeIndex","hasFooterAction","triggererRef","selectionType","isControlled","setSelectedIndices","controlledValueIndices","changeCallbackTriggerer","valueTitle","find","option","title","isUnControlled","length","undefined","_useListViewFilterCon","useListViewFilterContext","listViewSelectedFilters","setListViewSelectedFilters","_useFilterChipGroupCo","useFilterChipGroupContext","clearFilterCallbackTriggerer","setFilterChipGroupSelectedFilters","getValuesArrayFromIndices","indices","map","selectionIndex","useEffect","valueNotEmpty","trim","Array","isArray","isValueAndSelectedOptoinsSynced","inputValue","prev","includes","concat","_toConsumableArray","findIndex","index","filter","getTitleFromValue","getUnControlledFilterChipValue","handleClearButtonClick","_props$onClearButtonC","_props$onChange","call","values","_","updatedFilters","_toPropertyKey","_props$onChange2","isValueEmpty","_objectSpread","_defineProperty","handleKeyDown","e","event","key","preventDefault","stopPropagation","_jsx","BaseFilterChip","ref","accessibilityProps","hasPopup","getActionListContainerRole","expanded","controls","activeDescendant","FilterChipSelectInput","assignWithoutSideEffects","componentId","dropdownComponentIds","triggers"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FilterChipSelectInput.web.js","sources":["../../../../../../src/components/Dropdown/FilterChipSelectInput.web.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-unnecessary-type-assertion */\n\nimport React, { useEffect } from 'react';\nimport { useDropdown } from './useDropdown';\nimport { dropdownComponentIds } from './dropdownComponentIds';\nimport { useFilterChipGroupContext } from './FilterChipGroupContext.web';\nimport type { DataAnalyticsAttribute } from '~utils/types';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { BaseFilterChip } from '~components/FilterChip/BaseFilterChip';\nimport { getActionListContainerRole } from '~components/ActionList/getA11yRoles';\nimport type { BaseFilterChipProps } from '~components/FilterChip/types';\nimport { useId } from '~utils/useId';\nimport { useListViewFilterContext } from '~components/ListView/ListViewFiltersContext.web';\nimport { useFirstRender } from '~utils/useFirstRender';\n\ntype FilterChipSelectInputProps = Pick<\n BaseFilterChipProps,\n 'onKeyDown' | 'value' | 'label' | 'testID' | 'onClick' | 'selectionType' | 'onBlur'\n> & {\n accessibilityLabel?: string;\n onChange?: (props: { name: string; values: string[] }) => void;\n name?: string;\n onClearButtonClick?: (props: { name: string; values: string[] }) => void;\n isDisabled?: boolean;\n} & DataAnalyticsAttribute;\n\nconst _FilterChipSelectInput = (props: FilterChipSelectInputProps): React.ReactElement => {\n const idBase = useId('filter-chip-select-input');\n const {\n onClick,\n onBlur,\n onKeyDown,\n accessibilityLabel,\n testID,\n value,\n onClearButtonClick,\n label,\n onChange,\n name,\n isDisabled,\n ...rest\n } = props;\n const [uncontrolledInputValue, setUncontrolledInputValue] = React.useState<string[]>([]);\n const isFirstRender = useFirstRender();\n\n const {\n options,\n selectedIndices,\n onTriggerClick,\n onTriggerKeydown,\n dropdownBaseId,\n isOpen,\n activeIndex,\n hasFooterAction,\n triggererRef,\n selectionType,\n isControlled,\n setSelectedIndices,\n controlledValueIndices,\n changeCallbackTriggerer,\n } = useDropdown();\n const valueTitle = options.find((option) => option.value === value)?.title ?? value;\n\n const isUnControlled = options.length > 0 && props.value === undefined;\n // Currently we are having 2 context for selectedFilters. One is for FilterChipGroup and other is for ListView\n const { listViewSelectedFilters, setListViewSelectedFilters } = useListViewFilterContext();\n const {\n clearFilterCallbackTriggerer,\n setFilterChipGroupSelectedFilters,\n } = useFilterChipGroupContext();\n\n const getValuesArrayFromIndices = (): string[] => {\n let indices: number[] = [];\n if (isControlled) {\n indices = controlledValueIndices;\n } else {\n indices = selectedIndices;\n }\n\n return indices.map((selectionIndex) => options[selectionIndex].value);\n };\n\n useEffect(() => {\n const valueNotEmpty =\n (typeof value === 'string' && value.trim() !== '') ||\n (Array.isArray(value) && value.length > 0);\n\n // Compare actual selected values (not just lengths) to detect controlled value changes\n const currentSelectedValues = selectedIndices.map((i) => options[i]?.value);\n const isSingleValueSynced =\n typeof value === 'string' &&\n currentSelectedValues.length === 1 &&\n currentSelectedValues[0] === value;\n\n const isMultiValueSynced =\n Array.isArray(value) &&\n value.length === currentSelectedValues.length &&\n value.every((v) => currentSelectedValues.includes(v));\n\n const isValueAndSelectedIndicesSynced = isSingleValueSynced || isMultiValueSynced;\n\n if (isUnControlled) {\n if (listViewSelectedFilters[label]) {\n const savedIndices = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(savedIndices);\n const inputValue = savedIndices.map((selectionIndex) => options[selectionIndex].value);\n setUncontrolledInputValue(inputValue);\n setFilterChipGroupSelectedFilters((prev) =>\n prev.includes(label) ? prev : [...prev, label],\n );\n } else {\n setSelectedIndices([]);\n }\n } else if (listViewSelectedFilters[label]) {\n const savedIndices = (listViewSelectedFilters[label] as unknown) as number[];\n setSelectedIndices(savedIndices);\n // Sync selected indices when controlled value changes or on first render with options loaded\n } else if (valueNotEmpty && !isValueAndSelectedIndicesSynced && options.length > 0) {\n const newSelectedIndices =\n typeof value === 'string'\n ? [options.findIndex((option) => option.value === value)]\n : options\n .map((option, index) => (value.includes(option.value) ? index : -1))\n .filter((index) => index !== -1);\n setSelectedIndices(newSelectedIndices);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isUnControlled, options]);\n\n const getTitleFromValue = (value: string): string => {\n const option = options.find((option) => option.value === value);\n return option ? option.title : '';\n };\n\n const getUnControlledFilterChipValue = (): string | string[] => {\n if (selectionType === 'single') {\n if (uncontrolledInputValue.length > 0) {\n return getTitleFromValue(uncontrolledInputValue[0]);\n }\n return '';\n }\n return uncontrolledInputValue;\n };\n\n const handleClearButtonClick = (): void => {\n props.onClearButtonClick?.({ name: name ?? idBase, values: getValuesArrayFromIndices() });\n props.onChange?.({ name: name ?? idBase, values: [] });\n setFilterChipGroupSelectedFilters((prev) => prev.filter((filter) => filter !== label));\n setListViewSelectedFilters((prev) => {\n const { [label]: _, ...updatedFilters } = prev;\n return updatedFilters;\n });\n setUncontrolledInputValue([]);\n setSelectedIndices([]);\n };\n\n useEffect(() => {\n if (clearFilterCallbackTriggerer) {\n handleClearButtonClick();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clearFilterCallbackTriggerer]);\n\n useEffect(() => {\n if (!isFirstRender) {\n props.onChange?.({\n name: props.name || idBase,\n values: getValuesArrayFromIndices(),\n });\n if (isUnControlled) {\n setUncontrolledInputValue(getValuesArrayFromIndices());\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n useEffect(() => {\n const isValueEmpty = selectedIndices.length === 0;\n if (!isFirstRender && !isValueEmpty) {\n setFilterChipGroupSelectedFilters((prev) => (prev.includes(label) ? prev : [...prev, label]));\n setListViewSelectedFilters((prev) => ({\n ...prev,\n [label]: selectedIndices as number[],\n }));\n } else if (!isFirstRender && isValueEmpty) {\n setFilterChipGroupSelectedFilters((prev) => prev.filter((filter) => filter !== label));\n setListViewSelectedFilters((prev) => {\n const { [label]: _, ...updatedFilters } = prev;\n return updatedFilters;\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [changeCallbackTriggerer]);\n\n const handleKeyDown = (e: React.KeyboardEvent<Element>): void => {\n onKeyDown?.(e);\n onTriggerKeydown?.({ event: e as React.KeyboardEvent<HTMLInputElement> });\n\n if (e.key === 'Escape') {\n e.preventDefault();\n e.stopPropagation();\n }\n\n if ((e.key === 'Enter' || e.key === ' ') && !isOpen) {\n e.preventDefault();\n e.stopPropagation();\n onTriggerClick();\n }\n };\n return (\n <BaseFilterChip\n label={label}\n value={valueTitle ?? getUnControlledFilterChipValue()}\n onClearButtonClick={handleClearButtonClick}\n selectionType={selectionType}\n {...rest}\n ref={triggererRef as any}\n onKeyDown={handleKeyDown}\n accessibilityProps={{\n label: accessibilityLabel ?? label,\n hasPopup: getActionListContainerRole(hasFooterAction, 'FilterChipSelectInput'),\n expanded: isOpen,\n controls: `${dropdownBaseId}-actionlist`,\n activeDescendant: activeIndex >= 0 ? `${dropdownBaseId}-${activeIndex}` : undefined,\n }}\n onClick={(e) => {\n onTriggerClick();\n onClick?.(e);\n }}\n onBlur={(e) => {\n onBlur?.(e);\n }}\n isDisabled={isDisabled}\n />\n );\n};\n\nconst FilterChipSelectInput = assignWithoutSideEffects(_FilterChipSelectInput, {\n componentId: dropdownComponentIds.triggers.FilterChipSelectInput,\n});\n\nexport { FilterChipSelectInput };\n"],"names":["_FilterChipSelectInput","props","_options$find$title","_options$find","idBase","useId","onClick","onBlur","onKeyDown","accessibilityLabel","testID","value","onClearButtonClick","label","onChange","name","isDisabled","rest","_objectWithoutProperties","_excluded","_React$useState","React","useState","_React$useState2","_slicedToArray","uncontrolledInputValue","setUncontrolledInputValue","isFirstRender","useFirstRender","_useDropdown","useDropdown","options","selectedIndices","onTriggerClick","onTriggerKeydown","dropdownBaseId","isOpen","activeIndex","hasFooterAction","triggererRef","selectionType","isControlled","setSelectedIndices","controlledValueIndices","changeCallbackTriggerer","valueTitle","find","option","title","isUnControlled","length","undefined","_useListViewFilterCon","useListViewFilterContext","listViewSelectedFilters","setListViewSelectedFilters","_useFilterChipGroupCo","useFilterChipGroupContext","clearFilterCallbackTriggerer","setFilterChipGroupSelectedFilters","getValuesArrayFromIndices","indices","map","selectionIndex","useEffect","valueNotEmpty","trim","Array","isArray","currentSelectedValues","i","_options$i","isSingleValueSynced","isMultiValueSynced","every","v","includes","isValueAndSelectedIndicesSynced","savedIndices","inputValue","prev","concat","_toConsumableArray","newSelectedIndices","findIndex","index","filter","getTitleFromValue","getUnControlledFilterChipValue","handleClearButtonClick","_props$onClearButtonC","_props$onChange","call","values","_","updatedFilters","_toPropertyKey","_props$onChange2","isValueEmpty","_objectSpread","_defineProperty","handleKeyDown","e","event","key","preventDefault","stopPropagation","_jsx","BaseFilterChip","ref","accessibilityProps","hasPopup","getActionListContainerRole","expanded","controls","activeDescendant","FilterChipSelectInput","assignWithoutSideEffects","componentId","dropdownComponentIds","triggers"],"mappings":"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"}
|