@bigbinary/neeto-themes-frontend 2.1.0 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,174 @@
1
+ 'use strict';
2
+
3
+ var neetoCist = require('@bigbinary/neeto-cist');
4
+ var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
5
+ var _regeneratorRuntime = require('@babel/runtime/regenerator');
6
+ var Toastr = require('@bigbinary/neetoui/Toastr');
7
+
8
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
+
10
+ var _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGenerator);
11
+ var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
12
+ var Toastr__default = /*#__PURE__*/_interopDefaultLegacy(Toastr);
13
+
14
+ var BASE_URL = "neeto_themes_engine";
15
+ var WHITE = "255, 255, 255";
16
+ var BLACK = "0, 0, 0";
17
+
18
+ var getImageFromUrl = function getImageFromUrl(source) {
19
+ var image = new Image();
20
+ image.crossOrigin = "anonymous";
21
+ image.src = source;
22
+ return new Promise(function (resolve) {
23
+ image.onload = function () {
24
+ resolve(image);
25
+ };
26
+ });
27
+ };
28
+ var getDominantColorFromUrl = /*#__PURE__*/function () {
29
+ var _ref = _asyncToGenerator__default["default"]( /*#__PURE__*/_regeneratorRuntime__default["default"].mark(function _callee(imageUrl) {
30
+ var image, context, c;
31
+ return _regeneratorRuntime__default["default"].wrap(function _callee$(_context) {
32
+ while (1) switch (_context.prev = _context.next) {
33
+ case 0:
34
+ _context.prev = 0;
35
+ _context.next = 3;
36
+ return getImageFromUrl(imageUrl);
37
+ case 3:
38
+ image = _context.sent;
39
+ context = document.createElement("canvas").getContext("2d");
40
+ context === null || context === void 0 || context.drawImage(image, 0, 0, 1, 1);
41
+ c = context === null || context === void 0 ? void 0 : context.getImageData(0, 0, 1, 1).data;
42
+ if (!c) {
43
+ _context.next = 9;
44
+ break;
45
+ }
46
+ return _context.abrupt("return", "#".concat(((1 << 24) + (c[0] << 16) + (c[1] << 8) + c[2]).toString(16).slice(1)));
47
+ case 9:
48
+ return _context.abrupt("return", null);
49
+ case 12:
50
+ _context.prev = 12;
51
+ _context.t0 = _context["catch"](0);
52
+ Toastr__default["default"].error(_context.t0);
53
+ return _context.abrupt("return", null);
54
+ case 16:
55
+ case "end":
56
+ return _context.stop();
57
+ }
58
+ }, _callee, null, [[0, 12]]);
59
+ }));
60
+ return function getDominantColorFromUrl(_x) {
61
+ return _ref.apply(this, arguments);
62
+ };
63
+ }();
64
+ var scrollElementIntoView = function scrollElementIntoView(elementId) {
65
+ var elementToScroll = document.getElementById(elementId);
66
+ elementToScroll === null || elementToScroll === void 0 || elementToScroll.scrollIntoView({
67
+ behavior: "smooth"
68
+ });
69
+ };
70
+ var isFunction = function isFunction(obj) {
71
+ return typeof obj === "function";
72
+ };
73
+ var hexToRgba = function hexToRgba(hex) {
74
+ var result = /^#?(?:([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?|([a-f\d]{2})([a-f\d]{2})([a-f\d]{2}))$/i.exec(hex);
75
+ if (!result) return null;
76
+ var r = parseInt(result[1] || result[5], 16);
77
+ var g = parseInt(result[2] || result[6], 16);
78
+ var b = parseInt(result[3] || result[7], 16);
79
+ var a = result[4] ? Math.round(parseInt(result[4], 16) / 2.55) / 100 : undefined;
80
+ return "".concat(r, ", ").concat(g, ", ").concat(b).concat(a !== undefined ? ", ".concat(a) : "");
81
+ };
82
+
83
+ var root = document.querySelector(":root");
84
+ var applyNesting = function applyNesting(css, parent) {
85
+ return "\n.".concat(parent, " {\n ").concat(css, "\n}");
86
+ };
87
+ var setVariable = function setVariable(name, value, variableNamesMap) {
88
+ var variableName = variableNamesMap[name];
89
+ if (!variableName) return;
90
+ root.style.setProperty(variableName, value);
91
+ };
92
+ var isPropertyIndependent = function isPropertyIndependent(key, theme, schema) {
93
+ var property = neetoCist.findBy({
94
+ key: key
95
+ }, schema);
96
+ if (neetoCist.isNotPresent(property)) return false;
97
+ var conditionalKey = property === null || property === void 0 ? void 0 : property.dependsOn;
98
+ if (neetoCist.isNotPresent(conditionalKey)) return true;
99
+ var dependentPropertySchema = neetoCist.findBy({
100
+ key: conditionalKey
101
+ }, schema);
102
+ var dependentProperty = neetoCist.findBy({
103
+ key: conditionalKey
104
+ }, theme.properties);
105
+ if (dependentPropertySchema.kind === "image") {
106
+ var _theme$snakeToCamelCa;
107
+ return neetoCist.isPresent((_theme$snakeToCamelCa = theme[neetoCist.snakeToCamelCase(conditionalKey)]) === null || _theme$snakeToCamelCa === void 0 ? void 0 : _theme$snakeToCamelCa.url);
108
+ } else if (dependentPropertySchema.kind === "boolean") {
109
+ return (dependentProperty === null || dependentProperty === void 0 ? void 0 : dependentProperty.value) !== "false";
110
+ }
111
+ return neetoCist.isPresent(dependentProperty === null || dependentProperty === void 0 ? void 0 : dependentProperty.value);
112
+ };
113
+ var setCustomCSS = function setCustomCSS(_ref) {
114
+ var css = _ref.css,
115
+ elementId = _ref.elementId,
116
+ parentElementClass = _ref.parentElementClass;
117
+ var wrapper = document.querySelector(".".concat(parentElementClass));
118
+ if (!wrapper) return;
119
+ var styleTag = wrapper.querySelector("#".concat(elementId));
120
+ if (!styleTag) {
121
+ styleTag = document.createElement("style");
122
+ }
123
+ styleTag.textContent = applyNesting(css, parentElementClass);
124
+ styleTag.id = elementId;
125
+ wrapper.appendChild(styleTag);
126
+ };
127
+ var setTheme = function setTheme(theme, variableNamesMap, themeConfig) {
128
+ if (neetoCist.isNotPresent(theme === null || theme === void 0 ? void 0 : theme.properties)) return;
129
+ theme.properties.forEach(function (property) {
130
+ var attribute = neetoCist.snakeToCamelCase(property.key);
131
+ if (property.kind !== "overlay_opacity" && !isPropertyIndependent(property.key, theme, themeConfig)) {
132
+ setVariable(attribute, "", variableNamesMap);
133
+ return;
134
+ }
135
+ if (property.kind === "color") {
136
+ setVariable(attribute, hexToRgba(property.value), variableNamesMap);
137
+ } else if (property.kind === "overlay_opacity") {
138
+ var overlayOpacity = Number(property.value);
139
+ setVariable(neetoCist.snakeToCamelCase("".concat(property.key, "_overlay_opacity")), Math.abs(overlayOpacity / 100), variableNamesMap);
140
+ setVariable(neetoCist.snakeToCamelCase("".concat(property.key, "_overlay_color")), overlayOpacity < 0 ? BLACK : WHITE, variableNamesMap);
141
+ } else if (property.kind === "radius") {
142
+ setVariable(attribute, "".concat(property.value, "px"), variableNamesMap);
143
+ } else if (property.kind === "custom_css") {
144
+ var _findBy;
145
+ setCustomCSS({
146
+ css: property.value,
147
+ elementId: property.key,
148
+ parentElementClass: (_findBy = neetoCist.findBy({
149
+ kind: "custom_css"
150
+ }, themeConfig)) === null || _findBy === void 0 ? void 0 : _findBy.parentClass
151
+ });
152
+ } else {
153
+ setVariable(attribute, property.value, variableNamesMap);
154
+ }
155
+ });
156
+ neetoCist.filterBy({
157
+ kind: "image"
158
+ }, themeConfig).forEach(function (_ref2) {
159
+ var _theme$attribute;
160
+ var key = _ref2.key;
161
+ var attribute = neetoCist.snakeToCamelCase(key);
162
+ setVariable(attribute, "url(".concat((_theme$attribute = theme[attribute]) === null || _theme$attribute === void 0 ? void 0 : _theme$attribute.url, ")"), variableNamesMap);
163
+ });
164
+ };
165
+
166
+ exports.BASE_URL = BASE_URL;
167
+ exports.getDominantColorFromUrl = getDominantColorFromUrl;
168
+ exports.isFunction = isFunction;
169
+ exports.isPropertyIndependent = isPropertyIndependent;
170
+ exports.scrollElementIntoView = scrollElementIntoView;
171
+ exports.setCustomCSS = setCustomCSS;
172
+ exports.setTheme = setTheme;
173
+ exports.setVariable = setVariable;
174
+ //# sourceMappingURL=index-09d44807.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-09d44807.js","sources":["../app/javascript/src/constants/index.js","../app/javascript/src/components/utils.js","../app/javascript/src/utils/index.js"],"sourcesContent":["export const BASE_URL = \"neeto_themes_engine\";\nexport const WHITE = \"255, 255, 255\";\nexport const BLACK = \"0, 0, 0\";\n","import { Toastr } from \"neetoui\";\n\nexport const getImageFromUrl = source => {\n const image = new Image();\n image.crossOrigin = \"anonymous\";\n image.src = source;\n\n return new Promise(resolve => {\n image.onload = () => {\n resolve(image);\n };\n });\n};\n\nexport const getDominantColorFromUrl = async imageUrl => {\n try {\n const image = await getImageFromUrl(imageUrl);\n const context = document.createElement(\"canvas\").getContext(\"2d\");\n context?.drawImage(image, 0, 0, 1, 1);\n const c = context?.getImageData(0, 0, 1, 1).data;\n\n if (c) {\n return `#${((1 << 24) + (c[0] << 16) + (c[1] << 8) + c[2])\n .toString(16)\n .slice(1)}`;\n }\n\n return null;\n } catch (error) {\n Toastr.error(error);\n\n return null;\n }\n};\n\nexport const scrollElementIntoView = elementId => {\n const elementToScroll = document.getElementById(elementId);\n elementToScroll?.scrollIntoView({ behavior: \"smooth\" });\n};\n\nexport const isFunction = obj => typeof obj === \"function\";\n\nexport const hexToRgba = hex => {\n const result =\n /^#?(?:([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?|([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2}))$/i.exec(\n hex\n );\n\n if (!result) return null;\n\n const r = parseInt(result[1] || result[5], 16);\n const g = parseInt(result[2] || result[6], 16);\n const b = parseInt(result[3] || result[7], 16);\n const a = result[4]\n ? Math.round(parseInt(result[4], 16) / 2.55) / 100\n : undefined;\n\n return `${r}, ${g}, ${b}${a !== undefined ? `, ${a}` : \"\"}`;\n};\n\nexport const hexToRgb = hex => hexToRgba(hex?.slice(0, 7));\n","import {\n filterBy,\n findBy,\n isNotPresent,\n isPresent,\n snakeToCamelCase,\n} from \"neetocist\";\n\nimport { hexToRgba } from \"components/utils\";\nimport { BLACK, WHITE } from \"src/constants\";\n\nconst root = document.querySelector(\":root\");\n\nconst applyNesting = (css, parent) => `\n.${parent} {\n ${css}\n}`;\n\nexport const setVariable = (name, value, variableNamesMap) => {\n const variableName = variableNamesMap[name];\n if (!variableName) return;\n\n root.style.setProperty(variableName, value);\n};\n\nexport const isPropertyIndependent = (key, theme, schema) => {\n const property = findBy({ key }, schema);\n\n if (isNotPresent(property)) return false;\n\n const conditionalKey = property?.dependsOn;\n if (isNotPresent(conditionalKey)) return true;\n\n const dependentPropertySchema = findBy({ key: conditionalKey }, schema);\n\n const dependentProperty = findBy({ key: conditionalKey }, theme.properties);\n\n if (dependentPropertySchema.kind === \"image\") {\n return isPresent(theme[snakeToCamelCase(conditionalKey)]?.url);\n } else if (dependentPropertySchema.kind === \"boolean\") {\n return dependentProperty?.value !== \"false\";\n }\n\n return isPresent(dependentProperty?.value);\n};\n\nexport const setCustomCSS = ({ css, elementId, parentElementClass }) => {\n const wrapper = document.querySelector(`.${parentElementClass}`);\n if (!wrapper) return;\n\n let styleTag = wrapper.querySelector(`#${elementId}`);\n if (!styleTag) {\n styleTag = document.createElement(\"style\");\n }\n\n styleTag.textContent = applyNesting(css, parentElementClass);\n styleTag.id = elementId;\n wrapper.appendChild(styleTag);\n};\n\nexport const setTheme = (theme, variableNamesMap, themeConfig) => {\n if (isNotPresent(theme?.properties)) return;\n\n theme.properties.forEach(property => {\n const attribute = snakeToCamelCase(property.key);\n\n if (\n property.kind !== \"overlay_opacity\" &&\n !isPropertyIndependent(property.key, theme, themeConfig)\n ) {\n setVariable(attribute, \"\", variableNamesMap);\n\n return;\n }\n\n if (property.kind === \"color\") {\n setVariable(attribute, hexToRgba(property.value), variableNamesMap);\n } else if (property.kind === \"overlay_opacity\") {\n const overlayOpacity = Number(property.value);\n\n setVariable(\n snakeToCamelCase(`${property.key}_overlay_opacity`),\n Math.abs(overlayOpacity / 100),\n variableNamesMap\n );\n\n setVariable(\n snakeToCamelCase(`${property.key}_overlay_color`),\n overlayOpacity < 0 ? BLACK : WHITE,\n variableNamesMap\n );\n } else if (property.kind === \"radius\") {\n setVariable(attribute, `${property.value}px`, variableNamesMap);\n } else if (property.kind === \"custom_css\") {\n setCustomCSS({\n css: property.value,\n elementId: property.key,\n parentElementClass: findBy({ kind: \"custom_css\" }, themeConfig)\n ?.parentClass,\n });\n } else {\n setVariable(attribute, property.value, variableNamesMap);\n }\n });\n\n filterBy({ kind: \"image\" }, themeConfig).forEach(({ key }) => {\n const attribute = snakeToCamelCase(key);\n setVariable(attribute, `url(${theme[attribute]?.url})`, variableNamesMap);\n });\n};\n"],"names":["BASE_URL","WHITE","BLACK","getImageFromUrl","source","image","Image","crossOrigin","src","Promise","resolve","onload","getDominantColorFromUrl","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","imageUrl","context","c","wrap","_callee$","_context","prev","next","sent","document","createElement","getContext","drawImage","getImageData","data","abrupt","concat","toString","slice","t0","Toastr","error","stop","_x","apply","arguments","scrollElementIntoView","elementId","elementToScroll","getElementById","scrollIntoView","behavior","isFunction","obj","hexToRgba","hex","result","exec","r","parseInt","g","b","a","Math","round","undefined","root","querySelector","applyNesting","css","parent","setVariable","name","value","variableNamesMap","variableName","style","setProperty","isPropertyIndependent","key","theme","schema","property","findBy","isNotPresent","conditionalKey","dependsOn","dependentPropertySchema","dependentProperty","properties","kind","_theme$snakeToCamelCa","isPresent","snakeToCamelCase","url","setCustomCSS","parentElementClass","wrapper","styleTag","textContent","id","appendChild","setTheme","themeConfig","forEach","attribute","overlayOpacity","Number","abs","_findBy","parentClass","filterBy","_ref2","_theme$attribute"],"mappings":"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"}
@@ -0,0 +1,159 @@
1
+ import { findBy, isNotPresent, isPresent, snakeToCamelCase, filterBy } from '@bigbinary/neeto-cist';
2
+ import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
3
+ import _regeneratorRuntime from '@babel/runtime/regenerator';
4
+ import Toastr from '@bigbinary/neetoui/Toastr';
5
+
6
+ var BASE_URL = "neeto_themes_engine";
7
+ var WHITE = "255, 255, 255";
8
+ var BLACK = "0, 0, 0";
9
+
10
+ var getImageFromUrl = function getImageFromUrl(source) {
11
+ var image = new Image();
12
+ image.crossOrigin = "anonymous";
13
+ image.src = source;
14
+ return new Promise(function (resolve) {
15
+ image.onload = function () {
16
+ resolve(image);
17
+ };
18
+ });
19
+ };
20
+ var getDominantColorFromUrl = /*#__PURE__*/function () {
21
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(imageUrl) {
22
+ var image, context, c;
23
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
24
+ while (1) switch (_context.prev = _context.next) {
25
+ case 0:
26
+ _context.prev = 0;
27
+ _context.next = 3;
28
+ return getImageFromUrl(imageUrl);
29
+ case 3:
30
+ image = _context.sent;
31
+ context = document.createElement("canvas").getContext("2d");
32
+ context === null || context === void 0 || context.drawImage(image, 0, 0, 1, 1);
33
+ c = context === null || context === void 0 ? void 0 : context.getImageData(0, 0, 1, 1).data;
34
+ if (!c) {
35
+ _context.next = 9;
36
+ break;
37
+ }
38
+ return _context.abrupt("return", "#".concat(((1 << 24) + (c[0] << 16) + (c[1] << 8) + c[2]).toString(16).slice(1)));
39
+ case 9:
40
+ return _context.abrupt("return", null);
41
+ case 12:
42
+ _context.prev = 12;
43
+ _context.t0 = _context["catch"](0);
44
+ Toastr.error(_context.t0);
45
+ return _context.abrupt("return", null);
46
+ case 16:
47
+ case "end":
48
+ return _context.stop();
49
+ }
50
+ }, _callee, null, [[0, 12]]);
51
+ }));
52
+ return function getDominantColorFromUrl(_x) {
53
+ return _ref.apply(this, arguments);
54
+ };
55
+ }();
56
+ var scrollElementIntoView = function scrollElementIntoView(elementId) {
57
+ var elementToScroll = document.getElementById(elementId);
58
+ elementToScroll === null || elementToScroll === void 0 || elementToScroll.scrollIntoView({
59
+ behavior: "smooth"
60
+ });
61
+ };
62
+ var isFunction = function isFunction(obj) {
63
+ return typeof obj === "function";
64
+ };
65
+ var hexToRgba = function hexToRgba(hex) {
66
+ var result = /^#?(?:([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?|([a-f\d]{2})([a-f\d]{2})([a-f\d]{2}))$/i.exec(hex);
67
+ if (!result) return null;
68
+ var r = parseInt(result[1] || result[5], 16);
69
+ var g = parseInt(result[2] || result[6], 16);
70
+ var b = parseInt(result[3] || result[7], 16);
71
+ var a = result[4] ? Math.round(parseInt(result[4], 16) / 2.55) / 100 : undefined;
72
+ return "".concat(r, ", ").concat(g, ", ").concat(b).concat(a !== undefined ? ", ".concat(a) : "");
73
+ };
74
+
75
+ var root = document.querySelector(":root");
76
+ var applyNesting = function applyNesting(css, parent) {
77
+ return "\n.".concat(parent, " {\n ").concat(css, "\n}");
78
+ };
79
+ var setVariable = function setVariable(name, value, variableNamesMap) {
80
+ var variableName = variableNamesMap[name];
81
+ if (!variableName) return;
82
+ root.style.setProperty(variableName, value);
83
+ };
84
+ var isPropertyIndependent = function isPropertyIndependent(key, theme, schema) {
85
+ var property = findBy({
86
+ key: key
87
+ }, schema);
88
+ if (isNotPresent(property)) return false;
89
+ var conditionalKey = property === null || property === void 0 ? void 0 : property.dependsOn;
90
+ if (isNotPresent(conditionalKey)) return true;
91
+ var dependentPropertySchema = findBy({
92
+ key: conditionalKey
93
+ }, schema);
94
+ var dependentProperty = findBy({
95
+ key: conditionalKey
96
+ }, theme.properties);
97
+ if (dependentPropertySchema.kind === "image") {
98
+ var _theme$snakeToCamelCa;
99
+ return isPresent((_theme$snakeToCamelCa = theme[snakeToCamelCase(conditionalKey)]) === null || _theme$snakeToCamelCa === void 0 ? void 0 : _theme$snakeToCamelCa.url);
100
+ } else if (dependentPropertySchema.kind === "boolean") {
101
+ return (dependentProperty === null || dependentProperty === void 0 ? void 0 : dependentProperty.value) !== "false";
102
+ }
103
+ return isPresent(dependentProperty === null || dependentProperty === void 0 ? void 0 : dependentProperty.value);
104
+ };
105
+ var setCustomCSS = function setCustomCSS(_ref) {
106
+ var css = _ref.css,
107
+ elementId = _ref.elementId,
108
+ parentElementClass = _ref.parentElementClass;
109
+ var wrapper = document.querySelector(".".concat(parentElementClass));
110
+ if (!wrapper) return;
111
+ var styleTag = wrapper.querySelector("#".concat(elementId));
112
+ if (!styleTag) {
113
+ styleTag = document.createElement("style");
114
+ }
115
+ styleTag.textContent = applyNesting(css, parentElementClass);
116
+ styleTag.id = elementId;
117
+ wrapper.appendChild(styleTag);
118
+ };
119
+ var setTheme = function setTheme(theme, variableNamesMap, themeConfig) {
120
+ if (isNotPresent(theme === null || theme === void 0 ? void 0 : theme.properties)) return;
121
+ theme.properties.forEach(function (property) {
122
+ var attribute = snakeToCamelCase(property.key);
123
+ if (property.kind !== "overlay_opacity" && !isPropertyIndependent(property.key, theme, themeConfig)) {
124
+ setVariable(attribute, "", variableNamesMap);
125
+ return;
126
+ }
127
+ if (property.kind === "color") {
128
+ setVariable(attribute, hexToRgba(property.value), variableNamesMap);
129
+ } else if (property.kind === "overlay_opacity") {
130
+ var overlayOpacity = Number(property.value);
131
+ setVariable(snakeToCamelCase("".concat(property.key, "_overlay_opacity")), Math.abs(overlayOpacity / 100), variableNamesMap);
132
+ setVariable(snakeToCamelCase("".concat(property.key, "_overlay_color")), overlayOpacity < 0 ? BLACK : WHITE, variableNamesMap);
133
+ } else if (property.kind === "radius") {
134
+ setVariable(attribute, "".concat(property.value, "px"), variableNamesMap);
135
+ } else if (property.kind === "custom_css") {
136
+ var _findBy;
137
+ setCustomCSS({
138
+ css: property.value,
139
+ elementId: property.key,
140
+ parentElementClass: (_findBy = findBy({
141
+ kind: "custom_css"
142
+ }, themeConfig)) === null || _findBy === void 0 ? void 0 : _findBy.parentClass
143
+ });
144
+ } else {
145
+ setVariable(attribute, property.value, variableNamesMap);
146
+ }
147
+ });
148
+ filterBy({
149
+ kind: "image"
150
+ }, themeConfig).forEach(function (_ref2) {
151
+ var _theme$attribute;
152
+ var key = _ref2.key;
153
+ var attribute = snakeToCamelCase(key);
154
+ setVariable(attribute, "url(".concat((_theme$attribute = theme[attribute]) === null || _theme$attribute === void 0 ? void 0 : _theme$attribute.url, ")"), variableNamesMap);
155
+ });
156
+ };
157
+
158
+ export { BASE_URL as B, scrollElementIntoView as a, setCustomCSS as b, setVariable as c, isPropertyIndependent as d, getDominantColorFromUrl as g, isFunction as i, setTheme as s };
159
+ //# sourceMappingURL=index-383fae09.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-383fae09.js","sources":["../app/javascript/src/constants/index.js","../app/javascript/src/components/utils.js","../app/javascript/src/utils/index.js"],"sourcesContent":["export const BASE_URL = \"neeto_themes_engine\";\nexport const WHITE = \"255, 255, 255\";\nexport const BLACK = \"0, 0, 0\";\n","import { Toastr } from \"neetoui\";\n\nexport const getImageFromUrl = source => {\n const image = new Image();\n image.crossOrigin = \"anonymous\";\n image.src = source;\n\n return new Promise(resolve => {\n image.onload = () => {\n resolve(image);\n };\n });\n};\n\nexport const getDominantColorFromUrl = async imageUrl => {\n try {\n const image = await getImageFromUrl(imageUrl);\n const context = document.createElement(\"canvas\").getContext(\"2d\");\n context?.drawImage(image, 0, 0, 1, 1);\n const c = context?.getImageData(0, 0, 1, 1).data;\n\n if (c) {\n return `#${((1 << 24) + (c[0] << 16) + (c[1] << 8) + c[2])\n .toString(16)\n .slice(1)}`;\n }\n\n return null;\n } catch (error) {\n Toastr.error(error);\n\n return null;\n }\n};\n\nexport const scrollElementIntoView = elementId => {\n const elementToScroll = document.getElementById(elementId);\n elementToScroll?.scrollIntoView({ behavior: \"smooth\" });\n};\n\nexport const isFunction = obj => typeof obj === \"function\";\n\nexport const hexToRgba = hex => {\n const result =\n /^#?(?:([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?|([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2}))$/i.exec(\n hex\n );\n\n if (!result) return null;\n\n const r = parseInt(result[1] || result[5], 16);\n const g = parseInt(result[2] || result[6], 16);\n const b = parseInt(result[3] || result[7], 16);\n const a = result[4]\n ? Math.round(parseInt(result[4], 16) / 2.55) / 100\n : undefined;\n\n return `${r}, ${g}, ${b}${a !== undefined ? `, ${a}` : \"\"}`;\n};\n\nexport const hexToRgb = hex => hexToRgba(hex?.slice(0, 7));\n","import {\n filterBy,\n findBy,\n isNotPresent,\n isPresent,\n snakeToCamelCase,\n} from \"neetocist\";\n\nimport { hexToRgba } from \"components/utils\";\nimport { BLACK, WHITE } from \"src/constants\";\n\nconst root = document.querySelector(\":root\");\n\nconst applyNesting = (css, parent) => `\n.${parent} {\n ${css}\n}`;\n\nexport const setVariable = (name, value, variableNamesMap) => {\n const variableName = variableNamesMap[name];\n if (!variableName) return;\n\n root.style.setProperty(variableName, value);\n};\n\nexport const isPropertyIndependent = (key, theme, schema) => {\n const property = findBy({ key }, schema);\n\n if (isNotPresent(property)) return false;\n\n const conditionalKey = property?.dependsOn;\n if (isNotPresent(conditionalKey)) return true;\n\n const dependentPropertySchema = findBy({ key: conditionalKey }, schema);\n\n const dependentProperty = findBy({ key: conditionalKey }, theme.properties);\n\n if (dependentPropertySchema.kind === \"image\") {\n return isPresent(theme[snakeToCamelCase(conditionalKey)]?.url);\n } else if (dependentPropertySchema.kind === \"boolean\") {\n return dependentProperty?.value !== \"false\";\n }\n\n return isPresent(dependentProperty?.value);\n};\n\nexport const setCustomCSS = ({ css, elementId, parentElementClass }) => {\n const wrapper = document.querySelector(`.${parentElementClass}`);\n if (!wrapper) return;\n\n let styleTag = wrapper.querySelector(`#${elementId}`);\n if (!styleTag) {\n styleTag = document.createElement(\"style\");\n }\n\n styleTag.textContent = applyNesting(css, parentElementClass);\n styleTag.id = elementId;\n wrapper.appendChild(styleTag);\n};\n\nexport const setTheme = (theme, variableNamesMap, themeConfig) => {\n if (isNotPresent(theme?.properties)) return;\n\n theme.properties.forEach(property => {\n const attribute = snakeToCamelCase(property.key);\n\n if (\n property.kind !== \"overlay_opacity\" &&\n !isPropertyIndependent(property.key, theme, themeConfig)\n ) {\n setVariable(attribute, \"\", variableNamesMap);\n\n return;\n }\n\n if (property.kind === \"color\") {\n setVariable(attribute, hexToRgba(property.value), variableNamesMap);\n } else if (property.kind === \"overlay_opacity\") {\n const overlayOpacity = Number(property.value);\n\n setVariable(\n snakeToCamelCase(`${property.key}_overlay_opacity`),\n Math.abs(overlayOpacity / 100),\n variableNamesMap\n );\n\n setVariable(\n snakeToCamelCase(`${property.key}_overlay_color`),\n overlayOpacity < 0 ? BLACK : WHITE,\n variableNamesMap\n );\n } else if (property.kind === \"radius\") {\n setVariable(attribute, `${property.value}px`, variableNamesMap);\n } else if (property.kind === \"custom_css\") {\n setCustomCSS({\n css: property.value,\n elementId: property.key,\n parentElementClass: findBy({ kind: \"custom_css\" }, themeConfig)\n ?.parentClass,\n });\n } else {\n setVariable(attribute, property.value, variableNamesMap);\n }\n });\n\n filterBy({ kind: \"image\" }, themeConfig).forEach(({ key }) => {\n const attribute = snakeToCamelCase(key);\n setVariable(attribute, `url(${theme[attribute]?.url})`, variableNamesMap);\n });\n};\n"],"names":["BASE_URL","WHITE","BLACK","getImageFromUrl","source","image","Image","crossOrigin","src","Promise","resolve","onload","getDominantColorFromUrl","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","imageUrl","context","c","wrap","_callee$","_context","prev","next","sent","document","createElement","getContext","drawImage","getImageData","data","abrupt","concat","toString","slice","t0","Toastr","error","stop","_x","apply","arguments","scrollElementIntoView","elementId","elementToScroll","getElementById","scrollIntoView","behavior","isFunction","obj","hexToRgba","hex","result","exec","r","parseInt","g","b","a","Math","round","undefined","root","querySelector","applyNesting","css","parent","setVariable","name","value","variableNamesMap","variableName","style","setProperty","isPropertyIndependent","key","theme","schema","property","findBy","isNotPresent","conditionalKey","dependsOn","dependentPropertySchema","dependentProperty","properties","kind","_theme$snakeToCamelCa","isPresent","snakeToCamelCase","url","setCustomCSS","parentElementClass","wrapper","styleTag","textContent","id","appendChild","setTheme","themeConfig","forEach","attribute","overlayOpacity","Number","abs","_findBy","parentClass","filterBy","_ref2","_theme$attribute"],"mappings":"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"}