@usereactify/search 5.58.0 → 5.59.0-beta.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.
- package/CHANGELOG.md +21 -0
- package/dist/package.json +1 -1
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.d.ts +14 -3
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js +5 -6
- package/dist/src/components/ReactifySearchProvider/ReactifySearchProvider.js.map +1 -1
- package/dist/src/components/Result/Results.d.ts +3 -1
- package/dist/src/components/Result/Results.js +33 -34
- package/dist/src/components/Result/Results.js.map +1 -1
- package/dist/src/components/Sensor/SensorCollection.js +2 -1
- package/dist/src/components/Sensor/SensorCollection.js.map +1 -1
- package/dist/src/components/Sensor/SensorCuratedPageCollection.d.ts +1 -0
- package/dist/src/components/Sensor/SensorCuratedPageCollection.js +22 -0
- package/dist/src/components/Sensor/SensorCuratedPageCollection.js.map +1 -0
- package/dist/src/components/Sensor/SensorCuratedPageSearch.d.ts +1 -0
- package/dist/src/components/Sensor/SensorCuratedPageSearch.js +21 -0
- package/dist/src/components/Sensor/SensorCuratedPageSearch.js.map +1 -0
- package/dist/src/components/Sensor/Sensors.js +18 -0
- package/dist/src/components/Sensor/Sensors.js.map +1 -1
- package/dist/src/components/Sensor/index.d.ts +4 -1
- package/dist/src/components/Sensor/index.js +5 -1
- package/dist/src/components/Sensor/index.js.map +1 -1
- package/dist/src/hooks/useReactifySearchContext.d.ts +17 -1
- package/dist/src/hooks/useReactifySearchContext.js +30 -4
- package/dist/src/hooks/useReactifySearchContext.js.map +1 -1
- package/dist/src/types/config.d.ts +7 -5
- package/dist/src/types/config.js.map +1 -1
- package/dist/src/types/firestore.d.ts +84 -392
- package/dist/src/types/firestore.js +53 -84
- package/dist/src/types/firestore.js.map +1 -1
- package/dist/src/types/reactivesearch.d.ts +2 -0
- package/dist/src/types/reactivesearch.js.map +1 -1
- package/dist/src/utility/liquid.d.ts +8 -1
- package/dist/src/utility/liquid.js +32 -11
- package/dist/src/utility/liquid.js.map +1 -1
- package/dist/src/utility/props.d.ts +210 -8
- package/dist/src/utility/props.js +90 -80
- package/dist/src/utility/props.js.map +1 -1
- package/dist/src/utility/queries.d.ts +391 -0
- package/dist/src/utility/queries.js +225 -0
- package/dist/src/utility/queries.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.isPinProduct = isPinProduct;
|
|
5
|
-
exports.isPinCallout = isPinCallout;
|
|
3
|
+
exports.Operation = exports.SynonymType = exports.CalloutType = exports.CurationStatus = exports.CurationType = exports.DefinedFieldType = exports.SharedStoreResourceLabels = exports.SharedStoreResource = exports.MerchandisingCalloutAutofillBehaviourLabel = exports.MerchandisingCalloutAutofillBehaviour = exports.ResourceType = void 0;
|
|
6
4
|
var ResourceType;
|
|
7
5
|
(function (ResourceType) {
|
|
8
6
|
ResourceType["ActivityLog"] = "activity_log";
|
|
9
7
|
ResourceType["Product"] = "product";
|
|
10
8
|
ResourceType["Collection"] = "collection";
|
|
11
9
|
ResourceType["Curation"] = "curation";
|
|
10
|
+
ResourceType["CurationPin"] = "curation_pin";
|
|
11
|
+
ResourceType["CurationHiding"] = "curation_hiding";
|
|
12
12
|
ResourceType["Callout"] = "callout";
|
|
13
13
|
ResourceType["SettingsAccount"] = "account_settings";
|
|
14
14
|
ResourceType["SettingsAutomation"] = "automation_settings";
|
|
@@ -22,55 +22,58 @@ var ResourceType;
|
|
|
22
22
|
ResourceType["Antonym"] = "antonym";
|
|
23
23
|
ResourceType["Synonym"] = "synonym";
|
|
24
24
|
ResourceType["Task"] = "task";
|
|
25
|
+
ResourceType["SearchableField"] = "searchable_field";
|
|
25
26
|
})(ResourceType || (exports.ResourceType = ResourceType = {}));
|
|
26
|
-
exports.ResourceTypeLabel = {
|
|
27
|
-
[ResourceType.ActivityLog]: "Activity log",
|
|
28
|
-
[ResourceType.Product]: "Product",
|
|
29
|
-
[ResourceType.Collection]: "Collection",
|
|
30
|
-
[ResourceType.Curation]: "Curation",
|
|
31
|
-
[ResourceType.Callout]: "Callout",
|
|
32
|
-
[ResourceType.SettingsAccount]: "Settings account",
|
|
33
|
-
[ResourceType.SettingsAutomation]: "Settings automation",
|
|
34
|
-
[ResourceType.SettingsProduct]: "Settings product",
|
|
35
|
-
[ResourceType.FilterGroup]: "Filter group",
|
|
36
|
-
[ResourceType.FilterFacet]: "Filter facet",
|
|
37
|
-
[ResourceType.MergedValue]: "Merged value",
|
|
38
|
-
[ResourceType.Redirect]: "Redirect",
|
|
39
|
-
[ResourceType.Relevancy]: "Relevancy",
|
|
40
|
-
[ResourceType.Sort]: "Sort",
|
|
41
|
-
[ResourceType.Antonym]: "Antonym",
|
|
42
|
-
[ResourceType.Synonym]: "Synonym",
|
|
43
|
-
[ResourceType.Task]: "Task",
|
|
44
|
-
};
|
|
45
|
-
exports.TaskSyncBulkDownloadTypeLabel = {
|
|
46
|
-
collection: "collection details",
|
|
47
|
-
product: "product details",
|
|
48
|
-
product_market: "product market details",
|
|
49
|
-
};
|
|
50
|
-
var ManageAdminFlag;
|
|
51
|
-
(function (ManageAdminFlag) {
|
|
52
|
-
ManageAdminFlag["Example"] = "example";
|
|
53
|
-
})(ManageAdminFlag || (exports.ManageAdminFlag = ManageAdminFlag = {}));
|
|
54
27
|
var MerchandisingCalloutAutofillBehaviour;
|
|
55
28
|
(function (MerchandisingCalloutAutofillBehaviour) {
|
|
56
29
|
MerchandisingCalloutAutofillBehaviour["Always"] = "always";
|
|
57
30
|
MerchandisingCalloutAutofillBehaviour["MoreResults"] = "more_results";
|
|
58
31
|
})(MerchandisingCalloutAutofillBehaviour || (exports.MerchandisingCalloutAutofillBehaviour = MerchandisingCalloutAutofillBehaviour = {}));
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
32
|
+
exports.MerchandisingCalloutAutofillBehaviourLabel = {
|
|
33
|
+
[MerchandisingCalloutAutofillBehaviour.Always]: "Autofill always",
|
|
34
|
+
[MerchandisingCalloutAutofillBehaviour.MoreResults]: "Autofill when there are more results",
|
|
35
|
+
};
|
|
36
|
+
var SharedStoreResource;
|
|
37
|
+
(function (SharedStoreResource) {
|
|
38
|
+
SharedStoreResource["Curation"] = "curation";
|
|
39
|
+
SharedStoreResource["Callout"] = "callout";
|
|
40
|
+
SharedStoreResource["FilterGroup"] = "filter_group";
|
|
41
|
+
SharedStoreResource["FilterFacet"] = "filter_facet";
|
|
42
|
+
SharedStoreResource["MergedValue"] = "merged_value";
|
|
43
|
+
SharedStoreResource["Redirect"] = "redirect";
|
|
44
|
+
SharedStoreResource["Relevancy"] = "relevancy";
|
|
45
|
+
SharedStoreResource["Sort"] = "sort";
|
|
46
|
+
SharedStoreResource["Synonym"] = "synonym";
|
|
47
|
+
SharedStoreResource["SettingsAccount"] = "account_settings";
|
|
48
|
+
SharedStoreResource["SettingsAutomation"] = "automation_settings";
|
|
49
|
+
SharedStoreResource["SettingsProduct"] = "product_settings";
|
|
50
|
+
})(SharedStoreResource || (exports.SharedStoreResource = SharedStoreResource = {}));
|
|
51
|
+
exports.SharedStoreResourceLabels = {
|
|
52
|
+
[SharedStoreResource.Curation]: "Curation",
|
|
53
|
+
[SharedStoreResource.Callout]: "Callout",
|
|
54
|
+
[SharedStoreResource.FilterGroup]: "Filter group",
|
|
55
|
+
[SharedStoreResource.FilterFacet]: "Filter facet",
|
|
56
|
+
[SharedStoreResource.MergedValue]: "Merged value",
|
|
57
|
+
[SharedStoreResource.Redirect]: "Redirect",
|
|
58
|
+
[SharedStoreResource.Relevancy]: "Relevancy",
|
|
59
|
+
[SharedStoreResource.Sort]: "Sort",
|
|
60
|
+
[SharedStoreResource.Synonym]: "Synonym",
|
|
61
|
+
[SharedStoreResource.SettingsAccount]: "Settings account",
|
|
62
|
+
[SharedStoreResource.SettingsAutomation]: "Settings automation",
|
|
63
|
+
[SharedStoreResource.SettingsProduct]: "Settings product",
|
|
64
|
+
};
|
|
65
|
+
exports.DefinedFieldType = {
|
|
66
|
+
Array: "array",
|
|
67
|
+
Text: "text",
|
|
68
|
+
Float: "float",
|
|
69
|
+
Long: "long",
|
|
70
|
+
Boolean: "boolean",
|
|
71
|
+
};
|
|
64
72
|
var CurationType;
|
|
65
73
|
(function (CurationType) {
|
|
66
74
|
CurationType["Search"] = "search";
|
|
67
75
|
CurationType["Collection"] = "collection";
|
|
68
76
|
})(CurationType || (exports.CurationType = CurationType = {}));
|
|
69
|
-
;
|
|
70
|
-
exports.CurationTypeLabel = {
|
|
71
|
-
[CurationType.Search]: "Search",
|
|
72
|
-
[CurationType.Collection]: "Collection",
|
|
73
|
-
};
|
|
74
77
|
var CurationStatus;
|
|
75
78
|
(function (CurationStatus) {
|
|
76
79
|
CurationStatus["Draft"] = "draft";
|
|
@@ -82,56 +85,22 @@ var CurationStatus;
|
|
|
82
85
|
CurationStatus["Pinning"] = "pinning";
|
|
83
86
|
CurationStatus["Sorting"] = "sorting";
|
|
84
87
|
})(CurationStatus || (exports.CurationStatus = CurationStatus = {}));
|
|
85
|
-
exports.CurationStatusLabel = {
|
|
86
|
-
[CurationStatus.Draft]: "Draft",
|
|
87
|
-
[CurationStatus.Publishing]: "Publishing",
|
|
88
|
-
[CurationStatus.Published]: "Published",
|
|
89
|
-
[CurationStatus.Error]: "Error",
|
|
90
|
-
[CurationStatus.Unpublishing]: "Unpublishing",
|
|
91
|
-
[CurationStatus.Resetting]: "Resetting",
|
|
92
|
-
[CurationStatus.Pinning]: "Pinning",
|
|
93
|
-
[CurationStatus.Sorting]: "Sorting",
|
|
94
|
-
};
|
|
95
|
-
var PinSource;
|
|
96
|
-
(function (PinSource) {
|
|
97
|
-
PinSource["Manual"] = "manual";
|
|
98
|
-
PinSource["Automatic"] = "automatic";
|
|
99
|
-
})(PinSource || (exports.PinSource = PinSource = {}));
|
|
100
|
-
var PinType;
|
|
101
|
-
(function (PinType) {
|
|
102
|
-
PinType["Product"] = "product";
|
|
103
|
-
PinType["Callout"] = "callout";
|
|
104
|
-
})(PinType || (exports.PinType = PinType = {}));
|
|
105
|
-
function isPinProduct(pin) {
|
|
106
|
-
return PinType.Product === pin.type;
|
|
107
|
-
}
|
|
108
|
-
function isPinCallout(pin) {
|
|
109
|
-
return PinType.Callout === pin.type;
|
|
110
|
-
}
|
|
111
88
|
var CalloutType;
|
|
112
89
|
(function (CalloutType) {
|
|
113
90
|
CalloutType["Standard"] = "standard";
|
|
114
|
-
CalloutType["
|
|
91
|
+
CalloutType["Autofill"] = "autofill";
|
|
115
92
|
})(CalloutType || (exports.CalloutType = CalloutType = {}));
|
|
116
93
|
var SynonymType;
|
|
117
94
|
(function (SynonymType) {
|
|
118
95
|
SynonymType["Group"] = "group";
|
|
119
96
|
SynonymType["Oneway"] = "oneway";
|
|
120
97
|
})(SynonymType || (exports.SynonymType = SynonymType = {}));
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
(function (ActivityLogAction) {
|
|
130
|
-
ActivityLogAction["Create"] = "create";
|
|
131
|
-
ActivityLogAction["Delete"] = "delete";
|
|
132
|
-
ActivityLogAction["Duplicate"] = "duplicate";
|
|
133
|
-
ActivityLogAction["Sync"] = "sync";
|
|
134
|
-
ActivityLogAction["Trigger"] = "trigger";
|
|
135
|
-
ActivityLogAction["Update"] = "update";
|
|
136
|
-
})(ActivityLogAction || (exports.ActivityLogAction = ActivityLogAction = {}));
|
|
98
|
+
exports.Operation = {
|
|
99
|
+
Equals: "equals",
|
|
100
|
+
NotEquals: "not equals",
|
|
101
|
+
Contains: "contains",
|
|
102
|
+
NotContains: "not contains",
|
|
103
|
+
LessThan: "less than",
|
|
104
|
+
GreaterThan: "greater than",
|
|
105
|
+
};
|
|
137
106
|
//# sourceMappingURL=firestore.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"firestore.js","sourceRoot":"","sources":["../../../src/types/firestore.ts"],"names":[],"mappings":"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","sourcesContent":["import { ShopifyAppPurchaseOneTime, ShopifyAppSubscription, ShopifyProduct, ShopifyProductImage } from \"./shopify\";\nimport { ElasticDataType } from \"./elastic\";\nimport { AppPurchaseStatus } from \"./graphql\";\n\nexport interface ResourceDocument {\n id: string;\n keywords: Array<string>;\n version?: string;\n createdAt?: string;\n updatedAt?: string;\n}\n\nexport enum ResourceType {\n ActivityLog = \"activity_log\",\n Product = \"product\",\n Collection = \"collection\",\n Curation = \"curation\",\n Callout = \"callout\",\n SettingsAccount = \"account_settings\",\n SettingsAutomation = \"automation_settings\",\n SettingsProduct = \"product_settings\",\n FilterGroup = \"filter_group\",\n FilterFacet = \"filter_facet\",\n MergedValue = \"merged_value\",\n Redirect = \"redirect\",\n Relevancy = \"relevancy\",\n Sort = \"sort\",\n Antonym = \"antonym\",\n Synonym = \"synonym\",\n Task = \"task\",\n}\n\nexport const ResourceTypeLabel: Record<ResourceType, string> = {\n [ResourceType.ActivityLog]: \"Activity log\",\n [ResourceType.Product]: \"Product\",\n [ResourceType.Collection]: \"Collection\",\n [ResourceType.Curation]: \"Curation\",\n [ResourceType.Callout]: \"Callout\",\n [ResourceType.SettingsAccount]: \"Settings account\",\n [ResourceType.SettingsAutomation]: \"Settings automation\",\n [ResourceType.SettingsProduct]: \"Settings product\",\n [ResourceType.FilterGroup]: \"Filter group\",\n [ResourceType.FilterFacet]: \"Filter facet\",\n [ResourceType.MergedValue]: \"Merged value\",\n [ResourceType.Redirect]: \"Redirect\",\n [ResourceType.Relevancy]: \"Relevancy\",\n [ResourceType.Sort]: \"Sort\",\n [ResourceType.Antonym]: \"Antonym\",\n [ResourceType.Synonym]: \"Synonym\",\n [ResourceType.Task]: \"Task\",\n};\n\nexport interface Log {\n id: string\n keywords: Array<string>\n message: string\n platform: \"reactify\" | \"shopify\" | \"google\" | \"elastic\"\n percentCompleted: number\n action?: {\n type: \"retry\"\n label: string\n task: Task[\"taskId\"]\n }\n step:\n | \"syncMainDownload\"\n | \"syncBulkStart\"\n | \"syncBulkDownload\"\n | \"syncBulkTransform\"\n | \"syncBulkMerge\"\n | \"syncBulkUpload\"\n | \"syncBulkCleanup\"\n | \"syncBulkCleanupCurations\"\n | \"analyticsDownload\"\n | \"analyticsTransform\"\n | \"analyticsUpload\"\n | \"complete\"\n | \"analyticsStart\"\n title: string\n type: \"bulk\" | \"analytics\"\n data?: string // JSON sringified data\n progress: \"new\" | \"error\" | \"complete\" | \"partiallyComplete\"\n status: \"success\" | \"info\" | \"warning\" | \"critical\" // polaris banner status\n createdAt: string;\n updatedAt?: string;\n finishedAt?: string;\n}\n\nexport interface Task {\n logId: string\n taskId:\n | \"setupInstall\"\n | \"setupWebhook\"\n | \"syncCollectionId\"\n | \"syncProductId\"\n | \"syncMainDownload\"\n | \"syncBulkReset\"\n | \"syncBulkStart\"\n | \"syncBulkDownload\"\n | \"syncBulkTransform\"\n | \"syncBulkMerge\"\n | \"syncBulkUpload\"\n | \"syncBulkCleanup\"\n | \"syncBulkCleanupCurations\"\n | \"cleanCuration\"\n | \"cleanCurationId\"\n | \"plantSeeds\"\n | \"refreshMappings\"\n | \"refreshDefinedFields\"\n | \"refreshCurations\"\n | \"analyticsStart\"\n | \"analyticsDownload\"\n | \"analyticsTransform\"\n | \"analyticsUpload\"\n | \"indexCleanup\"\n | \"cacheClear\"\n | \"syncMarkets\"\n | \"syncConfig\"\n | \"syncShop\"\n firstRun?: boolean\n createdAt: string;\n updatedAt?: string;\n}\nexport interface TaskSub extends Task {\n taskSubId: string;\n}\n\nexport interface TaskSubSyncCollectionId extends TaskSub {\n taskId: \"syncCollectionId\"\n collectionGid: string\n}\nexport interface TaskSubSyncProductId extends TaskSub {\n taskId: \"syncProductId\"\n productGid: string\n}\nexport interface TaskSyncShop extends Task {\n taskId: \"syncShop\"\n manual?: boolean\n}\n\nexport interface TaskSyncMainDownload extends Task {\n taskId: \"syncMainDownload\"\n type: \"product_download\" | \"product_polling\" | \"collection_download\" | \"collection_polling\";\n productUrl?: string\n collectionUrl?: string\n manual?: boolean\n}\n\nexport interface TaskSyncBulkReset extends Task {\n taskId: \"syncBulkReset\"\n manual?: boolean\n}\n\nexport interface TaskSyncBulkStart extends Task {\n taskId: \"syncBulkStart\"\n manual?: boolean\n}\n\nexport interface TaskSyncBulkDownload extends Task {\n taskId: \"syncBulkDownload\"\n type: \"collection\" | \"product\" | \"product_market\"\n productUrl?: string\n productMarketUrl?: string\n collectionUrl?: string\n syncAt: string\n}\n\nexport const TaskSyncBulkDownloadTypeLabel: Record<\"collection\" | \"product\" | \"product_market\", string> = {\n collection: \"collection details\",\n product: \"product details\",\n product_market: \"product market details\",\n};\n\nexport interface TaskSyncBulkTransform extends Task {\n taskId: \"syncBulkTransform\"\n productUrl: string\n productMarketUrl?: string\n collectionUrl: string\n collectionCount?: number\n lastCollectionCursor?: string\n syncAt: string\n}\n\nexport interface TaskSyncBulkMerge extends Task {\n taskId: \"syncBulkMerge\"\n productCount: number\n collectionCount: number\n productCompletedCount?: number\n startAfterId?: string\n syncAt: string\n}\n\nexport interface TaskSyncBulkUpload extends Task {\n taskId: \"syncBulkUpload\"\n productCount: number\n collectionCount: number\n productCompletedCount?: number\n startAfterId?: string\n syncAt: string\n}\n\nexport interface TaskSyncBulkCleanup extends Task {\n taskId: \"syncBulkCleanup\"\n syncAt: string\n}\n\nexport interface TaskSyncBulkCleanupCurations extends Task {\n taskId: \"syncBulkCleanupCurations\"\n}\n\nexport interface TaskCleanCuration extends Task {\n taskId: \"cleanCuration\";\n startAfterId?: string;\n manual?: boolean;\n}\nexport interface TaskSubCleanCurationId extends TaskSub {\n taskId: \"cleanCurationId\";\n curationId: string;\n manual?: boolean;\n}\nexport interface TaskSetupInstall extends Task {\n taskId: \"setupInstall\"\n}\n\nexport interface TaskSetupWebhook extends Task {\n taskId: \"setupWebhook\"\n}\n\nexport interface TaskPlantSeeds extends Task {\n taskId: \"plantSeeds\"\n}\n\nexport interface TaskRefreshMappings extends Task {\n taskId: \"refreshMappings\"\n manual?: boolean\n}\n\nexport interface TaskRefreshDefinedFields extends Task {\n taskId: \"refreshDefinedFields\"\n manual?: boolean\n}\n\nexport interface TaskRefreshCurations extends Task {\n taskId: \"refreshCurations\"\n manual?: boolean\n}\n\nexport interface TaskAnalyticsStart extends Task {\n taskId: \"analyticsStart\"\n manual?: boolean\n}\n\nexport interface TaskAnalyticsDownload extends Task {\n taskId: \"analyticsDownload\"\n reports: AnalyticsReports[]\n manual?: boolean\n}\n\nexport interface TaskAnalyticsTransform extends Task {\n taskId: \"analyticsTransform\"\n startAfterId?: string\n manual?: boolean\n}\n\nexport interface TaskAnalyticsUpload extends Task {\n taskId: \"analyticsUpload\"\n startAfterId?: string\n manual?: boolean\n}\n\nexport interface TaskIndexCleanup extends Task {\n taskId: \"indexCleanup\"\n manual?: boolean\n}\n\nexport interface TaskCacheClear extends Task {\n taskId: \"cacheClear\"\n manual?: boolean\n}\n\nexport interface TaskSyncMarkets extends Task {\n taskId: \"syncMarkets\"\n manual?: boolean\n}\n\nexport interface TaskSyncConfig extends Task {\n taskId: \"syncConfig\"\n manual?: boolean\n}\nexport interface Lock {\n logId: string\n taskType: \"sync\" | \"syncConfig\" | \"syncCollectionId\" | \"syncProductId\" | \"analytics\"\n createdAt: string;\n expiresAt: string\n}\n\nexport enum ManageAdminFlag {\n Example = \"example\",\n}\nexport interface ManageAdmin {\n installed: boolean;\n indexRead: string;\n indexWrite: string;\n indexAlias: string;\n indexAutomatic: boolean;\n indexRollback: Array<{\n indexName: string;\n documentCount: number;\n createdAt: number;\n }>;\n indexRefreshInterval: string;\n // indexSettingsPending: boolean;\n endpoint: string;\n cluster: string;\n customMappings: string; // JSON sringified data\n customFilters: string; // JSON sringified data\n timezone: string;\n cacheEnabled: boolean;\n cacheSeconds: number;\n flags?: Array<ManageAdminFlag>;\n production: boolean;\n}\n\nexport interface ManageProduct {\n tagChild?: string\n tagKeys?: Array<string>\n tagParent?: string\n tagRelated?: string\n syncObjects?: Array<string>\n tagExclude?: Array<string>\n tagExcludeSearch?: Array<string>\n tagExcludeCollection?: Array<string>\n tagSeparator?: string\n metafieldWhitelist?: Array<string>\n externalAppReactifyImageAI: boolean\n suggestionsExclude?: Array<string>;\n automaticCleanCurations?: boolean;\n\n merchandisingCalloutAutofillBehaviour: MerchandisingCalloutAutofillBehaviour;\n}\n\nexport enum MerchandisingCalloutAutofillBehaviour {\n Always = \"always\",\n MoreResults = \"more_results\",\n}\n\nexport interface ManageAutomation {\n sync: boolean\n webhooks: boolean\n mappings: boolean\n curations: boolean\n analytics: boolean\n syncFrequency: string\n syncThreshold: number\n notificationEnabled?: boolean;\n notificationEmail?: string;\n\n syncCatalogueCompletedAt?: number;\n syncAnalyticsCompletedAt?: number;\n syncConfigCompletedAt?: number;\n\n syncSpecialResourcePendingAt?: number | null;\n\n syncConfigHash?: string;\n}\n\nexport interface ManageAccount {\n shopifyPlanCustomCost?: number;\n shopifyPlanType?: \"general\" | \"partner\" | \"custom\";\n shopifyPlanStore?: \"primary\" | \"addon\";\n shopifyPlan?: \"non-plus\" | \"plus\" | \"development\";\n shopifyPlanSubscriptionShareCode?: string;\n stripeCustomerId?: string\n googleAnalyticsId?: string\n googleEmail?: string\n googleAccessToken?: string\n googleRefreshToken?: string\n googleAccessTokenExpiryDate?: number\n googleAnalyticsType?: \"UA\" | \"GA4\"\n googleIdField?: \"shopify_code\" | \"product_id\" | \"variant_id\" | \"variant_sku\" | \"variant_barcode\"\n}\n\nexport enum SettingsCurationsImageOption {\n Index = \"index\",\n Suffix = \"suffix\",\n}\n\nexport interface SettingsCurations {\n pageSize?: number\n gridColumns?: number\n imageOption: SettingsCurationsImageOption\n imagePosition: number\n imageSuffix: string\n imageSize?: \"small\" | \"medium\" | \"large\"\n imageSizePx: number;\n\n showCardDetailTitle?: boolean;\n showCardDetailContent?: boolean;\n showCardDetailPrice?: boolean;\n showCardDetailVendor?: boolean;\n showCardDetailPreorder?: boolean;\n showCardDetailDiscount?: boolean;\n showCardDetailInventory?: boolean;\n showCardDetailAvailability?: boolean;\n showCardDetailProfitMargin?: boolean;\n showCardDetailPublishedDays?: boolean;\n showCardDetailAnalyticsSales7Days?: boolean;\n showCardDetailAnalyticsSales30Days?: boolean;\n showCardDetailAnalyticsRevenue7Days?: boolean;\n showCardDetailAnalyticsRevenue30Days?: boolean;\n}\n\nexport interface Relevance extends ResourceDocument {\n field: string\n enabled: boolean\n importance: number\n searchType: \"always_search\" | \"search_page\" | \"instant_search\"\n hidden?: boolean\n}\n\nexport interface DefinedField {\n label: string\n value: string\n type: ElasticDataType | string\n}\n\nexport interface Sort extends ResourceDocument {\n name: string\n handle: string\n field: string\n position: number\n enabled: boolean\n direction: \"desc\" | \"asc\"\n visibility: \"all\" | \"search\" | \"collection\"\n hidden?: boolean\n}\n\nexport interface FilterGroup extends ResourceDocument {\n name: string\n handle: string\n enabled: boolean\n pageSize: number\n keywords: Array<string>\n collections: Array<string>\n type: \"search\" | \"collection\"\n paginationType: \"pagination\" | \"load_more\" | \"next_prev\" | \"infinite_scroll\"\n inventoryVisibility: \"show_all\" | \"hide_products\" | \"hide_variants\" | \"hide_all\"\n}\n\nexport interface FilterFacet extends ResourceDocument {\n name: string\n field: string\n handle: string\n position: number\n enabled: boolean\n keywords: Array<string>\n customSortOrder?: string\n displayType: \"multi\" | \"single\" | \"slider\"\n displayView: \"list\" | \"check\" | \"swatch\" | \"range\" | \"box\"\n displaySize: string\n displaySliderStep: string\n displaySliderPrefix: string\n displaySliderSuffix: string\n displayRangeOptions: Array<string>\n settingsShowMore: boolean\n settingsUppercase: boolean\n settingsShowSearch: boolean\n settingsShowFilter: boolean\n settingsShowEmptyValues: boolean\n settingsHideUnavailable: boolean\n settingsCollapsedMobile: boolean\n settingsCollapsedDesktop: boolean\n settingsFilterLogic: \"and\" | \"or\"\n valuesShow: \"all\" | \"manual\"\n valuesManual: Array<string>\n valuesExclude: Array<string>\n}\n\nexport interface Redirect extends ResourceDocument {\n url: string\n query: string\n enabled: boolean\n keywords: Array<string>\n hidden?: boolean\n}\n\nexport interface Curation extends ResourceDocument {\n title: string\n status: CurationStatus\n published: boolean\n keywords: Array<string>\n searchTerm?: string\n longRunningTask?: boolean\n collectionHandle?: string\n collectionId?: string\n type: CurationType;\n boosting?: {\n groupings?: BoostGrouping[]\n sortings?: BoostSorting[]\n }\n sort?: CurationSort\n schedule?: CurationSchedule\n hidden?: boolean\n\n markets?: Array<string>;\n}\n\nexport enum CurationType {\n Search = \"search\",\n Collection = \"collection\",\n};\n\nexport const CurationTypeLabel: Record<CurationType, string> = {\n [CurationType.Search]: \"Search\",\n [CurationType.Collection]: \"Collection\",\n};\n\nexport interface CurationSort {\n sortTag?: string\n sortOption: string\n sortDirection: \"asc\" | \"desc\"\n sortVariantOption?: \"option1\" | \"option2\" | \"option3\"\n}\n\nexport interface CurationSchedule {\n schedulePublish: string\n schedulePublishEnabled: boolean\n scheduleUnpublish: string\n scheduleUnpublishEnabled: boolean\n}\n\nexport enum CurationStatus {\n Draft = \"draft\",\n Publishing = \"publishing\",\n Published = \"published\",\n Error = \"error\",\n Unpublishing = \"unpublishing\",\n Resetting = \"resetting\",\n Pinning = \"pinning\",\n Sorting = \"sorting\",\n}\n\nexport const CurationStatusLabel: Record<CurationStatus, string> = {\n [CurationStatus.Draft]: \"Draft\",\n [CurationStatus.Publishing]: \"Publishing\",\n [CurationStatus.Published]: \"Published\",\n [CurationStatus.Error]: \"Error\",\n [CurationStatus.Unpublishing]: \"Unpublishing\",\n [CurationStatus.Resetting]: \"Resetting\",\n [CurationStatus.Pinning]: \"Pinning\",\n [CurationStatus.Sorting]: \"Sorting\",\n}\n\nexport interface CurationHiding {\n productId: number;\n}\n\nexport interface Market {\n id: string;\n label: string;\n enabled: boolean;\n publicationId: string;\n locationId?: string;\n currencyCode?: string;\n}\n\nexport interface BoostGrouping {\n key: string\n value: string\n field: string\n position: number\n operation: string\n}\n\nexport interface BoostSorting {\n key: string\n field: string\n query?: string\n position: number\n direction: \"asc\" | \"desc\"\n}\n\nexport type Pin = PinProduct | PinCallout\n\nexport enum PinSource {\n Manual = \"manual\",\n Automatic = \"automatic\",\n}\n\nexport enum PinType {\n Product = \"product\",\n Callout = \"callout\",\n}\n\nexport type PinTypeOnly = Pick<Pin, \"type\">\n\nexport function isPinProduct(pin: PinTypeOnly): pin is PinProduct {\n return PinType.Product === pin.type;\n}\n\nexport function isPinCallout(pin: PinTypeOnly): pin is PinCallout {\n return PinType.Callout === pin.type;\n}\n\nexport interface PinProduct {\n key: string\n type: PinType.Product\n position: number\n productId: number\n source?: PinSource // @todo migrate and change to non-optional field\n}\n\nexport interface PinCallout {\n key: string\n type: PinType.Callout\n position: number\n calloutId: string\n source?: PinSource // @todo migrate and change to non-optional field\n}\n\nexport interface Link {\n content: string\n url: string\n key: string\n}\n\nexport interface Callout extends ResourceDocument {\n id: string;\n type: CalloutType;\n link: string;\n links: Array<Link>;\n // name: string;\n title: string;\n content: string;\n enabled: boolean;\n textColor: string;\n keywords: Array<string>;\n mobileImage: string;\n mobileVideo: string;\n desktopVideo: string;\n desktopImage: string;\n backgroundColor: string;\n visibility: \"desktop\" | \"mobile\" | \"all\";\n displayColumns: string; // @todo this should be a number\n displayRows: string; // @todo this should be a number\n selectedDates?: {\n end: string;\n start: string;\n };\n hidden?: boolean;\n}\n\nexport enum CalloutType {\n Standard = \"standard\",\n Filler = \"filler\",\n}\n\nexport enum SynonymType {\n Group = \"group\",\n Oneway = \"oneway\",\n}\nexport interface Synonym extends ResourceDocument {\n id: string\n name: string\n enabled: boolean\n keywords: Array<string>\n synonyms: Array<string>\n type: SynonymType\n hidden?: boolean\n}\nexport interface Antonym extends ResourceDocument {\n id: string\n name: string\n enabled: boolean\n keywords: Array<string>\n antonyms: Array<string>\n hidden?: boolean\n}\n\nexport interface MergedValue extends ResourceDocument {\n id: string\n name: string\n field: string\n enabled: boolean\n keywords: Array<string>\n values: Array<string>\n hidden?: boolean\n}\n\nexport interface Collection extends ResourceDocument {\n title: string\n handle: string\n shopifyId: string\n productIds: Array<string>\n storefrontId: string\n legacyResourceId: number\n syncStatus?: \"error\" | \"complete\" | \"partiallyComplete\"\n syncAt?: string\n}\n\n// product is the shopify product with edges and nodes normalised\n\nexport type Product = ResourceDocument & Omit<ShopifyProduct, \"variants\" | \"images\" | \"media\" | \"metafields\" | \"category\" | \"unpublishedPublications\"> & {\n category: string;\n unpublishedPublications: ShopifyProduct[\"unpublishedPublications\"][\"edges\"][0][\"node\"][]\n variants: (Omit<ShopifyProduct[\"variants\"][\"edges\"][0][\"node\"], \"presentmentPrices\"> & {\n images?: Array<ShopifyProductImage> // from child product if this variant is from a child\n presentmentPrices: ShopifyProduct[\"variants\"][\"edges\"][0][\"node\"][\"presentmentPrices\"][\"edges\"][0][\"node\"][]\n productId?: string\n })[]\n related?: Array<string>\n images: Array<ShopifyProductImage>\n media: ShopifyProduct[\"media\"][\"edges\"][0][\"node\"][]\n metafields: ShopifyProduct[\"metafields\"][\"edges\"][0][\"node\"][]\n keywords: Array<string>\n syncStatus?: \"error\" | \"complete\" | \"partiallyComplete\"\n syncAt?: string;\n markets?: Array<string>;\n}\n\nexport interface Analytics {\n query: AnalyticsQueryDoc & {\n items: AnalyticsDownloadItem[]\n }\n}\n\nexport interface AnalyticsQueryDoc {\n tableId: string\n accountId: string\n profileId: string\n profileName: string\n webPropertyId: string\n internalWebPropertyId: string\n}\n\nexport interface AnalyticsDownloadItem {\n id: string\n name: string\n value: number\n externalId: string\n type: AnalyticsReports\n}\n\nexport interface AnalyticsUploadItems {\n id: string\n [AnalyticsReports.Sales7Days]: number\n [AnalyticsReports.Sales30Days]: number\n [AnalyticsReports.Revenue7Days]: number\n [AnalyticsReports.Revenue30Days]: number\n}\n\nexport enum AnalyticsReports {\n Sales7Days = \"sales_7days\",\n Sales30Days = \"sales_30days\",\n Revenue7Days = \"revenue_7days\",\n Revenue30Days = \"revenue_30days\",\n}\n\nexport enum ActivityLogAction {\n Create = \"create\",\n Delete = \"delete\",\n Duplicate = \"duplicate\",\n Sync = \"sync\",\n Trigger = \"trigger\",\n Update = \"update\",\n}\n\nexport interface ShopifyUser {\n account_owner: boolean\n bio: string\n email: string\n first_name: string\n id: string\n im: string\n last_name: string\n permissions: Array<string>\n phone: string\n receive_announcements: number\n screen_name: string\n url: string\n locale: string\n user_type: string\n}\n\nexport interface ActivityLog extends ResourceDocument {\n action: ActivityLogAction\n resourceDisplayName: string\n resourceId: string\n resourceType: ResourceType\n shopifyStaffMemberId: string | undefined\n}\n\nexport type BillingAppSubscription = ShopifyAppSubscription\nexport type BillingAppPurchaseOneTime = ShopifyAppPurchaseOneTime\nexport type BillingAppPurchaseCredit = {\n id: string;\n name: string;\n status: AppPurchaseStatus;\n amount: string;\n}"]}
|
|
1
|
+
{"version":3,"file":"firestore.js","sourceRoot":"","sources":["../../../src/types/firestore.ts"],"names":[],"mappings":"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","sourcesContent":["import { ShopifyProduct, ShopifyProductImage } from \"./shopify\";\n\nexport interface ResourceDocument {\n id: string;\n keywords: Array<string>;\n version?: string;\n createdAt?: string;\n updatedAt?: string;\n}\n\nexport enum ResourceType {\n ActivityLog = \"activity_log\",\n Product = \"product\",\n Collection = \"collection\",\n Curation = \"curation\",\n CurationPin = \"curation_pin\",\n CurationHiding = \"curation_hiding\",\n Callout = \"callout\",\n SettingsAccount = \"account_settings\",\n SettingsAutomation = \"automation_settings\",\n SettingsProduct = \"product_settings\",\n FilterGroup = \"filter_group\",\n FilterFacet = \"filter_facet\",\n MergedValue = \"merged_value\",\n Redirect = \"redirect\",\n Relevancy = \"relevancy\",\n Sort = \"sort\",\n Antonym = \"antonym\",\n Synonym = \"synonym\",\n Task = \"task\",\n SearchableField = \"searchable_field\",\n}\n\nexport enum MerchandisingCalloutAutofillBehaviour {\n Always = \"always\",\n MoreResults = \"more_results\",\n}\n\nexport const MerchandisingCalloutAutofillBehaviourLabel: Record<\n MerchandisingCalloutAutofillBehaviour,\n string\n> = {\n [MerchandisingCalloutAutofillBehaviour.Always]: \"Autofill always\",\n [MerchandisingCalloutAutofillBehaviour.MoreResults]: \"Autofill when there are more results\",\n};\n\nexport enum SharedStoreResource {\n Curation = \"curation\",\n Callout = \"callout\",\n FilterGroup = \"filter_group\",\n FilterFacet = \"filter_facet\",\n MergedValue = \"merged_value\",\n Redirect = \"redirect\",\n Relevancy = \"relevancy\",\n Sort = \"sort\",\n Synonym = \"synonym\",\n SettingsAccount = \"account_settings\",\n SettingsAutomation = \"automation_settings\",\n SettingsProduct = \"product_settings\",\n}\n\nexport const SharedStoreResourceLabels: Record<SharedStoreResource, string> = {\n [SharedStoreResource.Curation]: \"Curation\",\n [SharedStoreResource.Callout]: \"Callout\",\n [SharedStoreResource.FilterGroup]: \"Filter group\",\n [SharedStoreResource.FilterFacet]: \"Filter facet\",\n [SharedStoreResource.MergedValue]: \"Merged value\",\n [SharedStoreResource.Redirect]: \"Redirect\",\n [SharedStoreResource.Relevancy]: \"Relevancy\",\n [SharedStoreResource.Sort]: \"Sort\",\n [SharedStoreResource.Synonym]: \"Synonym\",\n [SharedStoreResource.SettingsAccount]: \"Settings account\",\n [SharedStoreResource.SettingsAutomation]: \"Settings automation\",\n [SharedStoreResource.SettingsProduct]: \"Settings product\",\n};\n\nexport interface Relevance extends ResourceDocument {\n field: string;\n enabled: boolean;\n importance: number;\n searchType: \"always_search\" | \"search_page\" | \"instant_search\";\n hidden?: boolean;\n}\n\nexport const DefinedFieldType = {\n Array: \"array\",\n Text: \"text\",\n Float: \"float\",\n Long: \"long\",\n Boolean: \"boolean\",\n} as const;\nexport type DefinedFieldType =\n | typeof DefinedFieldType[keyof typeof DefinedFieldType]\n | (string & {});\n\nexport interface DefinedField {\n label: string;\n name: string;\n type: DefinedFieldType;\n}\n\nexport interface Sort extends ResourceDocument {\n name: string;\n handle: string;\n field: string;\n position: number;\n enabled: boolean;\n direction: \"desc\" | \"asc\";\n visibility: \"all\" | \"search\" | \"collection\";\n hidden?: boolean;\n}\n\nexport interface FilterGroup extends ResourceDocument {\n name: string;\n handle: string;\n enabled: boolean;\n pageSize: number;\n collections: Array<string>;\n type: \"search\" | \"collection\";\n paginationType: \"pagination\" | \"load_more\" | \"next_prev\" | \"infinite_scroll\";\n inventoryVisibility: \"show_all\" | \"hide_products\" | \"hide_variants\" | \"hide_all\";\n}\n\nexport interface FilterFacet extends ResourceDocument {\n name: string;\n field: string;\n handle: string;\n position: number;\n enabled: boolean;\n keywords: Array<string>;\n customSortOrder?: string;\n displayType: \"multi\" | \"single\" | \"slider\";\n displayView: \"list\" | \"check\" | \"swatch\" | \"range\" | \"box\";\n displaySize: string;\n displaySliderStep: string;\n displaySliderPrefix: string;\n displaySliderSuffix: string;\n displayRangeOptions: Array<string>;\n settingsShowMore: boolean;\n settingsUppercase: boolean;\n settingsShowSearch: boolean;\n settingsShowFilter: boolean;\n settingsShowEmptyValues: boolean;\n settingsHideUnavailable: boolean;\n settingsCollapsedMobile: boolean;\n settingsCollapsedDesktop: boolean;\n settingsFilterLogic: \"and\" | \"or\";\n valuesShow: \"all\" | \"manual\";\n valuesManual: Array<string>;\n valuesExclude: Array<string>;\n}\n\nexport interface Redirect extends ResourceDocument {\n url: string;\n query: string;\n enabled: boolean;\n hidden?: boolean;\n}\n\nexport interface Curation extends ResourceDocument {\n title: string;\n status: CurationStatus;\n published: boolean;\n searchTerm?: string;\n longRunningTask?: boolean;\n collectionHandle?: string;\n collectionId?: string;\n type: CurationType;\n /** @deprecated */\n boosting?: {\n groupings?: BoostGrouping[];\n sortings?: BoostSorting[];\n };\n sort?: CurationSort;\n schedule?: CurationSchedule;\n scheduleEnabled?: boolean;\n scheduleTimezone?: string;\n hidden?: boolean;\n\n markets: Array<string>;\n\n boostings?: Boosting[];\n sortings?: Sorting[];\n}\n\nexport enum CurationType {\n Search = \"search\",\n Collection = \"collection\",\n}\n\nexport interface CurationSort {\n sortTag?: string;\n sortOption: string;\n sortDirection: \"asc\" | \"desc\";\n sortVariantOption?: \"option1\" | \"option2\" | \"option3\";\n}\n\nexport interface CurationSchedule {\n schedulePublish: string;\n schedulePublishEnabled: boolean;\n scheduleUnpublish: string;\n scheduleUnpublishEnabled: boolean;\n}\n\nexport enum CurationStatus {\n Draft = \"draft\",\n Publishing = \"publishing\",\n Published = \"published\",\n Error = \"error\",\n Unpublishing = \"unpublishing\",\n Resetting = \"resetting\",\n Pinning = \"pinning\",\n Sorting = \"sorting\",\n}\n\nexport interface CurationHiding {\n productId: number;\n}\n\nexport interface Market {\n id: string;\n label: string;\n enabled: boolean;\n publicationId: string;\n locationId: string;\n currencyCode?: string;\n countryCode?: string;\n}\n\n/** @deprecated This entity will be removed once the curation is fully refactored into merchandisable entities */\nexport interface BoostGrouping {\n key: string;\n value: string;\n field: string;\n position: number;\n operation: string;\n}\n\n/** @deprecated This entity will be removed once the curation is fully refactored into merchandisable entities */\nexport interface BoostSorting {\n key: string;\n field: string;\n query?: string;\n position: number;\n direction: \"asc\" | \"desc\";\n}\n\nexport interface Link {\n content: string;\n url: string;\n key: string;\n}\n\nexport interface Callout extends ResourceDocument {\n type: CalloutType;\n link: string;\n links: Array<Link>;\n // name: string;\n title: string;\n content: string;\n enabled: boolean;\n textColor: string;\n mobileImage: string;\n mobileVideo: string;\n desktopVideo: string;\n desktopImage: string;\n backgroundColor: string;\n visibility: \"desktop\" | \"mobile\" | \"all\";\n displayColumns: string; // @todo this should be a number\n displayRows: string; // @todo this should be a number\n selectedDates?: {\n end: number;\n start: number;\n };\n hidden?: boolean;\n}\n\nexport enum CalloutType {\n Standard = \"standard\",\n Autofill = \"autofill\",\n}\n\nexport enum SynonymType {\n Group = \"group\",\n Oneway = \"oneway\",\n}\nexport interface Synonym extends ResourceDocument {\n name: string;\n enabled: boolean;\n synonyms: Array<string>;\n type: SynonymType;\n hidden?: boolean;\n}\nexport interface Antonym extends ResourceDocument {\n name: string;\n enabled: boolean;\n antonyms: Array<string>;\n hidden?: boolean;\n}\n\nexport interface MergedValue extends ResourceDocument {\n name: string;\n field: string;\n enabled: boolean;\n values: Array<string>;\n hidden?: boolean;\n}\n\nexport interface Collection extends ResourceDocument {\n title: string;\n handle: string;\n shopifyId: string;\n productIds: Array<string>;\n storefrontId: string;\n legacyResourceId: number;\n syncStatus?: \"error\" | \"complete\" | \"partiallyComplete\";\n syncAt?: string;\n}\n\n// product is the shopify product with edges and nodes normalised\nexport type Product = ResourceDocument &\n Omit<\n ShopifyProduct,\n \"variants\" | \"images\" | \"media\" | \"metafields\" | \"category\" | \"unpublishedPublications\"\n > & {\n category: string;\n variants: Array<\n Omit<ShopifyProduct[\"variants\"][\"edges\"][0][\"node\"], \"presentmentPrices\"> & {\n productId?: string;\n images?: Array<ShopifyProductImage>; // from child product if this variant is from a child\n presentmentPrices: ShopifyProduct[\"variants\"][\"edges\"][0][\"node\"][\"presentmentPrices\"][\"edges\"][0][\"node\"][];\n marketPrices: Array<{\n marketId: string;\n price: {\n amount: string;\n currencyCode: string;\n };\n compareAtPrice: {\n amount: string;\n currencyCode: string;\n } | null;\n }>;\n // inventoryItem: ShopifyProduct[\"variants\"][\"edges\"][0][\"node\"][\"inventoryItem\"];\n }\n >;\n // unpublishedPublications: Array<ShopifyProduct[\"unpublishedPublications\"][\"edges\"][0][\"node\"]>\n // inventoryLevels: Array<{\n // variantId: string;\n // locationId: string;\n // locationName: string;\n // quantity: number;\n // }>;\n related?: Array<string>;\n images: Array<ShopifyProductImage>;\n media: ShopifyProduct[\"media\"][\"edges\"][0][\"node\"][];\n metafields: ShopifyProduct[\"metafields\"][\"edges\"][0][\"node\"][];\n keywords: Array<string>;\n syncStatus?: \"error\" | \"complete\" | \"partiallyComplete\";\n syncAt?: string;\n markets?: Array<string>;\n };\n\nexport interface SearchableField extends ResourceDocument {\n field: string;\n enabled: boolean;\n hidden?: boolean;\n points: number;\n allowedMistakes: number;\n mistakePenaltyPercent: number;\n synyonymEnabled: boolean;\n synonymPenaltyPercent: number;\n}\n\nexport interface Boosting {\n key: string;\n fieldName: string;\n operation: Operation;\n value: string;\n points: number;\n}\n\nexport interface Sorting {\n field: string;\n position: number;\n direction: \"asc\" | \"desc\";\n}\n\nexport const Operation = {\n Equals: \"equals\",\n NotEquals: \"not equals\",\n Contains: \"contains\",\n NotContains: \"not contains\",\n LessThan: \"less than\",\n GreaterThan: \"greater than\",\n} as const;\nexport type Operation = typeof Operation[keyof typeof Operation];\n"]}
|
|
@@ -54,6 +54,8 @@ export interface ReactivesearchResultProps {
|
|
|
54
54
|
triggerAnalytics: unknown;
|
|
55
55
|
triggerClickAnalytics: unknown;
|
|
56
56
|
}
|
|
57
|
+
export type ResultsDataListenerParams = Pick<ReactivesearchResultProps, "data" | "resultStats" | "rawData">;
|
|
58
|
+
export type ResultsDataListener = (params: ResultsDataListenerParams) => void;
|
|
57
59
|
export interface ReactivesearchSearchStatePage {
|
|
58
60
|
isLoading: boolean;
|
|
59
61
|
hits: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactivesearch.js","sourceRoot":"","sources":["../../../src/types/reactivesearch.ts"],"names":[],"mappings":"","sourcesContent":["import { ElasticDocument, ElasticHit } from \"./elastic\";\n\n// props passed to SingleList/MultiList.render\nexport interface ReactivesearchFilterListProps {\n loading: boolean;\n error: Error | null;\n handleChange: (key: string) => void;\n data: { doc_count: number; key: string }[];\n value: string | { [key: string]: boolean };\n rawData: {\n aggregations?: any;\n };\n}\n\n// props passed to ReactiveList.renderPagination\nexport interface ReactivesearchPaginationProps {\n pages: number;\n showEndPage: false;\n totalPages: number;\n currentPage: number;\n setPage: (page: number) => void;\n}\n\n// props passed to ReactiveList.render\n// @todo complete missing types\nexport interface ReactivesearchResultProps {\n error?: ReactivesearchError;\n loading: boolean;\n data: Array<Omit<ElasticHit, \"_source\"> & ElasticDocument>;\n loadMore: () => void;\n customData: unknown;\n promotedData: unknown;\n aggregationData: unknown;\n rawData?: {\n _shards: {\n failed: number;\n skipped: number;\n successful: number;\n total: number;\n };\n took: number;\n status: number;\n timed_out: boolean;\n hits: ElasticHit[];\n };\n resultStats: {\n time: number;\n hidden: number;\n promoted: number;\n currentPage: number;\n numberOfPages: number;\n numberOfResults?: number;\n displayedResults: number;\n };\n streamData: unknown;\n triggerAnalytics: unknown;\n triggerClickAnalytics: unknown;\n}\n\n// state for the \"page\" component returned by StateProvider when given the keys: [\"isLoading\", \"hits\", \"resultStats\", \"error\"]\nexport interface ReactivesearchSearchStatePage {\n isLoading: boolean;\n hits: {\n hidden: number;\n time: number;\n total: number;\n hits: ElasticHit[];\n };\n resultStats: {\n hidden: number;\n numberOfResults?: number;\n promoted: number;\n time: number;\n };\n error?: ReactivesearchError;\n}\n\nexport interface ReactivesearchError {\n status: number;\n statusText: string;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"reactivesearch.js","sourceRoot":"","sources":["../../../src/types/reactivesearch.ts"],"names":[],"mappings":"","sourcesContent":["import { ElasticDocument, ElasticHit } from \"./elastic\";\n\n// props passed to SingleList/MultiList.render\nexport interface ReactivesearchFilterListProps {\n loading: boolean;\n error: Error | null;\n handleChange: (key: string) => void;\n data: { doc_count: number; key: string }[];\n value: string | { [key: string]: boolean };\n rawData: {\n aggregations?: any;\n };\n}\n\n// props passed to ReactiveList.renderPagination\nexport interface ReactivesearchPaginationProps {\n pages: number;\n showEndPage: false;\n totalPages: number;\n currentPage: number;\n setPage: (page: number) => void;\n}\n\n// props passed to ReactiveList.render\n// @todo complete missing types\nexport interface ReactivesearchResultProps {\n error?: ReactivesearchError;\n loading: boolean;\n data: Array<Omit<ElasticHit, \"_source\"> & ElasticDocument>;\n loadMore: () => void;\n customData: unknown;\n promotedData: unknown;\n aggregationData: unknown;\n rawData?: {\n _shards: {\n failed: number;\n skipped: number;\n successful: number;\n total: number;\n };\n took: number;\n status: number;\n timed_out: boolean;\n hits: ElasticHit[];\n };\n resultStats: {\n time: number;\n hidden: number;\n promoted: number;\n currentPage: number;\n numberOfPages: number;\n numberOfResults?: number;\n displayedResults: number;\n };\n streamData: unknown;\n triggerAnalytics: unknown;\n triggerClickAnalytics: unknown;\n}\n\nexport type ResultsDataListenerParams = Pick<\n ReactivesearchResultProps,\n \"data\" | \"resultStats\" | \"rawData\"\n>;\nexport type ResultsDataListener = (params: ResultsDataListenerParams) => void;\n\n// state for the \"page\" component returned by StateProvider when given the keys: [\"isLoading\", \"hits\", \"resultStats\", \"error\"]\nexport interface ReactivesearchSearchStatePage {\n isLoading: boolean;\n hits: {\n hidden: number;\n time: number;\n total: number;\n hits: ElasticHit[];\n };\n resultStats: {\n hidden: number;\n numberOfResults?: number;\n promoted: number;\n time: number;\n };\n error?: ReactivesearchError;\n}\n\nexport interface ReactivesearchError {\n status: number;\n statusText: string;\n}\n"]}
|
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { ReactifySearchProviderProps } from "../components";
|
|
2
|
+
import { ReactifySearchProviderProps } from "../components/ReactifySearchProvider/ReactifySearchProvider";
|
|
3
3
|
export declare class ReactifySearchLiquidFactory {
|
|
4
4
|
providerProps: Omit<ReactifySearchProviderProps, "shopifyPermanentDomain"> & {
|
|
5
5
|
shopifyPermanentDomain?: string;
|
|
6
6
|
collectionHandle?: string;
|
|
7
|
+
variation?: "collection" | "search";
|
|
8
|
+
handle?: string;
|
|
9
|
+
searchTerm?: string;
|
|
7
10
|
};
|
|
8
11
|
constructor(providerProps: Omit<ReactifySearchProviderProps, "shopifyPermanentDomain"> & {
|
|
9
12
|
shopifyPermanentDomain?: string;
|
|
10
13
|
collectionHandle?: string;
|
|
14
|
+
variation?: "collection" | "search";
|
|
15
|
+
handle?: string;
|
|
16
|
+
searchTerm?: string;
|
|
11
17
|
});
|
|
12
18
|
getProvider(): React.FC<{
|
|
13
19
|
children?: React.ReactNode | undefined;
|
|
14
20
|
}>;
|
|
15
21
|
getMountNode(): HTMLElement;
|
|
16
22
|
getData(): any;
|
|
23
|
+
getProviderProps(): ReactifySearchProviderProps;
|
|
17
24
|
}
|
|
@@ -5,22 +5,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ReactifySearchLiquidFactory = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const
|
|
8
|
+
const ReactifySearchProvider_1 = require("../components/ReactifySearchProvider/ReactifySearchProvider");
|
|
9
9
|
class ReactifySearchLiquidFactory {
|
|
10
10
|
constructor(providerProps) {
|
|
11
11
|
this.providerProps = providerProps;
|
|
12
12
|
}
|
|
13
13
|
getProvider() {
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
if (!shopifyPermanentDomain) {
|
|
17
|
-
throw new Error("Cannot determine shopifyPermanentDomain from window");
|
|
18
|
-
}
|
|
19
|
-
const collectionHandle = (_c = this.providerProps.collectionHandle) !== null && _c !== void 0 ? _c : (_d = window.location.pathname.split("/")) === null || _d === void 0 ? void 0 : _d[2];
|
|
20
|
-
if (this.providerProps.mode === "collection" && !collectionHandle) {
|
|
21
|
-
throw new Error("Cannot determine collectionHandle from URL");
|
|
22
|
-
}
|
|
23
|
-
const provider = (props) => (react_1.default.createElement(components_1.ReactifySearchProvider, Object.assign({}, this.providerProps, { shopifyPermanentDomain: shopifyPermanentDomain, collectionHandle: collectionHandle }), props.children));
|
|
14
|
+
const providerProps = this.getProviderProps();
|
|
15
|
+
const provider = (props) => (react_1.default.createElement(ReactifySearchProvider_1.ReactifySearchProvider, Object.assign({}, providerProps), props.children));
|
|
24
16
|
return provider;
|
|
25
17
|
}
|
|
26
18
|
getMountNode() {
|
|
@@ -43,6 +35,35 @@ class ReactifySearchLiquidFactory {
|
|
|
43
35
|
throw new Error(`Cannot parse the data node with ID "reactify-data", check your liquid formatting`);
|
|
44
36
|
}
|
|
45
37
|
}
|
|
38
|
+
getProviderProps() {
|
|
39
|
+
var _a, _b, _c, _d;
|
|
40
|
+
const shopifyPermanentDomain = (_a = this.providerProps.shopifyPermanentDomain) !== null && _a !== void 0 ? _a : (_b = window === null || window === void 0 ? void 0 : window.Shopify) === null || _b === void 0 ? void 0 : _b.shop;
|
|
41
|
+
if (!shopifyPermanentDomain)
|
|
42
|
+
throw new Error("Cannot determine shopifyPermanentDomain from window");
|
|
43
|
+
const baseProps = Object.assign(Object.assign({}, this.providerProps), { shopifyPermanentDomain });
|
|
44
|
+
if (this.providerProps.mode === "collection") {
|
|
45
|
+
const collectionHandle = (_c = this.providerProps.collectionHandle) !== null && _c !== void 0 ? _c : (_d = window.location.pathname.split("/")) === null || _d === void 0 ? void 0 : _d[2];
|
|
46
|
+
if (!collectionHandle)
|
|
47
|
+
throw new Error("Cannot determine collectionHandle from URL");
|
|
48
|
+
return Object.assign(Object.assign({}, baseProps), { mode: "collection", collectionHandle });
|
|
49
|
+
}
|
|
50
|
+
if (this.providerProps.mode === "curated-page") {
|
|
51
|
+
const variation = this.providerProps.variation;
|
|
52
|
+
if (variation === "collection") {
|
|
53
|
+
const handle = this.providerProps.handle;
|
|
54
|
+
if (!handle)
|
|
55
|
+
throw new Error("Handle is required for curated-page collection mode");
|
|
56
|
+
return Object.assign(Object.assign({}, baseProps), { mode: "curated-page", variation: "collection", handle });
|
|
57
|
+
}
|
|
58
|
+
if (variation === "search") {
|
|
59
|
+
const searchTerm = this.providerProps.searchTerm;
|
|
60
|
+
if (!searchTerm)
|
|
61
|
+
throw new Error("SearchTerm is required for curated-page search mode");
|
|
62
|
+
return Object.assign(Object.assign({}, baseProps), { mode: "curated-page", variation: "search", searchTerm });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return baseProps;
|
|
66
|
+
}
|
|
46
67
|
}
|
|
47
68
|
exports.ReactifySearchLiquidFactory = ReactifySearchLiquidFactory;
|
|
48
69
|
//# sourceMappingURL=liquid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liquid.js","sourceRoot":"","sources":["../../../src/utility/liquid.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,
|
|
1
|
+
{"version":3,"file":"liquid.js","sourceRoot":"","sources":["../../../src/utility/liquid.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\n\nimport {\n ReactifySearchProvider,\n ReactifySearchProviderProps,\n} from \"../components/ReactifySearchProvider/ReactifySearchProvider\";\n\nexport class ReactifySearchLiquidFactory {\n constructor(\n public providerProps: Omit<ReactifySearchProviderProps, \"shopifyPermanentDomain\"> & {\n shopifyPermanentDomain?: string;\n collectionHandle?: string;\n variation?: \"collection\" | \"search\";\n handle?: string;\n searchTerm?: string;\n }\n ) {}\n\n getProvider() {\n const providerProps = this.getProviderProps();\n\n const provider: React.FC<{\n children?: React.ReactNode | undefined;\n }> = (props) => (\n <ReactifySearchProvider {...providerProps}>{props.children}</ReactifySearchProvider>\n );\n\n return provider;\n }\n\n getMountNode() {\n const mountNode = document.getElementById(`reactify-mount-${this.providerProps.mode}`);\n if (!mountNode) {\n throw new Error(`Cannot find mount node with ID \"reactify-mount-${this.providerProps.mode}\"`);\n }\n\n return mountNode;\n }\n\n getData() {\n const dataNode = document.getElementById(\"reactify-data\");\n if (!dataNode) {\n throw new Error(`Cannot find data node with ID \"reactify-data\"`);\n }\n\n try {\n const data = JSON.parse(dataNode.innerHTML);\n\n return data;\n } catch {\n throw new Error(\n `Cannot parse the data node with ID \"reactify-data\", check your liquid formatting`\n );\n }\n }\n\n getProviderProps(): ReactifySearchProviderProps {\n const shopifyPermanentDomain =\n this.providerProps.shopifyPermanentDomain ?? (window as any)?.Shopify?.shop;\n\n if (!shopifyPermanentDomain)\n throw new Error(\"Cannot determine shopifyPermanentDomain from window\");\n\n const baseProps = { ...this.providerProps, shopifyPermanentDomain };\n\n if (this.providerProps.mode === \"collection\") {\n const collectionHandle =\n this.providerProps.collectionHandle ?? window.location.pathname.split(\"/\")?.[2];\n if (!collectionHandle) throw new Error(\"Cannot determine collectionHandle from URL\");\n return { ...baseProps, mode: \"collection\", collectionHandle };\n }\n\n if (this.providerProps.mode === \"curated-page\") {\n const variation = this.providerProps.variation;\n\n if (variation === \"collection\") {\n const handle = this.providerProps.handle;\n if (!handle) throw new Error(\"Handle is required for curated-page collection mode\");\n return { ...baseProps, mode: \"curated-page\", variation: \"collection\", handle };\n }\n\n if (variation === \"search\") {\n const searchTerm = this.providerProps.searchTerm;\n if (!searchTerm) throw new Error(\"SearchTerm is required for curated-page search mode\");\n return { ...baseProps, mode: \"curated-page\", variation: \"search\", searchTerm };\n }\n }\n\n return baseProps as ReactifySearchProviderProps;\n }\n}\n"]}
|