payload 2.0.6 → 2.0.8

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 (151) hide show
  1. package/.release-it.js +51 -0
  2. package/components/index.js +1 -1
  3. package/dist/admin/components/elements/Autosave/index.d.ts.map +1 -1
  4. package/dist/admin/components/elements/Autosave/index.js +3 -2
  5. package/dist/admin/components/elements/DocumentControls/index.d.ts +2 -1
  6. package/dist/admin/components/elements/DocumentControls/index.d.ts.map +1 -1
  7. package/dist/admin/components/elements/DocumentControls/index.js +1 -1
  8. package/dist/admin/components/elements/DocumentControls/index.scss +42 -16
  9. package/dist/admin/components/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  10. package/dist/admin/components/elements/DocumentDrawer/DrawerContent.js +6 -2
  11. package/dist/admin/components/elements/DocumentHeader/Tabs/index.scss +18 -0
  12. package/dist/admin/components/elements/EditUpload/index.d.ts.map +1 -1
  13. package/dist/admin/components/elements/EditUpload/index.js +7 -3
  14. package/dist/admin/components/elements/EditUpload/index.scss +0 -5
  15. package/dist/admin/components/elements/Hamburger/index.scss +9 -3
  16. package/dist/admin/components/elements/Header/index.d.ts.map +1 -1
  17. package/dist/admin/components/elements/Header/index.js +5 -2
  18. package/dist/admin/components/elements/Header/index.scss +6 -0
  19. package/dist/admin/components/elements/Nav/NavToggler/index.scss +0 -6
  20. package/dist/admin/components/elements/Nav/context.d.ts.map +1 -1
  21. package/dist/admin/components/elements/Nav/context.js +31 -23
  22. package/dist/admin/components/elements/Nav/index.scss +7 -9
  23. package/dist/admin/components/elements/PreviewSizes/index.d.ts +1 -1
  24. package/dist/admin/components/elements/PreviewSizes/index.d.ts.map +1 -1
  25. package/dist/admin/components/elements/PreviewSizes/index.js +9 -14
  26. package/dist/admin/components/elements/PreviewSizes/index.scss +1 -1
  27. package/dist/admin/components/elements/Thumbnail/index.d.ts.map +1 -1
  28. package/dist/admin/components/elements/Thumbnail/index.js +2 -5
  29. package/dist/admin/components/forms/RenderFields/index.d.ts.map +1 -1
  30. package/dist/admin/components/forms/RenderFields/index.js +3 -2
  31. package/dist/admin/components/forms/field-types/Array/ArrayRow.d.ts +1 -0
  32. package/dist/admin/components/forms/field-types/Array/ArrayRow.d.ts.map +1 -1
  33. package/dist/admin/components/forms/field-types/Array/ArrayRow.js +5 -4
  34. package/dist/admin/components/forms/field-types/Array/index.d.ts.map +1 -1
  35. package/dist/admin/components/forms/field-types/Array/index.js +3 -2
  36. package/dist/admin/components/forms/field-types/Array/types.d.ts +1 -0
  37. package/dist/admin/components/forms/field-types/Array/types.d.ts.map +1 -1
  38. package/dist/admin/components/forms/field-types/Blocks/BlockRow.d.ts +1 -0
  39. package/dist/admin/components/forms/field-types/Blocks/BlockRow.d.ts.map +1 -1
  40. package/dist/admin/components/forms/field-types/Blocks/BlockRow.js +3 -2
  41. package/dist/admin/components/forms/field-types/Blocks/index.d.ts.map +1 -1
  42. package/dist/admin/components/forms/field-types/Blocks/index.js +4 -3
  43. package/dist/admin/components/forms/field-types/Blocks/types.d.ts +1 -0
  44. package/dist/admin/components/forms/field-types/Blocks/types.d.ts.map +1 -1
  45. package/dist/admin/components/forms/field-types/Group/index.d.ts.map +1 -1
  46. package/dist/admin/components/forms/field-types/Group/index.js +4 -3
  47. package/dist/admin/components/forms/field-types/Group/types.d.ts +1 -0
  48. package/dist/admin/components/forms/field-types/Group/types.d.ts.map +1 -1
  49. package/dist/admin/components/forms/field-types/Row/index.d.ts.map +1 -1
  50. package/dist/admin/components/forms/field-types/Row/index.js +3 -2
  51. package/dist/admin/components/forms/field-types/Row/types.d.ts +1 -0
  52. package/dist/admin/components/forms/field-types/Row/types.d.ts.map +1 -1
  53. package/dist/admin/components/forms/field-types/Tabs/index.d.ts.map +1 -1
  54. package/dist/admin/components/forms/field-types/Tabs/index.js +4 -4
  55. package/dist/admin/components/forms/field-types/Tabs/types.d.ts +1 -0
  56. package/dist/admin/components/forms/field-types/Tabs/types.d.ts.map +1 -1
  57. package/dist/admin/components/graphics/Account/Default/index.scss +15 -2
  58. package/dist/admin/components/templates/Default/index.d.ts.map +1 -1
  59. package/dist/admin/components/templates/Default/index.js +6 -9
  60. package/dist/admin/components/templates/Default/index.scss +7 -88
  61. package/dist/admin/components/views/Global/Default/index.scss +17 -16
  62. package/dist/admin/components/views/LivePreview/Context/context.d.ts +11 -0
  63. package/dist/admin/components/views/LivePreview/Context/context.d.ts.map +1 -1
  64. package/dist/admin/components/views/LivePreview/Context/context.js +10 -1
  65. package/dist/admin/components/views/LivePreview/Context/index.d.ts +6 -3
  66. package/dist/admin/components/views/LivePreview/Context/index.d.ts.map +1 -1
  67. package/dist/admin/components/views/LivePreview/Context/index.js +65 -6
  68. package/dist/admin/components/views/LivePreview/IFrame/index.scss +1 -0
  69. package/dist/admin/components/views/LivePreview/Preview/index.d.ts +1 -7
  70. package/dist/admin/components/views/LivePreview/Preview/index.d.ts.map +1 -1
  71. package/dist/admin/components/views/LivePreview/Preview/index.js +24 -59
  72. package/dist/admin/components/views/LivePreview/Preview/index.scss +1 -0
  73. package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.d.ts +2 -2
  74. package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.d.ts.map +1 -1
  75. package/dist/admin/components/views/LivePreview/Toolbar/Controls/index.js +7 -5
  76. package/dist/admin/components/views/LivePreview/Toolbar/index.d.ts +2 -5
  77. package/dist/admin/components/views/LivePreview/Toolbar/index.d.ts.map +1 -1
  78. package/dist/admin/components/views/LivePreview/Toolbar/index.js +1 -1
  79. package/dist/admin/components/views/LivePreview/index.d.ts.map +1 -1
  80. package/dist/admin/components/views/LivePreview/index.js +50 -33
  81. package/dist/admin/components/views/LivePreview/index.scss +12 -1
  82. package/dist/admin/components/views/LivePreview/usePopupWindow.d.ts +1 -2
  83. package/dist/admin/components/views/LivePreview/usePopupWindow.d.ts.map +1 -1
  84. package/dist/admin/components/views/LivePreview/usePopupWindow.js +4 -23
  85. package/dist/admin/components/views/collections/Edit/Default/index.d.ts.map +1 -1
  86. package/dist/admin/components/views/collections/Edit/Default/index.js +3 -4
  87. package/dist/admin/components/views/collections/Edit/Default/index.scss +12 -5
  88. package/dist/admin/components/views/collections/Edit/Upload/index.js +2 -3
  89. package/dist/admin/hooks/useIntersect.d.ts +1 -1
  90. package/dist/admin/hooks/useIntersect.d.ts.map +1 -1
  91. package/dist/admin/hooks/useIntersect.js +7 -3
  92. package/dist/admin/scss/app.scss +2 -7
  93. package/dist/admin/utilities/formatDate/index.d.ts +1 -0
  94. package/dist/admin/utilities/formatDate/index.d.ts.map +1 -1
  95. package/dist/admin/utilities/formatDate/index.js +19 -4
  96. package/dist/auth/operations/local/verifyEmail.d.ts +2 -0
  97. package/dist/auth/operations/local/verifyEmail.d.ts.map +1 -1
  98. package/dist/auth/operations/local/verifyEmail.js +8 -5
  99. package/dist/bin/build.js +0 -0
  100. package/dist/bin/index.js +0 -0
  101. package/dist/collections/operations/local/findVersions.d.ts +2 -1
  102. package/dist/collections/operations/local/findVersions.d.ts.map +1 -1
  103. package/dist/collections/operations/local/findVersions.js +3 -2
  104. package/dist/collections/operations/local/restoreVersion.d.ts +2 -1
  105. package/dist/collections/operations/local/restoreVersion.d.ts.map +1 -1
  106. package/dist/collections/operations/local/restoreVersion.js +3 -2
  107. package/dist/fields/config/types.d.ts +1 -1
  108. package/dist/fields/config/types.d.ts.map +1 -1
  109. package/dist/fields/config/types.js +1 -1
  110. package/dist/fields/validations.d.ts.map +1 -1
  111. package/dist/fields/validations.js +12 -11
  112. package/dist/globals/operations/local/findVersionByID.d.ts +2 -0
  113. package/dist/globals/operations/local/findVersionByID.d.ts.map +1 -1
  114. package/dist/globals/operations/local/findVersionByID.js +3 -2
  115. package/dist/globals/operations/local/findVersions.d.ts +2 -0
  116. package/dist/globals/operations/local/findVersions.d.ts.map +1 -1
  117. package/dist/globals/operations/local/findVersions.js +3 -2
  118. package/dist/globals/operations/local/restoreVersion.d.ts +2 -0
  119. package/dist/globals/operations/local/restoreVersion.d.ts.map +1 -1
  120. package/dist/globals/operations/local/restoreVersion.js +3 -2
  121. package/dist/globals/operations/local/update.d.ts +2 -0
  122. package/dist/globals/operations/local/update.d.ts.map +1 -1
  123. package/dist/globals/operations/local/update.js +3 -2
  124. package/dist/translations/ar.json +2 -2
  125. package/dist/translations/az.json +2 -2
  126. package/dist/translations/bg.json +1 -1
  127. package/dist/translations/cs.json +2 -2
  128. package/dist/translations/de.json +1 -1
  129. package/dist/translations/en.json +1 -1
  130. package/dist/translations/es.json +2 -2
  131. package/dist/translations/fa.json +2 -2
  132. package/dist/translations/fr.json +2 -2
  133. package/dist/translations/hr.json +2 -2
  134. package/dist/translations/hu.json +2 -2
  135. package/dist/translations/it.json +2 -2
  136. package/dist/translations/ja.json +2 -2
  137. package/dist/translations/my.json +2 -2
  138. package/dist/translations/nb.json +2 -2
  139. package/dist/translations/nl.json +2 -2
  140. package/dist/translations/pl.json +2 -2
  141. package/dist/translations/pt.json +2 -2
  142. package/dist/translations/ro.json +2 -2
  143. package/dist/translations/ru.json +1 -1
  144. package/dist/translations/sv.json +2 -2
  145. package/dist/translations/th.json +2 -2
  146. package/dist/translations/tr.json +2 -2
  147. package/dist/translations/ua.json +1 -1
  148. package/dist/translations/vi.json +2 -2
  149. package/dist/translations/zh.json +2 -2
  150. package/dist/uploads/imageResizer.js +5 -5
  151. package/package.json +47 -29
@@ -333,7 +333,7 @@
333
333
  "currentDocumentStatus": "Jelenlegi {{docStatus}} dokumentum",
334
334
  "draft": "Piszkozat",
335
335
  "draftSavedSuccessfully": "A piszkozat sikeresen mentve.",
336
- "lastSavedAgo": "Utoljára mentve {{distance, relativetime(minutes)}}",
336
+ "lastSavedAgo": "Utoljára mentve {{distance}} órája",
337
337
  "noFurtherVersionsFound": "További verziók nem találhatók",
338
338
  "noRowsFound": "Nem található {{label}}",
339
339
  "preview": "Előnézet",
@@ -368,4 +368,4 @@
368
368
  "viewingVersions": "A {{entityLabel}} {{documentTitle}} verzióinak megtekintése",
369
369
  "viewingVersionsGlobal": "A globális {{entityLabel}} verzióinak megtekintése"
370
370
  }
371
- }
371
+ }
@@ -334,7 +334,7 @@
334
334
  "currentDocumentStatus": "Documento {{docStatus}} corrente",
335
335
  "draft": "Bozza",
336
336
  "draftSavedSuccessfully": "Bozza salvata con successo.",
337
- "lastSavedAgo": "Ultimo salvataggio {{distance, relativetime(minutes)}}",
337
+ "lastSavedAgo": "Ultimo salvataggio {{distance}} fa",
338
338
  "noFurtherVersionsFound": "Non sono state trovate ulteriori versioni",
339
339
  "noRowsFound": "Nessun {{label}} trovato",
340
340
  "preview": "Anteprima",
@@ -369,4 +369,4 @@
369
369
  "viewingVersions": "Visualizzazione delle versioni per {{entityLabel}} {{documentTitle}}",
370
370
  "viewingVersionsGlobal": "`Visualizzazione delle versioni per {{entityLabel}}"
371
371
  }
372
- }
372
+ }
@@ -333,7 +333,7 @@
333
333
  "currentDocumentStatus": "現在の {{docStatus}} データ",
334
334
  "draft": "ドラフト",
335
335
  "draftSavedSuccessfully": "下書きは正常に保存されました。",
336
- "lastSavedAgo": "最新の保存 {{distance, relativetime(minutes)}}",
336
+ "lastSavedAgo": "{{distance}}前に最後に保存されました",
337
337
  "noFurtherVersionsFound": "その他のバージョンは見つかりませんでした。",
338
338
  "noRowsFound": "{{label}} は未設定です",
339
339
  "preview": "プレビュー",
@@ -368,4 +368,4 @@
368
368
  "viewingVersions": "表示バージョン: {{entityLabel}} {{documentTitle}}",
369
369
  "viewingVersionsGlobal": "表示バージョン: グローバルな {{entityLabel}}"
370
370
  }
371
- }
371
+ }
@@ -333,7 +333,7 @@
333
333
  "currentDocumentStatus": "လက်ရှိ {{docStatus}} ဖိုင်",
334
334
  "draft": "မူကြမ်း",
335
335
  "draftSavedSuccessfully": "မူကြမ်းကို အောင်မြင်စွာ သိမ်းဆည်းပြီးပါပြီ။",
336
- "lastSavedAgo": "နောက်ဆုံး ပြင်ဆင်ခဲ့သည်။ {{distance, relativetime(minutes)}}",
336
+ "lastSavedAgo": "နောက်ဆုံး သိမ်းချက် {{distance}} ကြာပြီး",
337
337
  "noFurtherVersionsFound": "နောက်ထပ်ဗားရှင်းများ မတွေ့ပါ။",
338
338
  "noRowsFound": "{{label}} အားမတွေ့ပါ။",
339
339
  "preview": "နမူနာပြရန်",
@@ -368,4 +368,4 @@
368
368
  "viewingVersions": "{{entityLabel}} {{documentTitle}} အတွက် ဗားရှင်းများကို ကြည့်ရှုခြင်း",
369
369
  "viewingVersionsGlobal": "`ဂလိုဘယ်ဆိုင်ရာ {{entityLabel}} အတွက် ဗားရှင်းများကို ကြည့်ရှုနေသည်"
370
370
  }
371
- }
371
+ }
@@ -333,7 +333,7 @@
333
333
  "currentDocumentStatus": "Nåværende {{docStatus}} dokument",
334
334
  "draft": "Utkast",
335
335
  "draftSavedSuccessfully": "Utkast lagret.",
336
- "lastSavedAgo": "Sist lagret {{distance, relativetime(minutes)}}",
336
+ "lastSavedAgo": "Sist lagret {{distance}} siden",
337
337
  "noFurtherVersionsFound": "Ingen flere versjoner funnet",
338
338
  "noRowsFound": "Ingen {{label}} funnet",
339
339
  "preview": "Forhåndsvisning",
@@ -368,4 +368,4 @@
368
368
  "viewingVersions": "Viser versjoner for {{entityLabel}} {{documentTitle}}",
369
369
  "viewingVersionsGlobal": "Viser versjoner for den globale variabelen {{entityLabel}}"
370
370
  }
371
- }
371
+ }
@@ -333,7 +333,7 @@
333
333
  "currentDocumentStatus": "Huidig {{docStatus}} document",
334
334
  "draft": "Concept",
335
335
  "draftSavedSuccessfully": "Concept succesvol bewaard.",
336
- "lastSavedAgo": "Laatst bewaard {{distance, relativetime(minutes)}}",
336
+ "lastSavedAgo": "Laatst opgeslagen {{distance}} geleden",
337
337
  "noFurtherVersionsFound": "Geen verdere versies gevonden",
338
338
  "noRowsFound": "Geen {{label}} gevonden",
339
339
  "preview": "Voorbeeld",
@@ -368,4 +368,4 @@
368
368
  "viewingVersions": "Bekijk versies voor {{entityLabel}} {{documentTitle}}",
369
369
  "viewingVersionsGlobal": "`Bekijk versies voor global {{entityLabel}}"
370
370
  }
371
- }
371
+ }
@@ -334,7 +334,7 @@
334
334
  "currentDocumentStatus": "Bieżący status {{docStatus}} dokumentu",
335
335
  "draft": "Szkic",
336
336
  "draftSavedSuccessfully": "Wersja robocza została pomyślnie zapisana.",
337
- "lastSavedAgo": "Ostatnio zapisano {{distance, relativetime(minutes)}}",
337
+ "lastSavedAgo": "Ostatnio zapisane {{distance}} temu",
338
338
  "noFurtherVersionsFound": "Nie znaleziono dalszych wersji",
339
339
  "noRowsFound": "Nie znaleziono {{label}}",
340
340
  "preview": "Podgląd",
@@ -369,4 +369,4 @@
369
369
  "viewingVersions": "Przeglądanie wersji {{entityLabel}} {{documentTitle}}",
370
370
  "viewingVersionsGlobal": "Przeglądanie wersji dla globalnej kolekcji {{entityLabel}}"
371
371
  }
372
- }
372
+ }
@@ -333,7 +333,7 @@
333
333
  "currentDocumentStatus": "Documento {{docStatus}} atual",
334
334
  "draft": "Rascunho",
335
335
  "draftSavedSuccessfully": "Rascunho salvo com sucesso.",
336
- "lastSavedAgo": "Salvo pela última vez {{distance, relativetime(minutes)}}",
336
+ "lastSavedAgo": "Última gravação há {{distance}}",
337
337
  "noFurtherVersionsFound": "Nenhuma outra versão encontrada",
338
338
  "noRowsFound": "Nenhum(a) {{label}} encontrado(a)",
339
339
  "preview": "Pré-visualização",
@@ -368,4 +368,4 @@
368
368
  "viewingVersions": "Visualizando versões para o/a {{entityLabel}} {{documentTitle}}",
369
369
  "viewingVersionsGlobal": "`Visualizando versões para o global {{entityLabel}}"
370
370
  }
371
- }
371
+ }
@@ -333,7 +333,7 @@
333
333
  "currentDocumentStatus": "Documentul {{docStatus}} curent",
334
334
  "draft": "Proiect",
335
335
  "draftSavedSuccessfully": "Proiect salvat cu succes.",
336
- "lastSavedAgo": "Ultima salvare {{distance, relativetime(minutes)}}",
336
+ "lastSavedAgo": "Ultima salvare acum {{distance}}",
337
337
  "noFurtherVersionsFound": "Nu s-au găsit alte versiuni",
338
338
  "noRowsFound": "Nu s-a găsit niciun {{label}}",
339
339
  "preview": "Previzualizare",
@@ -368,4 +368,4 @@
368
368
  "viewingVersions": "Vizualizarea versiunilor pentru {{entityLabel}} {{documentTitle}}",
369
369
  "viewingVersionsGlobal": "Vizualizarea versiunilor pentru globala {{entityLabel}}"
370
370
  }
371
- }
371
+ }
@@ -333,7 +333,7 @@
333
333
  "currentDocumentStatus": "Текущий статус {{docStatus}} документа",
334
334
  "draft": "Черновик",
335
335
  "draftSavedSuccessfully": "Черновик успешно сохранен.",
336
- "lastSavedAgo": "Последнее сохранение было {{distance, relativetime(minutes)}}",
336
+ "lastSavedAgo": "Последний раз сохранено {{distance}} назад",
337
337
  "noFurtherVersionsFound": "Другие версии не найдены",
338
338
  "noRowsFound": "Не найдено {{label}}",
339
339
  "preview": "Предпросмотр",
@@ -333,7 +333,7 @@
333
333
  "currentDocumentStatus": "Nuvarande {{docStatus}} dokument",
334
334
  "draft": "Utkast",
335
335
  "draftSavedSuccessfully": "Utkastet sparades framgångsrikt.",
336
- "lastSavedAgo": "Sparades senast {{distance, relativetime(minutes)}}",
336
+ "lastSavedAgo": "Senast sparad för {{distance}} sedan",
337
337
  "noFurtherVersionsFound": "Inga fler versioner hittades",
338
338
  "noRowsFound": "Inga {{label}} hittades",
339
339
  "preview": "Förhandsvisa",
@@ -368,4 +368,4 @@
368
368
  "viewingVersions": "Visar versioner för {{entityLabel}} {{documentTitle}}",
369
369
  "viewingVersionsGlobal": "Visa versioner för den globala {{entityLabel}}"
370
370
  }
371
- }
371
+ }
@@ -333,7 +333,7 @@
333
333
  "currentDocumentStatus": "เอกสารปัจจุบัน",
334
334
  "draft": "ฉบับร่าง",
335
335
  "draftSavedSuccessfully": "บันทึกร่างสำเร็จ",
336
- "lastSavedAgo": "บันทึกล่าสุดเมื่อ {{distance, relativetime(minutes)}}",
336
+ "lastSavedAgo": "บันทึกครั้งล่าสุด {{distance}} ที่ผ่านมา",
337
337
  "noFurtherVersionsFound": "ไม่พบเวอร์ชันอื่น ๆ",
338
338
  "noRowsFound": "ไม่พบ {{label}}",
339
339
  "preview": "ตัวอย่าง",
@@ -368,4 +368,4 @@
368
368
  "viewingVersions": "กำลังดูเวอร์ชันของ {{entityLabel}} {{documentTitle}}",
369
369
  "viewingVersionsGlobal": "กำลังดูเวอร์ชันของ global {{entityLabel}}"
370
370
  }
371
- }
371
+ }
@@ -333,7 +333,7 @@
333
333
  "currentDocumentStatus": "Şu an {{docStatus}} döküman",
334
334
  "draft": "Taslak",
335
335
  "draftSavedSuccessfully": "Taslak başarıyla kaydedildi.",
336
- "lastSavedAgo": "Son kaydedilme: {{distance, relativetime(minutes)}}",
336
+ "lastSavedAgo": "Son kaydedildi {{distance}} önce",
337
337
  "noFurtherVersionsFound": "Başka sürüm bulunamadı.",
338
338
  "noRowsFound": "{{label}} bulunamadı",
339
339
  "preview": "Önizleme",
@@ -368,4 +368,4 @@
368
368
  "viewingVersions": "{{entityLabel}} {{documentTitle}} için sürümler gösteriliyor",
369
369
  "viewingVersionsGlobal": "`Global {{entityLabel}} için sürümler gösteriliyor"
370
370
  }
371
- }
371
+ }
@@ -333,7 +333,7 @@
333
333
  "currentDocumentStatus": "Поточний статус {{docStatus}} документа",
334
334
  "draft": "Чернетка",
335
335
  "draftSavedSuccessfully": "Чернетка успішно збережена.",
336
- "lastSavedAgo": "Останній запис {{distance, relativetime(minutes)}}",
336
+ "lastSavedAgo": "Останній раз збережено {{distance}} тому",
337
337
  "noFurtherVersionsFound": "Інших версій не знайдено",
338
338
  "noRowsFound": "Не знайдено {{label}}",
339
339
  "preview": "Попередній перегляд",
@@ -333,7 +333,7 @@
333
333
  "currentDocumentStatus": "Trạng thái tài liệu hiện tại: {{docStatus}}",
334
334
  "draft": "Bản nháp",
335
335
  "draftSavedSuccessfully": "Bản nháp đã được lưu thành công.",
336
- "lastSavedAgo": "Bản lưu mới nhất: {{distance, relativetime(minutes)}} trước",
336
+ "lastSavedAgo": "Lần lưu cuối cùng {{distance}} trước đây",
337
337
  "noFurtherVersionsFound": "Không tìm thấy phiên bản cũ hơn",
338
338
  "noRowsFound": "Không tìm thấy: {{label}}",
339
339
  "preview": "Bản xem trước",
@@ -368,4 +368,4 @@
368
368
  "viewingVersions": "Xem những phiên bản của {{entityLabel}} {{documentTitle}}",
369
369
  "viewingVersionsGlobal": "`Xem những phiên bản toàn thể (global) của {{entityLabel}}"
370
370
  }
371
- }
371
+ }
@@ -333,7 +333,7 @@
333
333
  "currentDocumentStatus": "当前{{docStatus}}文件",
334
334
  "draft": "草稿",
335
335
  "draftSavedSuccessfully": "草稿成功保存。",
336
- "lastSavedAgo": "最后一次保存{{distance, relativetime(minutes)}}",
336
+ "lastSavedAgo": "上次保存{{distance}}之前",
337
337
  "noFurtherVersionsFound": "没有发现其他版本",
338
338
  "noRowsFound": "没有发现{{label}}",
339
339
  "preview": "预览",
@@ -368,4 +368,4 @@
368
368
  "viewingVersions": "正在查看{{entityLabel}} {{documentTitle}}的版本",
369
369
  "viewingVersionsGlobal": "正在查看全局{{entityLabel}}的版本"
370
370
  }
371
- }
371
+ }
@@ -160,10 +160,10 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
160
160
  });
161
161
  const maxOffsetX = Math.max(info.width - width, 0);
162
162
  const maxOffsetY = Math.max(info.height - height, 0);
163
- const focalPointX = Math.floor(info.width * focalPoint.x - width / 2);
164
- const focalPointY = Math.floor(info.height * focalPoint.y - height / 2);
165
- const offsetX = Math.min(Math.max(focalPointX, 0), maxOffsetX);
166
- const offsetY = Math.min(Math.max(focalPointY, 0), maxOffsetY);
163
+ const focalPointX = Math.floor(info.width / 100 * focalPoint.x);
164
+ const focalPointY = Math.floor(info.height / 100 * focalPoint.y);
165
+ const offsetX = Math.min(Math.max(focalPointX - width / 2, 0), maxOffsetX);
166
+ const offsetY = Math.min(Math.max(focalPointY - height / 2, 0), maxOffsetY);
167
167
  resized = resized.extract({
168
168
  height,
169
169
  left: offsetX,
@@ -215,4 +215,4 @@ async function resizeAndTransformImageSizes({ config, dimensions, file, mimeType
215
215
  });
216
216
  }
217
217
 
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFVwbG9hZGVkRmlsZSB9IGZyb20gJ2V4cHJlc3MtZmlsZXVwbG9hZCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBVcGxvYWRFZGl0cyB9IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvdmlld3MvY29sbGVjdGlvbnMvRWRpdC90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWxlU2l6ZSwgRmlsZVNpemVzLCBGaWxlVG9TYXZlLCBJbWFnZVNpemUsIFByb2JlZEltYWdlU2l6ZSB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGlzTnVtYmVyIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2lzTnVtYmVyJ1xuaW1wb3J0IGZpbGVFeGlzdHMgZnJvbSAnLi9maWxlRXhpc3RzJ1xuXG50eXBlIFJlc2l6ZUFyZ3MgPSB7XG4gIGNvbmZpZzogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1xuICBkaW1lbnNpb25zOiBQcm9iZWRJbWFnZVNpemVcbiAgZmlsZTogVXBsb2FkZWRGaWxlXG4gIG1pbWVUeXBlOiBzdHJpbmdcbiAgcmVxOiBQYXlsb2FkUmVxdWVzdCAmIHtcbiAgICBxdWVyeT86IHtcbiAgICAgIHVwbG9hZEVkaXRzPzogVXBsb2FkRWRpdHNcbiAgICB9XG4gIH1cbiAgc2F2ZWRGaWxlbmFtZTogc3RyaW5nXG4gIHN0YXRpY1BhdGg6IHN0cmluZ1xufVxuXG4vKiogUmVzdWx0IGZyb20gcmVzaXppbmcgYW5kIHRyYW5zZm9ybWluZyB0aGUgcmVxdWVzdGVkIGltYWdlIHNpemVzICovXG50eXBlIEltYWdlU2l6ZXNSZXN1bHQgPSB7XG4gIHNpemVEYXRhOiBGaWxlU2l6ZXNcbiAgc2l6ZXNUb1NhdmU6IEZpbGVUb1NhdmVbXVxufVxuXG50eXBlIFNhbml0aXplZEltYWdlRGF0YSA9IHtcbiAgZXh0OiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG59XG5cbi8qKlxuICogU2FuaXRpemUgdGhlIGltYWdlIG5hbWUgYW5kIGV4dHJhY3QgdGhlIGV4dGVuc2lvbiBmcm9tIHRoZSBzb3VyY2UgaW1hZ2VcbiAqXG4gKiBAcGFyYW0gc291cmNlSW1hZ2UgLSB0aGUgc291cmNlIGltYWdlXG4gKiBAcmV0dXJucyB0aGUgc2FuaXRpemVkIG5hbWUgYW5kIGV4dGVuc2lvblxuICovXG5jb25zdCBnZXRTYW5pdGl6ZWRJbWFnZURhdGEgPSAoc291cmNlSW1hZ2U6IHN0cmluZyk6IFNhbml0aXplZEltYWdlRGF0YSA9PiB7XG4gIGNvbnN0IGV4dGVuc2lvbiA9IHNvdXJjZUltYWdlLnNwbGl0KCcuJykucG9wKClcbiAgY29uc3QgbmFtZSA9IHNhbml0aXplKHNvdXJjZUltYWdlLnN1YnN0cmluZygwLCBzb3VyY2VJbWFnZS5sYXN0SW5kZXhPZignLicpKSB8fCBzb3VyY2VJbWFnZSlcbiAgcmV0dXJuIHsgbmFtZSwgZXh0OiBleHRlbnNpb24gfVxufVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBpbWFnZSBuYW1lIGJhc2VkIG9uIHRoZSBvdXRwdXQgaW1hZ2UgbmFtZSwgdGhlIGRpbWVuc2lvbnMgYW5kXG4gKiB0aGUgZXh0ZW5zaW9uLlxuICpcbiAqIElnbm9yZSB0aGUgZmFjdCB0aGF0IGR1cGxpY2F0ZSBuYW1lcyBjb3VsZCBoYXBwZW4gaWYgdGhlIHRoZXJlIGlzIG9uZVxuICogc2l6ZSB3aXRoIGB3aWR0aCBBTkQgaGVpZ2h0YCBhbmQgb25lIHdpdGggb25seSBgaGVpZ2h0IE9SIHdpZHRoYC4gQmVjYXVzZVxuICogc3BhY2UgaXMgZXhwZW5zaXZlLCB3ZSB3aWxsIHJldXNlIHRoZSBzYW1lIGltYWdlIGZvciBib3RoIHNpemVzLlxuICpcbiAqIEBwYXJhbSBvdXRwdXRJbWFnZU5hbWUgLSB0aGUgc2FuaXRpemVkIGltYWdlIG5hbWVcbiAqIEBwYXJhbSBidWZmZXJJbmZvIC0gdGhlIGJ1ZmZlciBpbmZvXG4gKiBAcGFyYW0gZXh0ZW5zaW9uIC0gdGhlIGV4dGVuc2lvbiB0byB1c2VcbiAqIEByZXR1cm5zIHRoZSBuZXcgaW1hZ2UgbmFtZSB0aGF0IGlzIG5vdCB0YWtlblxuICovXG5jb25zdCBjcmVhdGVJbWFnZU5hbWUgPSAoXG4gIG91dHB1dEltYWdlTmFtZTogc3RyaW5nLFxuICB7IGhlaWdodCwgd2lkdGggfTogc2hhcnAuT3V0cHV0SW5mbyxcbiAgZXh0ZW5zaW9uOiBzdHJpbmcsXG4pID0+IGAke291dHB1dEltYWdlTmFtZX0tJHt3aWR0aH14JHtoZWlnaHR9LiR7ZXh0ZW5zaW9ufWBcblxuLyoqXG4gKiBDcmVhdGUgdGhlIHJlc3VsdCBvYmplY3QgZm9yIHRoZSBpbWFnZSByZXNpemUgb3BlcmF0aW9uIGJhc2VkIG9uIHRoZVxuICogcHJvdmlkZWQgcGFyYW1ldGVycy4gSWYgdGhlIG5hbWUgaXMgbm90IHByb3ZpZGVkLCBhbiBlbXB0eSByZXN1bHQgb2JqZWN0XG4gKiBpcyByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIGZpbGVuYW1lIC0gdGhlIGZpbGVuYW1lIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIHdpZHRoIC0gdGhlIHdpZHRoIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIGhlaWdodCAtIHRoZSBoZWlnaHQgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gZmlsZXNpemUgLSB0aGUgZmlsZXNpemUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gbWltZVR5cGUgLSB0aGUgbWltZSB0eXBlIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIHNpemVzVG9TYXZlIC0gdGhlIHNpemVzIHRvIHNhdmVcbiAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0XG4gKi9cbmNvbnN0IGNyZWF0ZVJlc3VsdCA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBmaWxlbmFtZTogRmlsZVNpemVbJ2ZpbGVuYW1lJ10gPSBudWxsLFxuICB3aWR0aDogRmlsZVNpemVbJ3dpZHRoJ10gPSBudWxsLFxuICBoZWlnaHQ6IEZpbGVTaXplWydoZWlnaHQnXSA9IG51bGwsXG4gIGZpbGVzaXplOiBGaWxlU2l6ZVsnZmlsZXNpemUnXSA9IG51bGwsXG4gIG1pbWVUeXBlOiBGaWxlU2l6ZVsnbWltZVR5cGUnXSA9IG51bGwsXG4gIHNpemVzVG9TYXZlOiBGaWxlVG9TYXZlW10gPSBbXSxcbik6IEltYWdlU2l6ZXNSZXN1bHQgPT4gKHtcbiAgc2l6ZURhdGE6IHtcbiAgICBbbmFtZV06IHtcbiAgICAgIGZpbGVuYW1lLFxuICAgICAgZmlsZXNpemUsXG4gICAgICBoZWlnaHQsXG4gICAgICBtaW1lVHlwZSxcbiAgICAgIHdpZHRoLFxuICAgIH0sXG4gIH0sXG4gIHNpemVzVG9TYXZlLFxufSlcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgaW1hZ2UgbmVlZHMgdG8gYmUgcmVzaXplZCBhY2NvcmRpbmcgdG8gdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zXG4gKiBhbmQgdGhlIG9yaWdpbmFsIGltYWdlIHNpemUuIElmIHRoZSByZXNpemUgb3B0aW9ucyB3aXRob3V0RW5sYXJnZW1lbnQgb3Igd2l0aG91dFJlZHVjdGlvbiBhcmUgcHJvdmlkZWQsXG4gKiB0aGUgaW1hZ2Ugd2lsbCBiZSByZXNpemVkIHJlZ2FyZGxlc3Mgb2YgdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zLCBnaXZlbiB0aGF0IHRoZVxuICogd2lkdGggb3IgaGVpZ2h0IHRvIGJlIHJlc2l6ZWQgaXMgcHJvdmlkZWQuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1ZXN0ZWQgZGltZW5zaW9ucyBhbmQgcmVzaXplIG9wdGlvbnNcbiAqIEBwYXJhbSBvcmlnaW5hbCAtIHRoZSBvcmlnaW5hbCBpbWFnZSBzaXplXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBpbWFnZSBuZWVkcyB0byBiZSByZXNpemVkLCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuY29uc3QgbmVlZHNSZXNpemUgPSAoXG4gIHsgaGVpZ2h0OiBkZXNpcmVkSGVpZ2h0LCB3aWR0aDogZGVzaXJlZFdpZHRoLCB3aXRob3V0RW5sYXJnZW1lbnQsIHdpdGhvdXRSZWR1Y3Rpb24gfTogSW1hZ2VTaXplLFxuICBvcmlnaW5hbDogUHJvYmVkSW1hZ2VTaXplLFxuKTogYm9vbGVhbiA9PiB7XG4gIC8vIGFsbG93IGVubGFyZ2VtZW50IG9yIHByZXZlbnQgcmVkdWN0aW9uIChvdXIgZGVmYXVsdCBpcyB0byBwcmV2ZW50XG4gIC8vIGVubGFyZ2VtZW50IGFuZCBhbGxvdyByZWR1Y3Rpb24pXG4gIGlmICh3aXRob3V0RW5sYXJnZW1lbnQgIT09IHVuZGVmaW5lZCB8fCB3aXRob3V0UmVkdWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdHJ1ZSAvLyBuZWVkcyByZXNpemVcbiAgfVxuXG4gIGNvbnN0IGlzV2lkdGhPckhlaWdodE5vdERlZmluZWQgPSAhZGVzaXJlZEhlaWdodCB8fCAhZGVzaXJlZFdpZHRoXG5cbiAgaWYgKGlzV2lkdGhPckhlaWdodE5vdERlZmluZWQpIHtcbiAgICAvLyBJZiB3aXRoIGFuZCBoZWlnaHQgYXJlIG5vdCBkZWZpbmVkLCBpdCBtZWFucyB0aGVyZSBpcyBhIGZvcm1hdCBjb252ZXJzaW9uXG4gICAgLy8gYW5kIHRoZSBpbWFnZSBuZWVkcyB0byBiZSBcInJlc2l6ZWRcIiAodHJhbnNmb3JtZWQpLlxuICAgIHJldHVybiB0cnVlIC8vIG5lZWRzIHJlc2l6ZVxuICB9XG5cbiAgY29uc3QgaGFzSW5zdWZmaWNpZW50V2lkdGggPSBvcmlnaW5hbC53aWR0aCA8IGRlc2lyZWRXaWR0aFxuICBjb25zdCBoYXNJbnN1ZmZpY2llbnRIZWlnaHQgPSBvcmlnaW5hbC5oZWlnaHQgPCBkZXNpcmVkSGVpZ2h0XG4gIGlmIChoYXNJbnN1ZmZpY2llbnRXaWR0aCAmJiBoYXNJbnN1ZmZpY2llbnRIZWlnaHQpIHtcbiAgICAvLyBkb2Vzbid0IG5lZWQgcmVzaXplIC0gcHJldmVudCBlbmxhcmdlbWVudC4gVGhpcyBzaG91bGQgb25seSBoYXBwZW4gaWYgYm90aCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBpbnN1ZmZpY2llbnQuXG4gICAgLy8gaWYgb25seSBvbmUgZGltZW5zaW9uIGlzIGluc3VmZmljaWVudCBhbmQgdGhlIG90aGVyIGlzIHN1ZmZpY2llbnQsIHJlc2l6aW5nIG5lZWRzIHRvIGhhcHBlbiwgYXMgdGhlIGltYWdlXG4gICAgLy8gc2hvdWxkIGJlIHJlc2l6ZWQgdG8gdGhlIHN1ZmZpY2llbnQgZGltZW5zaW9uLlxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHRydWUgLy8gbmVlZHMgcmVzaXplXG59XG5cbi8qKlxuICogRm9yIHRoZSBwcm92aWRlZCBpbWFnZSBzaXplcywgaGFuZGxlIHRoZSByZXNpemluZyBhbmQgdGhlIHRyYW5zZm9ybXNcbiAqIChmb3JtYXQsIHRyaW0sIGV0Yy4pIG9mIGVhY2ggcmVxdWVzdGVkIGltYWdlIHNpemUgYW5kIHJldHVybiB0aGUgcmVzdWx0IG9iamVjdC5cbiAqIFRoaXMgb25seSBoYW5kbGVzIHRoZSBpbWFnZSBzaXplcy4gVGhlIHRyYW5zZm9ybXMgb2YgdGhlIG9yaWdpbmFsIGltYWdlXG4gKiBhcmUgaGFuZGxlZCBpbiB7QGxpbmsgLi9nZW5lcmF0ZUZpbGVEYXRhLnRzfS5cbiAqXG4gKiBUaGUgaW1hZ2Ugd2lsbCBiZSByZXNpemVkIGFjY29yZGluZyB0byB0aGUgcHJvdmlkZWRcbiAqIHJlc2l6ZSBjb25maWcuIElmIG5vIGltYWdlIHNpemVzIGFyZSByZXF1ZXN0ZWQsIHRoZSByZXNvbHZlZCBkYXRhIHdpbGwgYmUgZW1wdHkuXG4gKiBGb3IgZXZlcnkgaW1hZ2UgdGhhdCBkb3Mgbm90IG5lZWQgdG8gYmUgcmVzaXplZCwgYW4gcmVzdWx0IG9iamVjdCB3aXRoIGBudWxsYFxuICogcGFyYW1ldGVycyB3aWxsIGJlIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSByZXNpemVDb25maWcgLSB0aGUgcmVzaXplIGNvbmZpZ1xuICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgcmVzaXplIG9wZXJhdGlvbihzKVxuICovXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzKHtcbiAgY29uZmlnLFxuICBkaW1lbnNpb25zLFxuICBmaWxlLFxuICBtaW1lVHlwZSxcbiAgcmVxLFxuICBzYXZlZEZpbGVuYW1lLFxuICBzdGF0aWNQYXRoLFxufTogUmVzaXplQXJncyk6IFByb21pc2U8SW1hZ2VTaXplc1Jlc3VsdD4ge1xuICBjb25zdCB7IGltYWdlU2l6ZXMgfSA9IGNvbmZpZy51cGxvYWRcbiAgLy8gTm90aW5nIHRvIHJlc2l6ZSBoZXJlIHNvIHJldHVybiBhcyBlYXJseSBhcyBwb3NzaWJsZVxuICBpZiAoIWltYWdlU2l6ZXMpIHJldHVybiB7IHNpemVEYXRhOiB7fSwgc2l6ZXNUb1NhdmU6IFtdIH1cblxuICBjb25zdCBzaGFycEJhc2UgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCB8fCBmaWxlLmRhdGEpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuXG4gIGNvbnN0IHJlc3VsdHM6IEltYWdlU2l6ZXNSZXN1bHRbXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGltYWdlU2l6ZXMubWFwKGFzeW5jIChpbWFnZVJlc2l6ZUNvbmZpZyk6IFByb21pc2U8SW1hZ2VTaXplc1Jlc3VsdD4gPT4ge1xuICAgICAgLy8gVGhpcyBjaGVja3MgaWYgYSByZXNpemUgc2hvdWxkIGhhcHBlbi4gSWYgbm90LCB0aGUgcmVzaXplZCBpbWFnZSB3aWxsIGJlXG4gICAgICAvLyBza2lwcGVkIENPTVBMRVRFTFkgYW5kIHRodXMgd2lsbCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdGluZyBpbWFnZXMuXG4gICAgICAvLyBBbGwgZnVydGhlciBmb3JtYXQvdHJpbSBvcHRpb25zIHdpbGwgdGh1cyBiZSBza2lwcGVkIGFzIHdlbGwuXG4gICAgICBpZiAoIW5lZWRzUmVzaXplKGltYWdlUmVzaXplQ29uZmlnLCBkaW1lbnNpb25zKSkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUmVzdWx0KGltYWdlUmVzaXplQ29uZmlnLm5hbWUpXG4gICAgICB9XG5cbiAgICAgIGxldCByZXNpemVkID0gc2hhcnBCYXNlLmNsb25lKClcblxuICAgICAgaWYgKHJlcS5xdWVyeSAmJiBpbWFnZVJlc2l6ZUNvbmZpZy53aWR0aCAmJiBpbWFnZVJlc2l6ZUNvbmZpZy5oZWlnaHQpIHtcbiAgICAgICAgY29uc3QgeyBoZWlnaHQsIHdpZHRoIH0gPSBpbWFnZVJlc2l6ZUNvbmZpZ1xuXG4gICAgICAgIGNvbnN0IGZvY2FsUG9pbnQgPSB7XG4gICAgICAgICAgeDogMC41LFxuICAgICAgICAgIHk6IDAuNSxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXEucXVlcnk/LnVwbG9hZEVkaXRzPy5mb2NhbFBvaW50KSB7XG4gICAgICAgICAgaWYgKGlzTnVtYmVyKHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50Py54KSkge1xuICAgICAgICAgICAgZm9jYWxQb2ludC54ID0gcmVxLnF1ZXJ5LnVwbG9hZEVkaXRzLmZvY2FsUG9pbnQueFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNOdW1iZXIocmVxLnF1ZXJ5LnVwbG9hZEVkaXRzLmZvY2FsUG9pbnQ/LnkpKSB7XG4gICAgICAgICAgICBmb2NhbFBvaW50LnkgPSByZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludC55XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luYWxBc3BlY3RSYXRpbyA9IGRpbWVuc2lvbnMud2lkdGggLyBkaW1lbnNpb25zLmhlaWdodFxuICAgICAgICBjb25zdCB0YXJnZXRBc3BlY3RSYXRpbyA9IGltYWdlUmVzaXplQ29uZmlnLndpZHRoIC8gaW1hZ2VSZXNpemVDb25maWcuaGVpZ2h0XG5cbiAgICAgICAgaWYgKG9yaWdpbmFsQXNwZWN0UmF0aW8gIT09IHRhcmdldEFzcGVjdFJhdGlvKSB7XG4gICAgICAgICAgY29uc3QgcHJpb3JpdGl6ZUhlaWdodCA9IG9yaWdpbmFsQXNwZWN0UmF0aW8gPiB0YXJnZXRBc3BlY3RSYXRpb1xuXG4gICAgICAgICAgY29uc3QgeyBpbmZvIH0gPSBhd2FpdCByZXNpemVkXG4gICAgICAgICAgICAucmVzaXplKHtcbiAgICAgICAgICAgICAgaGVpZ2h0OiBwcmlvcml0aXplSGVpZ2h0ID8gaGVpZ2h0IDogbnVsbCxcbiAgICAgICAgICAgICAgd2lkdGg6IHByaW9yaXRpemVIZWlnaHQgPyBudWxsIDogd2lkdGgsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcblxuICAgICAgICAgIGNvbnN0IG1heE9mZnNldFggPSBNYXRoLm1heChpbmZvLndpZHRoIC0gd2lkdGgsIDApXG4gICAgICAgICAgY29uc3QgbWF4T2Zmc2V0WSA9IE1hdGgubWF4KGluZm8uaGVpZ2h0IC0gaGVpZ2h0LCAwKVxuXG4gICAgICAgICAgY29uc3QgZm9jYWxQb2ludFggPSBNYXRoLmZsb29yKGluZm8ud2lkdGggKiBmb2NhbFBvaW50LnggLSB3aWR0aCAvIDIpXG4gICAgICAgICAgY29uc3QgZm9jYWxQb2ludFkgPSBNYXRoLmZsb29yKGluZm8uaGVpZ2h0ICogZm9jYWxQb2ludC55IC0gaGVpZ2h0IC8gMilcblxuICAgICAgICAgIGNvbnN0IG9mZnNldFggPSBNYXRoLm1pbihNYXRoLm1heChmb2NhbFBvaW50WCwgMCksIG1heE9mZnNldFgpXG4gICAgICAgICAgY29uc3Qgb2Zmc2V0WSA9IE1hdGgubWluKE1hdGgubWF4KGZvY2FsUG9pbnRZLCAwKSwgbWF4T2Zmc2V0WSlcblxuICAgICAgICAgIHJlc2l6ZWQgPSByZXNpemVkLmV4dHJhY3Qoe1xuICAgICAgICAgICAgaGVpZ2h0LFxuICAgICAgICAgICAgbGVmdDogb2Zmc2V0WCxcbiAgICAgICAgICAgIHRvcDogb2Zmc2V0WSxcbiAgICAgICAgICAgIHdpZHRoLFxuICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc2l6ZWQgPSByZXNpemVkLnJlc2l6ZShpbWFnZVJlc2l6ZUNvbmZpZylcbiAgICAgIH1cblxuICAgICAgaWYgKGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMpIHtcbiAgICAgICAgcmVzaXplZCA9IHJlc2l6ZWQudG9Gb3JtYXQoXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5mb3JtYXQsXG4gICAgICAgICAgaW1hZ2VSZXNpemVDb25maWcuZm9ybWF0T3B0aW9ucy5vcHRpb25zLFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIGlmIChpbWFnZVJlc2l6ZUNvbmZpZy50cmltT3B0aW9ucykge1xuICAgICAgICByZXNpemVkID0gcmVzaXplZC50cmltKGltYWdlUmVzaXplQ29uZmlnLnRyaW1PcHRpb25zKVxuICAgICAgfVxuXG4gICAgICBjb25zdCB7IGRhdGE6IGJ1ZmZlckRhdGEsIGluZm86IGJ1ZmZlckluZm8gfSA9IGF3YWl0IHJlc2l6ZWQudG9CdWZmZXIoe1xuICAgICAgICByZXNvbHZlV2l0aE9iamVjdDogdHJ1ZSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHNhbml0aXplZEltYWdlID0gZ2V0U2FuaXRpemVkSW1hZ2VEYXRhKHNhdmVkRmlsZW5hbWUpXG5cbiAgICAgIGlmIChyZXEucGF5bG9hZFVwbG9hZFNpemVzKSB7XG4gICAgICAgIHJlcS5wYXlsb2FkVXBsb2FkU2l6ZXNbaW1hZ2VSZXNpemVDb25maWcubmFtZV0gPSBidWZmZXJEYXRhXG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG1pbWVJbmZvID0gYXdhaXQgZnJvbUJ1ZmZlcihidWZmZXJEYXRhKVxuXG4gICAgICBjb25zdCBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyA9IGNyZWF0ZUltYWdlTmFtZShcbiAgICAgICAgc2FuaXRpemVkSW1hZ2UubmFtZSxcbiAgICAgICAgYnVmZmVySW5mbyxcbiAgICAgICAgbWltZUluZm8/LmV4dCB8fCBzYW5pdGl6ZWRJbWFnZS5leHQsXG4gICAgICApXG5cbiAgICAgIGNvbnN0IGltYWdlUGF0aCA9IGAke3N0YXRpY1BhdGh9LyR7aW1hZ2VOYW1lV2l0aERpbWVuc2lvbnN9YFxuXG4gICAgICBpZiAoYXdhaXQgZmlsZUV4aXN0cyhpbWFnZVBhdGgpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgZnMudW5saW5rU3luYyhpbWFnZVBhdGgpXG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElnbm9yZSB1bmxpbmsgZXJyb3JzXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBoZWlnaHQsIHNpemUsIHdpZHRoIH0gPSBidWZmZXJJbmZvXG4gICAgICByZXR1cm4gY3JlYXRlUmVzdWx0KFxuICAgICAgICBpbWFnZVJlc2l6ZUNvbmZpZy5uYW1lLFxuICAgICAgICBpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgbWltZUluZm8/Lm1pbWUgfHwgbWltZVR5cGUsXG4gICAgICAgIFt7IGJ1ZmZlcjogYnVmZmVyRGF0YSwgcGF0aDogaW1hZ2VQYXRoIH1dLFxuICAgICAgKVxuICAgIH0pLFxuICApXG5cbiAgcmV0dXJuIHJlc3VsdHMucmVkdWNlKFxuICAgIChhY2MsIHJlc3VsdCkgPT4ge1xuICAgICAgT2JqZWN0LmFzc2lnbihhY2Muc2l6ZURhdGEsIHJlc3VsdC5zaXplRGF0YSlcbiAgICAgIGFjYy5zaXplc1RvU2F2ZS5wdXNoKC4uLnJlc3VsdC5zaXplc1RvU2F2ZSlcbiAgICAgIHJldHVybiBhY2NcbiAgICB9LFxuICAgIHsgc2l6ZURhdGE6IHt9LCBzaXplc1RvU2F2ZTogW10gfSxcbiAgKVxufVxuIl0sIm5hbWVzIjpbInJlc2l6ZUFuZFRyYW5zZm9ybUltYWdlU2l6ZXMiLCJnZXRTYW5pdGl6ZWRJbWFnZURhdGEiLCJzb3VyY2VJbWFnZSIsImV4dGVuc2lvbiIsInNwbGl0IiwicG9wIiwibmFtZSIsInNhbml0aXplIiwic3Vic3RyaW5nIiwibGFzdEluZGV4T2YiLCJleHQiLCJjcmVhdGVJbWFnZU5hbWUiLCJvdXRwdXRJbWFnZU5hbWUiLCJoZWlnaHQiLCJ3aWR0aCIsImNyZWF0ZVJlc3VsdCIsImZpbGVuYW1lIiwiZmlsZXNpemUiLCJtaW1lVHlwZSIsInNpemVzVG9TYXZlIiwic2l6ZURhdGEiLCJuZWVkc1Jlc2l6ZSIsImRlc2lyZWRIZWlnaHQiLCJkZXNpcmVkV2lkdGgiLCJ3aXRob3V0RW5sYXJnZW1lbnQiLCJ3aXRob3V0UmVkdWN0aW9uIiwib3JpZ2luYWwiLCJ1bmRlZmluZWQiLCJpc1dpZHRoT3JIZWlnaHROb3REZWZpbmVkIiwiaGFzSW5zdWZmaWNpZW50V2lkdGgiLCJoYXNJbnN1ZmZpY2llbnRIZWlnaHQiLCJjb25maWciLCJkaW1lbnNpb25zIiwiZmlsZSIsInJlcSIsInNhdmVkRmlsZW5hbWUiLCJzdGF0aWNQYXRoIiwiaW1hZ2VTaXplcyIsInVwbG9hZCIsInNoYXJwQmFzZSIsInNoYXJwIiwidGVtcEZpbGVQYXRoIiwiZGF0YSIsInJvdGF0ZSIsInJlc3VsdHMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiaW1hZ2VSZXNpemVDb25maWciLCJyZXNpemVkIiwiY2xvbmUiLCJxdWVyeSIsImZvY2FsUG9pbnQiLCJ4IiwieSIsInVwbG9hZEVkaXRzIiwiaXNOdW1iZXIiLCJvcmlnaW5hbEFzcGVjdFJhdGlvIiwidGFyZ2V0QXNwZWN0UmF0aW8iLCJwcmlvcml0aXplSGVpZ2h0IiwiaW5mbyIsInJlc2l6ZSIsInRvQnVmZmVyIiwicmVzb2x2ZVdpdGhPYmplY3QiLCJtYXhPZmZzZXRYIiwiTWF0aCIsIm1heCIsIm1heE9mZnNldFkiLCJmb2NhbFBvaW50WCIsImZsb29yIiwiZm9jYWxQb2ludFkiLCJvZmZzZXRYIiwibWluIiwib2Zmc2V0WSIsImV4dHJhY3QiLCJsZWZ0IiwidG9wIiwiZm9ybWF0T3B0aW9ucyIsInRvRm9ybWF0IiwiZm9ybWF0Iiwib3B0aW9ucyIsInRyaW1PcHRpb25zIiwidHJpbSIsImJ1ZmZlckRhdGEiLCJidWZmZXJJbmZvIiwic2FuaXRpemVkSW1hZ2UiLCJwYXlsb2FkVXBsb2FkU2l6ZXMiLCJtaW1lSW5mbyIsImZyb21CdWZmZXIiLCJpbWFnZU5hbWVXaXRoRGltZW5zaW9ucyIsImltYWdlUGF0aCIsImZpbGVFeGlzdHMiLCJmcyIsInVubGlua1N5bmMiLCJzaXplIiwibWltZSIsImJ1ZmZlciIsInBhdGgiLCJyZWR1Y2UiLCJhY2MiLCJyZXN1bHQiLCJPYmplY3QiLCJhc3NpZ24iLCJwdXNoIl0sIm1hcHBpbmdzIjoiOzs7OytCQWtKQTs7Ozs7Ozs7Ozs7OztDQWFDLEdBQ0Q7OztlQUE4QkE7OzswQkE5Skg7MkRBQ1o7eUVBQ007OERBQ0g7MEJBT087bUVBQ0Y7Ozs7OztBQTJCdkI7Ozs7O0NBS0MsR0FDRCxNQUFNQyx3QkFBd0IsQ0FBQ0M7SUFDN0IsTUFBTUMsWUFBWUQsWUFBWUUsS0FBSyxDQUFDLEtBQUtDLEdBQUc7SUFDNUMsTUFBTUMsT0FBT0MsSUFBQUEseUJBQVEsRUFBQ0wsWUFBWU0sU0FBUyxDQUFDLEdBQUdOLFlBQVlPLFdBQVcsQ0FBQyxTQUFT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
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91cGxvYWRzL2ltYWdlUmVzaXplci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFVwbG9hZGVkRmlsZSB9IGZyb20gJ2V4cHJlc3MtZmlsZXVwbG9hZCdcblxuaW1wb3J0IHsgZnJvbUJ1ZmZlciB9IGZyb20gJ2ZpbGUtdHlwZSdcbmltcG9ydCBmcyBmcm9tICdmcydcbmltcG9ydCBzYW5pdGl6ZSBmcm9tICdzYW5pdGl6ZS1maWxlbmFtZSdcbmltcG9ydCBzaGFycCBmcm9tICdzaGFycCdcblxuaW1wb3J0IHR5cGUgeyBVcGxvYWRFZGl0cyB9IGZyb20gJy4uL2FkbWluL2NvbXBvbmVudHMvdmlld3MvY29sbGVjdGlvbnMvRWRpdC90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi9leHByZXNzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWxlU2l6ZSwgRmlsZVNpemVzLCBGaWxlVG9TYXZlLCBJbWFnZVNpemUsIFByb2JlZEltYWdlU2l6ZSB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGlzTnVtYmVyIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2lzTnVtYmVyJ1xuaW1wb3J0IGZpbGVFeGlzdHMgZnJvbSAnLi9maWxlRXhpc3RzJ1xuXG50eXBlIFJlc2l6ZUFyZ3MgPSB7XG4gIGNvbmZpZzogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1xuICBkaW1lbnNpb25zOiBQcm9iZWRJbWFnZVNpemVcbiAgZmlsZTogVXBsb2FkZWRGaWxlXG4gIG1pbWVUeXBlOiBzdHJpbmdcbiAgcmVxOiBQYXlsb2FkUmVxdWVzdCAmIHtcbiAgICBxdWVyeT86IHtcbiAgICAgIHVwbG9hZEVkaXRzPzogVXBsb2FkRWRpdHNcbiAgICB9XG4gIH1cbiAgc2F2ZWRGaWxlbmFtZTogc3RyaW5nXG4gIHN0YXRpY1BhdGg6IHN0cmluZ1xufVxuXG4vKiogUmVzdWx0IGZyb20gcmVzaXppbmcgYW5kIHRyYW5zZm9ybWluZyB0aGUgcmVxdWVzdGVkIGltYWdlIHNpemVzICovXG50eXBlIEltYWdlU2l6ZXNSZXN1bHQgPSB7XG4gIHNpemVEYXRhOiBGaWxlU2l6ZXNcbiAgc2l6ZXNUb1NhdmU6IEZpbGVUb1NhdmVbXVxufVxuXG50eXBlIFNhbml0aXplZEltYWdlRGF0YSA9IHtcbiAgZXh0OiBzdHJpbmdcbiAgbmFtZTogc3RyaW5nXG59XG5cbi8qKlxuICogU2FuaXRpemUgdGhlIGltYWdlIG5hbWUgYW5kIGV4dHJhY3QgdGhlIGV4dGVuc2lvbiBmcm9tIHRoZSBzb3VyY2UgaW1hZ2VcbiAqXG4gKiBAcGFyYW0gc291cmNlSW1hZ2UgLSB0aGUgc291cmNlIGltYWdlXG4gKiBAcmV0dXJucyB0aGUgc2FuaXRpemVkIG5hbWUgYW5kIGV4dGVuc2lvblxuICovXG5jb25zdCBnZXRTYW5pdGl6ZWRJbWFnZURhdGEgPSAoc291cmNlSW1hZ2U6IHN0cmluZyk6IFNhbml0aXplZEltYWdlRGF0YSA9PiB7XG4gIGNvbnN0IGV4dGVuc2lvbiA9IHNvdXJjZUltYWdlLnNwbGl0KCcuJykucG9wKClcbiAgY29uc3QgbmFtZSA9IHNhbml0aXplKHNvdXJjZUltYWdlLnN1YnN0cmluZygwLCBzb3VyY2VJbWFnZS5sYXN0SW5kZXhPZignLicpKSB8fCBzb3VyY2VJbWFnZSlcbiAgcmV0dXJuIHsgbmFtZSwgZXh0OiBleHRlbnNpb24gfVxufVxuXG4vKipcbiAqIENyZWF0ZSBhIG5ldyBpbWFnZSBuYW1lIGJhc2VkIG9uIHRoZSBvdXRwdXQgaW1hZ2UgbmFtZSwgdGhlIGRpbWVuc2lvbnMgYW5kXG4gKiB0aGUgZXh0ZW5zaW9uLlxuICpcbiAqIElnbm9yZSB0aGUgZmFjdCB0aGF0IGR1cGxpY2F0ZSBuYW1lcyBjb3VsZCBoYXBwZW4gaWYgdGhlIHRoZXJlIGlzIG9uZVxuICogc2l6ZSB3aXRoIGB3aWR0aCBBTkQgaGVpZ2h0YCBhbmQgb25lIHdpdGggb25seSBgaGVpZ2h0IE9SIHdpZHRoYC4gQmVjYXVzZVxuICogc3BhY2UgaXMgZXhwZW5zaXZlLCB3ZSB3aWxsIHJldXNlIHRoZSBzYW1lIGltYWdlIGZvciBib3RoIHNpemVzLlxuICpcbiAqIEBwYXJhbSBvdXRwdXRJbWFnZU5hbWUgLSB0aGUgc2FuaXRpemVkIGltYWdlIG5hbWVcbiAqIEBwYXJhbSBidWZmZXJJbmZvIC0gdGhlIGJ1ZmZlciBpbmZvXG4gKiBAcGFyYW0gZXh0ZW5zaW9uIC0gdGhlIGV4dGVuc2lvbiB0byB1c2VcbiAqIEByZXR1cm5zIHRoZSBuZXcgaW1hZ2UgbmFtZSB0aGF0IGlzIG5vdCB0YWtlblxuICovXG5jb25zdCBjcmVhdGVJbWFnZU5hbWUgPSAoXG4gIG91dHB1dEltYWdlTmFtZTogc3RyaW5nLFxuICB7IGhlaWdodCwgd2lkdGggfTogc2hhcnAuT3V0cHV0SW5mbyxcbiAgZXh0ZW5zaW9uOiBzdHJpbmcsXG4pID0+IGAke291dHB1dEltYWdlTmFtZX0tJHt3aWR0aH14JHtoZWlnaHR9LiR7ZXh0ZW5zaW9ufWBcblxuLyoqXG4gKiBDcmVhdGUgdGhlIHJlc3VsdCBvYmplY3QgZm9yIHRoZSBpbWFnZSByZXNpemUgb3BlcmF0aW9uIGJhc2VkIG9uIHRoZVxuICogcHJvdmlkZWQgcGFyYW1ldGVycy4gSWYgdGhlIG5hbWUgaXMgbm90IHByb3ZpZGVkLCBhbiBlbXB0eSByZXN1bHQgb2JqZWN0XG4gKiBpcyByZXR1cm5lZC5cbiAqXG4gKiBAcGFyYW0gbmFtZSAtIHRoZSBuYW1lIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIGZpbGVuYW1lIC0gdGhlIGZpbGVuYW1lIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIHdpZHRoIC0gdGhlIHdpZHRoIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIGhlaWdodCAtIHRoZSBoZWlnaHQgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gZmlsZXNpemUgLSB0aGUgZmlsZXNpemUgb2YgdGhlIGltYWdlXG4gKiBAcGFyYW0gbWltZVR5cGUgLSB0aGUgbWltZSB0eXBlIG9mIHRoZSBpbWFnZVxuICogQHBhcmFtIHNpemVzVG9TYXZlIC0gdGhlIHNpemVzIHRvIHNhdmVcbiAqIEByZXR1cm5zIHRoZSByZXN1bHQgb2JqZWN0XG4gKi9cbmNvbnN0IGNyZWF0ZVJlc3VsdCA9IChcbiAgbmFtZTogc3RyaW5nLFxuICBmaWxlbmFtZTogRmlsZVNpemVbJ2ZpbGVuYW1lJ10gPSBudWxsLFxuICB3aWR0aDogRmlsZVNpemVbJ3dpZHRoJ10gPSBudWxsLFxuICBoZWlnaHQ6IEZpbGVTaXplWydoZWlnaHQnXSA9IG51bGwsXG4gIGZpbGVzaXplOiBGaWxlU2l6ZVsnZmlsZXNpemUnXSA9IG51bGwsXG4gIG1pbWVUeXBlOiBGaWxlU2l6ZVsnbWltZVR5cGUnXSA9IG51bGwsXG4gIHNpemVzVG9TYXZlOiBGaWxlVG9TYXZlW10gPSBbXSxcbik6IEltYWdlU2l6ZXNSZXN1bHQgPT4gKHtcbiAgc2l6ZURhdGE6IHtcbiAgICBbbmFtZV06IHtcbiAgICAgIGZpbGVuYW1lLFxuICAgICAgZmlsZXNpemUsXG4gICAgICBoZWlnaHQsXG4gICAgICBtaW1lVHlwZSxcbiAgICAgIHdpZHRoLFxuICAgIH0sXG4gIH0sXG4gIHNpemVzVG9TYXZlLFxufSlcblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgaW1hZ2UgbmVlZHMgdG8gYmUgcmVzaXplZCBhY2NvcmRpbmcgdG8gdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zXG4gKiBhbmQgdGhlIG9yaWdpbmFsIGltYWdlIHNpemUuIElmIHRoZSByZXNpemUgb3B0aW9ucyB3aXRob3V0RW5sYXJnZW1lbnQgb3Igd2l0aG91dFJlZHVjdGlvbiBhcmUgcHJvdmlkZWQsXG4gKiB0aGUgaW1hZ2Ugd2lsbCBiZSByZXNpemVkIHJlZ2FyZGxlc3Mgb2YgdGhlIHJlcXVlc3RlZCBkaW1lbnNpb25zLCBnaXZlbiB0aGF0IHRoZVxuICogd2lkdGggb3IgaGVpZ2h0IHRvIGJlIHJlc2l6ZWQgaXMgcHJvdmlkZWQuXG4gKlxuICogQHBhcmFtIHJlc2l6ZUNvbmZpZyAtIG9iamVjdCBjb250YWluaW5nIHRoZSByZXF1ZXN0ZWQgZGltZW5zaW9ucyBhbmQgcmVzaXplIG9wdGlvbnNcbiAqIEBwYXJhbSBvcmlnaW5hbCAtIHRoZSBvcmlnaW5hbCBpbWFnZSBzaXplXG4gKiBAcmV0dXJucyB0cnVlIGlmIHRoZSBpbWFnZSBuZWVkcyB0byBiZSByZXNpemVkLCBmYWxzZSBvdGhlcndpc2VcbiAqL1xuY29uc3QgbmVlZHNSZXNpemUgPSAoXG4gIHsgaGVpZ2h0OiBkZXNpcmVkSGVpZ2h0LCB3aWR0aDogZGVzaXJlZFdpZHRoLCB3aXRob3V0RW5sYXJnZW1lbnQsIHdpdGhvdXRSZWR1Y3Rpb24gfTogSW1hZ2VTaXplLFxuICBvcmlnaW5hbDogUHJvYmVkSW1hZ2VTaXplLFxuKTogYm9vbGVhbiA9PiB7XG4gIC8vIGFsbG93IGVubGFyZ2VtZW50IG9yIHByZXZlbnQgcmVkdWN0aW9uIChvdXIgZGVmYXVsdCBpcyB0byBwcmV2ZW50XG4gIC8vIGVubGFyZ2VtZW50IGFuZCBhbGxvdyByZWR1Y3Rpb24pXG4gIGlmICh3aXRob3V0RW5sYXJnZW1lbnQgIT09IHVuZGVmaW5lZCB8fCB3aXRob3V0UmVkdWN0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdHJ1ZSAvLyBuZWVkcyByZXNpemVcbiAgfVxuXG4gIGNvbnN0IGlzV2lkdGhPckhlaWdodE5vdERlZmluZWQgPSAhZGVzaXJlZEhlaWdodCB8fCAhZGVzaXJlZFdpZHRoXG5cbiAgaWYgKGlzV2lkdGhPckhlaWdodE5vdERlZmluZWQpIHtcbiAgICAvLyBJZiB3aXRoIGFuZCBoZWlnaHQgYXJlIG5vdCBkZWZpbmVkLCBpdCBtZWFucyB0aGVyZSBpcyBhIGZvcm1hdCBjb252ZXJzaW9uXG4gICAgLy8gYW5kIHRoZSBpbWFnZSBuZWVkcyB0byBiZSBcInJlc2l6ZWRcIiAodHJhbnNmb3JtZWQpLlxuICAgIHJldHVybiB0cnVlIC8vIG5lZWRzIHJlc2l6ZVxuICB9XG5cbiAgY29uc3QgaGFzSW5zdWZmaWNpZW50V2lkdGggPSBvcmlnaW5hbC53aWR0aCA8IGRlc2lyZWRXaWR0aFxuICBjb25zdCBoYXNJbnN1ZmZpY2llbnRIZWlnaHQgPSBvcmlnaW5hbC5oZWlnaHQgPCBkZXNpcmVkSGVpZ2h0XG4gIGlmIChoYXNJbnN1ZmZpY2llbnRXaWR0aCAmJiBoYXNJbnN1ZmZpY2llbnRIZWlnaHQpIHtcbiAgICAvLyBkb2Vzbid0IG5lZWQgcmVzaXplIC0gcHJldmVudCBlbmxhcmdlbWVudC4gVGhpcyBzaG91bGQgb25seSBoYXBwZW4gaWYgYm90aCB3aWR0aCBhbmQgaGVpZ2h0IGFyZSBpbnN1ZmZpY2llbnQuXG4gICAgLy8gaWYgb25seSBvbmUgZGltZW5zaW9uIGlzIGluc3VmZmljaWVudCBhbmQgdGhlIG90aGVyIGlzIHN1ZmZpY2llbnQsIHJlc2l6aW5nIG5lZWRzIHRvIGhhcHBlbiwgYXMgdGhlIGltYWdlXG4gICAgLy8gc2hvdWxkIGJlIHJlc2l6ZWQgdG8gdGhlIHN1ZmZpY2llbnQgZGltZW5zaW9uLlxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHRydWUgLy8gbmVlZHMgcmVzaXplXG59XG5cbi8qKlxuICogRm9yIHRoZSBwcm92aWRlZCBpbWFnZSBzaXplcywgaGFuZGxlIHRoZSByZXNpemluZyBhbmQgdGhlIHRyYW5zZm9ybXNcbiAqIChmb3JtYXQsIHRyaW0sIGV0Yy4pIG9mIGVhY2ggcmVxdWVzdGVkIGltYWdlIHNpemUgYW5kIHJldHVybiB0aGUgcmVzdWx0IG9iamVjdC5cbiAqIFRoaXMgb25seSBoYW5kbGVzIHRoZSBpbWFnZSBzaXplcy4gVGhlIHRyYW5zZm9ybXMgb2YgdGhlIG9yaWdpbmFsIGltYWdlXG4gKiBhcmUgaGFuZGxlZCBpbiB7QGxpbmsgLi9nZW5lcmF0ZUZpbGVEYXRhLnRzfS5cbiAqXG4gKiBUaGUgaW1hZ2Ugd2lsbCBiZSByZXNpemVkIGFjY29yZGluZyB0byB0aGUgcHJvdmlkZWRcbiAqIHJlc2l6ZSBjb25maWcuIElmIG5vIGltYWdlIHNpemVzIGFyZSByZXF1ZXN0ZWQsIHRoZSByZXNvbHZlZCBkYXRhIHdpbGwgYmUgZW1wdHkuXG4gKiBGb3IgZXZlcnkgaW1hZ2UgdGhhdCBkb3Mgbm90IG5lZWQgdG8gYmUgcmVzaXplZCwgYW4gcmVzdWx0IG9iamVjdCB3aXRoIGBudWxsYFxuICogcGFyYW1ldGVycyB3aWxsIGJlIHJldHVybmVkLlxuICpcbiAqIEBwYXJhbSByZXNpemVDb25maWcgLSB0aGUgcmVzaXplIGNvbmZpZ1xuICogQHJldHVybnMgdGhlIHJlc3VsdCBvZiB0aGUgcmVzaXplIG9wZXJhdGlvbihzKVxuICovXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiByZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzKHtcbiAgY29uZmlnLFxuICBkaW1lbnNpb25zLFxuICBmaWxlLFxuICBtaW1lVHlwZSxcbiAgcmVxLFxuICBzYXZlZEZpbGVuYW1lLFxuICBzdGF0aWNQYXRoLFxufTogUmVzaXplQXJncyk6IFByb21pc2U8SW1hZ2VTaXplc1Jlc3VsdD4ge1xuICBjb25zdCB7IGltYWdlU2l6ZXMgfSA9IGNvbmZpZy51cGxvYWRcbiAgLy8gTm90aW5nIHRvIHJlc2l6ZSBoZXJlIHNvIHJldHVybiBhcyBlYXJseSBhcyBwb3NzaWJsZVxuICBpZiAoIWltYWdlU2l6ZXMpIHJldHVybiB7IHNpemVEYXRhOiB7fSwgc2l6ZXNUb1NhdmU6IFtdIH1cblxuICBjb25zdCBzaGFycEJhc2UgPSBzaGFycChmaWxlLnRlbXBGaWxlUGF0aCB8fCBmaWxlLmRhdGEpLnJvdGF0ZSgpIC8vIHBhc3Mgcm90YXRlKCkgdG8gYXV0by1yb3RhdGUgYmFzZWQgb24gRVhJRiBkYXRhLiBodHRwczovL2dpdGh1Yi5jb20vcGF5bG9hZGNtcy9wYXlsb2FkL3B1bGwvMzA4MVxuXG4gIGNvbnN0IHJlc3VsdHM6IEltYWdlU2l6ZXNSZXN1bHRbXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgIGltYWdlU2l6ZXMubWFwKGFzeW5jIChpbWFnZVJlc2l6ZUNvbmZpZyk6IFByb21pc2U8SW1hZ2VTaXplc1Jlc3VsdD4gPT4ge1xuICAgICAgLy8gVGhpcyBjaGVja3MgaWYgYSByZXNpemUgc2hvdWxkIGhhcHBlbi4gSWYgbm90LCB0aGUgcmVzaXplZCBpbWFnZSB3aWxsIGJlXG4gICAgICAvLyBza2lwcGVkIENPTVBMRVRFTFkgYW5kIHRodXMgd2lsbCBub3QgYmUgaW5jbHVkZWQgaW4gdGhlIHJlc3VsdGluZyBpbWFnZXMuXG4gICAgICAvLyBBbGwgZnVydGhlciBmb3JtYXQvdHJpbSBvcHRpb25zIHdpbGwgdGh1cyBiZSBza2lwcGVkIGFzIHdlbGwuXG4gICAgICBpZiAoIW5lZWRzUmVzaXplKGltYWdlUmVzaXplQ29uZmlnLCBkaW1lbnNpb25zKSkge1xuICAgICAgICByZXR1cm4gY3JlYXRlUmVzdWx0KGltYWdlUmVzaXplQ29uZmlnLm5hbWUpXG4gICAgICB9XG5cbiAgICAgIGxldCByZXNpemVkID0gc2hhcnBCYXNlLmNsb25lKClcblxuICAgICAgaWYgKHJlcS5xdWVyeSAmJiBpbWFnZVJlc2l6ZUNvbmZpZy53aWR0aCAmJiBpbWFnZVJlc2l6ZUNvbmZpZy5oZWlnaHQpIHtcbiAgICAgICAgY29uc3QgeyBoZWlnaHQsIHdpZHRoIH0gPSBpbWFnZVJlc2l6ZUNvbmZpZ1xuXG4gICAgICAgIGNvbnN0IGZvY2FsUG9pbnQgPSB7XG4gICAgICAgICAgeDogMC41LFxuICAgICAgICAgIHk6IDAuNSxcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChyZXEucXVlcnk/LnVwbG9hZEVkaXRzPy5mb2NhbFBvaW50KSB7XG4gICAgICAgICAgaWYgKGlzTnVtYmVyKHJlcS5xdWVyeS51cGxvYWRFZGl0cy5mb2NhbFBvaW50Py54KSkge1xuICAgICAgICAgICAgZm9jYWxQb2ludC54ID0gcmVxLnF1ZXJ5LnVwbG9hZEVkaXRzLmZvY2FsUG9pbnQueFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoaXNOdW1iZXIocmVxLnF1ZXJ5LnVwbG9hZEVkaXRzLmZvY2FsUG9pbnQ/LnkpKSB7XG4gICAgICAgICAgICBmb2NhbFBvaW50LnkgPSByZXEucXVlcnkudXBsb2FkRWRpdHMuZm9jYWxQb2ludC55XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3JpZ2luYWxBc3BlY3RSYXRpbyA9IGRpbWVuc2lvbnMud2lkdGggLyBkaW1lbnNpb25zLmhlaWdodFxuICAgICAgICBjb25zdCB0YXJnZXRBc3BlY3RSYXRpbyA9IGltYWdlUmVzaXplQ29uZmlnLndpZHRoIC8gaW1hZ2VSZXNpemVDb25maWcuaGVpZ2h0XG5cbiAgICAgICAgaWYgKG9yaWdpbmFsQXNwZWN0UmF0aW8gIT09IHRhcmdldEFzcGVjdFJhdGlvKSB7XG4gICAgICAgICAgY29uc3QgcHJpb3JpdGl6ZUhlaWdodCA9IG9yaWdpbmFsQXNwZWN0UmF0aW8gPiB0YXJnZXRBc3BlY3RSYXRpb1xuXG4gICAgICAgICAgY29uc3QgeyBpbmZvIH0gPSBhd2FpdCByZXNpemVkXG4gICAgICAgICAgICAucmVzaXplKHtcbiAgICAgICAgICAgICAgaGVpZ2h0OiBwcmlvcml0aXplSGVpZ2h0ID8gaGVpZ2h0IDogbnVsbCxcbiAgICAgICAgICAgICAgd2lkdGg6IHByaW9yaXRpemVIZWlnaHQgPyBudWxsIDogd2lkdGgsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRvQnVmZmVyKHsgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUgfSlcblxuICAgICAgICAgIGNvbnN0IG1heE9mZnNldFggPSBNYXRoLm1heChpbmZvLndpZHRoIC0gd2lkdGgsIDApXG4gICAgICAgICAgY29uc3QgbWF4T2Zmc2V0WSA9IE1hdGgubWF4KGluZm8uaGVpZ2h0IC0gaGVpZ2h0LCAwKVxuXG4gICAgICAgICAgY29uc3QgZm9jYWxQb2ludFggPSBNYXRoLmZsb29yKChpbmZvLndpZHRoIC8gMTAwKSAqIGZvY2FsUG9pbnQueClcbiAgICAgICAgICBjb25zdCBmb2NhbFBvaW50WSA9IE1hdGguZmxvb3IoKGluZm8uaGVpZ2h0IC8gMTAwKSAqIGZvY2FsUG9pbnQueSlcblxuICAgICAgICAgIGNvbnN0IG9mZnNldFggPSBNYXRoLm1pbihNYXRoLm1heChmb2NhbFBvaW50WCAtIHdpZHRoIC8gMiwgMCksIG1heE9mZnNldFgpXG4gICAgICAgICAgY29uc3Qgb2Zmc2V0WSA9IE1hdGgubWluKE1hdGgubWF4KGZvY2FsUG9pbnRZIC0gaGVpZ2h0IC8gMiwgMCksIG1heE9mZnNldFkpXG5cbiAgICAgICAgICByZXNpemVkID0gcmVzaXplZC5leHRyYWN0KHtcbiAgICAgICAgICAgIGhlaWdodCxcbiAgICAgICAgICAgIGxlZnQ6IG9mZnNldFgsXG4gICAgICAgICAgICB0b3A6IG9mZnNldFksXG4gICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXNpemVkID0gcmVzaXplZC5yZXNpemUoaW1hZ2VSZXNpemVDb25maWcpXG4gICAgICB9XG5cbiAgICAgIGlmIChpbWFnZVJlc2l6ZUNvbmZpZy5mb3JtYXRPcHRpb25zKSB7XG4gICAgICAgIHJlc2l6ZWQgPSByZXNpemVkLnRvRm9ybWF0KFxuICAgICAgICAgIGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMuZm9ybWF0LFxuICAgICAgICAgIGltYWdlUmVzaXplQ29uZmlnLmZvcm1hdE9wdGlvbnMub3B0aW9ucyxcbiAgICAgICAgKVxuICAgICAgfVxuXG4gICAgICBpZiAoaW1hZ2VSZXNpemVDb25maWcudHJpbU9wdGlvbnMpIHtcbiAgICAgICAgcmVzaXplZCA9IHJlc2l6ZWQudHJpbShpbWFnZVJlc2l6ZUNvbmZpZy50cmltT3B0aW9ucylcbiAgICAgIH1cblxuICAgICAgY29uc3QgeyBkYXRhOiBidWZmZXJEYXRhLCBpbmZvOiBidWZmZXJJbmZvIH0gPSBhd2FpdCByZXNpemVkLnRvQnVmZmVyKHtcbiAgICAgICAgcmVzb2x2ZVdpdGhPYmplY3Q6IHRydWUsXG4gICAgICB9KVxuXG4gICAgICBjb25zdCBzYW5pdGl6ZWRJbWFnZSA9IGdldFNhbml0aXplZEltYWdlRGF0YShzYXZlZEZpbGVuYW1lKVxuXG4gICAgICBpZiAocmVxLnBheWxvYWRVcGxvYWRTaXplcykge1xuICAgICAgICByZXEucGF5bG9hZFVwbG9hZFNpemVzW2ltYWdlUmVzaXplQ29uZmlnLm5hbWVdID0gYnVmZmVyRGF0YVxuICAgICAgfVxuXG4gICAgICBjb25zdCBtaW1lSW5mbyA9IGF3YWl0IGZyb21CdWZmZXIoYnVmZmVyRGF0YSlcblxuICAgICAgY29uc3QgaW1hZ2VOYW1lV2l0aERpbWVuc2lvbnMgPSBjcmVhdGVJbWFnZU5hbWUoXG4gICAgICAgIHNhbml0aXplZEltYWdlLm5hbWUsXG4gICAgICAgIGJ1ZmZlckluZm8sXG4gICAgICAgIG1pbWVJbmZvPy5leHQgfHwgc2FuaXRpemVkSW1hZ2UuZXh0LFxuICAgICAgKVxuXG4gICAgICBjb25zdCBpbWFnZVBhdGggPSBgJHtzdGF0aWNQYXRofS8ke2ltYWdlTmFtZVdpdGhEaW1lbnNpb25zfWBcblxuICAgICAgaWYgKGF3YWl0IGZpbGVFeGlzdHMoaW1hZ2VQYXRoKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGZzLnVubGlua1N5bmMoaW1hZ2VQYXRoKVxuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAvLyBJZ25vcmUgdW5saW5rIGVycm9yc1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHsgaGVpZ2h0LCBzaXplLCB3aWR0aCB9ID0gYnVmZmVySW5mb1xuICAgICAgcmV0dXJuIGNyZWF0ZVJlc3VsdChcbiAgICAgICAgaW1hZ2VSZXNpemVDb25maWcubmFtZSxcbiAgICAgICAgaW1hZ2VOYW1lV2l0aERpbWVuc2lvbnMsXG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIG1pbWVJbmZvPy5taW1lIHx8IG1pbWVUeXBlLFxuICAgICAgICBbeyBidWZmZXI6IGJ1ZmZlckRhdGEsIHBhdGg6IGltYWdlUGF0aCB9XSxcbiAgICAgIClcbiAgICB9KSxcbiAgKVxuXG4gIHJldHVybiByZXN1bHRzLnJlZHVjZShcbiAgICAoYWNjLCByZXN1bHQpID0+IHtcbiAgICAgIE9iamVjdC5hc3NpZ24oYWNjLnNpemVEYXRhLCByZXN1bHQuc2l6ZURhdGEpXG4gICAgICBhY2Muc2l6ZXNUb1NhdmUucHVzaCguLi5yZXN1bHQuc2l6ZXNUb1NhdmUpXG4gICAgICByZXR1cm4gYWNjXG4gICAgfSxcbiAgICB7IHNpemVEYXRhOiB7fSwgc2l6ZXNUb1NhdmU6IFtdIH0sXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJyZXNpemVBbmRUcmFuc2Zvcm1JbWFnZVNpemVzIiwiZ2V0U2FuaXRpemVkSW1hZ2VEYXRhIiwic291cmNlSW1hZ2UiLCJleHRlbnNpb24iLCJzcGxpdCIsInBvcCIsIm5hbWUiLCJzYW5pdGl6ZSIsInN1YnN0cmluZyIsImxhc3RJbmRleE9mIiwiZXh0IiwiY3JlYXRlSW1hZ2VOYW1lIiwib3V0cHV0SW1hZ2VOYW1lIiwiaGVpZ2h0Iiwid2lkdGgiLCJjcmVhdGVSZXN1bHQiLCJmaWxlbmFtZSIsImZpbGVzaXplIiwibWltZVR5cGUiLCJzaXplc1RvU2F2ZSIsInNpemVEYXRhIiwibmVlZHNSZXNpemUiLCJkZXNpcmVkSGVpZ2h0IiwiZGVzaXJlZFdpZHRoIiwid2l0aG91dEVubGFyZ2VtZW50Iiwid2l0aG91dFJlZHVjdGlvbiIsIm9yaWdpbmFsIiwidW5kZWZpbmVkIiwiaXNXaWR0aE9ySGVpZ2h0Tm90RGVmaW5lZCIsImhhc0luc3VmZmljaWVudFdpZHRoIiwiaGFzSW5zdWZmaWNpZW50SGVpZ2h0IiwiY29uZmlnIiwiZGltZW5zaW9ucyIsImZpbGUiLCJyZXEiLCJzYXZlZEZpbGVuYW1lIiwic3RhdGljUGF0aCIsImltYWdlU2l6ZXMiLCJ1cGxvYWQiLCJzaGFycEJhc2UiLCJzaGFycCIsInRlbXBGaWxlUGF0aCIsImRhdGEiLCJyb3RhdGUiLCJyZXN1bHRzIiwiUHJvbWlzZSIsImFsbCIsIm1hcCIsImltYWdlUmVzaXplQ29uZmlnIiwicmVzaXplZCIsImNsb25lIiwicXVlcnkiLCJmb2NhbFBvaW50IiwieCIsInkiLCJ1cGxvYWRFZGl0cyIsImlzTnVtYmVyIiwib3JpZ2luYWxBc3BlY3RSYXRpbyIsInRhcmdldEFzcGVjdFJhdGlvIiwicHJpb3JpdGl6ZUhlaWdodCIsImluZm8iLCJyZXNpemUiLCJ0b0J1ZmZlciIsInJlc29sdmVXaXRoT2JqZWN0IiwibWF4T2Zmc2V0WCIsIk1hdGgiLCJtYXgiLCJtYXhPZmZzZXRZIiwiZm9jYWxQb2ludFgiLCJmbG9vciIsImZvY2FsUG9pbnRZIiwib2Zmc2V0WCIsIm1pbiIsIm9mZnNldFkiLCJleHRyYWN0IiwibGVmdCIsInRvcCIsImZvcm1hdE9wdGlvbnMiLCJ0b0Zvcm1hdCIsImZvcm1hdCIsIm9wdGlvbnMiLCJ0cmltT3B0aW9ucyIsInRyaW0iLCJidWZmZXJEYXRhIiwiYnVmZmVySW5mbyIsInNhbml0aXplZEltYWdlIiwicGF5bG9hZFVwbG9hZFNpemVzIiwibWltZUluZm8iLCJmcm9tQnVmZmVyIiwiaW1hZ2VOYW1lV2l0aERpbWVuc2lvbnMiLCJpbWFnZVBhdGgiLCJmaWxlRXhpc3RzIiwiZnMiLCJ1bmxpbmtTeW5jIiwic2l6ZSIsIm1pbWUiLCJidWZmZXIiLCJwYXRoIiwicmVkdWNlIiwiYWNjIiwicmVzdWx0IiwiT2JqZWN0IiwiYXNzaWduIiwicHVzaCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFrSkE7Ozs7Ozs7Ozs7Ozs7Q0FhQyxHQUNEOzs7ZUFBOEJBOzs7MEJBOUpIOzJEQUNaO3lFQUNNOzhEQUNIOzBCQU9PO21FQUNGOzs7Ozs7QUEyQnZCOzs7OztDQUtDLEdBQ0QsTUFBTUMsd0JBQXdCLENBQUNDO0lBQzdCLE1BQU1DLFlBQVlELFlBQVlFLEtBQUssQ0FBQyxLQUFLQyxHQUFHO0lBQzVDLE1BQU1DLE9BQU9DLElBQUFBLHlCQUFRLEVBQUNMLFlBQVlNLFNBQVMsQ0FBQyxHQUFHTixZQUFZ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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "2.0.6",
3
+ "version": "2.0.8",
4
4
  "description": "Node, React and MongoDB Headless CMS and Application Framework",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
@@ -8,7 +8,44 @@
8
8
  "bin": {
9
9
  "payload": "bin.js"
10
10
  },
11
- "exports": null,
11
+ "exports": {
12
+ ".": {
13
+ "import": "./src/index.ts",
14
+ "require": "./src/index.ts",
15
+ "types": "./src/index.ts"
16
+ },
17
+ "./scss": {
18
+ "import": "./src/exports/scss.scss",
19
+ "require": "./src/exports/scss.scss",
20
+ "default": "./src/exports/scss.scss"
21
+ },
22
+ "./*": {
23
+ "import": "./src/exports/*.ts",
24
+ "require": "./src/exports/*.ts",
25
+ "types": "./src/exports/*.ts"
26
+ }
27
+ },
28
+ "scripts": {
29
+ "build": "pnpm copyfiles && pnpm build:swc && pnpm build:types && pnpm build:components && ts-node -T ./scripts/exportPointerFiles.ts",
30
+ "build:components": "webpack --config dist/admin/components.config.js",
31
+ "build:swc": "swc ./src -d ./dist --config-file .swcrc",
32
+ "build:types": "tsc --emitDeclarationOnly --outDir dist",
33
+ "build:watch": "nodemon --watch 'src/**' --ext 'ts,tsx' --exec \"pnpm build:tsc\"",
34
+ "clean": "rimraf {dist,*.tsbuildinfo}",
35
+ "clean:cache": "rimraf node_modules/.cache",
36
+ "copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
37
+ "dev": "nodemon",
38
+ "dev:postgres": "cross-env PAYLOAD_DATABASE=postgres nodemon",
39
+ "fix": "eslint \"src/**/*.ts\" --fix",
40
+ "lint": "eslint \"src/**/*.ts\"",
41
+ "prepublishOnly": "pnpm clean && pnpm build",
42
+ "pretest": "pnpm build",
43
+ "release:beta": "release-it pre --preReleaseId=beta --npm.tag=beta --config .release-it.pre.js",
44
+ "release:major": "release-it major",
45
+ "release:minor": "release-it minor",
46
+ "release:patch": "release-it patch",
47
+ "translateNewKeys": "ts-node -T ./scripts/translateNewKeys.ts"
48
+ },
12
49
  "dependencies": {
13
50
  "@date-io/date-fns": "2.16.0",
14
51
  "@dnd-kit/core": "6.0.8",
@@ -101,6 +138,7 @@
101
138
  "uuid": "8.3.2"
102
139
  },
103
140
  "devDependencies": {
141
+ "@payloadcms/eslint-config": "workspace:*",
104
142
  "@release-it/conventional-changelog": "7.0.0",
105
143
  "@types/asap": "2.0.0",
106
144
  "@types/body-parser": "1.19.2",
@@ -148,7 +186,6 @@
148
186
  "file-loader": "6.2.0",
149
187
  "form-data": "3.0.1",
150
188
  "get-port": "5.1.1",
151
- "graphql-request": "6.1.0",
152
189
  "mini-css-extract-plugin": "1.6.2",
153
190
  "node-fetch": "2.6.12",
154
191
  "nodemon": "3.0.1",
@@ -166,8 +203,7 @@
166
203
  "terser-webpack-plugin": "^5.3.6",
167
204
  "url-loader": "4.1.1",
168
205
  "vite": "^4.4.9",
169
- "webpack": "^5.78.0",
170
- "@payloadcms/eslint-config": "0.0.1"
206
+ "webpack": "^5.78.0"
171
207
  },
172
208
  "engines": {
173
209
  "node": ">=14"
@@ -206,7 +242,10 @@
206
242
  ],
207
243
  "publishConfig": {
208
244
  "access": "public",
209
- "registry": "https://registry.npmjs.org/"
245
+ "exports": null,
246
+ "main": "./dist/index.js",
247
+ "registry": "https://registry.npmjs.org/",
248
+ "types": "./dist/index.d.ts"
210
249
  },
211
250
  "homepage": "https://payloadcms.com",
212
251
  "author": {
@@ -228,26 +267,5 @@
228
267
  "bugs": {
229
268
  "url": "https://github.com/payloadcms/payload"
230
269
  },
231
- "sideEffects": false,
232
- "scripts": {
233
- "build": "pnpm copyfiles && pnpm build:swc && pnpm build:types && pnpm build:components && ts-node -T ./scripts/exportPointerFiles.ts",
234
- "build:components": "webpack --config dist/admin/components.config.js",
235
- "build:swc": "swc ./src -d ./dist --config-file .swcrc",
236
- "build:types": "tsc --emitDeclarationOnly --outDir dist",
237
- "build:watch": "nodemon --watch 'src/**' --ext 'ts,tsx' --exec \"pnpm build:tsc\"",
238
- "clean": "rimraf {dist,*.tsbuildinfo}",
239
- "clean:cache": "rimraf node_modules/.cache",
240
- "copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist/",
241
- "dev": "nodemon",
242
- "dev:postgres": "cross-env PAYLOAD_DATABASE=postgres nodemon",
243
- "fix": "eslint \"src/**/*.ts\" --fix",
244
- "lint": "eslint \"src/**/*.ts\"",
245
- "pretest": "pnpm build",
246
- "release:beta": "release-it pre --preReleaseId=beta --npm.tag=beta --config .release-it.pre.json",
247
- "release:canary": "release-it pre --preReleaseId=canary --npm.tag=canary --config .release-it.pre.json",
248
- "release:major": "release-it major",
249
- "release:minor": "release-it minor",
250
- "release:patch": "release-it patch",
251
- "translateNewKeys": "ts-node -T ./scripts/translateNewKeys.ts"
252
- }
253
- }
270
+ "sideEffects": false
271
+ }