@wix/bex-core 2.60.0 → 2.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (64) hide show
  1. package/dist/cjs/assets/locale/messages_cs.json +5 -5
  2. package/dist/cjs/assets/locale/messages_de.json +5 -5
  3. package/dist/cjs/assets/locale/messages_en.json +1 -1
  4. package/dist/cjs/assets/locale/messages_fr.json +5 -5
  5. package/dist/cjs/assets/locale/messages_ja.json +5 -5
  6. package/dist/cjs/assets/locale/messages_ko.json +3 -3
  7. package/dist/cjs/providers/{FormWidgetContext.js → FormPageContext.js} +1 -1
  8. package/dist/cjs/providers/FormPageContext.js.map +1 -0
  9. package/dist/cjs/providers/WidgetsFormContext.js +17 -0
  10. package/dist/cjs/providers/WidgetsFormContext.js.map +1 -0
  11. package/dist/cjs/providers/index.js +10 -4
  12. package/dist/cjs/providers/index.js.map +1 -1
  13. package/dist/cjs/state/FormPageState.js +39 -26
  14. package/dist/cjs/state/FormPageState.js.map +1 -1
  15. package/dist/cjs/state/TagsState/TagsAssignmentState.js +17 -8
  16. package/dist/cjs/state/TagsState/TagsAssignmentState.js.map +1 -1
  17. package/dist/cjs/state/TagsState/TagsFormState.js +4 -5
  18. package/dist/cjs/state/TagsState/TagsFormState.js.map +1 -1
  19. package/dist/cjs/state/WidgetsFormState.js +46 -0
  20. package/dist/cjs/state/WidgetsFormState.js.map +1 -0
  21. package/dist/cjs/state/index.js +7 -0
  22. package/dist/cjs/state/index.js.map +1 -1
  23. package/dist/esm/assets/locale/messages_cs.json +5 -5
  24. package/dist/esm/assets/locale/messages_de.json +5 -5
  25. package/dist/esm/assets/locale/messages_en.json +1 -1
  26. package/dist/esm/assets/locale/messages_fr.json +5 -5
  27. package/dist/esm/assets/locale/messages_ja.json +5 -5
  28. package/dist/esm/assets/locale/messages_ko.json +3 -3
  29. package/dist/esm/providers/{FormWidgetContext.js → FormPageContext.js} +1 -1
  30. package/dist/esm/providers/FormPageContext.js.map +1 -0
  31. package/dist/esm/providers/WidgetsFormContext.js +12 -0
  32. package/dist/esm/providers/WidgetsFormContext.js.map +1 -0
  33. package/dist/esm/providers/index.js +2 -1
  34. package/dist/esm/providers/index.js.map +1 -1
  35. package/dist/esm/state/FormPageState.js +37 -21
  36. package/dist/esm/state/FormPageState.js.map +1 -1
  37. package/dist/esm/state/TagsState/TagsAssignmentState.js +14 -8
  38. package/dist/esm/state/TagsState/TagsAssignmentState.js.map +1 -1
  39. package/dist/esm/state/TagsState/TagsFormState.js +4 -4
  40. package/dist/esm/state/TagsState/TagsFormState.js.map +1 -1
  41. package/dist/esm/state/WidgetsFormState.js +33 -0
  42. package/dist/esm/state/WidgetsFormState.js.map +1 -0
  43. package/dist/esm/state/index.js +1 -0
  44. package/dist/esm/state/index.js.map +1 -1
  45. package/dist/types/providers/{FormWidgetContext.d.ts → FormPageContext.d.ts} +5 -5
  46. package/dist/types/providers/FormPageContext.d.ts.map +1 -0
  47. package/dist/types/providers/WidgetsFormContext.d.ts +7 -0
  48. package/dist/types/providers/WidgetsFormContext.d.ts.map +1 -0
  49. package/dist/types/providers/index.d.ts +2 -1
  50. package/dist/types/providers/index.d.ts.map +1 -1
  51. package/dist/types/state/FormPageState.d.ts +29 -13
  52. package/dist/types/state/FormPageState.d.ts.map +1 -1
  53. package/dist/types/state/TagsState/TagsAssignmentState.d.ts +4 -4
  54. package/dist/types/state/TagsState/TagsAssignmentState.d.ts.map +1 -1
  55. package/dist/types/state/TagsState/TagsFormState.d.ts +3 -3
  56. package/dist/types/state/TagsState/TagsFormState.d.ts.map +1 -1
  57. package/dist/types/state/WidgetsFormState.d.ts +26 -0
  58. package/dist/types/state/WidgetsFormState.d.ts.map +1 -0
  59. package/dist/types/state/index.d.ts +1 -0
  60. package/dist/types/state/index.d.ts.map +1 -1
  61. package/package.json +3 -2
  62. package/dist/cjs/providers/FormWidgetContext.js.map +0 -1
  63. package/dist/esm/providers/FormWidgetContext.js.map +0 -1
  64. package/dist/types/providers/FormWidgetContext.d.ts.map +0 -1
@@ -50,7 +50,7 @@
50
50
  "cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Zpět",
51
51
  "cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Odstranit",
52
52
  "cairo.updatedView.collectionPage.toast.cta": "Obnovit stránku",
53
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "PII settings can’t be changed later.",
53
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "Nastavení PII nelze později změnit.",
54
54
  "cairo.customFields.fieldType.dropdownList.placeholder": "Např. Itálie",
55
55
  "cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Zpět",
56
56
  "cairo.dragAndDrop.discardChanges.CTA": "Zahodit",
@@ -69,7 +69,7 @@
69
69
  "cairo.filtersPanel.time.title": "Čas",
70
70
  "cairo.tags.manageTags.modal.list.input.validation.exists": "Tento tag již existuje.",
71
71
  "cairo.filtersPanel.date.next7Days": "Příštích 7 dní",
72
- "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, =1 {There is a max of 1 sub-level.} other {There is a max of # sub-levels.}}",
72
+ "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, one {Nemůžete mít více než 1 dílčí úroveň.} few {Nemůžete mít více než {subCatsAmount,number} dílčí úrovně.} many {Nemůžete mít více než {subCatsAmount,number} dílčích úrovní.} other {Nemůžete mít více než {subCatsAmount,number} dílčích úrovní.}}",
73
73
  "cairo.sortableColumns.notification.undo": "Zpět",
74
74
  "cairo.filtersPanel.saveView.button": "Uložit zobrazení",
75
75
  "cairo.dragAndDrop.leaveSite.modal.title": "Opravdu chcete odejít?",
@@ -142,7 +142,7 @@
142
142
  "cairo.customFields.fieldType.longText": "Dlouhý text",
143
143
  "cairo.export.tryAgain": "Zkusit znovu",
144
144
  "cairo.sortableColumns.modal.title": "Třídit seznam podle {columnTitle}?",
145
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Personal information (PII)",
145
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Osobní údaje (PII)",
146
146
  "cairo.dragAndDrop.leaveSite.modal.description": "Změny v pořadí položek nemusí být uloženy.",
147
147
  "cairo.table.deleteViewModal.deleteBody": "Jakmile odstraníte zobrazení „{viewName}“, nebudete jej moct obnovit.",
148
148
  "cairo.export.allItems": "Vše",
@@ -209,7 +209,7 @@
209
209
  "cairo.customFields.addCustomField.modal.sameKey.error": "Tento klíč již existuje. Zkuste jiný.",
210
210
  "cairo.entityPage.saveError-technical.toast.description": "Změny nebyly uloženy kvůli technickým potížím na naší straně. ",
211
211
  "cairo.customFields.addCustomField.modal.advancedSettings.key.title": "Klíč",
212
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "PII can’t be changed after creation. To change it, create a new field.",
212
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "Údaje PII nelze po vytvoření změnit. Chcete‑li je změnit, vytvořte nové pole.",
213
213
  "section.header.items": "Položky",
214
214
  "cairo.customFields.fieldType.numberInteger": "Číslo (celé)",
215
215
  "cairo.folders.showAll.button": "Vše",
@@ -235,7 +235,7 @@
235
235
  "cairo.table.custom-columns.disabled.tooltip": "Tento sloupec nelze skrýt nebo přesunout.",
236
236
  "cairo.page.loadError.failedState.title": "Stránku se nepodařilo načíst",
237
237
  "cairo.bulkSelected.selectUpTo": "Vyberte až {max} položek.",
238
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Protect personally identifiable information (PII) like addresses and passport info with an additional layer of protection. <link><u>Why is this important?</u></link>",
238
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Chraňte osobní údaje umožňující identifikaci (PII), jako jsou například adresy nebo údaje o pasu pomocí dodatečné vrstvy ochrany. <link><u>Proč je to důležité?</u></link>",
239
239
  "cairo.manageView.saveChanges.CTA": "Uložit změny",
240
240
  "cairo.customFields.archive.CTA": "Archivovat",
241
241
  "cairo.tags.tagsWidget.noPermissions.tooltip": "You need “Permission Type” permission to\nmanage tags. Contact \"Owner\" for access.",
@@ -50,7 +50,7 @@
50
50
  "cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Abbrechen",
51
51
  "cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Löschen",
52
52
  "cairo.updatedView.collectionPage.toast.cta": "Ansicht aktualisieren",
53
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "PII settings can’t be changed later.",
53
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "Einstellungen zu PII können später nicht geändert werden.",
54
54
  "cairo.customFields.fieldType.dropdownList.placeholder": "z. B. Italien",
55
55
  "cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Abbrechen",
56
56
  "cairo.dragAndDrop.discardChanges.CTA": "Verwerfen",
@@ -69,7 +69,7 @@
69
69
  "cairo.filtersPanel.time.title": "Uhrzeit",
70
70
  "cairo.tags.manageTags.modal.list.input.validation.exists": "Dieses Tag gibt es bereits.",
71
71
  "cairo.filtersPanel.date.next7Days": "In den nächsten 7 Tagen",
72
- "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, =1 {There is a max of 1 sub-level.} other {There is a max of # sub-levels.}}",
72
+ "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, one {Du kannst nicht mehr als 1 Unterebene haben.} other {Du kannst nicht mehr als {subCatsAmount,number} Unterebenen haben.}}",
73
73
  "cairo.sortableColumns.notification.undo": "Rückgängig",
74
74
  "cairo.filtersPanel.saveView.button": "Ansicht speichern",
75
75
  "cairo.dragAndDrop.leaveSite.modal.title": "Seite wirklich schließen?",
@@ -142,7 +142,7 @@
142
142
  "cairo.customFields.fieldType.longText": "Langer Text",
143
143
  "cairo.export.tryAgain": "Erneut versuchen",
144
144
  "cairo.sortableColumns.modal.title": "Liste sortieren nach {columnTitle}?",
145
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Personal information (PII)",
145
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Persönlich identifizierbare Informationen (PII)",
146
146
  "cairo.dragAndDrop.leaveSite.modal.description": "Änderungen an der Reihenfolge deiner Elemente werden möglicherweise nicht gespeichert.",
147
147
  "cairo.table.deleteViewModal.deleteBody": "Sobald du „{viewName}“ löschst, kann dies nicht wiederhergestellt werden.",
148
148
  "cairo.export.allItems": "Alle",
@@ -209,7 +209,7 @@
209
209
  "cairo.customFields.addCustomField.modal.sameKey.error": "Diesen Schlüssel gibt es bereits. Gib einen anderen ein.",
210
210
  "cairo.entityPage.saveError-technical.toast.description": "Wegen technischer Probleme wurden die Änderungen nicht gespeichert. ",
211
211
  "cairo.customFields.addCustomField.modal.advancedSettings.key.title": "Schlüssel",
212
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "PII can’t be changed after creation. To change it, create a new field.",
212
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "Einstellungen zu PII können nach der Erstellung nicht geändert werden. Erstelle ein neues Feld, um sie zu ändern.",
213
213
  "section.header.items": "Elemente",
214
214
  "cairo.customFields.fieldType.numberInteger": "Ganze Zahl",
215
215
  "cairo.folders.showAll.button": "Alle anzeigen",
@@ -235,7 +235,7 @@
235
235
  "cairo.table.custom-columns.disabled.tooltip": "Diese Spalte kann nicht ausgeblendet oder verschoben werden.",
236
236
  "cairo.page.loadError.failedState.title": "Seite konnte nicht geladen werden",
237
237
  "cairo.bulkSelected.selectUpTo": "Wähle bis zu {max} Elemente.",
238
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Protect personally identifiable information (PII) like addresses and passport info with an additional layer of protection. <link><u>Why is this important?</u></link>",
238
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Schütze persönlich identifizierbare Informationen (PII) wie Adressen und Passdaten mit einer zusätzlichen Sicherheitsebene. <link><u>Warum ist das wichtig?</u></link>",
239
239
  "cairo.manageView.saveChanges.CTA": "Änderungen speichern",
240
240
  "cairo.customFields.archive.CTA": "Archivieren",
241
241
  "cairo.tags.tagsWidget.noPermissions.tooltip": "You need “Permission Type” permission to\nmanage tags. Contact \"Owner\" for access.",
@@ -432,7 +432,7 @@
432
432
  "cairo.entityPage.header.activate.CTA": "Activate",
433
433
  "cairo.updatedView.collectionPage.toast.desc": "Refresh to update the view with your recent changes.",
434
434
  "cairo.updatedView.collectionPage.toast.cta": "Refresh View",
435
- "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, =1 {There is a max of 1 sub-level.} other {There is a max of # sub-levels.}}",
435
+ "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, =1 {You can't have more than 1 sub-level.} other {You can't have more than # sub-levels.}}",
436
436
  "cairo.subtitle.learnMore": "Learn more",
437
437
  "cairo.tags.creationLimitReached.error": "Unable to create more than 100 tags.",
438
438
  "cairo.tags.popover.creationLimitReached.error": "Unable to create more than 100 tags. Delete a tag in order to create a new one.",
@@ -50,7 +50,7 @@
50
50
  "cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "Annuler",
51
51
  "cairo.tags.manageTags.modal.deleteModal.delete.CTA": "Supprimer",
52
52
  "cairo.updatedView.collectionPage.toast.cta": "Actualiser",
53
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "PII settings can’t be changed later.",
53
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "Les paramètres des informations personnelles ne peuvent pas être modifiés ultérieurement.",
54
54
  "cairo.customFields.fieldType.dropdownList.placeholder": "Ex. Italie",
55
55
  "cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "Annuler",
56
56
  "cairo.dragAndDrop.discardChanges.CTA": "Ignorer",
@@ -69,7 +69,7 @@
69
69
  "cairo.filtersPanel.time.title": "Heure",
70
70
  "cairo.tags.manageTags.modal.list.input.validation.exists": "Ce libellé existe déjà.",
71
71
  "cairo.filtersPanel.date.next7Days": "7 prochains jours",
72
- "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, =1 {There is a max of 1 sub-level.} other {There is a max of # sub-levels.}}",
72
+ "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, one {Vous ne pouvez pas avoir plus d'un sous-niveau.} other {Vous ne pouvez pas avoir plus de {subCatsAmount,number} sous-niveaux.}}",
73
73
  "cairo.sortableColumns.notification.undo": "Annuler",
74
74
  "cairo.filtersPanel.saveView.button": "Enregistrer la vue",
75
75
  "cairo.dragAndDrop.leaveSite.modal.title": "Êtes‑vous sûr de vouloir quitter ?",
@@ -142,7 +142,7 @@
142
142
  "cairo.customFields.fieldType.longText": "Texte long",
143
143
  "cairo.export.tryAgain": "Réessayer",
144
144
  "cairo.sortableColumns.modal.title": "Trier la liste par {columnTitle} ?",
145
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Personal information (PII)",
145
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Informations personnelles (PII)",
146
146
  "cairo.dragAndDrop.leaveSite.modal.description": "Les modifications apportées à votre commande ne seront pas enregistrées.",
147
147
  "cairo.table.deleteViewModal.deleteBody": "Une fois la vue « {viewName} » supprimée, elle ne pourra plus être restaurée.",
148
148
  "cairo.export.allItems": "Tous",
@@ -209,7 +209,7 @@
209
209
  "cairo.customFields.addCustomField.modal.sameKey.error": "Cette clé existe déjà. Veuillez en essayer une autre.",
210
210
  "cairo.entityPage.saveError-technical.toast.description": "Les modifications n'ont pas pu être enregistrées en raison d'un problème technique de notre côté. ",
211
211
  "cairo.customFields.addCustomField.modal.advancedSettings.key.title": "Clé",
212
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "PII can’t be changed after creation. To change it, create a new field.",
212
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "Les informations personnelles ne peuvent pas être modifiées après leur création. Pour les modifier, créez un nouveau champ.",
213
213
  "section.header.items": "Éléments",
214
214
  "cairo.customFields.fieldType.numberInteger": "Nombre (entier)",
215
215
  "cairo.folders.showAll.button": "Tout afficher",
@@ -235,7 +235,7 @@
235
235
  "cairo.table.custom-columns.disabled.tooltip": "Cette colonne ne peut pas être masquée ou déplacée.",
236
236
  "cairo.page.loadError.failedState.title": "Cette page n'a pas pu être chargée",
237
237
  "cairo.bulkSelected.selectUpTo": "Sélectionnez jusqu'à {max} éléments.",
238
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Protect personally identifiable information (PII) like addresses and passport info with an additional layer of protection. <link><u>Why is this important?</u></link>",
238
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Sécurisez les informations personnelles identifiables (PII), comme des adresses ou des pièces d'identité, avec un niveau de protection supplémentaire. <link><u>Pourquoi est-ce important ?</u></link>",
239
239
  "cairo.manageView.saveChanges.CTA": "Enregistrer les modifications",
240
240
  "cairo.customFields.archive.CTA": "Archiver",
241
241
  "cairo.tags.tagsWidget.noPermissions.tooltip": "You need “Permission Type” permission to\nmanage tags. Contact \"Owner\" for access.",
@@ -50,7 +50,7 @@
50
50
  "cairo.dragAndDrop.leaveSite.modal.cancel.CTA": "キャンセル",
51
51
  "cairo.tags.manageTags.modal.deleteModal.delete.CTA": "削除する",
52
52
  "cairo.updatedView.collectionPage.toast.cta": "ビューを更新する",
53
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "PII settings can’t be changed later.",
53
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.createNote": "PII 設定は後で変更できません。",
54
54
  "cairo.customFields.fieldType.dropdownList.placeholder": "例:イタリア",
55
55
  "cairo.tags.manageTags.modal.deleteModal.cancel.CTA": "キャンセル",
56
56
  "cairo.dragAndDrop.discardChanges.CTA": "破棄",
@@ -69,7 +69,7 @@
69
69
  "cairo.filtersPanel.time.title": "時間",
70
70
  "cairo.tags.manageTags.modal.list.input.validation.exists": "このタグはすでに使用されています。",
71
71
  "cairo.filtersPanel.date.next7Days": "7日以内",
72
- "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, =1 {There is a max of 1 sub-level.} other {There is a max of # sub-levels.}}",
72
+ "cairo.collectionPage.nestedLimit.tooltip": "{subCatsAmount, plural, other {サブレベルは{subCatsAmount,number}個以上は設定できません。}}",
73
73
  "cairo.sortableColumns.notification.undo": "元に戻す",
74
74
  "cairo.filtersPanel.saveView.button": "ビューを保存",
75
75
  "cairo.dragAndDrop.leaveSite.modal.title": "サイトを閉じてもよろしいですか?",
@@ -142,7 +142,7 @@
142
142
  "cairo.customFields.fieldType.longText": "長いテキスト",
143
143
  "cairo.export.tryAgain": "再試行",
144
144
  "cairo.sortableColumns.modal.title": "{columnTitle}でリストを並び替えますか?",
145
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "Personal information (PII)",
145
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.name": "個人情報(PII",
146
146
  "cairo.dragAndDrop.leaveSite.modal.description": "変更されたアイテムの順番が保存されない場合があります。",
147
147
  "cairo.table.deleteViewModal.deleteBody": "「{viewName}」を削除すると、復元できません。",
148
148
  "cairo.export.allItems": "すべて",
@@ -209,7 +209,7 @@
209
209
  "cairo.customFields.addCustomField.modal.sameKey.error": "このキーはすでに存在します。別のものを使用してください。",
210
210
  "cairo.entityPage.saveError-technical.toast.description": "弊社側の技術的な問題のため、変更内容が保存されませんでした。 ",
211
211
  "cairo.customFields.addCustomField.modal.advancedSettings.key.title": "キー",
212
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "PII can’t be changed after creation. To change it, create a new field.",
212
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.editNote": "PII は作成後に変更できません。変更するには、新しい項目を作成します。",
213
213
  "section.header.items": "商品",
214
214
  "cairo.customFields.fieldType.numberInteger": "数字(整数)",
215
215
  "cairo.folders.showAll.button": "すべて表示",
@@ -235,7 +235,7 @@
235
235
  "cairo.table.custom-columns.disabled.tooltip": "この列の非表示および移動はできません。",
236
236
  "cairo.page.loadError.failedState.title": "このページを読み込めませんでした",
237
237
  "cairo.bulkSelected.selectUpTo": "{max}アイテムまで選択できます。",
238
- "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "Protect personally identifiable information (PII) like addresses and passport info with an additional layer of protection. <link><u>Why is this important?</u></link>",
238
+ "cairo.customFields.addCustomField.modal.PII-setting.toggle.info": "住所やパスポート情報などの個人を特定できる情報 PII)を、追加の保護層で守りましょう。<link><u>重要性について</u></link>",
239
239
  "cairo.manageView.saveChanges.CTA": "変更内容を保存",
240
240
  "cairo.customFields.archive.CTA": "アーカイブ",
241
241
  "cairo.tags.tagsWidget.noPermissions.tooltip": "You need “Permission Type” permission to\nmanage tags. Contact \"Owner\" for access.",
@@ -24,7 +24,7 @@
24
24
  "cairo.export.cancelTheExportConfirm": "내보내기 취소",
25
25
  "cairo.export.exporting": "내보내기 중",
26
26
  "cairo.export.exportingDescription": "내보내기가 완료되면 파일 다운로드가 시작됩니다.",
27
- "cairo.manageView.setAsDefault.CTA": "기본 뷰로 설정",
27
+ "cairo.manageView.setAsDefault.CTA": "기본 보기로 설정",
28
28
  "cairo.customFields.addCustomField.modal.advancedSettings.siteCollaborators": "사이트 공동 작업자",
29
29
  "cairo.passiveEmptyState.title": "아이템 0개",
30
30
  "cairo.emptyState.title": "표시할 내용 없음",
@@ -411,7 +411,7 @@
411
411
  "cairo.tags.tagsWidget.options.add.CTA": "\"{tagName}\" 추가",
412
412
  "cairo.table.custom-columns.title": "칼럼 사용자 지정",
413
413
  "cairo.export.leaveSiteMessage": "아이템 내보내기가 완료되지 않았습니다. 정말 페이지를 종료하시겠습니까?",
414
- "cairo.manageView.setAsDefault.tooltip": "기본 뷰로 설정하려면 변경 사항을 저장하거나 새로운 뷰로 지정하세요.",
414
+ "cairo.manageView.setAsDefault.tooltip": "기본 보기로 설정하려면 변경 사항을 저장하거나 새로운 보기로 지정하세요.",
415
415
  "cairo.tags.collectionPage.popover.search.placeholder": "태그를 검색하세요.",
416
416
  "cairo.export.sessionExpiredMessage": "세션이 만료되었습니다. 페이지를 새로고침한 후 다시 로그인하세요.",
417
417
  "cairo.tags.collectionPage.applyChanges.CTA": "적용",
@@ -436,7 +436,7 @@
436
436
  "cairo.customFields.addCustomField.modal.advancedSettings.externalApps": "사용 중인 앱",
437
437
  "cairo.export.successMessage": "파일을 다운로드하는 중입니다. 파일 다운로드에 문제가 있으신가요?",
438
438
  "cairo.customFields.entityPage.subtitle": "더 많은 정보를 저장하고 수집하려면 사용자 지정 입력란을 사용하세요.",
439
- "cairo.manageView.setAsDefault.success.toast": "\"{viewName}\" 뷰가 기본 뷰로 설정되었습니다.",
439
+ "cairo.manageView.setAsDefault.success.toast": "\"{viewName}\" 보기가 기본 보기로 설정되었습니다.",
440
440
  "cairo.dropdownSearch.filters.emptyState": "필터에 해당하는 아이템이 없습니다.",
441
441
  "cairo.filtersPanel.appliedFilters.label": "{numberAppliedFilters}개 적용됨",
442
442
  "cairo.dragAndDrop.note": "참고: 아이템 순서와 관련된 모든 변경 사항이 라이브 사이트에 반영됩니다.",
@@ -14,4 +14,4 @@ const useFormPageContext = () => {
14
14
  return value;
15
15
  };
16
16
  exports.useFormPageContext = useFormPageContext;
17
- //# sourceMappingURL=FormWidgetContext.js.map
17
+ //# sourceMappingURL=FormPageContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_createContext","context","createContext","undefined","formPageContext","exports","FormPageContextProvider","Provider","FormPageContextConsumer","Consumer","useFormPageContext","value","useContext","assertContextValue"],"sources":["../../../src/providers/FormPageContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport { assertContextValue } from './createContext';\nimport { FormPageState } from '../state';\n\nconst context = createContext<FormPageState<any> | undefined>(undefined);\n\nexport const formPageContext = context;\nexport const FormPageContextProvider = context.Provider;\nexport const FormPageContextConsumer = context.Consumer;\n\nexport const useFormPageContext = () => {\n const value = useContext(context);\n assertContextValue('FormPageContextProvider', value);\n return value;\n};\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAGA,MAAME,OAAO,gBAAG,IAAAC,oBAAa,EAAiCC,SAAS,CAAC;AAEjE,MAAMC,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAGH,OAAO;AAC/B,MAAMK,uBAAuB,GAAAD,OAAA,CAAAC,uBAAA,GAAGL,OAAO,CAACM,QAAQ;AAChD,MAAMC,uBAAuB,GAAAH,OAAA,CAAAG,uBAAA,GAAGP,OAAO,CAACQ,QAAQ;AAEhD,MAAMC,kBAAkB,GAAGA,CAAA,KAAM;EACtC,MAAMC,KAAK,GAAG,IAAAC,iBAAU,EAACX,OAAO,CAAC;EACjC,IAAAY,iCAAkB,EAAC,yBAAyB,EAAEF,KAAK,CAAC;EACpD,OAAOA,KAAK;AACd,CAAC;AAACN,OAAA,CAAAK,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.widgetsFormContext = exports.useWidgetsFormContext = exports.WidgetsFormContextProvider = exports.WidgetsFormContextConsumer = void 0;
5
+ var _react = require("react");
6
+ var _createContext = require("./createContext");
7
+ const context = /*#__PURE__*/(0, _react.createContext)(undefined);
8
+ const widgetsFormContext = exports.widgetsFormContext = context;
9
+ const WidgetsFormContextProvider = exports.WidgetsFormContextProvider = context.Provider;
10
+ const WidgetsFormContextConsumer = exports.WidgetsFormContextConsumer = context.Consumer;
11
+ const useWidgetsFormContext = () => {
12
+ const value = (0, _react.useContext)(context);
13
+ (0, _createContext.assertContextValue)('WidgetsFormContextProvider', value);
14
+ return value;
15
+ };
16
+ exports.useWidgetsFormContext = useWidgetsFormContext;
17
+ //# sourceMappingURL=WidgetsFormContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_createContext","context","createContext","undefined","widgetsFormContext","exports","WidgetsFormContextProvider","Provider","WidgetsFormContextConsumer","Consumer","useWidgetsFormContext","value","useContext","assertContextValue"],"sources":["../../../src/providers/WidgetsFormContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport { assertContextValue } from './createContext';\nimport { WidgetsFormState } from '../state';\n\nconst context = createContext<WidgetsFormState | undefined>(undefined);\n\nexport const widgetsFormContext = context;\nexport const WidgetsFormContextProvider = context.Provider;\nexport const WidgetsFormContextConsumer = context.Consumer;\n\nexport const useWidgetsFormContext = () => {\n const value = useContext(context);\n assertContextValue('WidgetsFormContextProvider', value);\n return value;\n};\n"],"mappings":";;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAGA,MAAME,OAAO,gBAAG,IAAAC,oBAAa,EAA+BC,SAAS,CAAC;AAE/D,MAAMC,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAGH,OAAO;AAClC,MAAMK,0BAA0B,GAAAD,OAAA,CAAAC,0BAAA,GAAGL,OAAO,CAACM,QAAQ;AACnD,MAAMC,0BAA0B,GAAAH,OAAA,CAAAG,0BAAA,GAAGP,OAAO,CAACQ,QAAQ;AAEnD,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;EACzC,MAAMC,KAAK,GAAG,IAAAC,iBAAU,EAACX,OAAO,CAAC;EACjC,IAAAY,iCAAkB,EAAC,4BAA4B,EAAEF,KAAK,CAAC;EACvD,OAAOA,KAAK;AACd,CAAC;AAACN,OAAA,CAAAK,qBAAA,GAAAA,qBAAA","ignoreList":[]}
@@ -49,10 +49,16 @@ Object.keys(_PageContext).forEach(function (key) {
49
49
  if (key in exports && exports[key] === _PageContext[key]) return;
50
50
  exports[key] = _PageContext[key];
51
51
  });
52
- var _FormWidgetContext = require("./FormWidgetContext");
53
- Object.keys(_FormWidgetContext).forEach(function (key) {
52
+ var _FormPageContext = require("./FormPageContext");
53
+ Object.keys(_FormPageContext).forEach(function (key) {
54
54
  if (key === "default" || key === "__esModule") return;
55
- if (key in exports && exports[key] === _FormWidgetContext[key]) return;
56
- exports[key] = _FormWidgetContext[key];
55
+ if (key in exports && exports[key] === _FormPageContext[key]) return;
56
+ exports[key] = _FormPageContext[key];
57
+ });
58
+ var _WidgetsFormContext = require("./WidgetsFormContext");
59
+ Object.keys(_WidgetsFormContext).forEach(function (key) {
60
+ if (key === "default" || key === "__esModule") return;
61
+ if (key in exports && exports[key] === _WidgetsFormContext[key]) return;
62
+ exports[key] = _WidgetsFormContext[key];
57
63
  });
58
64
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_WixPatternsInitialPropsProvider","require","Object","keys","forEach","key","exports","_WixPatternsContainerProvider","_CairoProvider","_WixPatternsContainerOverridesContext","_createContext","_CollectionContext","_CollectionPageContext","_PageContext","_FormWidgetContext"],"sources":["../../../src/providers/index.ts"],"sourcesContent":["export * from './WixPatternsInitialPropsProvider';\nexport * from './WixPatternsContainerProvider';\nexport * from './CairoProvider';\nexport * from './WixPatternsContainerOverridesContext';\nexport * from './createContext';\nexport * from './CollectionContext';\nexport * from './CollectionPageContext';\nexport * from './PageContext';\nexport * from './FormWidgetContext';\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_WixPatternsInitialPropsProvider","require","Object","keys","forEach","key","exports","_WixPatternsContainerProvider","_CairoProvider","_WixPatternsContainerOverridesContext","_createContext","_CollectionContext","_CollectionPageContext","_PageContext","_FormPageContext","_WidgetsFormContext"],"sources":["../../../src/providers/index.ts"],"sourcesContent":["export * from './WixPatternsInitialPropsProvider';\nexport * from './WixPatternsContainerProvider';\nexport * from './CairoProvider';\nexport * from './WixPatternsContainerOverridesContext';\nexport * from './createContext';\nexport * from './CollectionContext';\nexport * from './CollectionPageContext';\nexport * from './PageContext';\nexport * from './FormPageContext';\nexport * from './WidgetsFormContext';\n"],"mappings":"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","ignoreList":[]}
@@ -5,40 +5,53 @@ exports.__esModule = true;
5
5
  exports.FormPageState = void 0;
6
6
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
7
7
  var _mobx = require("mobx");
8
+ var _TaskState = require("./TaskState");
9
+ var _WidgetsFormState = require("./WidgetsFormState");
8
10
  class FormPageState {
9
- constructor() {
10
- (0, _defineProperty2.default)(this, "_widgets", _mobx.observable.map(new Map()));
11
+ constructor(props) {
12
+ (0, _defineProperty2.default)(this, "_widgets", void 0);
13
+ (0, _defineProperty2.default)(this, "_form", void 0);
14
+ (0, _defineProperty2.default)(this, "initTask", new _TaskState.TaskState());
15
+ (0, _defineProperty2.default)(this, "submitTask", new _TaskState.TaskState());
16
+ (0, _defineProperty2.default)(this, "_isSubmitSuccessful", undefined);
17
+ (0, _defineProperty2.default)(this, "_isFormDirty", false);
18
+ this._form = props.form;
19
+ this._widgets = props.widgets ?? new _WidgetsFormState.WidgetsFormState();
11
20
  (0, _mobx.makeObservable)(this, {
12
- registerWidget: _mobx.action.bound,
21
+ isFetching: _mobx.computed,
22
+ _isFormDirty: _mobx.observable.ref,
13
23
  isDirty: _mobx.computed
14
24
  });
15
25
  }
16
- registerWidget(key, state) {
17
- this._widgets.set(key, state);
18
- }
19
- async validate() {
20
- const data = {};
21
- let isValid = true;
22
- for (const [key, widget] of this._widgets.entries()) {
23
- const widgetData = await widget.validate();
24
- if (!widgetData.isValid) {
25
- isValid = false;
26
- return {
27
- isValid: false,
28
- data: {}
29
- };
30
- }
31
- data[key] = widgetData.values;
32
- }
33
- return {
34
- isValid,
35
- data
36
- };
26
+ set isFormDirty(flag) {
27
+ this._isFormDirty = flag;
37
28
  }
38
29
  get isDirty() {
39
- return [...this._widgets.values()].some(w => w.isDirty);
30
+ return this._isFormDirty || this._widgets.isDirty;
31
+ }
32
+ get form() {
33
+ return this._form;
34
+ }
35
+ get isFetching() {
36
+ return this.initTask.status.isLoading || this.initTask.status.isIdle;
37
+ }
38
+ set isSubmitSuccessful(flag) {
39
+ this._isSubmitSuccessful = flag;
40
+ }
41
+ retryFetch() {
42
+ this.initTask.runOnce();
43
+ }
44
+
45
+ /**
46
+ * For backward compatibility, keep this as validate, but it only validates widgets.
47
+ */
48
+ validate() {
49
+ return this._widgets.validate();
50
+ }
51
+ registerWidget(key, state) {
52
+ this._widgets.registerWidget(key, state);
40
53
  }
41
- get(key) {
54
+ getWidgetState(key) {
42
55
  return this._widgets.get(key);
43
56
  }
44
57
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_mobx","require","FormPageState","constructor","_defineProperty2","default","observable","map","Map","makeObservable","registerWidget","action","bound","isDirty","computed","key","state","_widgets","set","validate","data","isValid","widget","entries","widgetData","values","some","w","get","exports"],"sources":["../../../src/state/FormPageState.ts"],"sourcesContent":["import { action, computed, makeObservable, observable } from 'mobx';\n\nexport type WidgetState = {\n isDirty: boolean;\n validate: () => Promise<{ isValid: boolean; values?: Record<string, any> }>;\n};\n\nexport class FormPageState {\n _widgets = observable.map<string, WidgetState>(new Map());\n\n constructor() {\n makeObservable(this, {\n registerWidget: action.bound,\n isDirty: computed,\n });\n }\n\n registerWidget(key: string, state: WidgetState) {\n this._widgets.set(key, state);\n }\n\n async validate(): Promise<{ isValid: boolean; data: Record<string, any> }> {\n const data: Record<string, any> = {};\n let isValid = true;\n\n for (const [key, widget] of this._widgets.entries()) {\n const widgetData = await widget.validate();\n\n if (!widgetData.isValid) {\n isValid = false;\n return { isValid: false, data: {} };\n }\n\n data[key] = widgetData.values;\n }\n\n return { isValid, data };\n }\n\n get isDirty() {\n return [...this._widgets.values()].some((w) => w.isDirty);\n }\n\n get(key: string) {\n return this._widgets.get(key);\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAOO,MAAMC,aAAa,CAAC;EAGzBC,WAAWA,CAAA,EAAG;IAAA,IAAAC,gBAAA,CAAAC,OAAA,oBAFHC,gBAAU,CAACC,GAAG,CAAsB,IAAIC,GAAG,CAAC,CAAC,CAAC;IAGvD,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,cAAc,EAAEC,YAAM,CAACC,KAAK;MAC5BC,OAAO,EAAEC;IACX,CAAC,CAAC;EACJ;EAEAJ,cAAcA,CAACK,GAAW,EAAEC,KAAkB,EAAE;IAC9C,IAAI,CAACC,QAAQ,CAACC,GAAG,CAACH,GAAG,EAAEC,KAAK,CAAC;EAC/B;EAEA,MAAMG,QAAQA,CAAA,EAA6D;IACzE,MAAMC,IAAyB,GAAG,CAAC,CAAC;IACpC,IAAIC,OAAO,GAAG,IAAI;IAElB,KAAK,MAAM,CAACN,GAAG,EAAEO,MAAM,CAAC,IAAI,IAAI,CAACL,QAAQ,CAACM,OAAO,CAAC,CAAC,EAAE;MACnD,MAAMC,UAAU,GAAG,MAAMF,MAAM,CAACH,QAAQ,CAAC,CAAC;MAE1C,IAAI,CAACK,UAAU,CAACH,OAAO,EAAE;QACvBA,OAAO,GAAG,KAAK;QACf,OAAO;UAAEA,OAAO,EAAE,KAAK;UAAED,IAAI,EAAE,CAAC;QAAE,CAAC;MACrC;MAEAA,IAAI,CAACL,GAAG,CAAC,GAAGS,UAAU,CAACC,MAAM;IAC/B;IAEA,OAAO;MAAEJ,OAAO;MAAED;IAAK,CAAC;EAC1B;EAEA,IAAIP,OAAOA,CAAA,EAAG;IACZ,OAAO,CAAC,GAAG,IAAI,CAACI,QAAQ,CAACQ,MAAM,CAAC,CAAC,CAAC,CAACC,IAAI,CAAEC,CAAC,IAAKA,CAAC,CAACd,OAAO,CAAC;EAC3D;EAEAe,GAAGA,CAACb,GAAW,EAAE;IACf,OAAO,IAAI,CAACE,QAAQ,CAACW,GAAG,CAACb,GAAG,CAAC;EAC/B;AACF;AAACc,OAAA,CAAA3B,aAAA,GAAAA,aAAA","ignoreList":[]}
1
+ {"version":3,"names":["_mobx","require","_TaskState","_WidgetsFormState","FormPageState","constructor","props","_defineProperty2","default","TaskState","undefined","_form","form","_widgets","widgets","WidgetsFormState","makeObservable","isFetching","computed","_isFormDirty","observable","ref","isDirty","isFormDirty","flag","initTask","status","isLoading","isIdle","isSubmitSuccessful","_isSubmitSuccessful","retryFetch","runOnce","validate","registerWidget","key","state","getWidgetState","get","exports"],"sources":["../../../src/state/FormPageState.ts"],"sourcesContent":["import { computed, makeObservable, observable } from 'mobx';\nimport { FieldValues, UseFormReturn } from 'react-hook-form';\nimport { TaskState } from './TaskState';\nimport { WidgetState, WidgetsFormState } from './WidgetsFormState'\n\nexport interface FormPageProps<V extends FieldValues = FieldValues> {\n /**\n * An object representing the form state and methods, typically returned by a useForm hook.\n */\n form: UseFormReturn<V>;\n\n widgets?: WidgetsFormState;\n}\n\nexport class FormPageState<V extends FieldValues = FieldValues> {\n readonly _widgets: WidgetsFormState;\n readonly _form: UseFormReturn<V>;\n readonly initTask = new TaskState();\n readonly submitTask = new TaskState();\n \n _isSubmitSuccessful?: boolean = undefined;\n _isFormDirty = false;\n\n constructor(props: FormPageProps<V>) {\n this._form = props.form\n this._widgets = props.widgets ?? new WidgetsFormState()\n\n makeObservable(this, {\n isFetching: computed,\n _isFormDirty: observable.ref,\n isDirty: computed,\n });\n }\n\n set isFormDirty(flag: boolean) {\n this._isFormDirty = flag;\n }\n\n get isDirty() {\n return this._isFormDirty || this._widgets.isDirty\n }\n\n get form() {\n return this._form;\n }\n\n get isFetching() {\n return this.initTask.status.isLoading || this.initTask.status.isIdle;\n }\n\n set isSubmitSuccessful(flag: boolean) {\n this._isSubmitSuccessful = flag;\n }\n\n retryFetch() {\n this.initTask.runOnce();\n }\n\n /**\n * For backward compatibility, keep this as validate, but it only validates widgets.\n */\n validate() {\n return this._widgets.validate()\n }\n\n registerWidget(key: string, state: WidgetState) {\n this._widgets.registerWidget(key, state)\n }\n\n getWidgetState(key: string) {\n return this._widgets.get(key)\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AAWO,MAAMG,aAAa,CAAsC;EAS9DC,WAAWA,CAACC,KAAuB,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA;IAAA,IAAAD,gBAAA,CAAAC,OAAA,oBANjB,IAAIC,oBAAS,CAAC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,sBACb,IAAIC,oBAAS,CAAC,CAAC;IAAA,IAAAF,gBAAA,CAAAC,OAAA,+BAELE,SAAS;IAAA,IAAAH,gBAAA,CAAAC,OAAA,wBAC1B,KAAK;IAGlB,IAAI,CAACG,KAAK,GAAGL,KAAK,CAACM,IAAI;IACvB,IAAI,CAACC,QAAQ,GAAGP,KAAK,CAACQ,OAAO,IAAI,IAAIC,kCAAgB,CAAC,CAAC;IAEvD,IAAAC,oBAAc,EAAC,IAAI,EAAE;MACnBC,UAAU,EAAEC,cAAQ;MACpBC,YAAY,EAAEC,gBAAU,CAACC,GAAG;MAC5BC,OAAO,EAAEJ;IACX,CAAC,CAAC;EACJ;EAEA,IAAIK,WAAWA,CAACC,IAAa,EAAE;IAC7B,IAAI,CAACL,YAAY,GAAGK,IAAI;EAC1B;EAEA,IAAIF,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACH,YAAY,IAAI,IAAI,CAACN,QAAQ,CAACS,OAAO;EACnD;EAEA,IAAIV,IAAIA,CAAA,EAAG;IACT,OAAO,IAAI,CAACD,KAAK;EACnB;EAEA,IAAIM,UAAUA,CAAA,EAAG;IACf,OAAO,IAAI,CAACQ,QAAQ,CAACC,MAAM,CAACC,SAAS,IAAI,IAAI,CAACF,QAAQ,CAACC,MAAM,CAACE,MAAM;EACtE;EAEA,IAAIC,kBAAkBA,CAACL,IAAa,EAAE;IACpC,IAAI,CAACM,mBAAmB,GAAGN,IAAI;EACjC;EAEAO,UAAUA,CAAA,EAAG;IACX,IAAI,CAACN,QAAQ,CAACO,OAAO,CAAC,CAAC;EACzB;;EAEA;AACF;AACA;EACEC,QAAQA,CAAA,EAAG;IACT,OAAO,IAAI,CAACpB,QAAQ,CAACoB,QAAQ,CAAC,CAAC;EACjC;EAEAC,cAAcA,CAACC,GAAW,EAAEC,KAAkB,EAAE;IAC9C,IAAI,CAACvB,QAAQ,CAACqB,cAAc,CAACC,GAAG,EAAEC,KAAK,CAAC;EAC1C;EAEAC,cAAcA,CAACF,GAAW,EAAE;IAC1B,OAAO,IAAI,CAACtB,QAAQ,CAACyB,GAAG,CAACH,GAAG,CAAC;EAC/B;AACF;AAACI,OAAA,CAAAnC,aAAA,GAAAA,aAAA","ignoreList":[]}
@@ -17,8 +17,10 @@ class TagsAssignmentState {
17
17
  entityId,
18
18
  origin,
19
19
  tagsBIReporter,
20
+ initialTags,
20
21
  ...params
21
22
  }) {
23
+ var _initialTags$privateT;
22
24
  (0, _defineProperty2.default)(this, "tagsManagementState", void 0);
23
25
  (0, _defineProperty2.default)(this, "origin", void 0);
24
26
  (0, _defineProperty2.default)(this, "tagsBIReporter", void 0);
@@ -26,7 +28,7 @@ class TagsAssignmentState {
26
28
  (0, _defineProperty2.default)(this, "collection", void 0);
27
29
  (0, _defineProperty2.default)(this, "optimisticActions", void 0);
28
30
  (0, _defineProperty2.default)(this, "entityId", void 0);
29
- (0, _defineProperty2.default)(this, "initialTags", []);
31
+ (0, _defineProperty2.default)(this, "initialTags", void 0);
30
32
  (0, _defineProperty2.default)(this, "fqdn", void 0);
31
33
  (0, _defineProperty2.default)(this, "assignTag", async ({
32
34
  tag,
@@ -223,6 +225,10 @@ class TagsAssignmentState {
223
225
  this.origin = origin;
224
226
  this.tagsBIReporter = tagsBIReporter;
225
227
  this.fqdn = params.fqdn;
228
+ this.initialTags = Array.from(new Set((initialTags == null || (_initialTags$privateT = initialTags.privateTags) == null ? void 0 : _initialTags$privateT.tagIds) || [])).map((id, index) => ({
229
+ index,
230
+ id
231
+ }));
226
232
  (0, _mobx.makeObservable)(this, {
227
233
  initialTags: _mobx.observable,
228
234
  init: _mobx.action,
@@ -261,14 +267,8 @@ class TagsAssignmentState {
261
267
  });
262
268
  }
263
269
  init({
264
- initialTags,
265
270
  entityId
266
271
  }) {
267
- var _initialTags$privateT;
268
- this.initialTags = Array.from(new Set((initialTags == null || (_initialTags$privateT = initialTags.privateTags) == null ? void 0 : _initialTags$privateT.tagIds) || [])).map((id, index) => ({
269
- index,
270
- id
271
- }));
272
272
  this.entityId = entityId ?? undefined;
273
273
  const {
274
274
  collection,
@@ -308,7 +308,16 @@ class TagsAssignmentState {
308
308
  }).filter(Boolean);
309
309
  }
310
310
  get assignedTagIds() {
311
- return this.collection.result.items.map(tag => tag.id);
311
+ const {
312
+ isIdle,
313
+ isLoading
314
+ } = this.collection.status;
315
+
316
+ /**
317
+ * During collection fetch, the returned items are 0, which impacts assignedTagIds
318
+ * and sets isDirty to true during the rendering lifecycle, causing flakiness in the UI.
319
+ */
320
+ return isIdle || isLoading ? this.initialTagIds : this.collection.result.items.map(tag => tag.id);
312
321
  }
313
322
  get initialTagIds() {
314
323
  return this.initialTags.map(tag => tag.id);
@@ -1 +1 @@
1
- {"version":3,"names":["_v","require","_uuid","_mobx","_CollectionOptimisticActions","_TaskState","_CollectionState","_util","TagsAssignmentState","constructor","tagsManagementState","entityId","origin","tagsBIReporter","params","_defineProperty2","default","TaskState","tag","onSubmit","isFromSearch","optimisticActionParams","assignedTagIds","includes","id","newIndex","_getNewIndex","optimisticActions","createOne","index","submit","_","_assignTag","tagIds","tagToUnassign","collection","result","items","find","t","deleteOne","_invokeBiOnAssignUnassign","actionName","allTags","privateTags","filter","addedTags","removedTags","name","uuid","filteredListSize","assignOptimisticActionParams","createOptimisticActionParams","newTag","_createAndAssign","Array","from","Set","assignError","tagId","_createTag","onCreateSuccess","error","Promise","resolve","createTag","onSuccess","fqdn","makeObservable","initialTags","observable","init","action","assignTag","createAndAssignTag","unassignTag","clear","assignedTags","computed","initialTagIds","isDirty","CollectionState","container","events","queryName","fqdnString","join","fetchData","total","length","itemKey","itemName","fetchErrorMessage","filters","CollectionOptimisticActions","orderBy","fieldName","order","_initialTags$privateT","map","undefined","disposers","initTask","runOnce","status","promise","forEach","disposer","fqdnToString","isLoading","isIdle","isError","retry","_this$collection$resu","Boolean","unassigendTagIds","reportBi","cairoTagsAssignTag","itemId","numItems","numTags","numTagsAssigned","tagName","max","Math","exports"],"sources":["../../../../src/state/TagsState/TagsAssignmentState.ts"],"sourcesContent":["import { Tag } from '@wix/bex-utils/@wix/ambassador-os-tags-v1-tag/types';\nimport { TagsManagementState } from './TagsManagementState';\nimport { TagsBIReporter } from './TagsBIReporter';\nimport { cairoTagsAssignTag } from '@wix/bex-utils/@wix/bi-logger-os-data/v2';\nimport { Tags } from './tagsTypes';\nimport { v4 as uuid } from 'uuid';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { Fqdn } from '../../model';\nimport {\n CollectionOptimisticActions,\n CreateManyParams,\n DeleteManyParams,\n} from '../CollectionOptimisticActions';\nimport { TaskState } from '../TaskState';\nimport { CollectionState } from '../CollectionState';\nimport { fqdnToString } from '../../util';\n\nexport type OnSubmitTagsFuncType = ({\n allTags,\n addedTags,\n removedTags,\n}: {\n allTags: Tags;\n addedTags: Tags;\n removedTags: Tags;\n}) => void;\n\nexport interface TagsAssignmentStateParams {\n readonly tagsManagementState: TagsManagementState;\n readonly entityId?: string;\n readonly origin: string;\n readonly fqdn: Fqdn;\n readonly tagsBIReporter: TagsBIReporter;\n}\n\nexport interface CreateAndAssignParams {\n name: string;\n id?: string;\n filteredListSize: number;\n onSubmit?: OnSubmitTagsFuncType;\n isFromSearch?: boolean;\n assignOptimisticActionParams?: Partial<CreateManyParams<Tag>>;\n createOptimisticActionParams?: Partial<CreateManyParams<Tag>>;\n}\n\ninterface TagAssignment {\n id: string;\n index: number;\n}\n\nexport class TagsAssignmentState {\n readonly tagsManagementState: TagsManagementState;\n readonly origin;\n readonly tagsBIReporter: TagsBIReporter;\n readonly initTask = new TaskState();\n readonly collection: CollectionState<TagAssignment>;\n readonly optimisticActions: CollectionOptimisticActions<TagAssignment, {}>;\n entityId?: string;\n initialTags: TagAssignment[] = [];\n readonly fqdn;\n\n constructor({\n tagsManagementState,\n entityId,\n origin,\n tagsBIReporter,\n ...params\n }: TagsAssignmentStateParams) {\n this.tagsManagementState = tagsManagementState;\n this.origin = origin;\n this.tagsBIReporter = tagsBIReporter;\n this.fqdn = params.fqdn;\n\n makeObservable(this, {\n initialTags: observable,\n init: action,\n assignTag: action,\n createAndAssignTag: action,\n unassignTag: action,\n clear: action,\n assignedTags: computed,\n initialTagIds: computed,\n isDirty: computed,\n });\n this.collection = new CollectionState<TagAssignment>({\n ...tagsManagementState.container,\n events: {},\n queryName: [this.fqdnString, origin, entityId].join('/'),\n fetchData: async () => {\n return {\n items: this.initialTags,\n total: this.initialTags.length,\n };\n },\n itemKey: (tag) => tag.id,\n itemName: (tag) => tag.id,\n fetchErrorMessage: () => '',\n filters: {},\n });\n\n this.optimisticActions = new CollectionOptimisticActions<TagAssignment, {}>(\n {\n collection: this.collection,\n container: tagsManagementState.container,\n orderBy: () => [\n {\n fieldName: ({ index }) => index,\n order: 'asc',\n },\n ],\n },\n );\n }\n\n init({\n initialTags,\n entityId,\n }: {\n initialTags?: Tags;\n entityId?: string | null;\n }) {\n this.initialTags = Array.from(\n new Set(initialTags?.privateTags?.tagIds || []),\n ).map((id, index) => ({\n index,\n id,\n }));\n this.entityId = entityId ?? undefined;\n\n const { collection, optimisticActions } = this;\n\n const disposers = [collection.init(), optimisticActions.init()];\n\n this.initTask.runOnce(async () => {\n await collection.initTask.status.promise;\n\n this.tagsManagementState.init();\n await this.tagsManagementState.initTask.status.promise;\n });\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n get fqdnString() {\n return fqdnToString(this.fqdn);\n }\n\n get isLoading() {\n const { status } = this.tagsManagementState.initTask;\n return status.isIdle || status.isLoading || this.initTask.status.isLoading;\n }\n\n get isError() {\n return (\n this.tagsManagementState.initTask.status.isError ||\n this.initTask.status.isError\n );\n }\n\n retry() {\n this.initTask.runOnce();\n }\n\n get assignedTags() {\n return this.collection.result.items\n ?.map(({ id }) => {\n return this.tagsManagementState.items.find((tag: Tag) => tag.id === id);\n })\n .filter(Boolean) as Tag[];\n }\n\n get assignedTagIds() {\n return this.collection.result.items.map((tag) => tag.id);\n }\n\n get initialTagIds() {\n return this.initialTags.map((tag) => tag.id);\n }\n\n clear() {\n this.collection.result.clear();\n }\n\n assignTag = async ({\n tag,\n onSubmit,\n isFromSearch,\n optimisticActionParams,\n }: {\n tag: Tag;\n onSubmit?: OnSubmitTagsFuncType;\n isFromSearch?: boolean;\n optimisticActionParams?: Partial<CreateManyParams<Tag>>;\n }) => {\n if (this.assignedTagIds.includes(tag.id!)) {\n return;\n }\n const newIndex = this._getNewIndex();\n\n await this.optimisticActions.createOne(\n { id: tag.id!, index: newIndex },\n {\n ...optimisticActionParams,\n submit: async (_: any) => {\n await this._assignTag({\n tagIds: this.assignedTagIds,\n tag,\n onSubmit,\n isFromSearch,\n });\n\n return [{ id: tag.id!, index: newIndex }];\n },\n },\n );\n };\n\n unassignTag = async ({\n tag,\n onSubmit,\n isFromSearch = false,\n optimisticActionParams,\n }: {\n tag: Tag;\n onSubmit?: OnSubmitTagsFuncType;\n isFromSearch?: boolean;\n optimisticActionParams?: Partial<DeleteManyParams<Tag, {}>>;\n }) => {\n const tagToUnassign = this.collection.result.items.find(\n (t) => t.id === tag.id,\n );\n\n await this.optimisticActions.deleteOne(tagToUnassign!, {\n ...optimisticActionParams,\n submit: async () => {\n this._invokeBiOnAssignUnassign({\n actionName: 'Remove',\n tag,\n isFromSearch,\n });\n\n await onSubmit?.({\n allTags: {\n privateTags: {\n tagIds: this.assignedTagIds.filter((id: string) => id !== tag.id),\n },\n },\n addedTags: {\n privateTags: {\n tagIds: [],\n },\n },\n removedTags: {\n privateTags: {\n tagIds: [tag.id!],\n },\n },\n });\n },\n });\n };\n\n createAndAssignTag = async ({\n name,\n id = uuid(),\n filteredListSize,\n onSubmit,\n assignOptimisticActionParams,\n createOptimisticActionParams,\n }: CreateAndAssignParams) => {\n const newIndex = this._getNewIndex();\n\n this.optimisticActions.createOne(\n { id, index: newIndex },\n {\n ...assignOptimisticActionParams,\n submit: async (_) => {\n const newTag = await this._createAndAssign({\n name,\n id,\n filteredListSize,\n onSubmit,\n createOptimisticActionParams,\n });\n return [{ id: newTag.id!, index: newIndex }];\n },\n },\n );\n };\n\n get isDirty() {\n if (this.initialTagIds.length !== this.assignedTagIds.length) {\n return true;\n }\n\n const unassigendTagIds = this.initialTagIds.filter(\n (id) => !this.assignedTagIds.includes(id),\n );\n const assignedTagIds = this.assignedTagIds.filter(\n (id) => !this.initialTagIds.includes(id),\n );\n\n return unassigendTagIds.length !== 0 || assignedTagIds.length !== 0;\n }\n\n private _assignTag = async ({\n tagIds,\n tag,\n onSubmit,\n isFromSearch,\n }: {\n tagIds: string[];\n tag: Tag;\n onSubmit?: OnSubmitTagsFuncType;\n isFromSearch?: boolean;\n }) => {\n this._invokeBiOnAssignUnassign({\n actionName: 'Assign',\n tag,\n isFromSearch,\n });\n await onSubmit?.({\n allTags: {\n privateTags: {\n tagIds: Array.from(new Set([...tagIds, tag.id])) as string[],\n },\n },\n addedTags: { privateTags: { tagIds: [tag.id!] } },\n removedTags: { privateTags: { tagIds: [] } },\n });\n };\n\n private _createAndAssign = async ({\n name,\n id,\n filteredListSize,\n onSubmit,\n createOptimisticActionParams,\n }: CreateAndAssignParams) => {\n const isFromSearch = true;\n let assignError: unknown;\n\n let newTag = this.tagsManagementState.items.find(\n (tag: Tag) => tag.name === name,\n );\n if (newTag) {\n await this._assignTag({\n tagIds: this.assignedTagIds.filter((tagId) => tagId !== id),\n tag: newTag,\n onSubmit,\n isFromSearch,\n });\n\n return newTag;\n }\n newTag = await this._createTag({\n name,\n id,\n filteredListSize,\n isFromSearch,\n createOptimisticActionParams,\n onCreateSuccess: async (newTag) => {\n try {\n await this._assignTag({\n tagIds: this.assignedTagIds.filter((tagId) => tagId !== id),\n tag: newTag,\n onSubmit,\n isFromSearch,\n });\n } catch (error: unknown) {\n assignError = error;\n }\n },\n });\n\n // We want to throw assign exception in assign optimistic context so assign tryAgain (and not create) will be triggered\n if (assignError) {\n throw assignError;\n }\n return newTag;\n };\n\n private _createTag = async ({\n name,\n id,\n filteredListSize,\n isFromSearch,\n onCreateSuccess,\n createOptimisticActionParams,\n }: CreateAndAssignParams & { onCreateSuccess: (newTag: Tag) => void }) => {\n return new Promise<Tag>(async (resolve) => {\n await this.tagsManagementState.createTag({\n name,\n id,\n filteredListSize,\n origin: this.origin,\n isFromSearch,\n tagsBIReporter: this.tagsBIReporter,\n optimisticActionParams: createOptimisticActionParams,\n onSuccess: async (newTag) => {\n await onCreateSuccess?.(newTag);\n resolve(newTag);\n },\n });\n });\n };\n\n private _invokeBiOnAssignUnassign({\n actionName,\n tag,\n isFromSearch = false,\n }: {\n actionName: string;\n tag: Tag;\n isFromSearch?: boolean;\n }) {\n this.tagsBIReporter.reportBi(\n cairoTagsAssignTag({\n actionName,\n isFromSearch,\n itemId: this.entityId,\n numItems: 1,\n numTags: this.tagsManagementState.items.length,\n numTagsAssigned: this.assignedTags.length,\n tagName: tag.name!,\n origin: this.origin,\n }),\n );\n }\n\n private _getNewIndex() {\n const max = Math.max(\n 0,\n ...this.collection.result.items.map((tag) => tag.index!),\n );\n\n return max + 1;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_v","require","_uuid","_mobx","_CollectionOptimisticActions","_TaskState","_CollectionState","_util","TagsAssignmentState","constructor","tagsManagementState","entityId","origin","tagsBIReporter","initialTags","params","_initialTags$privateT","_defineProperty2","default","TaskState","tag","onSubmit","isFromSearch","optimisticActionParams","assignedTagIds","includes","id","newIndex","_getNewIndex","optimisticActions","createOne","index","submit","_","_assignTag","tagIds","tagToUnassign","collection","result","items","find","t","deleteOne","_invokeBiOnAssignUnassign","actionName","allTags","privateTags","filter","addedTags","removedTags","name","uuid","filteredListSize","assignOptimisticActionParams","createOptimisticActionParams","newTag","_createAndAssign","Array","from","Set","assignError","tagId","_createTag","onCreateSuccess","error","Promise","resolve","createTag","onSuccess","fqdn","map","makeObservable","observable","init","action","assignTag","createAndAssignTag","unassignTag","clear","assignedTags","computed","initialTagIds","isDirty","CollectionState","container","events","queryName","fqdnString","join","fetchData","total","length","itemKey","itemName","fetchErrorMessage","filters","CollectionOptimisticActions","orderBy","fieldName","order","undefined","disposers","initTask","runOnce","status","promise","forEach","disposer","fqdnToString","isLoading","isIdle","isError","retry","_this$collection$resu","Boolean","unassigendTagIds","reportBi","cairoTagsAssignTag","itemId","numItems","numTags","numTagsAssigned","tagName","max","Math","exports"],"sources":["../../../../src/state/TagsState/TagsAssignmentState.ts"],"sourcesContent":["import { Tag } from '@wix/bex-utils/@wix/ambassador-os-tags-v1-tag/types';\nimport { TagsManagementState } from './TagsManagementState';\nimport { TagsBIReporter } from './TagsBIReporter';\nimport { cairoTagsAssignTag } from '@wix/bex-utils/@wix/bi-logger-os-data/v2';\nimport { Tags } from './tagsTypes';\nimport { v4 as uuid } from 'uuid';\nimport { action, computed, makeObservable, observable } from 'mobx';\nimport { Fqdn } from '../../model';\nimport {\n CollectionOptimisticActions,\n CreateManyParams,\n DeleteManyParams,\n} from '../CollectionOptimisticActions';\nimport { TaskState } from '../TaskState';\nimport { CollectionState } from '../CollectionState';\nimport { fqdnToString } from '../../util';\n\nexport type OnSubmitTagsFuncType = ({\n allTags,\n addedTags,\n removedTags,\n}: {\n allTags: Tags;\n addedTags: Tags;\n removedTags: Tags;\n}) => void;\n\nexport interface TagsAssignmentStateParams {\n readonly tagsManagementState: TagsManagementState;\n readonly entityId?: string;\n readonly origin: string;\n readonly fqdn: Fqdn;\n readonly tagsBIReporter: TagsBIReporter;\n readonly initialTags?: Tags;\n}\n\nexport interface CreateAndAssignParams {\n name: string;\n id?: string;\n filteredListSize: number;\n onSubmit?: OnSubmitTagsFuncType;\n isFromSearch?: boolean;\n assignOptimisticActionParams?: Partial<CreateManyParams<Tag>>;\n createOptimisticActionParams?: Partial<CreateManyParams<Tag>>;\n}\n\ninterface TagAssignment {\n id: string;\n index: number;\n}\n\nexport class TagsAssignmentState {\n readonly tagsManagementState: TagsManagementState;\n readonly origin;\n readonly tagsBIReporter: TagsBIReporter;\n readonly initTask = new TaskState();\n readonly collection: CollectionState<TagAssignment>;\n readonly optimisticActions: CollectionOptimisticActions<TagAssignment, {}>;\n entityId?: string;\n readonly initialTags: TagAssignment[];\n readonly fqdn;\n\n constructor({\n tagsManagementState,\n entityId,\n origin,\n tagsBIReporter,\n initialTags,\n ...params\n }: TagsAssignmentStateParams) {\n this.tagsManagementState = tagsManagementState;\n this.origin = origin;\n this.tagsBIReporter = tagsBIReporter;\n this.fqdn = params.fqdn;\n this.initialTags = Array.from(\n new Set(initialTags?.privateTags?.tagIds || []),\n ).map((id, index) => ({\n index,\n id,\n }));\n\n makeObservable(this, {\n initialTags: observable,\n init: action,\n assignTag: action,\n createAndAssignTag: action,\n unassignTag: action,\n clear: action,\n assignedTags: computed,\n initialTagIds: computed,\n isDirty: computed,\n });\n\n this.collection = new CollectionState<TagAssignment>({\n ...tagsManagementState.container,\n events: {},\n queryName: [this.fqdnString, origin, entityId].join('/'),\n fetchData: async () => {\n return {\n items: this.initialTags,\n total: this.initialTags.length,\n };\n },\n itemKey: (tag) => tag.id,\n itemName: (tag) => tag.id,\n fetchErrorMessage: () => '',\n filters: {},\n });\n\n this.optimisticActions = new CollectionOptimisticActions<TagAssignment, {}>(\n {\n collection: this.collection,\n container: tagsManagementState.container,\n orderBy: () => [\n {\n fieldName: ({ index }) => index,\n order: 'asc',\n },\n ],\n },\n );\n }\n\n init({ entityId }: { entityId?: string | null }) {\n this.entityId = entityId ?? undefined;\n\n const { collection, optimisticActions } = this;\n\n const disposers = [collection.init(), optimisticActions.init()];\n\n this.initTask.runOnce(async () => {\n await collection.initTask.status.promise;\n\n this.tagsManagementState.init();\n await this.tagsManagementState.initTask.status.promise;\n });\n\n return () => {\n disposers.forEach((disposer) => disposer());\n };\n }\n\n get fqdnString() {\n return fqdnToString(this.fqdn);\n }\n\n get isLoading() {\n const { status } = this.tagsManagementState.initTask;\n return status.isIdle || status.isLoading || this.initTask.status.isLoading;\n }\n\n get isError() {\n return (\n this.tagsManagementState.initTask.status.isError ||\n this.initTask.status.isError\n );\n }\n\n retry() {\n this.initTask.runOnce();\n }\n\n get assignedTags() {\n return this.collection.result.items\n ?.map(({ id }) => {\n return this.tagsManagementState.items.find((tag: Tag) => tag.id === id);\n })\n .filter(Boolean) as Tag[];\n }\n\n get assignedTagIds() {\n const { isIdle, isLoading } = this.collection.status\n\n /**\n * During collection fetch, the returned items are 0, which impacts assignedTagIds\n * and sets isDirty to true during the rendering lifecycle, causing flakiness in the UI.\n */\n return isIdle || isLoading\n ? this.initialTagIds\n : this.collection.result.items.map((tag) => tag.id);\n }\n\n get initialTagIds() {\n return this.initialTags.map((tag) => tag.id);\n }\n\n clear() {\n this.collection.result.clear();\n }\n\n assignTag = async ({\n tag,\n onSubmit,\n isFromSearch,\n optimisticActionParams,\n }: {\n tag: Tag;\n onSubmit?: OnSubmitTagsFuncType;\n isFromSearch?: boolean;\n optimisticActionParams?: Partial<CreateManyParams<Tag>>;\n }) => {\n if (this.assignedTagIds.includes(tag.id!)) {\n return;\n }\n const newIndex = this._getNewIndex();\n\n await this.optimisticActions.createOne(\n { id: tag.id!, index: newIndex },\n {\n ...optimisticActionParams,\n submit: async (_: any) => {\n await this._assignTag({\n tagIds: this.assignedTagIds,\n tag,\n onSubmit,\n isFromSearch,\n });\n\n return [{ id: tag.id!, index: newIndex }];\n },\n },\n );\n };\n\n unassignTag = async ({\n tag,\n onSubmit,\n isFromSearch = false,\n optimisticActionParams,\n }: {\n tag: Tag;\n onSubmit?: OnSubmitTagsFuncType;\n isFromSearch?: boolean;\n optimisticActionParams?: Partial<DeleteManyParams<Tag, {}>>;\n }) => {\n const tagToUnassign = this.collection.result.items.find(\n (t) => t.id === tag.id,\n );\n\n await this.optimisticActions.deleteOne(tagToUnassign!, {\n ...optimisticActionParams,\n submit: async () => {\n this._invokeBiOnAssignUnassign({\n actionName: 'Remove',\n tag,\n isFromSearch,\n });\n\n await onSubmit?.({\n allTags: {\n privateTags: {\n tagIds: this.assignedTagIds.filter((id: string) => id !== tag.id),\n },\n },\n addedTags: {\n privateTags: {\n tagIds: [],\n },\n },\n removedTags: {\n privateTags: {\n tagIds: [tag.id!],\n },\n },\n });\n },\n });\n };\n\n createAndAssignTag = async ({\n name,\n id = uuid(),\n filteredListSize,\n onSubmit,\n assignOptimisticActionParams,\n createOptimisticActionParams,\n }: CreateAndAssignParams) => {\n const newIndex = this._getNewIndex();\n\n this.optimisticActions.createOne(\n { id, index: newIndex },\n {\n ...assignOptimisticActionParams,\n submit: async (_) => {\n const newTag = await this._createAndAssign({\n name,\n id,\n filteredListSize,\n onSubmit,\n createOptimisticActionParams,\n });\n return [{ id: newTag.id!, index: newIndex }];\n },\n },\n );\n };\n\n get isDirty() {\n if (this.initialTagIds.length !== this.assignedTagIds.length) {\n return true;\n }\n\n const unassigendTagIds = this.initialTagIds.filter(\n (id) => !this.assignedTagIds.includes(id),\n );\n const assignedTagIds = this.assignedTagIds.filter(\n (id) => !this.initialTagIds.includes(id),\n );\n\n return unassigendTagIds.length !== 0 || assignedTagIds.length !== 0;\n }\n\n private _assignTag = async ({\n tagIds,\n tag,\n onSubmit,\n isFromSearch,\n }: {\n tagIds: string[];\n tag: Tag;\n onSubmit?: OnSubmitTagsFuncType;\n isFromSearch?: boolean;\n }) => {\n this._invokeBiOnAssignUnassign({\n actionName: 'Assign',\n tag,\n isFromSearch,\n });\n await onSubmit?.({\n allTags: {\n privateTags: {\n tagIds: Array.from(new Set([...tagIds, tag.id])) as string[],\n },\n },\n addedTags: { privateTags: { tagIds: [tag.id!] } },\n removedTags: { privateTags: { tagIds: [] } },\n });\n };\n\n private _createAndAssign = async ({\n name,\n id,\n filteredListSize,\n onSubmit,\n createOptimisticActionParams,\n }: CreateAndAssignParams) => {\n const isFromSearch = true;\n let assignError: unknown;\n\n let newTag = this.tagsManagementState.items.find(\n (tag: Tag) => tag.name === name,\n );\n if (newTag) {\n await this._assignTag({\n tagIds: this.assignedTagIds.filter((tagId) => tagId !== id),\n tag: newTag,\n onSubmit,\n isFromSearch,\n });\n\n return newTag;\n }\n newTag = await this._createTag({\n name,\n id,\n filteredListSize,\n isFromSearch,\n createOptimisticActionParams,\n onCreateSuccess: async (newTag) => {\n try {\n await this._assignTag({\n tagIds: this.assignedTagIds.filter((tagId) => tagId !== id),\n tag: newTag,\n onSubmit,\n isFromSearch,\n });\n } catch (error: unknown) {\n assignError = error;\n }\n },\n });\n\n // We want to throw assign exception in assign optimistic context so assign tryAgain (and not create) will be triggered\n if (assignError) {\n throw assignError;\n }\n return newTag;\n };\n\n private _createTag = async ({\n name,\n id,\n filteredListSize,\n isFromSearch,\n onCreateSuccess,\n createOptimisticActionParams,\n }: CreateAndAssignParams & { onCreateSuccess: (newTag: Tag) => void }) => {\n return new Promise<Tag>(async (resolve) => {\n await this.tagsManagementState.createTag({\n name,\n id,\n filteredListSize,\n origin: this.origin,\n isFromSearch,\n tagsBIReporter: this.tagsBIReporter,\n optimisticActionParams: createOptimisticActionParams,\n onSuccess: async (newTag) => {\n await onCreateSuccess?.(newTag);\n resolve(newTag);\n },\n });\n });\n };\n\n private _invokeBiOnAssignUnassign({\n actionName,\n tag,\n isFromSearch = false,\n }: {\n actionName: string;\n tag: Tag;\n isFromSearch?: boolean;\n }) {\n this.tagsBIReporter.reportBi(\n cairoTagsAssignTag({\n actionName,\n isFromSearch,\n itemId: this.entityId,\n numItems: 1,\n numTags: this.tagsManagementState.items.length,\n numTagsAssigned: this.assignedTags.length,\n tagName: tag.name!,\n origin: this.origin,\n }),\n );\n }\n\n private _getNewIndex() {\n const max = Math.max(\n 0,\n ...this.collection.result.items.map((tag) => tag.index!),\n );\n\n return max + 1;\n }\n}\n"],"mappings":"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","ignoreList":[]}