@pitcher/canvas-ui 2025.12.17-203045-beta → 2025.12.17-73332

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/canvas-ui.js CHANGED
@@ -87705,537 +87705,18 @@ function toast$2(payload) {
87705
87705
  return this.API.request("toast", payload);
87706
87706
  }
87707
87707
 
87708
- const SQL_KEYWORDS = /* @__PURE__ */ new Set([
87709
- "SELECT",
87710
- "FROM",
87711
- "WHERE",
87712
- "AND",
87713
- "OR",
87714
- "NOT",
87715
- "IN",
87716
- "LIKE",
87717
- "ORDER",
87718
- "BY",
87719
- "GROUP",
87720
- "HAVING",
87721
- "LIMIT",
87722
- "OFFSET",
87723
- "ASC",
87724
- "DESC",
87725
- "NULLS",
87726
- "FIRST",
87727
- "LAST",
87728
- "NULL",
87729
- "TRUE",
87730
- "FALSE",
87731
- "COUNT",
87732
- "SUM",
87733
- "AVG",
87734
- "MIN",
87735
- "MAX",
87736
- "COUNT_DISTINCT",
87737
- "CALENDAR_MONTH",
87738
- "CALENDAR_QUARTER",
87739
- "CALENDAR_YEAR",
87740
- "DAY_IN_MONTH",
87741
- "DAY_IN_WEEK",
87742
- "DAY_IN_YEAR",
87743
- "DAY_ONLY",
87744
- "FISCAL_MONTH",
87745
- "FISCAL_QUARTER",
87746
- "FISCAL_YEAR",
87747
- "HOUR_IN_DAY",
87748
- "WEEK_IN_MONTH",
87749
- "WEEK_IN_YEAR",
87750
- "INCLUDES",
87751
- "EXCLUDES",
87752
- "ABOVE",
87753
- "BELOW",
87754
- "ABOVE_OR_BELOW",
87755
- "AT",
87756
- "TYPEOF",
87757
- "WHEN",
87758
- "THEN",
87759
- "ELSE",
87760
- "END",
87761
- "USING",
87762
- "SCOPE",
87763
- "DATA",
87764
- "CATEGORY",
87765
- "ROLLUP",
87766
- "CUBE",
87767
- "FORMAT",
87768
- "CONVERTCURRENCY",
87769
- "TOLABEL",
87770
- "DISTANCE",
87771
- "GEOLOCATION"
87772
- ]);
87773
- const AGGREGATE_FUNCTIONS = ["COUNT", "SUM", "AVG", "MIN", "MAX", "COUNT_DISTINCT"];
87774
- function isSqlKeyword(word) {
87775
- return SQL_KEYWORDS.has(word.toUpperCase());
87776
- }
87777
- function isLiteralValue(value) {
87778
- const trimmed = value.trim();
87779
- if (trimmed.startsWith("'") && trimmed.endsWith("'") || trimmed.startsWith('"') && trimmed.endsWith('"')) {
87780
- return true;
87781
- }
87782
- if (/^-?\d+(\.\d+)?$/.test(trimmed)) {
87783
- return true;
87784
- }
87785
- if (/^(true|false)$/i.test(trimmed)) {
87786
- return true;
87787
- }
87788
- if (/^null$/i.test(trimmed)) {
87789
- return true;
87790
- }
87791
- if (/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d{3})?(Z|[+-]\d{2}:\d{2})?)?$/.test(trimmed)) {
87792
- return true;
87793
- }
87794
- if (/^(TODAY|YESTERDAY|TOMORROW|LAST_WEEK|THIS_WEEK|NEXT_WEEK|LAST_MONTH|THIS_MONTH|NEXT_MONTH|LAST_90_DAYS|NEXT_90_DAYS|LAST_N_DAYS:\d+|NEXT_N_DAYS:\d+|LAST_N_WEEKS:\d+|NEXT_N_WEEKS:\d+|LAST_N_MONTHS:\d+|NEXT_N_MONTHS:\d+|LAST_N_QUARTERS:\d+|NEXT_N_QUARTERS:\d+|LAST_N_YEARS:\d+|NEXT_N_YEARS:\d+|THIS_QUARTER|LAST_QUARTER|NEXT_QUARTER|THIS_YEAR|LAST_YEAR|NEXT_YEAR|THIS_FISCAL_QUARTER|LAST_FISCAL_QUARTER|NEXT_FISCAL_QUARTER|THIS_FISCAL_YEAR|LAST_FISCAL_YEAR|NEXT_FISCAL_YEAR)$/i.test(
87795
- trimmed
87796
- )) {
87797
- return true;
87798
- }
87799
- return false;
87800
- }
87801
- function isDateTimeLiteral(token) {
87802
- return /^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d{3})?(Z|[+-]\d{2}:\d{2})?)?$/.test(token);
87803
- }
87804
- function convertFieldToSmartStore(field, primaryObject, objectAliases) {
87805
- const trimmed = field.trim();
87806
- if (isSqlKeyword(trimmed) || isLiteralValue(trimmed)) {
87807
- return trimmed;
87808
- }
87809
- if (trimmed === "__FIELDS_ALL_PLACEHOLDER__") {
87810
- return `{${primaryObject}:_soup}`;
87811
- }
87812
- if (trimmed === "*") {
87813
- return "*";
87814
- }
87815
- if (trimmed.startsWith("{") && trimmed.endsWith("}")) {
87816
- return trimmed;
87817
- }
87818
- if (trimmed.includes(".")) {
87819
- const parts = trimmed.split(".");
87820
- const alias = parts[0];
87821
- if (objectAliases.has(alias.toLowerCase()) && objectAliases.get(alias.toLowerCase()) === primaryObject) {
87822
- const fieldPath = parts.slice(1).join(".");
87823
- return `{${primaryObject}:${fieldPath}}`;
87824
- }
87825
- return `{${primaryObject}:${trimmed}}`;
87826
- }
87827
- return `{${primaryObject}:${trimmed}}`;
87828
- }
87829
- function convertAggregateFunction(expr, primaryObject, objectAliases) {
87830
- for (const func of AGGREGATE_FUNCTIONS) {
87831
- const regex = new RegExp(`\\b${func}\\s*\\(([^)]+)\\)`, "gi");
87832
- expr = expr.replace(regex, (_match, innerField) => {
87833
- const trimmedInner = innerField.trim();
87834
- if (trimmedInner === "*") {
87835
- return `${func}(*)`;
87836
- }
87837
- if (trimmedInner.toUpperCase().startsWith("DISTINCT ")) {
87838
- const fieldPart = trimmedInner.substring(9).trim();
87839
- const smartField2 = convertFieldToSmartStore(fieldPart, primaryObject, objectAliases);
87840
- return `${func}(DISTINCT ${smartField2})`;
87841
- }
87842
- const smartField = convertFieldToSmartStore(trimmedInner, primaryObject, objectAliases);
87843
- return `${func}(${smartField})`;
87844
- });
87845
- }
87846
- return expr;
87847
- }
87848
- function parseSelectFields(selectClause) {
87849
- const fields = [];
87850
- let depth = 0;
87851
- let currentField = "";
87852
- for (let i = 0; i < selectClause.length; i++) {
87853
- const char = selectClause[i];
87854
- if (char === "(") {
87855
- depth++;
87856
- currentField += char;
87857
- } else if (char === ")") {
87858
- depth--;
87859
- currentField += char;
87860
- } else if (char === "," && depth === 0) {
87861
- if (currentField.trim()) {
87862
- fields.push(currentField.trim());
87863
- }
87864
- currentField = "";
87865
- } else {
87866
- currentField += char;
87867
- }
87868
- }
87869
- if (currentField.trim()) {
87870
- fields.push(currentField.trim());
87871
- }
87872
- return fields;
87873
- }
87874
- function convertSelectFields(fields, primaryObject, objectAliases) {
87875
- return fields.map((field) => {
87876
- const aliasMatch = field.match(/^(.+?)\s+(?:AS\s+)?([A-Za-z_][A-Za-z0-9_]*)$/i);
87877
- let expression = field;
87878
- let alias = "";
87879
- if (aliasMatch) {
87880
- expression = aliasMatch[1].trim();
87881
- alias = aliasMatch[2];
87882
- }
87883
- const hasAggregate = AGGREGATE_FUNCTIONS.some((func) => new RegExp(`\\b${func}\\s*\\(`, "i").test(expression));
87884
- if (hasAggregate) {
87885
- const converted2 = convertAggregateFunction(expression, primaryObject, objectAliases);
87886
- return alias ? `${converted2} ${alias}` : converted2;
87887
- }
87888
- const converted = convertFieldToSmartStore(expression, primaryObject, objectAliases);
87889
- return alias ? `${converted} ${alias}` : converted;
87890
- });
87891
- }
87892
- function convertNullComparisons(clause) {
87893
- let result = clause.replace(/\s*!=\s*null\b/gi, " IS NOT NULL");
87894
- result = result.replace(/\s*<>\s*null\b/gi, " IS NOT NULL");
87895
- result = result.replace(/\s*=\s*null\b/gi, " IS NULL");
87896
- return result;
87897
- }
87898
- function convertWhereClause(whereClause, primaryObject, objectAliases) {
87899
- let result = "";
87900
- let i = 0;
87901
- const len = whereClause.length;
87902
- while (i < len) {
87903
- const char = whereClause[i];
87904
- if (/\s/.test(char)) {
87905
- result += char;
87906
- i++;
87907
- continue;
87908
- }
87909
- if (char === "'" || char === '"') {
87910
- const quote = char;
87911
- result += char;
87912
- i++;
87913
- while (i < len && whereClause[i] !== quote) {
87914
- if (whereClause[i] === "\\" && i + 1 < len) {
87915
- result += whereClause[i] + whereClause[i + 1];
87916
- i += 2;
87917
- } else {
87918
- result += whereClause[i];
87919
- i++;
87920
- }
87921
- }
87922
- if (i < len) {
87923
- result += whereClause[i];
87924
- i++;
87925
- }
87926
- continue;
87927
- }
87928
- if (/[()=<>!,]/.test(char)) {
87929
- result += char;
87930
- i++;
87931
- if ((char === "!" || char === "<" || char === ">") && i < len && whereClause[i] === "=") {
87932
- result += whereClause[i];
87933
- i++;
87934
- }
87935
- continue;
87936
- }
87937
- if (/[a-zA-Z_]/.test(char)) {
87938
- let identifier = "";
87939
- while (i < len && /[a-zA-Z0-9_.]/.test(whereClause[i])) {
87940
- identifier += whereClause[i];
87941
- i++;
87942
- }
87943
- if (isSqlKeyword(identifier) || isLiteralValue(identifier)) {
87944
- result += identifier;
87945
- } else {
87946
- result += convertFieldToSmartStore(identifier, primaryObject, objectAliases);
87947
- }
87948
- continue;
87949
- }
87950
- if (/[0-9-]/.test(char)) {
87951
- let token = "";
87952
- if (char === "-") {
87953
- token += char;
87954
- i++;
87955
- }
87956
- while (i < len && /[0-9.:\-TZ+]/.test(whereClause[i])) {
87957
- token += whereClause[i];
87958
- i++;
87959
- }
87960
- if (isDateTimeLiteral(token)) {
87961
- result += `'${token}'`;
87962
- } else {
87963
- result += token;
87964
- }
87965
- continue;
87966
- }
87967
- result += char;
87968
- i++;
87969
- }
87970
- result = convertNullComparisons(result);
87971
- return result;
87972
- }
87973
- function parseOrderByClause(orderByClause) {
87974
- const result = [];
87975
- const parts = orderByClause.split(/,(?![^()]*\))/);
87976
- for (const part of parts) {
87977
- const trimmed = part.trim();
87978
- if (!trimmed) continue;
87979
- const match = trimmed.match(/^(.+?)\s*(ASC|DESC)?\s*(NULLS\s+(?:FIRST|LAST))?$/i);
87980
- if (match) {
87981
- const field = match[1].trim();
87982
- let direction = match[2] ? match[2].toUpperCase() : "";
87983
- if (match[3]) {
87984
- direction += (direction ? " " : "") + match[3].toUpperCase();
87985
- }
87986
- result.push({ field, direction });
87987
- } else {
87988
- result.push({ field: trimmed, direction: "" });
87989
- }
87990
- }
87991
- return result;
87992
- }
87993
- function convertOrderByFields(orderByParts, primaryObject, objectAliases) {
87994
- return orderByParts.map(({ field, direction }) => {
87995
- const hasAggregate = AGGREGATE_FUNCTIONS.some((func) => new RegExp(`\\b${func}\\s*\\(`, "i").test(field));
87996
- let convertedField;
87997
- if (hasAggregate) {
87998
- convertedField = convertAggregateFunction(field, primaryObject, objectAliases);
87999
- } else {
88000
- convertedField = convertFieldToSmartStore(field, primaryObject, objectAliases);
88001
- }
88002
- return direction ? `${convertedField} ${direction}` : convertedField;
88003
- });
88004
- }
88005
- function parseGroupByClause(groupByClause) {
88006
- return groupByClause.split(/,(?![^()]*\))/).map((f) => f.trim()).filter(Boolean);
88007
- }
88008
- function convertGroupByFields(fields, primaryObject, objectAliases) {
88009
- return fields.map((field) => {
88010
- if (/^(ROLLUP|CUBE)\s*\(/i.test(field)) {
88011
- return field.replace(/\(([^)]+)\)/g, (_match, inner) => {
88012
- const innerFields = inner.split(",").map((f) => f.trim());
88013
- const converted = innerFields.map((f) => convertFieldToSmartStore(f, primaryObject, objectAliases));
88014
- return `(${converted.join(", ")})`;
88015
- });
88016
- }
88017
- return convertFieldToSmartStore(field, primaryObject, objectAliases);
88018
- });
88019
- }
88020
- function parseFromClause(fromClause) {
88021
- const joins = [];
88022
- const primaryMatch = fromClause.match(/^([A-Za-z0-9_]+)(?:\s+(?:AS\s+)?([A-Za-z_][A-Za-z0-9_]*))?/i);
88023
- if (!primaryMatch) {
88024
- return { primary: "", joins };
88025
- }
88026
- const primary = primaryMatch[1];
88027
- const alias = primaryMatch[2];
88028
- const joinRegex = /(LEFT\s+OUTER\s+JOIN|LEFT\s+JOIN|INNER\s+JOIN|JOIN)\s+([A-Za-z0-9_]+)(?:\s+(?:AS\s+)?([A-Za-z_][A-Za-z0-9_]*))?\s+ON\s+([^,]+?)(?=(?:LEFT|INNER|JOIN|$))/gi;
88029
- let joinMatch;
88030
- while ((joinMatch = joinRegex.exec(fromClause)) !== null) {
88031
- joins.push({
88032
- type: joinMatch[1].toUpperCase().replace(/\s+/g, " "),
88033
- object: joinMatch[2],
88034
- alias: joinMatch[3],
88035
- on: joinMatch[4]?.trim()
88036
- });
88037
- }
88038
- return { primary, alias, joins };
88039
- }
88040
- function convertSoqlToSmartQuery(soqlQuery) {
88041
- if (!soqlQuery || typeof soqlQuery !== "string") {
88042
- return "";
88043
- }
88044
- let normalizedQuery = soqlQuery.replace(/\s+/g, " ").trim();
88045
- const fromMatch = normalizedQuery.match(
88046
- /FROM\s+([\s\S]+?)(?=\s+WHERE\s+|\s+ORDER\s+BY\s+|\s+GROUP\s+BY\s+|\s+HAVING\s+|\s+LIMIT\s+|\s+OFFSET\s+|$)/i
88047
- );
88048
- if (!fromMatch) {
88049
- return soqlQuery;
88050
- }
88051
- const fromParsed = parseFromClause(fromMatch[1].trim());
88052
- const primaryObject = fromParsed.primary;
88053
- if (!primaryObject) {
88054
- return soqlQuery;
88055
- }
88056
- normalizedQuery = normalizedQuery.replace(
88057
- /\bFIELDS\s*\(\s*(ALL|STANDARD|CUSTOM)\s*\)/gi,
88058
- "__FIELDS_ALL_PLACEHOLDER__"
88059
- );
88060
- const selectMatch = normalizedQuery.match(/SELECT\s+([\s\S]+?)\s+FROM\s+/i);
88061
- if (!selectMatch) {
88062
- return soqlQuery;
88063
- }
88064
- const whereMatch = normalizedQuery.match(
88065
- /WHERE\s+([\s\S]+?)(?=\s+ORDER\s+BY\s+|\s+GROUP\s+BY\s+|\s+HAVING\s+|\s+LIMIT\s+|\s+OFFSET\s+|$)/i
88066
- );
88067
- const groupByMatch = normalizedQuery.match(
88068
- /GROUP\s+BY\s+([\s\S]+?)(?=\s+HAVING\s+|\s+ORDER\s+BY\s+|\s+LIMIT\s+|\s+OFFSET\s+|$)/i
88069
- );
88070
- const havingMatch = normalizedQuery.match(/HAVING\s+([\s\S]+?)(?=\s+ORDER\s+BY\s+|\s+LIMIT\s+|\s+OFFSET\s+|$)/i);
88071
- const orderByMatch = normalizedQuery.match(/ORDER\s+BY\s+([\s\S]+?)(?=\s+LIMIT\s+|\s+OFFSET\s+|$)/i);
88072
- const limitMatch = normalizedQuery.match(/LIMIT\s+(\d+)/i);
88073
- const offsetMatch = normalizedQuery.match(/OFFSET\s+(\d+)/i);
88074
- const objectAliases = /* @__PURE__ */ new Map();
88075
- if (fromParsed.alias) {
88076
- objectAliases.set(fromParsed.alias.toLowerCase(), primaryObject);
88077
- }
88078
- objectAliases.set(primaryObject.toLowerCase(), primaryObject);
88079
- const parts = [];
88080
- const selectFields = parseSelectFields(selectMatch[1].trim());
88081
- const smartSelectFields = convertSelectFields(selectFields, primaryObject, objectAliases);
88082
- parts.push(`SELECT ${smartSelectFields.join(", ")}`);
88083
- parts.push(`FROM {${primaryObject}}`);
88084
- const whereConditions = [];
88085
- if (whereMatch) {
88086
- const smartWhere = convertWhereClause(whereMatch[1].trim(), primaryObject, objectAliases);
88087
- whereConditions.push(smartWhere);
88088
- }
88089
- if (whereConditions.length > 0) {
88090
- parts.push(`WHERE ${whereConditions.join(" AND ")}`);
88091
- }
88092
- if (groupByMatch) {
88093
- const groupByFields = parseGroupByClause(groupByMatch[1].trim());
88094
- const smartGroupBy = convertGroupByFields(groupByFields, primaryObject, objectAliases);
88095
- parts.push(`GROUP BY ${smartGroupBy.join(", ")}`);
88096
- }
88097
- if (havingMatch) {
88098
- const smartHaving = convertWhereClause(havingMatch[1].trim(), primaryObject, objectAliases);
88099
- parts.push(`HAVING ${smartHaving}`);
88100
- }
88101
- if (orderByMatch) {
88102
- const orderByParts = parseOrderByClause(orderByMatch[1].trim());
88103
- const smartOrderBy = convertOrderByFields(orderByParts, primaryObject, objectAliases);
88104
- parts.push(`ORDER BY ${smartOrderBy.join(", ")}`);
88105
- }
88106
- if (limitMatch) {
88107
- parts.push(`LIMIT ${limitMatch[1]}`);
88108
- }
88109
- if (offsetMatch) {
88110
- parts.push(`OFFSET ${offsetMatch[1]}`);
88111
- }
88112
- return parts.join(" ");
88113
- }
88114
-
88115
87708
  function query(payload) {
88116
87709
  return highLevelApi.API.request("query", payload);
88117
87710
  }
88118
87711
  function crmQuery(payload) {
88119
87712
  return highLevelApi.API.request("crm_query", payload);
88120
87713
  }
88121
- function extractFieldsFromSoql(soqlQuery) {
88122
- const selectMatch = soqlQuery.match(/SELECT\s+([\s\S]+?)\s+FROM\s+/i);
88123
- if (!selectMatch) return [];
88124
- const selectClause = selectMatch[1];
88125
- const fields = [];
88126
- let depth = 0;
88127
- let currentField = "";
88128
- for (let i = 0; i < selectClause.length; i++) {
88129
- const char = selectClause[i];
88130
- if (char === "(") {
88131
- depth++;
88132
- currentField += char;
88133
- } else if (char === ")") {
88134
- depth--;
88135
- currentField += char;
88136
- } else if (char === "," && depth === 0) {
88137
- if (currentField.trim()) {
88138
- fields.push(currentField.trim());
88139
- }
88140
- currentField = "";
88141
- } else {
88142
- currentField += char;
88143
- }
88144
- }
88145
- if (currentField.trim()) {
88146
- fields.push(currentField.trim());
88147
- }
88148
- return fields.map((field) => {
88149
- const aliasMatch = field.match(/^(.+?)\s+(?:AS\s+)?([A-Za-z_][A-Za-z0-9_]*)$/i);
88150
- const fieldExpr = aliasMatch ? aliasMatch[1].trim() : field.trim();
88151
- return fieldExpr;
88152
- });
88153
- }
88154
- function extractObjectFromSoql(soqlQuery) {
88155
- const fromMatch = soqlQuery.match(/FROM\s+([A-Za-z0-9_]+)/i);
88156
- return fromMatch ? fromMatch[1] : "";
88157
- }
88158
- function setNestedProperty(obj, path, value) {
88159
- const parts = path.split(".");
88160
- if (parts.length === 1) {
88161
- obj[path] = value;
88162
- return;
88163
- }
88164
- let current = obj;
88165
- for (let i = 0; i < parts.length - 1; i++) {
88166
- const part = parts[i];
88167
- if (!current[part] || typeof current[part] !== "object") {
88168
- current[part] = {};
88169
- }
88170
- current = current[part];
88171
- }
88172
- current[parts[parts.length - 1]] = value;
88173
- }
88174
- function isAllFieldsSelector(field) {
88175
- const trimmed = field.trim();
88176
- return trimmed === "*" || /^FIELDS\s*\(\s*(ALL|STANDARD|CUSTOM)\s*\)$/i.test(trimmed);
88177
- }
88178
- function transformSmartStoreResults(smartStoreResults, fields, objectName) {
88179
- if (!smartStoreResults || !Array.isArray(smartStoreResults)) {
88180
- return [];
88181
- }
88182
- return smartStoreResults.map((row) => {
88183
- const record = {};
88184
- fields.forEach((field, index) => {
88185
- if (index < row.length) {
88186
- const value = row[index];
88187
- if (isAllFieldsSelector(field)) {
88188
- if (value && typeof value === "object" && !Array.isArray(value)) {
88189
- Object.assign(record, value);
88190
- }
88191
- } else {
88192
- setNestedProperty(record, field, value);
88193
- }
88194
- }
88195
- });
88196
- const recordId = record["Id"] || record["id"] || "";
88197
- record["attributes"] = {
88198
- type: objectName,
88199
- url: recordId ? `/services/data/v57.0/sobjects/${objectName}/${recordId}` : ""
88200
- };
88201
- return record;
88202
- });
88203
- }
88204
- async function crmQueryAdaptive(payload) {
88205
- const query2 = payload.query;
88206
- if (!query2 || typeof query2 !== "string") {
88207
- return Promise.reject(new Error("Query is required and must be a string"));
88208
- }
88209
- let useSmartStore = false;
88210
- try {
88211
- const env = await highLevelApi.API.request("get_env");
88212
- const isIos = env?.mode === "IOS";
88213
- const isSfdcSyncEnabled = env?.pitcher?.instance?.settings?.enable_sfdc_sync === true;
88214
- useSmartStore = isIos && isSfdcSyncEnabled;
88215
- } catch {
88216
- useSmartStore = false;
88217
- }
88218
- console.log(`crmQueryAdaptive called with the query: `, query2);
88219
- if (useSmartStore) {
88220
- const fields = extractFieldsFromSoql(query2);
88221
- const objectName = extractObjectFromSoql(query2);
88222
- const smartQuery = convertSoqlToSmartQuery(query2);
88223
- console.log(`Smart Query: `, smartQuery);
88224
- const smartStoreResults = await crmSmartQuery({ query: smartQuery });
88225
- const records = transformSmartStoreResults(smartStoreResults, fields, objectName);
88226
- return {
88227
- records,
88228
- totalSize: records.length
88229
- };
88230
- }
88231
- return crmQuery(payload);
88232
- }
88233
87714
  function crmSmartQuery(payload) {
88234
87715
  const query2 = payload.query;
88235
87716
  if (!query2 || typeof query2 !== "string") {
88236
87717
  return Promise.reject(new Error("Query is required and must be a string"));
88237
87718
  }
88238
- const smartStorePattern = /\{[^}]+:[^}]+}/;
87719
+ const smartStorePattern = /\{[^}]+:[^}]+\}/;
88239
87720
  if (!smartStorePattern.test(query2.trim())) {
88240
87721
  return Promise.reject(
88241
87722
  new Error(
@@ -88292,14 +87773,7 @@ function crmSmartUpsertObjects(payload) {
88292
87773
  }
88293
87774
  }
88294
87775
  }
88295
- console.log("[crmSmartUpsertObjects] Request payload:", JSON.stringify(payload, null, 2));
88296
- return highLevelApi.API.request("crm_smart_upsert_objects", payload).then((result) => {
88297
- console.log("[crmSmartUpsertObjects] Success:", result);
88298
- return result;
88299
- }).catch((error) => {
88300
- console.error("[crmSmartUpsertObjects] Error:", error);
88301
- throw error;
88302
- });
87776
+ return highLevelApi.API.request("crm_smart_upsert_objects", payload);
88303
87777
  }
88304
87778
  function crmSmartObjectValidationRules(payload) {
88305
87779
  if (!payload) {
@@ -88339,14 +87813,7 @@ function crmSmartDeleteObjects(payload) {
88339
87813
  }
88340
87814
  }
88341
87815
  }
88342
- console.log("[crmSmartDeleteObjects] Request payload:", JSON.stringify(payload, null, 2));
88343
- return highLevelApi.API.request("crm_smart_delete_objects", payload).then((result) => {
88344
- console.log("[crmSmartDeleteObjects] Success:", result);
88345
- return result;
88346
- }).catch((error) => {
88347
- console.error("[crmSmartDeleteObjects] Error:", error);
88348
- throw error;
88349
- });
87816
+ return highLevelApi.API.request("crm_smart_delete_objects", payload);
88350
87817
  }
88351
87818
  function crmCreate(payload) {
88352
87819
  if (!payload) {
@@ -88489,7 +87956,6 @@ const modules = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
88489
87956
  createFolder,
88490
87957
  crmCreate,
88491
87958
  crmQuery,
88492
- crmQueryAdaptive,
88493
87959
  crmSmartDeleteObjects,
88494
87960
  crmSmartObjectMetadata,
88495
87961
  crmSmartObjectValidationRules,
@@ -95218,7 +94684,7 @@ const _hoisted_14$h = {
95218
94684
  class: "flex items-center ml-2"
95219
94685
  };
95220
94686
  const _hoisted_15$f = {
95221
- key: 0,
94687
+ key: 2,
95222
94688
  class: "flex items-center ml-2"
95223
94689
  };
95224
94690
  const _hoisted_16$e = { class: "flex flex-col w-full flex-1 min-h-0" };
@@ -95603,7 +95069,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
95603
95069
  hasSearchCompleted.value = false;
95604
95070
  searchError.value = null;
95605
95071
  try {
95606
- const ALLOWED_CANVAS_TYPES = ["saved_canvas", "template", "section", "block"];
95072
+ const ALLOWED_CANVAS_TYPES = ["saved_canvas", "template", "product_template", "section", "block"];
95607
95073
  const ALLOWED_FILE_TYPES = [
95608
95074
  "folder",
95609
95075
  "pdf",
@@ -95827,6 +95293,8 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
95827
95293
  return t("canvasUI.CAlgoliaSearch.canvasFilters.saved");
95828
95294
  case "template":
95829
95295
  return t("canvasUI.CAlgoliaSearch.canvasFilters.templates");
95296
+ case "product_template":
95297
+ return t("canvasUI.CAlgoliaSearch.canvasFilters.productTemplates");
95830
95298
  case "section":
95831
95299
  return t("canvasUI.CAlgoliaSearch.canvasFilters.products");
95832
95300
  case "block":
@@ -96048,7 +95516,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96048
95516
  show: "",
96049
95517
  verticalAlignment: "top",
96050
95518
  "z-index": _ctx.zIndex,
96051
- "onUpdate:show": _cache[15] || (_cache[15] = ($event) => emit("toggleSearch", $event))
95519
+ "onUpdate:show": _cache[16] || (_cache[16] = ($event) => emit("toggleSearch", $event))
96052
95520
  }, {
96053
95521
  default: withCtx(() => [
96054
95522
  createElementVNode("div", {
@@ -96057,7 +95525,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96057
95525
  }, [
96058
95526
  createElementVNode("div", _hoisted_1$4w, [
96059
95527
  createElementVNode("div", _hoisted_2$3j, [
96060
- _cache[16] || (_cache[16] = createElementVNode("div", { class: "absolute left-2.5 top-1/2 transform -translate-y-1/2 z-10" }, [
95528
+ _cache[17] || (_cache[17] = createElementVNode("div", { class: "absolute left-2.5 top-1/2 transform -translate-y-1/2 z-10" }, [
96061
95529
  createElementVNode("i", { class: "c-icon far fa-search text-gray-400 text-l" })
96062
95530
  ], -1)),
96063
95531
  withDirectives(createElementVNode("input", {
@@ -96238,14 +95706,15 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96238
95706
  _: 1
96239
95707
  }, 8, ["show"]),
96240
95708
  hasActiveFilters.value ? (openBlock(), createElementBlock("div", _hoisted_14$h, [
96241
- _cache[17] || (_cache[17] = createElementVNode("div", { class: "h-6 w-px bg-gray-300 mx-2" }, null, -1)),
95709
+ _cache[18] || (_cache[18] = createElementVNode("div", { class: "h-6 w-px bg-gray-300 mx-2" }, null, -1)),
96242
95710
  createElementVNode("span", {
96243
95711
  class: "text-sm text-gray-600 hover:text-gray-800 font-normal cursor-pointer",
96244
95712
  onClick: clearAllFilters
96245
95713
  }, toDisplayString(unref(t)("canvasUI.CAlgoliaSearch.filters.clear")), 1)
96246
95714
  ])) : createCommentVNode("", true)
96247
95715
  ], 64)) : searchType.value === "canvases" ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
96248
- createVNode(unref(NTag), {
95716
+ !_ctx.isAdmin ? (openBlock(), createBlock(unref(NTag), {
95717
+ key: 0,
96249
95718
  class: "select-none cursor-pointer",
96250
95719
  style: normalizeStyle({
96251
95720
  "--n-color": selectedCanvasFilters.value.includes("saved_canvas") ? "var(--p-primary5)" : "var(--p-primary6)",
@@ -96261,7 +95730,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96261
95730
  createElementVNode("span", null, toDisplayString(unref(t)("canvasUI.CAlgoliaSearch.canvasFilters.saved")), 1)
96262
95731
  ]),
96263
95732
  _: 1
96264
- }, 8, ["style"]),
95733
+ }, 8, ["style"])) : createCommentVNode("", true),
96265
95734
  createVNode(unref(NTag), {
96266
95735
  class: "select-none cursor-pointer",
96267
95736
  style: normalizeStyle({
@@ -96279,6 +95748,24 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96279
95748
  ]),
96280
95749
  _: 1
96281
95750
  }, 8, ["style"]),
95751
+ _ctx.isAdmin ? (openBlock(), createBlock(unref(NTag), {
95752
+ key: 1,
95753
+ class: "select-none cursor-pointer",
95754
+ style: normalizeStyle({
95755
+ "--n-color": selectedCanvasFilters.value.includes("product_template") ? "var(--p-primary5)" : "var(--p-primary6)",
95756
+ "--n-border": "1px solid var(--p-primary5)",
95757
+ "--n-height": "28px"
95758
+ }),
95759
+ themeOverrides: {
95760
+ borderRadius: "4px"
95761
+ },
95762
+ onClick: _cache[11] || (_cache[11] = ($event) => toggleCanvasFilter("product_template"))
95763
+ }, {
95764
+ default: withCtx(() => [
95765
+ createElementVNode("span", null, toDisplayString(unref(t)("canvasUI.CAlgoliaSearch.canvasFilters.productTemplates")), 1)
95766
+ ]),
95767
+ _: 1
95768
+ }, 8, ["style"])) : createCommentVNode("", true),
96282
95769
  createVNode(unref(NTag), {
96283
95770
  class: "select-none cursor-pointer",
96284
95771
  style: normalizeStyle({
@@ -96289,7 +95776,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96289
95776
  themeOverrides: {
96290
95777
  borderRadius: "4px"
96291
95778
  },
96292
- onClick: _cache[11] || (_cache[11] = ($event) => toggleCanvasFilter("section"))
95779
+ onClick: _cache[12] || (_cache[12] = ($event) => toggleCanvasFilter("section"))
96293
95780
  }, {
96294
95781
  default: withCtx(() => [
96295
95782
  createElementVNode("span", null, toDisplayString(unref(t)("canvasUI.CAlgoliaSearch.canvasFilters.products")), 1)
@@ -96306,7 +95793,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96306
95793
  themeOverrides: {
96307
95794
  borderRadius: "4px"
96308
95795
  },
96309
- onClick: _cache[12] || (_cache[12] = ($event) => toggleCanvasFilter("block"))
95796
+ onClick: _cache[13] || (_cache[13] = ($event) => toggleCanvasFilter("block"))
96310
95797
  }, {
96311
95798
  default: withCtx(() => [
96312
95799
  createElementVNode("span", null, toDisplayString(unref(t)("canvasUI.CAlgoliaSearch.canvasFilters.blocks")), 1)
@@ -96314,7 +95801,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96314
95801
  _: 1
96315
95802
  }, 8, ["style"]),
96316
95803
  selectedCanvasFilters.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_15$f, [
96317
- _cache[18] || (_cache[18] = createElementVNode("div", { class: "h-6 w-px bg-gray-300 mx-2" }, null, -1)),
95804
+ _cache[19] || (_cache[19] = createElementVNode("div", { class: "h-6 w-px bg-gray-300 mx-2" }, null, -1)),
96318
95805
  createElementVNode("span", {
96319
95806
  class: "text-sm text-gray-600 hover:text-gray-800 font-normal cursor-pointer",
96320
95807
  onClick: clearCanvasFilters
@@ -96344,7 +95831,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96344
95831
  }), 128))
96345
95832
  ]),
96346
95833
  recentlyOpenedDocs.value.length > 0 ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
96347
- _cache[19] || (_cache[19] = createElementVNode("hr", { class: "border-0 h-px bg-gray-200 mt-2 mb-3 w-full" }, null, -1)),
95834
+ _cache[20] || (_cache[20] = createElementVNode("hr", { class: "border-0 h-px bg-gray-200 mt-2 mb-3 w-full" }, null, -1)),
96348
95835
  createElementVNode("div", _hoisted_21$7, [
96349
95836
  createElementVNode("span", _hoisted_22$5, toDisplayString(unref(t)("canvasUI.components.fileViewer.recentlyOpened")), 1)
96350
95837
  ]),
@@ -96454,7 +95941,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96454
95941
  filteredContentFiles.value.length > 5 ? (openBlock(), createElementBlock("div", _hoisted_43$4, [
96455
95942
  createElementVNode("span", {
96456
95943
  class: "text-sm text-gray-600 hover:text-gray-800 font-bold flex items-center cursor-pointer",
96457
- onClick: _cache[13] || (_cache[13] = ($event) => searchType.value = "content")
95944
+ onClick: _cache[14] || (_cache[14] = ($event) => searchType.value = "content")
96458
95945
  }, [
96459
95946
  createTextVNode(toDisplayString(unref(t)("canvasUI.CAlgoliaSearch.actions.viewAll")) + " ", 1),
96460
95947
  createVNode(CIcon, {
@@ -96506,7 +95993,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96506
95993
  filteredCanvasFiles.value.length > 5 ? (openBlock(), createElementBlock("div", _hoisted_54$2, [
96507
95994
  createElementVNode("span", {
96508
95995
  class: "text-sm text-gray-600 hover:text-gray-800 font-bold flex items-center cursor-pointer",
96509
- onClick: _cache[14] || (_cache[14] = ($event) => searchType.value = "canvases")
95996
+ onClick: _cache[15] || (_cache[15] = ($event) => searchType.value = "canvases")
96510
95997
  }, [
96511
95998
  createTextVNode(toDisplayString(unref(t)("canvasUI.CAlgoliaSearch.actions.viewAll")) + " ", 1),
96512
95999
  createVNode(CIcon, {
@@ -96653,7 +96140,7 @@ const _sfc_main$5K = /* @__PURE__ */ defineComponent({
96653
96140
  }
96654
96141
  });
96655
96142
 
96656
- const CAlgoliaSearch = /* @__PURE__ */ _export_sfc(_sfc_main$5K, [["__scopeId", "data-v-338ca99c"]]);
96143
+ const CAlgoliaSearch = /* @__PURE__ */ _export_sfc(_sfc_main$5K, [["__scopeId", "data-v-07e48e19"]]);
96657
96144
 
96658
96145
  const BulletListExtended = BulletList.extend({
96659
96146
  addOptions() {
@@ -181550,33 +181037,6 @@ function useTheme() {
181550
181037
  };
181551
181038
  }
181552
181039
 
181553
- function useSmartStore(env) {
181554
- const shouldUseSmartStore = computed(() => {
181555
- try {
181556
- const envValue = unref(env);
181557
- if (!envValue) {
181558
- return false;
181559
- }
181560
- const isIos = envValue?.mode === "IOS";
181561
- const isSfdcSyncEnabled = envValue?.pitcher?.instance?.settings?.enable_sfdc_sync === true;
181562
- return isIos && isSfdcSyncEnabled;
181563
- } catch (error) {
181564
- console.error("[useSmartStore] Error checking SmartStore availability:", error);
181565
- return false;
181566
- }
181567
- });
181568
- const generateTempSalesforceId = (objectPrefix) => {
181569
- const timestamp = Date.now().toString(36);
181570
- const randomStr = Math.random().toString(36).substring(2, 11);
181571
- const uniqueId = (timestamp + randomStr).substring(0, 12 - objectPrefix.length);
181572
- return "local_" + objectPrefix + uniqueId.padEnd(12 - objectPrefix.length, "0");
181573
- };
181574
- return {
181575
- shouldUseSmartStore,
181576
- generateTempSalesforceId
181577
- };
181578
- }
181579
-
181580
181040
  const initialCanvas = ref(void 0);
181581
181041
  const useCanvasOverlay = () => {
181582
181042
  const openCanvasOverlay = ({ id, fullscreen, edit_mode, component_id, section_id, position }) => {
@@ -183838,5 +183298,5 @@ const localeNames = {
183838
183298
  };
183839
183299
  const localeDropdownOptions = supportedLocales.map((locale) => ({ key: locale, name: localeNames[locale] }));
183840
183300
 
183841
- export { ADMIN_API_METHOD_TYPES, ADMIN_API_TYPES, ADMIN_MESSAGE, ADMIN_MESSAGE_TYPES, APPS_DB, AccessTypeEnum, App$3 as AgendaSelectorApp, AppTypeEnum, _sfc_main as AssetsManagerApp, App$1 as Browser, BulkUpdateMetadataOperationEnum, BulkUpdateTagsOperationEnum, CALL_STORAGE_KEY, CANVASES, CANVAS_HOOKS, CANVAS_TYPOGRAPHY_CSS_PROPERTIES, CANVAS_TYPOGRAPHY_PRESETS, CAlgoliaSearch, CAssignedCanvasesManagement, _sfc_main$4p as CAssignedCanvasesManagementToolbar, _sfc_main$6s as CAvatar, _sfc_main$4O as CBlockManagement, CButton, _sfc_main$5f as CCanvasDeleteDialogContent, _sfc_main$5g as CCanvasMetadataFilters, CCanvasSelector, _sfc_main$6V as CCard, CCarousel, _sfc_main$3G as CCatalogIqSwitcher, _sfc_main$6U as CCheckbox, _sfc_main$3A as CChip, CCollapse, _sfc_main$6R as CCollapseItem, _sfc_main$6r as CCollapseTransition, NColorPicker as CColorPicker, CComponentListItem, CConfigEditor, NConfigProvider as CConfigProvider, _sfc_main$6h as CConfirmationAction, CConfirmationContent, CConfirmationHeader, CConfirmationModal, CContactSelector, CContactSelectorSelected, _sfc_main$68 as CContentError, _sfc_main$65 as CCreateCanvasModal, _sfc_main$64 as CCreateTemplateSectionBlockModal, _sfc_main$5V as CCreateThemeModal, CDP_EVENT_TYPE, CDataTable, NDatePicker as CDatePicker, CDateRangeFilter, CDetailPageSectionButtons, NDialogProvider as CDialogProvider, _sfc_main$6P as CDivider, _sfc_main$6O as CDrawer, _sfc_main$6N as CDrawerContent, _sfc_main$6M as CDropdown, _sfc_main$6p as CEmpty, _sfc_main$4m as CEntitySelector, _sfc_main$6L as CErrorFullScreen, _sfc_main$6n as CFeedback, _sfc_main$3o as CFileAccessManagement, _sfc_main$6C as CFileAttributes, _sfc_main$3p as CFilePanel, _sfc_main$6I as CFileThumbnail, CFileViewer, CFilesAccessInfo, _sfc_main$3$ as CFilesAccessManage, _sfc_main$3I as CFilesFolderDeleteDialogContent, NForm as CForm, NFormItem as CFormItem, NFormItemCol as CFormItemCol, NFormItemGridItem as CFormItemGi, NFormItemGridItem as CFormItemGridItem, FormItemRow as CFormItemRow, _sfc_main$4h as CFullScreenLoader, NGridItem as CGi, CGlobalLoader, _sfc_main$5O as CGlobalSearch, GlobalStyle as CGlobalStyle, NGrid as CGrid, NGridItem as CGridItem, CGroupsAccessInfo, NH1 as CH1, NH2 as CH2, NH3 as CH3, NH4 as CH4, NH5 as CH5, NH6 as CH6, _sfc_main$6m as CHelpText, CIcon, _sfc_main$6K as CImage, _sfc_main$4W as CInfoBadge, _sfc_main$6B as CInput, NInputNumber as CInputNumber, _sfc_main$3y as CKnockNotificationsAppWrapper, CLIENT_TYPE, NLayout as CLayout, NLayoutContent as CLayoutContent, LayoutFooter as CLayoutFooter, LayoutHeader as CLayoutHeader, LayoutSider as CLayoutSider, _sfc_main$4X as CList, NMessageProvider as CMessageProvider, _sfc_main$5L as CMetaDataBadge, _sfc_main$6A as CModal, CMonacoEditor, CMovableWidget, CMultiSelect, NNotificationProvider as CNotificationProvider, NPagination as CPagination, _sfc_main$6l as CPillSelect, _sfc_main$6z as CPopover, _sfc_main$6J as CProcessingOverlay, NProgress as CProgress, _sfc_main$5s as CRichTextEditor, _sfc_main$4q as CSavedCanvasesManagement, CSearch, _sfc_main$6x as CSearchOnClick, CSearchOnClickWithSuggestions, CSecondaryNav, _sfc_main$4R as CSectionManagement, CSelect, CSelectFilter, _sfc_main$3x as CSettingsEditor, CShortcut, CSingleSelect, NSkeleton as CSkeleton, _sfc_main$3C as CSlideViewer, NSpace as CSpace, _sfc_main$6q as CSpin, _sfc_main$6o as CSwitch, CTable, _sfc_main$5c as CTableInput, CTableMore, CTableSelect, CTableTag, _sfc_main$6F as CTag, CTags, CTemplateAccessInfo, _sfc_main$3_ as CTemplateAccessManage, _sfc_main$4G as CTemplateManagement, text as CText, _sfc_main$6v as CThemeEditor, _sfc_main$4B as CThemeManagement, _sfc_main$5l as CToastProvider, CToolbar, _sfc_main$6t as CTooltip, CUpsertFolderModal, _sfc_main$5p as CUserAvatar, CUserMenu, CUsersAccessInfo, CUsersGroupsAccessManage, _sfc_main$5m as CVirtualTable, _sfc_main$48 as CWarningAlert, CallState, CanvasActions, _sfc_main$15 as CanvasBuilderApp, CanvasBuilderMode, CanvasExcludedComponentTypesEnum, CanvasHistoryAction, App as CanvasSelector, CanvasStatus, CanvasThemeStatus, CanvasesViewsTypes, CollaborationRoleEnum, CollectionPlayerApp, App$4 as CollectionSelectorApp, ComponentIcon, ComponentTypes, ContactSelectorQuickFilterType, ContentGridLayoutTypes, ContentSelector, CoreFolderEntityType, DATE_TIME_FORMAT, DEFAULT_ADMIN_TABLE_HEIGHT, DEFAULT_ADMIN_TABLE_WITH_PAGINATION_HEIGHT, DEFAULT_GLOBAL_COMPONENT_SPACING, DEFAULT_GLOBAL_COMPONENT_SPACING_INTERVAL, DEFAULT_ITEMS_PER_PAGE, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PEER_CONNECTIVITY_VERSION, DEFAULT_PITCHER_SETTINGS, DSR_API_METHOD_TYPES, DSR_API_TYPES, DSR_MESSAGE, DSR_MESSAGE_TYPES, DSR_TYPE, DefaultExpiresAtEnum, DownloadTypeEnum, EMBED_TYPE, EventAction, EventExternalObjectContentTypeEnum, EventStatusEnum, FileContentTypeEnum, FileStatusEnum, FileTypeEnum, GlobalSearchResultType, GridLayoutTypes, HIDE_IF_EMPTY_COMPONENT_ID_TAG_PREFIX, HIDE_IF_EMPTY_COMPONENT_TRACKING_ID_TAG_PREFIX, HIDE_TAGS_WITH_PREFIX, HtmlLayoutTypes, IFRAME_ACTION_TYPES, IFRAME_DATA_MESSAGE, INITIAL_CALL_STATE, IS_DEV_ORG, IS_LOCALHOST, InstanceMembershipRoleEnum, InstanceMembershipUserStatusEnum, InvitationStatusEnum, LanguageEnum, LinkAlignmentTypes, LinkAnchorTypes, LinkPreviewTypes, MAX_LUMINANCE_FOR_LIGHT_TEXT, MAX_UPLOAD_SIZE, MIN_DIFFERENCE_IN_MINUTES, MetadataTemplateFieldTypeEnum, MultimediaHorizontalAlignmentOptions, NON_MEMBER_ROLES, NotesApp, OperatorEnum, PAPER_SIZE_PRESETS, PEER_CONNECTIVITY_EVENT, PEER_CONNECTIVITY_HANDLER_MATCH_ALL, PITCHER_EVENT, PITCHER_SETTINGS_KEY, PLATFORM_TYPE, PRINT_SCALE_FACTOR, PeerConnectivityActions, PitcherBroadcastedEventName, PitcherEventName, PitcherExternalEventName, PitcherMessageType, PitcherResponseStatus, PostAction, App$2 as PptConversionSelectorApp, REQUEST_DEFAULT_CANCEL_TIMEOUT, SEARCH_DEBOUNCE_TIME, SUPPORTED_FONT_EXTENSIONS, SUPPORTED_FONT_TYPES, SUPPORTED_IMAGE_EXTENSIONS, SUPPORTED_IMAGE_TYPES, SUPPORTED_UPLOAD_FILE_EXTENSIONS, SUPPORTED_VIDEO_EXTENSIONS, SUPPORTED_VIDEO_TYPES, SfEventColors, SfEventColorsLight, StorageRegionEnum, TRACKING_EVENTS_STORAGE_KEY, UI_API_METHOD_TYPES, UI_MESSAGE, UI_MESSAGE_TYPES, UI_NATIVE_MESSAGE_TYPES, UserRoleEnum, ViewCompactItemType, addCanvasComponent, _export as agendaSelector, appRequiresCrm, applyCanvasThemeAssetsToNode, applyFont, applyToTreeBy, autofocus as autofocusDirective, camelCaseKeys, canvasUiUnoPreset, clearLocalStorageIfNeeded, ClickOutsideDirective as clickOutsideDirective, collectAllNodesByCondition, _export$3 as collectionPlayer, _export$2 as collectionSelector, componentIconType, computeLocalStorageBytes, convertSecondsToMinutes, convertSoqlToSmartQuery, convertToPixels, convertToSosl, createNodeId, createPitcherSettings, dayjs, deepDiff, deepToRaw, derivePatchRequestFields, determineUserRole, discardSectionComponentOverride, displayBytesWithMUnit, displayIntegerWithMunit, doesLocalOverrideExist, doesNotHaveAnyModuleOrHookSpecified, downloadFile, draggable as draggableDirective, elementMounted as elementMountedDirective, escapeSoqlString, evaluateAccessor, executeWithDoublingTime, exitFullscreen, fallbackLocale, fetchAll, fetchAllWithOffset, fetchFirstChunkAndRemainingAsync, filterSidebarApps, filterTreeBy, findAllEmbeddableTypesInCanvasContent, findAllEmbeddableTypesInSectionsContent, findEmbeddableInCanvasContent, findEmbeddableInSectionsContent, findNodeInTreeByCondition, findNodeInTreeById, findNodeInTreeByType, findParentByNodeId, formatDate, formatDateDetailed, formatDateTime, formatDateTimeAgo, formatDayMonthBasedOnBrowserLang, formatDimensionForGotenberg, generateAIThumbnailUrl, getAllPages, getAppConfigFromAppSource, getAvailableApis, getComponentDescription, getComponentKeywords, getComponentTitle, getContrastTextColor, getDefinedProps, getEventColor, getExcessItemsIndexes, getFontAwesomeIconNameAndType, getImageSize, getLocalOverrideUrl, getLuminance, getNextPageParam, getNodeDisplayNameByComponentType, getNumberWithRegex, getPageQuantity, getPageRange, getPreviewUrl, getRoleIcon, getSectionGlobalComponentSpacing, handleThemeAssetComparison, hasAppTypeDefined, highLevelApi, indirectEval, insertItemSorted, isAfter, isBefore, isBeforeMinDate, isCanvasDrawerApp, isCanvasSectionExecution, isEmbeddableWithZeroHeight, isFileViewerReplacement, isFirefox, isFullscreen, isHeadlessOrNotAvailableApp, isImageAccessible, isIosDevice, isMac, isMobile, isModifierClick, isNonMemberRole, isOriginValid, isPastMaxDate, isPitcherOrIosDevice, isPitcherWkWebView, isPostcallApp, isQueryParamTruthy, isSafari, isSafariOnIosDevice, isSameOrAfter, isSameOrBefore, isTextComponentEmpty, isTheUiItself, isTouchScreen, isValidHex, isWindows, lightThemeOverrides, loadCustomHelpersFromApps, loadRemoteScriptWithCtx, loadScript, loadScriptStyle, loadStyle, localeDropdownOptions, localeNames, locales, minFutureDate, minPastDate, moveNodeTo, msToSeconds, navigateTo, normalizeFilterParams, normalizeNetworkFilterParams, openUsdz, parseCollectionPlayerSlidesToContentSelector, parseContentSelectorToCollectionPlayerSlides, parseFileToCollectionPlayer, parsePdfFileToCollectionPlayer, parsePptxFileToCollectionPlayer, pascalCaseKeys, _export$1 as pptConversionSelector, processCanvasForSectionThemeOverride, regenerateTreeIds, registerCustomHelper, registerCustomHelpers, registerPeerConnectivityHandler, renderTemplate, replaceThemePresetsWithInlineStyles, replaceTranslationMessagesWithOverrides, requestFullscreen, requestStream, scrollCanvasToTop, scrollToComponentById, secondsToHumanReadable, sendPeerConnectivityEvent, setDateTime, shouldDisplayPlaceholderComponent, shouldOpenInCollectionPlayerViewer, shouldShowEmbeddable, shouldShowInSidebar, skipElementsInTree, snakeCaseKeys, someNodeInTree, sortCollectionByString, splitUserName, stringToHslColor, supportedLocales, tapDirective, titleCase, toggleFullscreen, tooltipDirective, transformFilesToCollectionPlayer, transformFilesToContentGrid, updateFirstContentGridWithShareboxItems, urlSafeFetchInChunks, useAdmin, useAdminAndDsrState, useApi, useAppsDb, useBindValidation, useBroadcastRouteChange, useCanvasById, useCanvasLocks, useCanvasOverlay, useCanvasVisibility, useCanvasesAsInfinity, useCollectionPlayerOverlay, useCommentTracking, useConfirmation, useCreateEvent, useDeleteEvent, useDsr, useFetchCanvases, useFetchEvents, useFetchUsers, useFileDisplayHelpers, useFolderNameDescription, useGlobalSearch, useInfiniteScroll, useLocation, useMetadataSearch, useMetadataTemplates, useNotesApp, useNotification, useOpenFileStack, usePitcherApi, usePolling, usePresentationHistory, useRecentFiles, useShareCanvas, useSharedCommentsStorage, useSmartStore, useSuggestedTags, useTheme, useThemeVars, useToast, useUi, useUpdateEvent, useWindowEvents, vueQueryPluginOptions, wait, waitForIframeInitialize, waitForValue };
183301
+ export { ADMIN_API_METHOD_TYPES, ADMIN_API_TYPES, ADMIN_MESSAGE, ADMIN_MESSAGE_TYPES, APPS_DB, AccessTypeEnum, App$3 as AgendaSelectorApp, AppTypeEnum, _sfc_main as AssetsManagerApp, App$1 as Browser, BulkUpdateMetadataOperationEnum, BulkUpdateTagsOperationEnum, CALL_STORAGE_KEY, CANVASES, CANVAS_HOOKS, CANVAS_TYPOGRAPHY_CSS_PROPERTIES, CANVAS_TYPOGRAPHY_PRESETS, CAlgoliaSearch, CAssignedCanvasesManagement, _sfc_main$4p as CAssignedCanvasesManagementToolbar, _sfc_main$6s as CAvatar, _sfc_main$4O as CBlockManagement, CButton, _sfc_main$5f as CCanvasDeleteDialogContent, _sfc_main$5g as CCanvasMetadataFilters, CCanvasSelector, _sfc_main$6V as CCard, CCarousel, _sfc_main$3G as CCatalogIqSwitcher, _sfc_main$6U as CCheckbox, _sfc_main$3A as CChip, CCollapse, _sfc_main$6R as CCollapseItem, _sfc_main$6r as CCollapseTransition, NColorPicker as CColorPicker, CComponentListItem, CConfigEditor, NConfigProvider as CConfigProvider, _sfc_main$6h as CConfirmationAction, CConfirmationContent, CConfirmationHeader, CConfirmationModal, CContactSelector, CContactSelectorSelected, _sfc_main$68 as CContentError, _sfc_main$65 as CCreateCanvasModal, _sfc_main$64 as CCreateTemplateSectionBlockModal, _sfc_main$5V as CCreateThemeModal, CDP_EVENT_TYPE, CDataTable, NDatePicker as CDatePicker, CDateRangeFilter, CDetailPageSectionButtons, NDialogProvider as CDialogProvider, _sfc_main$6P as CDivider, _sfc_main$6O as CDrawer, _sfc_main$6N as CDrawerContent, _sfc_main$6M as CDropdown, _sfc_main$6p as CEmpty, _sfc_main$4m as CEntitySelector, _sfc_main$6L as CErrorFullScreen, _sfc_main$6n as CFeedback, _sfc_main$3o as CFileAccessManagement, _sfc_main$6C as CFileAttributes, _sfc_main$3p as CFilePanel, _sfc_main$6I as CFileThumbnail, CFileViewer, CFilesAccessInfo, _sfc_main$3$ as CFilesAccessManage, _sfc_main$3I as CFilesFolderDeleteDialogContent, NForm as CForm, NFormItem as CFormItem, NFormItemCol as CFormItemCol, NFormItemGridItem as CFormItemGi, NFormItemGridItem as CFormItemGridItem, FormItemRow as CFormItemRow, _sfc_main$4h as CFullScreenLoader, NGridItem as CGi, CGlobalLoader, _sfc_main$5O as CGlobalSearch, GlobalStyle as CGlobalStyle, NGrid as CGrid, NGridItem as CGridItem, CGroupsAccessInfo, NH1 as CH1, NH2 as CH2, NH3 as CH3, NH4 as CH4, NH5 as CH5, NH6 as CH6, _sfc_main$6m as CHelpText, CIcon, _sfc_main$6K as CImage, _sfc_main$4W as CInfoBadge, _sfc_main$6B as CInput, NInputNumber as CInputNumber, _sfc_main$3y as CKnockNotificationsAppWrapper, CLIENT_TYPE, NLayout as CLayout, NLayoutContent as CLayoutContent, LayoutFooter as CLayoutFooter, LayoutHeader as CLayoutHeader, LayoutSider as CLayoutSider, _sfc_main$4X as CList, NMessageProvider as CMessageProvider, _sfc_main$5L as CMetaDataBadge, _sfc_main$6A as CModal, CMonacoEditor, CMovableWidget, CMultiSelect, NNotificationProvider as CNotificationProvider, NPagination as CPagination, _sfc_main$6l as CPillSelect, _sfc_main$6z as CPopover, _sfc_main$6J as CProcessingOverlay, NProgress as CProgress, _sfc_main$5s as CRichTextEditor, _sfc_main$4q as CSavedCanvasesManagement, CSearch, _sfc_main$6x as CSearchOnClick, CSearchOnClickWithSuggestions, CSecondaryNav, _sfc_main$4R as CSectionManagement, CSelect, CSelectFilter, _sfc_main$3x as CSettingsEditor, CShortcut, CSingleSelect, NSkeleton as CSkeleton, _sfc_main$3C as CSlideViewer, NSpace as CSpace, _sfc_main$6q as CSpin, _sfc_main$6o as CSwitch, CTable, _sfc_main$5c as CTableInput, CTableMore, CTableSelect, CTableTag, _sfc_main$6F as CTag, CTags, CTemplateAccessInfo, _sfc_main$3_ as CTemplateAccessManage, _sfc_main$4G as CTemplateManagement, text as CText, _sfc_main$6v as CThemeEditor, _sfc_main$4B as CThemeManagement, _sfc_main$5l as CToastProvider, CToolbar, _sfc_main$6t as CTooltip, CUpsertFolderModal, _sfc_main$5p as CUserAvatar, CUserMenu, CUsersAccessInfo, CUsersGroupsAccessManage, _sfc_main$5m as CVirtualTable, _sfc_main$48 as CWarningAlert, CallState, CanvasActions, _sfc_main$15 as CanvasBuilderApp, CanvasBuilderMode, CanvasExcludedComponentTypesEnum, CanvasHistoryAction, App as CanvasSelector, CanvasStatus, CanvasThemeStatus, CanvasesViewsTypes, CollaborationRoleEnum, CollectionPlayerApp, App$4 as CollectionSelectorApp, ComponentIcon, ComponentTypes, ContactSelectorQuickFilterType, ContentGridLayoutTypes, ContentSelector, CoreFolderEntityType, DATE_TIME_FORMAT, DEFAULT_ADMIN_TABLE_HEIGHT, DEFAULT_ADMIN_TABLE_WITH_PAGINATION_HEIGHT, DEFAULT_GLOBAL_COMPONENT_SPACING, DEFAULT_GLOBAL_COMPONENT_SPACING_INTERVAL, DEFAULT_ITEMS_PER_PAGE, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PEER_CONNECTIVITY_VERSION, DEFAULT_PITCHER_SETTINGS, DSR_API_METHOD_TYPES, DSR_API_TYPES, DSR_MESSAGE, DSR_MESSAGE_TYPES, DSR_TYPE, DefaultExpiresAtEnum, DownloadTypeEnum, EMBED_TYPE, EventAction, EventExternalObjectContentTypeEnum, EventStatusEnum, FileContentTypeEnum, FileStatusEnum, FileTypeEnum, GlobalSearchResultType, GridLayoutTypes, HIDE_IF_EMPTY_COMPONENT_ID_TAG_PREFIX, HIDE_IF_EMPTY_COMPONENT_TRACKING_ID_TAG_PREFIX, HIDE_TAGS_WITH_PREFIX, HtmlLayoutTypes, IFRAME_ACTION_TYPES, IFRAME_DATA_MESSAGE, INITIAL_CALL_STATE, IS_DEV_ORG, IS_LOCALHOST, InstanceMembershipRoleEnum, InstanceMembershipUserStatusEnum, InvitationStatusEnum, LanguageEnum, LinkAlignmentTypes, LinkAnchorTypes, LinkPreviewTypes, MAX_LUMINANCE_FOR_LIGHT_TEXT, MAX_UPLOAD_SIZE, MIN_DIFFERENCE_IN_MINUTES, MetadataTemplateFieldTypeEnum, MultimediaHorizontalAlignmentOptions, NON_MEMBER_ROLES, NotesApp, OperatorEnum, PAPER_SIZE_PRESETS, PEER_CONNECTIVITY_EVENT, PEER_CONNECTIVITY_HANDLER_MATCH_ALL, PITCHER_EVENT, PITCHER_SETTINGS_KEY, PLATFORM_TYPE, PRINT_SCALE_FACTOR, PeerConnectivityActions, PitcherBroadcastedEventName, PitcherEventName, PitcherExternalEventName, PitcherMessageType, PitcherResponseStatus, PostAction, App$2 as PptConversionSelectorApp, REQUEST_DEFAULT_CANCEL_TIMEOUT, SEARCH_DEBOUNCE_TIME, SUPPORTED_FONT_EXTENSIONS, SUPPORTED_FONT_TYPES, SUPPORTED_IMAGE_EXTENSIONS, SUPPORTED_IMAGE_TYPES, SUPPORTED_UPLOAD_FILE_EXTENSIONS, SUPPORTED_VIDEO_EXTENSIONS, SUPPORTED_VIDEO_TYPES, SfEventColors, SfEventColorsLight, StorageRegionEnum, TRACKING_EVENTS_STORAGE_KEY, UI_API_METHOD_TYPES, UI_MESSAGE, UI_MESSAGE_TYPES, UI_NATIVE_MESSAGE_TYPES, UserRoleEnum, ViewCompactItemType, addCanvasComponent, _export as agendaSelector, appRequiresCrm, applyCanvasThemeAssetsToNode, applyFont, applyToTreeBy, autofocus as autofocusDirective, camelCaseKeys, canvasUiUnoPreset, clearLocalStorageIfNeeded, ClickOutsideDirective as clickOutsideDirective, collectAllNodesByCondition, _export$3 as collectionPlayer, _export$2 as collectionSelector, componentIconType, computeLocalStorageBytes, convertSecondsToMinutes, convertToPixels, convertToSosl, createNodeId, createPitcherSettings, dayjs, deepDiff, deepToRaw, derivePatchRequestFields, determineUserRole, discardSectionComponentOverride, displayBytesWithMUnit, displayIntegerWithMunit, doesLocalOverrideExist, doesNotHaveAnyModuleOrHookSpecified, downloadFile, draggable as draggableDirective, elementMounted as elementMountedDirective, escapeSoqlString, evaluateAccessor, executeWithDoublingTime, exitFullscreen, fallbackLocale, fetchAll, fetchAllWithOffset, fetchFirstChunkAndRemainingAsync, filterSidebarApps, filterTreeBy, findAllEmbeddableTypesInCanvasContent, findAllEmbeddableTypesInSectionsContent, findEmbeddableInCanvasContent, findEmbeddableInSectionsContent, findNodeInTreeByCondition, findNodeInTreeById, findNodeInTreeByType, findParentByNodeId, formatDate, formatDateDetailed, formatDateTime, formatDateTimeAgo, formatDayMonthBasedOnBrowserLang, formatDimensionForGotenberg, generateAIThumbnailUrl, getAllPages, getAppConfigFromAppSource, getAvailableApis, getComponentDescription, getComponentKeywords, getComponentTitle, getContrastTextColor, getDefinedProps, getEventColor, getExcessItemsIndexes, getFontAwesomeIconNameAndType, getImageSize, getLocalOverrideUrl, getLuminance, getNextPageParam, getNodeDisplayNameByComponentType, getNumberWithRegex, getPageQuantity, getPageRange, getPreviewUrl, getRoleIcon, getSectionGlobalComponentSpacing, handleThemeAssetComparison, hasAppTypeDefined, highLevelApi, indirectEval, insertItemSorted, isAfter, isBefore, isBeforeMinDate, isCanvasDrawerApp, isCanvasSectionExecution, isEmbeddableWithZeroHeight, isFileViewerReplacement, isFirefox, isFullscreen, isHeadlessOrNotAvailableApp, isImageAccessible, isIosDevice, isMac, isMobile, isModifierClick, isNonMemberRole, isOriginValid, isPastMaxDate, isPitcherOrIosDevice, isPitcherWkWebView, isPostcallApp, isQueryParamTruthy, isSafari, isSafariOnIosDevice, isSameOrAfter, isSameOrBefore, isTextComponentEmpty, isTheUiItself, isTouchScreen, isValidHex, isWindows, lightThemeOverrides, loadCustomHelpersFromApps, loadRemoteScriptWithCtx, loadScript, loadScriptStyle, loadStyle, localeDropdownOptions, localeNames, locales, minFutureDate, minPastDate, moveNodeTo, msToSeconds, navigateTo, normalizeFilterParams, normalizeNetworkFilterParams, openUsdz, parseCollectionPlayerSlidesToContentSelector, parseContentSelectorToCollectionPlayerSlides, parseFileToCollectionPlayer, parsePdfFileToCollectionPlayer, parsePptxFileToCollectionPlayer, pascalCaseKeys, _export$1 as pptConversionSelector, processCanvasForSectionThemeOverride, regenerateTreeIds, registerCustomHelper, registerCustomHelpers, registerPeerConnectivityHandler, renderTemplate, replaceThemePresetsWithInlineStyles, replaceTranslationMessagesWithOverrides, requestFullscreen, requestStream, scrollCanvasToTop, scrollToComponentById, secondsToHumanReadable, sendPeerConnectivityEvent, setDateTime, shouldDisplayPlaceholderComponent, shouldOpenInCollectionPlayerViewer, shouldShowEmbeddable, shouldShowInSidebar, skipElementsInTree, snakeCaseKeys, someNodeInTree, sortCollectionByString, splitUserName, stringToHslColor, supportedLocales, tapDirective, titleCase, toggleFullscreen, tooltipDirective, transformFilesToCollectionPlayer, transformFilesToContentGrid, updateFirstContentGridWithShareboxItems, urlSafeFetchInChunks, useAdmin, useAdminAndDsrState, useApi, useAppsDb, useBindValidation, useBroadcastRouteChange, useCanvasById, useCanvasLocks, useCanvasOverlay, useCanvasVisibility, useCanvasesAsInfinity, useCollectionPlayerOverlay, useCommentTracking, useConfirmation, useCreateEvent, useDeleteEvent, useDsr, useFetchCanvases, useFetchEvents, useFetchUsers, useFileDisplayHelpers, useFolderNameDescription, useGlobalSearch, useInfiniteScroll, useLocation, useMetadataSearch, useMetadataTemplates, useNotesApp, useNotification, useOpenFileStack, usePitcherApi, usePolling, usePresentationHistory, useRecentFiles, useShareCanvas, useSharedCommentsStorage, useSuggestedTags, useTheme, useThemeVars, useToast, useUi, useUpdateEvent, useWindowEvents, vueQueryPluginOptions, wait, waitForIframeInitialize, waitForValue };
183842
183302
  //# sourceMappingURL=canvas-ui.js.map