obsidian-dev-utils 101.4.0 → 101.5.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 (43) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/integration-test-plugin/main.js +105 -10
  3. package/dist/lib/cjs/__merged.cjs +7 -1
  4. package/dist/lib/cjs/__merged.d.cts +2 -2
  5. package/dist/lib/cjs/generated-during-build.cjs +1 -1
  6. package/dist/lib/cjs/obsidian/html-element.cjs +14 -3
  7. package/dist/lib/cjs/obsidian/html-element.d.cts +46 -2
  8. package/dist/lib/cjs/obsidian/link.cjs +50 -8
  9. package/dist/lib/cjs/obsidian/link.d.cts +289 -1
  10. package/dist/lib/cjs/obsidian/modals/prompt.cjs +9 -2
  11. package/dist/lib/cjs/obsidian/modals/prompt.d.cts +12 -0
  12. package/dist/lib/cjs/obsidian/modals/select-item.cjs +13 -1
  13. package/dist/lib/cjs/obsidian/modals/select-item.d.cts +14 -0
  14. package/dist/lib/cjs/obsidian/obsidian-settings.cjs +28 -1
  15. package/dist/lib/cjs/obsidian/obsidian-settings.d.cts +30 -0
  16. package/dist/lib/cjs/script-utils/gate.cjs +195 -0
  17. package/dist/lib/cjs/script-utils/gate.d.cts +78 -0
  18. package/dist/lib/cjs/script-utils/index.cjs +4 -1
  19. package/dist/lib/cjs/script-utils/index.d.cts +1 -0
  20. package/dist/lib/cjs/script-utils/test-runners/vitest-config.cjs +12 -3
  21. package/dist/lib/cjs/script-utils/version.cjs +7 -15
  22. package/dist/lib/esm/__merged.d.mts +2 -2
  23. package/dist/lib/esm/__merged.mjs +11 -3
  24. package/dist/lib/esm/generated-during-build.mjs +1 -1
  25. package/dist/lib/esm/obsidian/html-element.d.mts +46 -2
  26. package/dist/lib/esm/obsidian/html-element.mjs +15 -2
  27. package/dist/lib/esm/obsidian/link.d.mts +289 -1
  28. package/dist/lib/esm/obsidian/link.mjs +54 -9
  29. package/dist/lib/esm/obsidian/modals/prompt.d.mts +12 -0
  30. package/dist/lib/esm/obsidian/modals/prompt.mjs +10 -3
  31. package/dist/lib/esm/obsidian/modals/select-item.d.mts +14 -0
  32. package/dist/lib/esm/obsidian/modals/select-item.mjs +13 -1
  33. package/dist/lib/esm/obsidian/obsidian-settings.d.mts +30 -0
  34. package/dist/lib/esm/obsidian/obsidian-settings.mjs +26 -1
  35. package/dist/lib/esm/script-utils/gate.d.mts +78 -0
  36. package/dist/lib/esm/script-utils/gate.mjs +93 -0
  37. package/dist/lib/esm/script-utils/index.d.mts +1 -0
  38. package/dist/lib/esm/script-utils/index.mjs +3 -1
  39. package/dist/lib/esm/script-utils/test-runners/vitest-config.mjs +12 -3
  40. package/dist/lib/esm/script-utils/version.mjs +7 -18
  41. package/dist/templates/scripts/gate/gate.ts +10 -0
  42. package/package.json +15 -13
  43. package/script-utils/gate/package.json +6 -0
@@ -73,6 +73,18 @@ export interface ConvertLinkParams {
73
73
  * An Obsidian app instance.
74
74
  */
75
75
  readonly app: App;
76
+ /**
77
+ * Whether to allow an empty alias for embeds.
78
+ *
79
+ * Applicable only if the result link style is {@link LinkStyle.Markdown}.
80
+ *
81
+ * If `true`: `![](foo.png)`.
82
+ *
83
+ * If `false`: `![foo](foo.png)`.
84
+ *
85
+ * @default `true`
86
+ */
87
+ readonly isEmptyEmbedAliasAllowed?: boolean;
76
88
  /**
77
89
  * A reference for the link.
78
90
  */
@@ -93,12 +105,72 @@ export interface ConvertLinkParams {
93
105
  * An old path of the link.
94
106
  */
95
107
  readonly oldSourcePathOrFile?: PathOrFile;
108
+ /**
109
+ * Whether to escape the alias.
110
+ *
111
+ * Applicable only if the result link style is {@link LinkStyle.Markdown}.
112
+ *
113
+ * If `true`: `[\*\*alias\*\*](link.md)`.
114
+ *
115
+ * If `false`: `[**alias**](link.md)`.
116
+ *
117
+ * @default `false`
118
+ */
119
+ readonly shouldEscapeAlias?: boolean;
120
+ /**
121
+ * Whether to include the attachment extension in the embed alias.
122
+ *
123
+ * Applicable only if {@link isEmptyEmbedAliasAllowed} is `false`.
124
+ *
125
+ * If `true`: `[foo.png](foo.png)`.
126
+ *
127
+ * If `false`: `[foo](foo.png)`.
128
+ *
129
+ * @default `false`
130
+ */
131
+ readonly shouldIncludeAttachmentExtensionToEmbedAlias?: boolean;
96
132
  /**
97
133
  * Whether to update file name alias.
98
134
  *
99
135
  * @default `true`
100
136
  */
101
137
  readonly shouldUpdateFileNameAlias?: boolean;
138
+ /**
139
+ * Indicates if the link should use angle brackets.
140
+ *
141
+ * Applicable only if {@link linkStyle} is {@link LinkStyle.Markdown}.
142
+ *
143
+ * If `true`: `[alias](<path with spaces.md>)`.
144
+ *
145
+ * If `false`: `[alias](path%20with%20spaces.md)`.
146
+ *
147
+ * @default `false`
148
+ */
149
+ readonly shouldUseAngleBrackets?: boolean;
150
+ /**
151
+ * Indicates if the link should use a leading dot.
152
+ *
153
+ * Applicable only if {@link linkPathStyle} is {@link LinkPathStyle.RelativePathToTheSource}.
154
+ *
155
+ * If `true`: `[[./relative/path/to/target]]`
156
+ *
157
+ * If `false`: `[[relative/path/to/target]]`
158
+ *
159
+ * @default `false`
160
+ */
161
+ readonly shouldUseLeadingDotForRelativePaths?: boolean;
162
+ /**
163
+ * Indicates if the link should use a leading slash.
164
+ *
165
+ * Applicable only if {@link linkPathStyle} is {@link LinkPathStyle.AbsolutePathInVault}.
166
+ *
167
+ * If `true`: `[[/absolute/path/to/target]]`
168
+ *
169
+ * If `false`: `[[absolute/path/to/target]]`
170
+ *
171
+ * @default `false`
172
+ */
173
+ readonly shouldUseLeadingSlashForAbsolutePaths?: boolean;
102
174
  }
103
175
  /**
104
176
  * Options for {@link editBacklinks}.
@@ -385,7 +457,7 @@ export interface GenerateMarkdownLinkParams {
385
457
  /**
386
458
  * Indicates if the link should use a leading dot.
387
459
  *
388
- * Applicable only if {@link linkPathStyle} is {@link LinkPathStyle.RelativePathToSource}.
460
+ * Applicable only if {@link linkPathStyle} is {@link LinkPathStyle.RelativePathToTheSource}.
389
461
  *
390
462
  * If `true`: `[[./relative/path/to/target]]`
391
463
  *
@@ -561,6 +633,18 @@ export interface UpdateLinkParams {
561
633
  * An Obsidian app instance.
562
634
  */
563
635
  readonly app: App;
636
+ /**
637
+ * Whether to allow an empty alias for embeds.
638
+ *
639
+ * Applicable only if the result link style is {@link LinkStyle.Markdown}.
640
+ *
641
+ * If `true`: `![](foo.png)`.
642
+ *
643
+ * If `false`: `![foo](foo.png)`.
644
+ *
645
+ * @default `true`
646
+ */
647
+ readonly isEmptyEmbedAliasAllowed?: boolean;
564
648
  /**
565
649
  * A reference for the link.
566
650
  */
@@ -589,12 +673,72 @@ export interface UpdateLinkParams {
589
673
  * An old path of the file.
590
674
  */
591
675
  readonly oldTargetPathOrFile?: PathOrFile;
676
+ /**
677
+ * Whether to escape the alias.
678
+ *
679
+ * Applicable only if the result link style is {@link LinkStyle.Markdown}.
680
+ *
681
+ * If `true`: `[\*\*alias\*\*](link.md)`.
682
+ *
683
+ * If `false`: `[**alias**](link.md)`.
684
+ *
685
+ * @default `false`
686
+ */
687
+ readonly shouldEscapeAlias?: boolean;
688
+ /**
689
+ * Whether to include the attachment extension in the embed alias.
690
+ *
691
+ * Applicable only if {@link isEmptyEmbedAliasAllowed} is `false`.
692
+ *
693
+ * If `true`: `[foo.png](foo.png)`.
694
+ *
695
+ * If `false`: `[foo](foo.png)`.
696
+ *
697
+ * @default `false`
698
+ */
699
+ readonly shouldIncludeAttachmentExtensionToEmbedAlias?: boolean;
592
700
  /**
593
701
  * Whether to update file name alias.
594
702
  *
595
703
  * @default `true`
596
704
  */
597
705
  readonly shouldUpdateFileNameAlias?: boolean;
706
+ /**
707
+ * Indicates if the link should use angle brackets.
708
+ *
709
+ * Applicable only if {@link linkStyle} is {@link LinkStyle.Markdown}.
710
+ *
711
+ * If `true`: `[alias](<path with spaces.md>)`.
712
+ *
713
+ * If `false`: `[alias](path%20with%20spaces.md)`.
714
+ *
715
+ * @default `false`
716
+ */
717
+ readonly shouldUseAngleBrackets?: boolean;
718
+ /**
719
+ * Indicates if the link should use a leading dot.
720
+ *
721
+ * Applicable only if {@link linkPathStyle} is {@link LinkPathStyle.RelativePathToTheSource}.
722
+ *
723
+ * If `true`: `[[./relative/path/to/target]]`
724
+ *
725
+ * If `false`: `[[relative/path/to/target]]`
726
+ *
727
+ * @default `false`
728
+ */
729
+ readonly shouldUseLeadingDotForRelativePaths?: boolean;
730
+ /**
731
+ * Indicates if the link should use a leading slash.
732
+ *
733
+ * Applicable only if {@link linkPathStyle} is {@link LinkPathStyle.AbsolutePathInVault}.
734
+ *
735
+ * If `true`: `[[/absolute/path/to/target]]`
736
+ *
737
+ * If `false`: `[[absolute/path/to/target]]`
738
+ *
739
+ * @default `false`
740
+ */
741
+ readonly shouldUseLeadingSlashForAbsolutePaths?: boolean;
598
742
  }
599
743
  /**
600
744
  * Params for {@link updateLinksInFile}.
@@ -604,6 +748,18 @@ export interface UpdateLinksInFileParams extends ProcessOptions {
604
748
  * An Obsidian app instance.
605
749
  */
606
750
  readonly app: App;
751
+ /**
752
+ * Whether to allow an empty alias for embeds.
753
+ *
754
+ * Applicable only if the result link style is {@link LinkStyle.Markdown}.
755
+ *
756
+ * If `true`: `![](foo.png)`.
757
+ *
758
+ * If `false`: `![foo](foo.png)`.
759
+ *
760
+ * @default `true`
761
+ */
762
+ readonly isEmptyEmbedAliasAllowed?: boolean;
607
763
  /**
608
764
  * A style of the link path.
609
765
  */
@@ -620,6 +776,30 @@ export interface UpdateLinksInFileParams extends ProcessOptions {
620
776
  * An old path of the file.
621
777
  */
622
778
  readonly oldSourcePathOrFile?: PathOrFile;
779
+ /**
780
+ * Whether to escape the alias.
781
+ *
782
+ * Applicable only if the result link style is {@link LinkStyle.Markdown}.
783
+ *
784
+ * If `true`: `[\*\*alias\*\*](link.md)`.
785
+ *
786
+ * If `false`: `[**alias**](link.md)`.
787
+ *
788
+ * @default `false`
789
+ */
790
+ readonly shouldEscapeAlias?: boolean;
791
+ /**
792
+ * Whether to include the attachment extension in the embed alias.
793
+ *
794
+ * Applicable only if {@link isEmptyEmbedAliasAllowed} is `false`.
795
+ *
796
+ * If `true`: `[foo.png](foo.png)`.
797
+ *
798
+ * If `false`: `[foo](foo.png)`.
799
+ *
800
+ * @default `false`
801
+ */
802
+ readonly shouldIncludeAttachmentExtensionToEmbedAlias?: boolean;
623
803
  /**
624
804
  * Whether to update only embedded links.
625
805
  */
@@ -630,6 +810,42 @@ export interface UpdateLinksInFileParams extends ProcessOptions {
630
810
  * @default `true`
631
811
  */
632
812
  readonly shouldUpdateFileNameAlias?: boolean;
813
+ /**
814
+ * Indicates if the link should use angle brackets.
815
+ *
816
+ * Applicable only if {@link linkStyle} is {@link LinkStyle.Markdown}.
817
+ *
818
+ * If `true`: `[alias](<path with spaces.md>)`.
819
+ *
820
+ * If `false`: `[alias](path%20with%20spaces.md)`.
821
+ *
822
+ * @default `false`
823
+ */
824
+ readonly shouldUseAngleBrackets?: boolean;
825
+ /**
826
+ * Indicates if the link should use a leading dot.
827
+ *
828
+ * Applicable only if {@link linkPathStyle} is {@link LinkPathStyle.RelativePathToTheSource}.
829
+ *
830
+ * If `true`: `[[./relative/path/to/target]]`
831
+ *
832
+ * If `false`: `[[relative/path/to/target]]`
833
+ *
834
+ * @default `false`
835
+ */
836
+ readonly shouldUseLeadingDotForRelativePaths?: boolean;
837
+ /**
838
+ * Indicates if the link should use a leading slash.
839
+ *
840
+ * Applicable only if {@link linkPathStyle} is {@link LinkPathStyle.AbsolutePathInVault}.
841
+ *
842
+ * If `true`: `[[/absolute/path/to/target]]`
843
+ *
844
+ * If `false`: `[[absolute/path/to/target]]`
845
+ *
846
+ * @default `false`
847
+ */
848
+ readonly shouldUseLeadingSlashForAbsolutePaths?: boolean;
633
849
  }
634
850
  /**
635
851
  * Params for {@link updateLinksInContent}.
@@ -643,6 +859,18 @@ interface UpdateLinksInContentParams {
643
859
  * A content to update the links in.
644
860
  */
645
861
  readonly content: string;
862
+ /**
863
+ * Whether to allow an empty alias for embeds.
864
+ *
865
+ * Applicable only if the result link style is {@link LinkStyle.Markdown}.
866
+ *
867
+ * If `true`: `![](foo.png)`.
868
+ *
869
+ * If `false`: `![foo](foo.png)`.
870
+ *
871
+ * @default `true`
872
+ */
873
+ readonly isEmptyEmbedAliasAllowed?: boolean;
646
874
  /**
647
875
  * A style of the link path.
648
876
  */
@@ -659,6 +887,30 @@ interface UpdateLinksInContentParams {
659
887
  * An old source path or file.
660
888
  */
661
889
  readonly oldSourcePathOrFile?: PathOrFile;
890
+ /**
891
+ * Whether to escape the alias.
892
+ *
893
+ * Applicable only if the result link style is {@link LinkStyle.Markdown}.
894
+ *
895
+ * If `true`: `[\*\*alias\*\*](link.md)`.
896
+ *
897
+ * If `false`: `[**alias**](link.md)`.
898
+ *
899
+ * @default `false`
900
+ */
901
+ readonly shouldEscapeAlias?: boolean;
902
+ /**
903
+ * Whether to include the attachment extension in the embed alias.
904
+ *
905
+ * Applicable only if {@link isEmptyEmbedAliasAllowed} is `false`.
906
+ *
907
+ * If `true`: `[foo.png](foo.png)`.
908
+ *
909
+ * If `false`: `[foo](foo.png)`.
910
+ *
911
+ * @default `false`
912
+ */
913
+ readonly shouldIncludeAttachmentExtensionToEmbedAlias?: boolean;
662
914
  /**
663
915
  * Whether to update only embedded links.
664
916
  */
@@ -669,6 +921,42 @@ interface UpdateLinksInContentParams {
669
921
  * @default `true`
670
922
  */
671
923
  readonly shouldUpdateFileNameAlias?: boolean;
924
+ /**
925
+ * Indicates if the link should use angle brackets.
926
+ *
927
+ * Applicable only if {@link linkStyle} is {@link LinkStyle.Markdown}.
928
+ *
929
+ * If `true`: `[alias](<path with spaces.md>)`.
930
+ *
931
+ * If `false`: `[alias](path%20with%20spaces.md)`.
932
+ *
933
+ * @default `false`
934
+ */
935
+ readonly shouldUseAngleBrackets?: boolean;
936
+ /**
937
+ * Indicates if the link should use a leading dot.
938
+ *
939
+ * Applicable only if {@link linkPathStyle} is {@link LinkPathStyle.RelativePathToTheSource}.
940
+ *
941
+ * If `true`: `[[./relative/path/to/target]]`
942
+ *
943
+ * If `false`: `[[relative/path/to/target]]`
944
+ *
945
+ * @default `false`
946
+ */
947
+ readonly shouldUseLeadingDotForRelativePaths?: boolean;
948
+ /**
949
+ * Indicates if the link should use a leading slash.
950
+ *
951
+ * Applicable only if {@link linkPathStyle} is {@link LinkPathStyle.AbsolutePathInVault}.
952
+ *
953
+ * If `true`: `[[/absolute/path/to/target]]`
954
+ *
955
+ * If `false`: `[[absolute/path/to/target]]`
956
+ *
957
+ * @default `false`
958
+ */
959
+ readonly shouldUseLeadingSlashForAbsolutePaths?: boolean;
672
960
  }
673
961
  /**
674
962
  * Converts a link to a new path.
@@ -150,6 +150,7 @@ var import_async = require('../../async.cjs');
150
150
  var import_function = require('../../function.cjs');
151
151
  var import_object_utils = require('../../object-utils.cjs');
152
152
  var import_css_class = require('../css-class.cjs');
153
+ var import_html_element = require('../html-element.cjs');
153
154
  var import_i18n = require('../i18n/i18n.cjs');
154
155
  var import_obsidian_settings = require('../obsidian-settings.cjs');
155
156
  var import_modal = require('./modal.cjs');
@@ -161,6 +162,7 @@ class PromptModal extends import_modal.ModalBase {
161
162
  isTouched = false;
162
163
  okButtonText;
163
164
  placeholder;
165
+ spellcheckMode;
164
166
  title;
165
167
  value;
166
168
  valueValidator;
@@ -172,6 +174,7 @@ class PromptModal extends import_modal.ModalBase {
172
174
  this.commandsRenderMode = params.commandsRenderMode;
173
175
  this.okButtonText = params.okButtonText ?? (0, import_i18n.t)(($) => $.obsidianDevUtils.buttons.ok);
174
176
  this.placeholder = params.placeholder ?? "";
177
+ this.spellcheckMode = params.spellcheckMode ?? import_obsidian_settings.SpellcheckMode.FollowObsidianSetting;
175
178
  this.title = params.title ?? "";
176
179
  this.valueValidator = params.valueValidator ?? import_function.noop;
177
180
  this.value = params.defaultValue ?? "";
@@ -183,7 +186,11 @@ class PromptModal extends import_modal.ModalBase {
183
186
  this.titleEl.setText(this.title);
184
187
  const textComponent = new import_obsidian.TextComponent(this.contentEl);
185
188
  const inputEl = textComponent.inputEl;
186
- inputEl.setAttribute("spellcheck", String((0, import_obsidian_settings.isSpellcheckEnabled)(this.app)));
189
+ (0, import_html_element.applySpellcheckMode)({
190
+ app: this.app,
191
+ element: inputEl,
192
+ spellcheckMode: this.spellcheckMode
193
+ });
187
194
  const validate = async (shouldReport) => {
188
195
  const errorMessage = await this.valueValidator(inputEl.value);
189
196
  inputEl.setCustomValidity(errorMessage ?? "");
@@ -256,4 +263,4 @@ async function prompt(params) {
256
263
  0 && (module.exports = {
257
264
  prompt
258
265
  });
259
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21vZGFscy9wcm9tcHQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBVdGlsaXR5IGZvciBkaXNwbGF5aW5nIGEgcHJvbXB0IG1vZGFsIGluIE9ic2lkaWFuLlxuICpcbiAqIFRoaXMgbW9kdWxlIGV4cG9ydHMgYSBmdW5jdGlvbiB0byBkaXNwbGF5IGEgbW9kYWwgdGhhdCBwcm9tcHRzIHRoZSB1c2VyIGZvciBpbnB1dC4gVGhlIG1vZGFsIGluY2x1ZGVzIFwiT0tcIiBhbmQgXCJDYW5jZWxcIiBidXR0b25zLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7XG4gIEJ1dHRvbkNvbXBvbmVudCxcbiAgVGV4dENvbXBvbmVudFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgTWF5YmVSZXR1cm4gfSBmcm9tICcuLi8uLi90eXBlLnRzJztcbmltcG9ydCB0eXBlIHtcbiAgTW9kYWxDb21tYW5kQnVpbGRlcixcbiAgTW9kYWxDb21tYW5kQnVpbGRlckJ1aWxkT3B0aW9ucyxcbiAgTW9kYWxDb21tYW5kc1JlbmRlck1vZGVcbn0gZnJvbSAnLi9tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMnO1xuaW1wb3J0IHR5cGUge1xuICBNb2RhbEJhc2VDb25zdHJ1Y3RvclBhcmFtcyxcbiAgTW9kYWxQYXJhbXNCYXNlXG59IGZyb20gJy4vbW9kYWwudHMnO1xuXG5pbXBvcnQge1xuICBjb252ZXJ0QXN5bmNUb1N5bmMsXG4gIGludm9rZUFzeW5jU2FmZWx5XG59IGZyb20gJy4uLy4uL2FzeW5jLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9mdW5jdGlvbi50cyc7XG5pbXBvcnQgeyBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi9vYmplY3QtdXRpbHMudHMnO1xuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi9jc3MtY2xhc3MudHMnO1xuaW1wb3J0IHsgdCB9IGZyb20gJy4uL2kxOG4vaTE4bi50cyc7XG5pbXBvcnQgeyBpc1NwZWxsY2hlY2tFbmFibGVkIH0gZnJvbSAnLi4vb2JzaWRpYW4tc2V0dGluZ3MudHMnO1xuaW1wb3J0IHtcbiAgTW9kYWxCYXNlLFxuICBzaG93TW9kYWxcbn0gZnJvbSAnLi9tb2RhbC50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHByb21wdH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvbXB0UGFyYW1zIGV4dGVuZHMgTW9kYWxQYXJhbXNCYXNlIHtcbiAgLyoqXG4gICAqIEEgdGV4dCBmb3IgdGhlIFwiQ2FuY2VsXCIgYnV0dG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY2FuY2VsQnV0dG9uVGV4dD86IHN0cmluZztcblxuICAvKipcbiAgICogRXh0cmEgY29udHJvbHMgXHUyMDE0IGNoZWNrYm94ZXMsIGRyb3Bkb3ducyBhbmQga2V5Ym9hcmQgc2hvcnRjdXRzIFx1MjAxNCByZW5kZXJlZCBhcyBhIHN0cmlwIGFsb25nIHRoZSBib3R0b21cbiAgICogb2YgdGhlIG1vZGFsLCBzbyBhIGNhbGxlciBnZXRzIGEgdGV4dCBpbnB1dCBwbHVzIG9wdGlvbnMgd2l0aCBubyBiZXNwb2tlIG1vZGFsIG9mIGl0cyBvd24uXG4gICAqXG4gICAqIEhhbmQgaXQgYSBjb25maWd1cmVkIHtAbGluayBNb2RhbENvbW1hbmRCdWlsZGVyfTsgdGhlIG1vZGFsIGJ1aWxkcyBpdC4gVGhlIHN0cmlwIGlzIHJlbmRlcmVkIGFmdGVyXG4gICAqIHRoZSBidXR0b25zLCBzbyBpdCBzaXRzIGFsb25nIHRoZSBib3R0b20gZWRnZSB3aGVyZSBhIGBTdWdnZXN0TW9kYWxgJ3MgaW5zdHJ1Y3Rpb24gYmFyIHNpdHMuXG4gICAqL1xuICByZWFkb25seSBjb21tYW5kQnVpbGRlcj86IE1vZGFsQ29tbWFuZEJ1aWxkZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB3YXkge0BsaW5rIFByb21wdFBhcmFtcy5jb21tYW5kQnVpbGRlcn0ncyBjb250cm9scyBhcmUgcmVuZGVyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBNb2RhbENvbW1hbmRzUmVuZGVyTW9kZS5JbnN0cnVjdGlvbnNgXG4gICAqL1xuICByZWFkb25seSBjb21tYW5kc1JlbmRlck1vZGU/OiBNb2RhbENvbW1hbmRzUmVuZGVyTW9kZTtcblxuICAvKipcbiAgICogQSBkZWZhdWx0IHZhbHVlIHRvIHByZS1maWxsIHRoZSBpbnB1dCBmaWVsZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYCcnYFxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHRleHQgZm9yIHRoZSBcIk9LXCIgYnV0dG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb2tCdXR0b25UZXh0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHBsYWNlaG9sZGVyIHRleHQgZm9yIHRoZSBpbnB1dCBmaWVsZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYCcnYFxuICAgKi9cbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgdGl0bGUgb2YgdGhlIG1vZGFsLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgJydgXG4gICAqL1xuICByZWFkb25seSB0aXRsZT86IERvY3VtZW50RnJhZ21lbnQgfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdG8gdmFsaWRhdGUgdGhlIGlucHV0IHZhbHVlLlxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgaW5wdXQgdmFsdWUgdG8gdmFsaWRhdGUuXG4gICAqIEByZXR1cm5zIGFuIGVycm9yIG1lc3NhZ2UgaWYgdGhlIHZhbHVlIGlzIGludmFsaWQsIG9yIGBudWxsYCBpZiB0aGUgdmFsdWUgaXMgdmFsaWQuXG4gICAqL1xuICB2YWx1ZVZhbGlkYXRvcj8odGhpczogdm9pZCwgdmFsdWU6IHN0cmluZyk6IFByb21pc2FibGU8TWF5YmVSZXR1cm48c3RyaW5nPj47XG59XG5cbnR5cGUgUHJvbXB0TW9kYWxDb25zdHJ1Y3RvclBhcmFtcyA9IE1vZGFsQmFzZUNvbnN0cnVjdG9yUGFyYW1zPG51bGwgfCBzdHJpbmc+ICYgUHJvbXB0UGFyYW1zO1xuXG5jbGFzcyBQcm9tcHRNb2RhbCBleHRlbmRzIE1vZGFsQmFzZTxudWxsIHwgc3RyaW5nPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FuY2VsQnV0dG9uVGV4dDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmRCdWlsZGVyOiBNb2RhbENvbW1hbmRCdWlsZGVyIHwgbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBjb21tYW5kc1JlbmRlck1vZGU6IE1vZGFsQ29tbWFuZHNSZW5kZXJNb2RlIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIGlzT2tDbGlja2VkID0gZmFsc2U7XG4gIHByaXZhdGUgaXNUb3VjaGVkID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgb2tCdXR0b25UZXh0OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSB0aXRsZTogRG9jdW1lbnRGcmFnbWVudCB8IHN0cmluZztcbiAgcHJpdmF0ZSB2YWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlVmFsaWRhdG9yOiAodmFsdWU6IHN0cmluZykgPT4gUHJvbWlzYWJsZTxNYXliZVJldHVybjxzdHJpbmc+PjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1zOiBQcm9tcHRNb2RhbENvbnN0cnVjdG9yUGFyYW1zKSB7XG4gICAgc3VwZXIocGFyYW1zKTtcbiAgICB0aGlzLmFkZENzc0NsYXNzZXMoQ3NzQ2xhc3MuUHJvbXB0TW9kYWwpO1xuICAgIHRoaXMuY2FuY2VsQnV0dG9uVGV4dCA9IHBhcmFtcy5jYW5jZWxCdXR0b25UZXh0ID8/IHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5idXR0b25zLmNhbmNlbCk7XG4gICAgdGhpcy5jb21tYW5kQnVpbGRlciA9IHBhcmFtcy5jb21tYW5kQnVpbGRlciA/PyBudWxsO1xuICAgIHRoaXMuY29tbWFuZHNSZW5kZXJNb2RlID0gcGFyYW1zLmNvbW1hbmRzUmVuZGVyTW9kZTtcbiAgICB0aGlzLm9rQnV0dG9uVGV4dCA9IHBhcmFtcy5va0J1dHRvblRleHQgPz8gdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmJ1dHRvbnMub2spO1xuICAgIHRoaXMucGxhY2Vob2xkZXIgPSBwYXJhbXMucGxhY2Vob2xkZXIgPz8gJyc7XG4gICAgdGhpcy50aXRsZSA9IHBhcmFtcy50aXRsZSA/PyAnJztcbiAgICB0aGlzLnZhbHVlVmFsaWRhdG9yID0gcGFyYW1zLnZhbHVlVmFsaWRhdG9yID8/IG5vb3A7XG4gICAgdGhpcy52YWx1ZSA9IHBhcmFtcy5kZWZhdWx0VmFsdWUgPz8gJyc7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25DbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLnByb21pc2VSZXNvbHZlKHRoaXMuaXNPa0NsaWNrZWQgPyB0aGlzLnZhbHVlIDogbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25PcGVuKCk6IHZvaWQge1xuICAgIHRoaXMudGl0bGVFbC5zZXRUZXh0KHRoaXMudGl0bGUpO1xuICAgIGNvbnN0IHRleHRDb21wb25lbnQgPSBuZXcgVGV4dENvbXBvbmVudCh0aGlzLmNvbnRlbnRFbCk7XG4gICAgY29uc3QgaW5wdXRFbCA9IHRleHRDb21wb25lbnQuaW5wdXRFbDtcbiAgICAvLyBgQWJzdHJhY3RUZXh0Q29tcG9uZW50YCBmb3JjZXMgYHNwZWxsY2hlY2s9XCJmYWxzZVwiYCBvbiBldmVyeSB0ZXh0IGNvbXBvbmVudCwgc28gdGhlIHZhdWx0IHNldHRpbmcgaGFzIHRvIGJlIHJlLWFwcGxpZWQgaGVyZS5cbiAgICAvLyBPYnNpZGlhbidzIG93biBmaWxlIGV4cGxvcmVyIHJlYWRzIHRoZSBzYW1lIGNvbmZpZyB3aGVuIGl0IHN0YXJ0cyBhbiBpbmxpbmUgcmVuYW1lLlxuICAgIGlucHV0RWwuc2V0QXR0cmlidXRlKCdzcGVsbGNoZWNrJywgU3RyaW5nKGlzU3BlbGxjaGVja0VuYWJsZWQodGhpcy5hcHApKSk7XG5cbiAgICBjb25zdCB2YWxpZGF0ZSA9IGFzeW5jIChzaG91bGRSZXBvcnQ6IGJvb2xlYW4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGF3YWl0IHRoaXMudmFsdWVWYWxpZGF0b3IoaW5wdXRFbC52YWx1ZSkgYXMgc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgICAgaW5wdXRFbC5zZXRDdXN0b21WYWxpZGl0eShlcnJvck1lc3NhZ2UgPz8gJycpO1xuICAgICAgaWYgKHNob3VsZFJlcG9ydCkge1xuICAgICAgICBpbnB1dEVsLnJlcG9ydFZhbGlkaXR5KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUlucHV0ID0gYXN5bmMgKCk6IFByb21pc2U8dm9pZD4gPT4ge1xuICAgICAgdGhpcy5tYXJrVG91Y2hlZChpbnB1dEVsKTtcbiAgICAgIGF3YWl0IHZhbGlkYXRlKHRydWUpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1cyA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIGF3YWl0IHZhbGlkYXRlKHRoaXMuaXNUb3VjaGVkKTtcbiAgICB9O1xuXG4gICAgdGV4dENvbXBvbmVudC5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcbiAgICB0ZXh0Q29tcG9uZW50LmlucHV0RWwuc2VsZWN0KCk7XG4gICAgdGV4dENvbXBvbmVudC5zZXRQbGFjZWhvbGRlcih0aGlzLnBsYWNlaG9sZGVyKTtcbiAgICBpbnB1dEVsLmFkZENsYXNzKENzc0NsYXNzLlRleHRCb3gpO1xuICAgIC8vIFRoZSBtb2RhbCBvcGVucyBpbnZhbGlkIGJ5IGRlc2lnbiAoc2VlIGJlbG93KSwgc28gdGhlIGludmFsaWQgc3R5bGluZyBpcyBkZWZlcnJlZCB1bnRpbCB0b3VjaGVkLlxuICAgIGlucHV0RWwuYWRkQ2xhc3MoQ3NzQ2xhc3MuVW50b3VjaGVkKTtcbiAgICB0ZXh0Q29tcG9uZW50Lm9uQ2hhbmdlKChuZXdWYWx1ZSkgPT4ge1xuICAgICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgIH0pO1xuICAgIGlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICB0aGlzLmhhbmRsZU9rKGV2ZW50LCB0ZXh0Q29tcG9uZW50KTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgaW5wdXRFbC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGNvbnZlcnRBc3luY1RvU3luYyhoYW5kbGVJbnB1dCkpO1xuICAgIGlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXMnLCBjb252ZXJ0QXN5bmNUb1N5bmMoaGFuZGxlRm9jdXMpKTtcbiAgICAvLyBUaGUgbW9kYWwgbXVzdCBzdGFydCBvdXQgaW52YWxpZCBzbyBPSyByZWZ1c2VzLCBidXQgdGhlIHZhbGlkaXR5IGlzIG5vdCByZXBvcnRlZCB1bnRpbCB0aGUgdXNlciB0eXBlcyBvciBzdWJtaXRzLlxuICAgIGludm9rZUFzeW5jU2FmZWx5KCgpID0+IHZhbGlkYXRlKGZhbHNlKSk7XG4gICAgY29uc3Qgb2tCdXR0b24gPSBuZXcgQnV0dG9uQ29tcG9uZW50KHRoaXMuY29udGVudEVsKTtcbiAgICBva0J1dHRvbi5zZXRCdXR0b25UZXh0KHRoaXMub2tCdXR0b25UZXh0KTtcbiAgICBva0J1dHRvbi5zZXRDdGEoKTtcbiAgICBva0J1dHRvbi5vbkNsaWNrKChldmVudCkgPT4ge1xuICAgICAgdGhpcy5oYW5kbGVPayhldmVudCwgdGV4dENvbXBvbmVudCk7XG4gICAgfSk7XG4gICAgb2tCdXR0b24uc2V0Q2xhc3MoQ3NzQ2xhc3MuT2tCdXR0b24pO1xuICAgIGNvbnN0IGNhbmNlbEJ1dHRvbiA9IG5ldyBCdXR0b25Db21wb25lbnQodGhpcy5jb250ZW50RWwpO1xuICAgIGNhbmNlbEJ1dHRvbi5zZXRCdXR0b25UZXh0KHRoaXMuY2FuY2VsQnV0dG9uVGV4dCk7XG4gICAgY2FuY2VsQnV0dG9uLm9uQ2xpY2sodGhpcy5jbG9zZS5iaW5kKHRoaXMpKTtcbiAgICBjYW5jZWxCdXR0b24uc2V0Q2xhc3MoQ3NzQ2xhc3MuQ2FuY2VsQnV0dG9uKTtcblxuICAgIC8vIEJ1aWx0IGxhc3Qgc28gdGhlIHN0cmlwIGxhbmRzIGFsb25nIHRoZSBtb2RhbCdzIGJvdHRvbSBlZGdlLCB3aGVyZSBhIGBTdWdnZXN0TW9kYWxgJ3MgaW5zdHJ1Y3Rpb25cbiAgICAvLyBCYXIgc2l0cy5cbiAgICB0aGlzLmNvbW1hbmRCdWlsZGVyPy5idWlsZCh0aGlzLCBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXM8TW9kYWxDb21tYW5kQnVpbGRlckJ1aWxkT3B0aW9ucz4oeyByZW5kZXJNb2RlOiB0aGlzLmNvbW1hbmRzUmVuZGVyTW9kZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZU9rKGV2ZW50OiBFdmVudCwgdGV4dENvbXBvbmVudDogVGV4dENvbXBvbmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKCF0ZXh0Q29tcG9uZW50LmlucHV0RWwuY2hlY2tWYWxpZGl0eSgpKSB7XG4gICAgICB0aGlzLm1hcmtUb3VjaGVkKHRleHRDb21wb25lbnQuaW5wdXRFbCk7XG4gICAgICB0ZXh0Q29tcG9uZW50LmlucHV0RWwucmVwb3J0VmFsaWRpdHkoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzT2tDbGlja2VkID0gdHJ1ZTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cblxuICBwcml2YXRlIG1hcmtUb3VjaGVkKGlucHV0RWw6IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmlzVG91Y2hlZCA9IHRydWU7XG4gICAgaW5wdXRFbC5yZW1vdmVDbGFzcyhDc3NDbGFzcy5VbnRvdWNoZWQpO1xuICB9XG59XG5cbi8qKlxuICogRGlzcGxheXMgYSBwcm9tcHQgbW9kYWwgaW4gT2JzaWRpYW4gdG8gZ2V0IHVzZXIgaW5wdXQuXG4gKlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgcHJvbXB0IG1vZGFsLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSB1c2VyIGlucHV0IG9yIGBudWxsYCBpZiB0aGUgcHJvbXB0IHdhcyBjYW5jZWxsZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm9tcHQocGFyYW1zOiBQcm9tcHRQYXJhbXMpOiBQcm9taXNlPG51bGwgfCBzdHJpbmc+IHtcbiAgcmV0dXJuIGF3YWl0IHNob3dNb2RhbDxudWxsIHwgc3RyaW5nPigocHJvbWlzZVJlc29sdmUpID0+XG4gICAgbmV3IFByb21wdE1vZGFsKHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIHByb21pc2VSZXNvbHZlXG4gICAgfSlcbiAgKTtcbn1cbiJdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBVUEsc0JBR087QUFhUCxtQkFHTztBQUNQLHNCQUFxQjtBQUNyQiwwQkFBNEM7QUFDNUMsdUJBQXlCO0FBQ3pCLGtCQUFrQjtBQUNsQiwrQkFBb0M7QUFDcEMsbUJBR087QUFnRVAsTUFB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
266
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21vZGFscy9wcm9tcHQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qKlxuICogQGZpbGVcbiAqXG4gKiBVdGlsaXR5IGZvciBkaXNwbGF5aW5nIGEgcHJvbXB0IG1vZGFsIGluIE9ic2lkaWFuLlxuICpcbiAqIFRoaXMgbW9kdWxlIGV4cG9ydHMgYSBmdW5jdGlvbiB0byBkaXNwbGF5IGEgbW9kYWwgdGhhdCBwcm9tcHRzIHRoZSB1c2VyIGZvciBpbnB1dC4gVGhlIG1vZGFsIGluY2x1ZGVzIFwiT0tcIiBhbmQgXCJDYW5jZWxcIiBidXR0b25zLlxuICovXG5cbmltcG9ydCB0eXBlIHsgUHJvbWlzYWJsZSB9IGZyb20gJ3R5cGUtZmVzdCc7XG5cbmltcG9ydCB7XG4gIEJ1dHRvbkNvbXBvbmVudCxcbiAgVGV4dENvbXBvbmVudFxufSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB0eXBlIHsgTWF5YmVSZXR1cm4gfSBmcm9tICcuLi8uLi90eXBlLnRzJztcbmltcG9ydCB0eXBlIHtcbiAgTW9kYWxDb21tYW5kQnVpbGRlcixcbiAgTW9kYWxDb21tYW5kQnVpbGRlckJ1aWxkT3B0aW9ucyxcbiAgTW9kYWxDb21tYW5kc1JlbmRlck1vZGVcbn0gZnJvbSAnLi9tb2RhbC1jb21tYW5kLWJ1aWxkZXIudHMnO1xuaW1wb3J0IHR5cGUge1xuICBNb2RhbEJhc2VDb25zdHJ1Y3RvclBhcmFtcyxcbiAgTW9kYWxQYXJhbXNCYXNlXG59IGZyb20gJy4vbW9kYWwudHMnO1xuXG5pbXBvcnQge1xuICBjb252ZXJ0QXN5bmNUb1N5bmMsXG4gIGludm9rZUFzeW5jU2FmZWx5XG59IGZyb20gJy4uLy4uL2FzeW5jLnRzJztcbmltcG9ydCB7IG5vb3AgfSBmcm9tICcuLi8uLi9mdW5jdGlvbi50cyc7XG5pbXBvcnQgeyBub3JtYWxpemVPcHRpb25hbFByb3BlcnRpZXMgfSBmcm9tICcuLi8uLi9vYmplY3QtdXRpbHMudHMnO1xuaW1wb3J0IHsgQ3NzQ2xhc3MgfSBmcm9tICcuLi9jc3MtY2xhc3MudHMnO1xuaW1wb3J0IHsgYXBwbHlTcGVsbGNoZWNrTW9kZSB9IGZyb20gJy4uL2h0bWwtZWxlbWVudC50cyc7XG5pbXBvcnQgeyB0IH0gZnJvbSAnLi4vaTE4bi9pMThuLnRzJztcbmltcG9ydCB7IFNwZWxsY2hlY2tNb2RlIH0gZnJvbSAnLi4vb2JzaWRpYW4tc2V0dGluZ3MudHMnO1xuaW1wb3J0IHtcbiAgTW9kYWxCYXNlLFxuICBzaG93TW9kYWxcbn0gZnJvbSAnLi9tb2RhbC50cyc7XG5cbi8qKlxuICogT3B0aW9ucyBmb3Ige0BsaW5rIHByb21wdH0uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvbXB0UGFyYW1zIGV4dGVuZHMgTW9kYWxQYXJhbXNCYXNlIHtcbiAgLyoqXG4gICAqIEEgdGV4dCBmb3IgdGhlIFwiQ2FuY2VsXCIgYnV0dG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgY2FuY2VsQnV0dG9uVGV4dD86IHN0cmluZztcblxuICAvKipcbiAgICogRXh0cmEgY29udHJvbHMgXHUyMDE0IGNoZWNrYm94ZXMsIGRyb3Bkb3ducyBhbmQga2V5Ym9hcmQgc2hvcnRjdXRzIFx1MjAxNCByZW5kZXJlZCBhcyBhIHN0cmlwIGFsb25nIHRoZSBib3R0b21cbiAgICogb2YgdGhlIG1vZGFsLCBzbyBhIGNhbGxlciBnZXRzIGEgdGV4dCBpbnB1dCBwbHVzIG9wdGlvbnMgd2l0aCBubyBiZXNwb2tlIG1vZGFsIG9mIGl0cyBvd24uXG4gICAqXG4gICAqIEhhbmQgaXQgYSBjb25maWd1cmVkIHtAbGluayBNb2RhbENvbW1hbmRCdWlsZGVyfTsgdGhlIG1vZGFsIGJ1aWxkcyBpdC4gVGhlIHN0cmlwIGlzIHJlbmRlcmVkIGFmdGVyXG4gICAqIHRoZSBidXR0b25zLCBzbyBpdCBzaXRzIGFsb25nIHRoZSBib3R0b20gZWRnZSB3aGVyZSBhIGBTdWdnZXN0TW9kYWxgJ3MgaW5zdHJ1Y3Rpb24gYmFyIHNpdHMuXG4gICAqL1xuICByZWFkb25seSBjb21tYW5kQnVpbGRlcj86IE1vZGFsQ29tbWFuZEJ1aWxkZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB3YXkge0BsaW5rIFByb21wdFBhcmFtcy5jb21tYW5kQnVpbGRlcn0ncyBjb250cm9scyBhcmUgcmVuZGVyZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBNb2RhbENvbW1hbmRzUmVuZGVyTW9kZS5JbnN0cnVjdGlvbnNgXG4gICAqL1xuICByZWFkb25seSBjb21tYW5kc1JlbmRlck1vZGU/OiBNb2RhbENvbW1hbmRzUmVuZGVyTW9kZTtcblxuICAvKipcbiAgICogQSBkZWZhdWx0IHZhbHVlIHRvIHByZS1maWxsIHRoZSBpbnB1dCBmaWVsZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYCcnYFxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHRleHQgZm9yIHRoZSBcIk9LXCIgYnV0dG9uLlxuICAgKi9cbiAgcmVhZG9ubHkgb2tCdXR0b25UZXh0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHBsYWNlaG9sZGVyIHRleHQgZm9yIHRoZSBpbnB1dCBmaWVsZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYCcnYFxuICAgKi9cbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBtb2RlIGRlY2lkaW5nIHdoZXRoZXIgdGhlIGlucHV0IGlzIHNwZWxsLWNoZWNrZWQuXG4gICAqXG4gICAqIFRoZSBkZWZhdWx0IGlzIHdoYXQgdGhpcyBtb2RhbCBoYXMgYWx3YXlzIGRvbmUsIHNvIHBhc3Npbmcgbm90aGluZyBjaGFuZ2VzIG5vdGhpbmc6IHRoZSBpbnB1dCBmb2xsb3dzXG4gICAqIGBFZGl0b3IgPiBTcGVsbGNoZWNrYCwgbGlrZSBPYnNpZGlhbidzIG93biBuYW1lLWVudHJ5IHN1cmZhY2VzLiBQYXNzIHtAbGluayBTcGVsbGNoZWNrTW9kZS5PZmZ9IGZvciBhXG4gICAqIGJveCB0aGF0IGlzIHJlYWxseSBhIHNlYXJjaCBmaWVsZCwgb3Ige0BsaW5rIFNwZWxsY2hlY2tNb2RlLkFsd2F5c09ufSB0byBzcGVsbC1jaGVjayBpdCB3aGF0ZXZlciB0aGVcbiAgICogdmF1bHQgc2V0dGluZyBzYXlzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgU3BlbGxjaGVja01vZGUuRm9sbG93T2JzaWRpYW5TZXR0aW5nYFxuICAgKi9cbiAgcmVhZG9ubHkgc3BlbGxjaGVja01vZGU/OiBTcGVsbGNoZWNrTW9kZTtcblxuICAvKipcbiAgICogQSB0aXRsZSBvZiB0aGUgbW9kYWwuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnJ2BcbiAgICovXG4gIHJlYWRvbmx5IHRpdGxlPzogRG9jdW1lbnRGcmFnbWVudCB8IHN0cmluZztcblxuICAvKipcbiAgICogQSBmdW5jdGlvbiB0byB2YWxpZGF0ZSB0aGUgaW5wdXQgdmFsdWUuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBpbnB1dCB2YWx1ZSB0byB2YWxpZGF0ZS5cbiAgICogQHJldHVybnMgYW4gZXJyb3IgbWVzc2FnZSBpZiB0aGUgdmFsdWUgaXMgaW52YWxpZCwgb3IgYG51bGxgIGlmIHRoZSB2YWx1ZSBpcyB2YWxpZC5cbiAgICovXG4gIHZhbHVlVmFsaWRhdG9yPyh0aGlzOiB2b2lkLCB2YWx1ZTogc3RyaW5nKTogUHJvbWlzYWJsZTxNYXliZVJldHVybjxzdHJpbmc+Pjtcbn1cblxudHlwZSBQcm9tcHRNb2RhbENvbnN0cnVjdG9yUGFyYW1zID0gTW9kYWxCYXNlQ29uc3RydWN0b3JQYXJhbXM8bnVsbCB8IHN0cmluZz4gJiBQcm9tcHRQYXJhbXM7XG5cbmNsYXNzIFByb21wdE1vZGFsIGV4dGVuZHMgTW9kYWxCYXNlPG51bGwgfCBzdHJpbmc+IHtcbiAgcHJpdmF0ZSByZWFkb25seSBjYW5jZWxCdXR0b25UZXh0OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY29tbWFuZEJ1aWxkZXI6IE1vZGFsQ29tbWFuZEJ1aWxkZXIgfCBudWxsO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbW1hbmRzUmVuZGVyTW9kZTogTW9kYWxDb21tYW5kc1JlbmRlck1vZGUgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgaXNPa0NsaWNrZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc1RvdWNoZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSByZWFkb25seSBva0J1dHRvblRleHQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBwbGFjZWhvbGRlcjogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHNwZWxsY2hlY2tNb2RlOiBTcGVsbGNoZWNrTW9kZTtcbiAgcHJpdmF0ZSByZWFkb25seSB0aXRsZTogRG9jdW1lbnRGcmFnbWVudCB8IHN0cmluZztcbiAgcHJpdmF0ZSB2YWx1ZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlVmFsaWRhdG9yOiAodmFsdWU6IHN0cmluZykgPT4gUHJvbWlzYWJsZTxNYXliZVJldHVybjxzdHJpbmc+PjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocGFyYW1zOiBQcm9tcHRNb2RhbENvbnN0cnVjdG9yUGFyYW1zKSB7XG4gICAgc3VwZXIocGFyYW1zKTtcbiAgICB0aGlzLmFkZENzc0NsYXNzZXMoQ3NzQ2xhc3MuUHJvbXB0TW9kYWwpO1xuICAgIHRoaXMuY2FuY2VsQnV0dG9uVGV4dCA9IHBhcmFtcy5jYW5jZWxCdXR0b25UZXh0ID8/IHQoKCQpID0+ICQub2JzaWRpYW5EZXZVdGlscy5idXR0b25zLmNhbmNlbCk7XG4gICAgdGhpcy5jb21tYW5kQnVpbGRlciA9IHBhcmFtcy5jb21tYW5kQnVpbGRlciA/PyBudWxsO1xuICAgIHRoaXMuY29tbWFuZHNSZW5kZXJNb2RlID0gcGFyYW1zLmNvbW1hbmRzUmVuZGVyTW9kZTtcbiAgICB0aGlzLm9rQnV0dG9uVGV4dCA9IHBhcmFtcy5va0J1dHRvblRleHQgPz8gdCgoJCkgPT4gJC5vYnNpZGlhbkRldlV0aWxzLmJ1dHRvbnMub2spO1xuICAgIHRoaXMucGxhY2Vob2xkZXIgPSBwYXJhbXMucGxhY2Vob2xkZXIgPz8gJyc7XG4gICAgdGhpcy5zcGVsbGNoZWNrTW9kZSA9IHBhcmFtcy5zcGVsbGNoZWNrTW9kZSA/PyBTcGVsbGNoZWNrTW9kZS5Gb2xsb3dPYnNpZGlhblNldHRpbmc7XG4gICAgdGhpcy50aXRsZSA9IHBhcmFtcy50aXRsZSA/PyAnJztcbiAgICB0aGlzLnZhbHVlVmFsaWRhdG9yID0gcGFyYW1zLnZhbHVlVmFsaWRhdG9yID8/IG5vb3A7XG4gICAgdGhpcy52YWx1ZSA9IHBhcmFtcy5kZWZhdWx0VmFsdWUgPz8gJyc7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25DbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLnByb21pc2VSZXNvbHZlKHRoaXMuaXNPa0NsaWNrZWQgPyB0aGlzLnZhbHVlIDogbnVsbCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25PcGVuKCk6IHZvaWQge1xuICAgIHRoaXMudGl0bGVFbC5zZXRUZXh0KHRoaXMudGl0bGUpO1xuICAgIGNvbnN0IHRleHRDb21wb25lbnQgPSBuZXcgVGV4dENvbXBvbmVudCh0aGlzLmNvbnRlbnRFbCk7XG4gICAgY29uc3QgaW5wdXRFbCA9IHRleHRDb21wb25lbnQuaW5wdXRFbDtcbiAgICAvLyBgQWJzdHJhY3RUZXh0Q29tcG9uZW50YCBmb3JjZXMgYHNwZWxsY2hlY2s9XCJmYWxzZVwiYCBvbiBldmVyeSB0ZXh0IGNvbXBvbmVudCwgc28gdGhlIG1vZGUgaGFzIHRvIGJlIGFwcGxpZWQgaGVyZS5cbiAgICAvLyBPYnNpZGlhbidzIG93biBmaWxlIGV4cGxvcmVyIHJlYWRzIHRoZSBzYW1lIGNvbmZpZyB3aGVuIGl0IHN0YXJ0cyBhbiBpbmxpbmUgcmVuYW1lLlxuICAgIGFwcGx5U3BlbGxjaGVja01vZGUoe1xuICAgICAgYXBwOiB0aGlzLmFwcCxcbiAgICAgIGVsZW1lbnQ6IGlucHV0RWwsXG4gICAgICBzcGVsbGNoZWNrTW9kZTogdGhpcy5zcGVsbGNoZWNrTW9kZVxuICAgIH0pO1xuXG4gICAgY29uc3QgdmFsaWRhdGUgPSBhc3luYyAoc2hvdWxkUmVwb3J0OiBib29sZWFuKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBhd2FpdCB0aGlzLnZhbHVlVmFsaWRhdG9yKGlucHV0RWwudmFsdWUpIGFzIHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIGlucHV0RWwuc2V0Q3VzdG9tVmFsaWRpdHkoZXJyb3JNZXNzYWdlID8/ICcnKTtcbiAgICAgIGlmIChzaG91bGRSZXBvcnQpIHtcbiAgICAgICAgaW5wdXRFbC5yZXBvcnRWYWxpZGl0eSgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVJbnB1dCA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIHRoaXMubWFya1RvdWNoZWQoaW5wdXRFbCk7XG4gICAgICBhd2FpdCB2YWxpZGF0ZSh0cnVlKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXMgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICBhd2FpdCB2YWxpZGF0ZSh0aGlzLmlzVG91Y2hlZCk7XG4gICAgfTtcblxuICAgIHRleHRDb21wb25lbnQuc2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgdGV4dENvbXBvbmVudC5pbnB1dEVsLnNlbGVjdCgpO1xuICAgIHRleHRDb21wb25lbnQuc2V0UGxhY2Vob2xkZXIodGhpcy5wbGFjZWhvbGRlcik7XG4gICAgaW5wdXRFbC5hZGRDbGFzcyhDc3NDbGFzcy5UZXh0Qm94KTtcbiAgICAvLyBUaGUgbW9kYWwgb3BlbnMgaW52YWxpZCBieSBkZXNpZ24gKHNlZSBiZWxvdyksIHNvIHRoZSBpbnZhbGlkIHN0eWxpbmcgaXMgZGVmZXJyZWQgdW50aWwgdG91Y2hlZC5cbiAgICBpbnB1dEVsLmFkZENsYXNzKENzc0NsYXNzLlVudG91Y2hlZCk7XG4gICAgdGV4dENvbXBvbmVudC5vbkNoYW5nZSgobmV3VmFsdWUpID0+IHtcbiAgICAgIHRoaXMudmFsdWUgPSBuZXdWYWx1ZTtcbiAgICB9KTtcbiAgICBpbnB1dEVsLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgdGhpcy5oYW5kbGVPayhldmVudCwgdGV4dENvbXBvbmVudCk7XG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGlucHV0RWwuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBjb252ZXJ0QXN5bmNUb1N5bmMoaGFuZGxlSW5wdXQpKTtcbiAgICBpbnB1dEVsLmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgY29udmVydEFzeW5jVG9TeW5jKGhhbmRsZUZvY3VzKSk7XG4gICAgLy8gVGhlIG1vZGFsIG11c3Qgc3RhcnQgb3V0IGludmFsaWQgc28gT0sgcmVmdXNlcywgYnV0IHRoZSB2YWxpZGl0eSBpcyBub3QgcmVwb3J0ZWQgdW50aWwgdGhlIHVzZXIgdHlwZXMgb3Igc3VibWl0cy5cbiAgICBpbnZva2VBc3luY1NhZmVseSgoKSA9PiB2YWxpZGF0ZShmYWxzZSkpO1xuICAgIGNvbnN0IG9rQnV0dG9uID0gbmV3IEJ1dHRvbkNvbXBvbmVudCh0aGlzLmNvbnRlbnRFbCk7XG4gICAgb2tCdXR0b24uc2V0QnV0dG9uVGV4dCh0aGlzLm9rQnV0dG9uVGV4dCk7XG4gICAgb2tCdXR0b24uc2V0Q3RhKCk7XG4gICAgb2tCdXR0b24ub25DbGljaygoZXZlbnQpID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlT2soZXZlbnQsIHRleHRDb21wb25lbnQpO1xuICAgIH0pO1xuICAgIG9rQnV0dG9uLnNldENsYXNzKENzc0NsYXNzLk9rQnV0dG9uKTtcbiAgICBjb25zdCBjYW5jZWxCdXR0b24gPSBuZXcgQnV0dG9uQ29tcG9uZW50KHRoaXMuY29udGVudEVsKTtcbiAgICBjYW5jZWxCdXR0b24uc2V0QnV0dG9uVGV4dCh0aGlzLmNhbmNlbEJ1dHRvblRleHQpO1xuICAgIGNhbmNlbEJ1dHRvbi5vbkNsaWNrKHRoaXMuY2xvc2UuYmluZCh0aGlzKSk7XG4gICAgY2FuY2VsQnV0dG9uLnNldENsYXNzKENzc0NsYXNzLkNhbmNlbEJ1dHRvbik7XG5cbiAgICAvLyBCdWlsdCBsYXN0IHNvIHRoZSBzdHJpcCBsYW5kcyBhbG9uZyB0aGUgbW9kYWwncyBib3R0b20gZWRnZSwgd2hlcmUgYSBgU3VnZ2VzdE1vZGFsYCdzIGluc3RydWN0aW9uXG4gICAgLy8gQmFyIHNpdHMuXG4gICAgdGhpcy5jb21tYW5kQnVpbGRlcj8uYnVpbGQodGhpcywgbm9ybWFsaXplT3B0aW9uYWxQcm9wZXJ0aWVzPE1vZGFsQ29tbWFuZEJ1aWxkZXJCdWlsZE9wdGlvbnM+KHsgcmVuZGVyTW9kZTogdGhpcy5jb21tYW5kc1JlbmRlck1vZGUgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVPayhldmVudDogRXZlbnQsIHRleHRDb21wb25lbnQ6IFRleHRDb21wb25lbnQpOiB2b2lkIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGV4dENvbXBvbmVudC5pbnB1dEVsLmNoZWNrVmFsaWRpdHkoKSkge1xuICAgICAgdGhpcy5tYXJrVG91Y2hlZCh0ZXh0Q29tcG9uZW50LmlucHV0RWwpO1xuICAgICAgdGV4dENvbXBvbmVudC5pbnB1dEVsLnJlcG9ydFZhbGlkaXR5KCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc09rQ2xpY2tlZCA9IHRydWU7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXJrVG91Y2hlZChpbnB1dEVsOiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5pc1RvdWNoZWQgPSB0cnVlO1xuICAgIGlucHV0RWwucmVtb3ZlQ2xhc3MoQ3NzQ2xhc3MuVW50b3VjaGVkKTtcbiAgfVxufVxuXG4vKipcbiAqIERpc3BsYXlzIGEgcHJvbXB0IG1vZGFsIGluIE9ic2lkaWFuIHRvIGdldCB1c2VyIGlucHV0LlxuICpcbiAqIEBwYXJhbSBwYXJhbXMgLSBUaGUgcGFyYW1ldGVycyBmb3IgdGhlIHByb21wdCBtb2RhbC5cbiAqIEByZXR1cm5zIEEge0BsaW5rIFByb21pc2V9IHRoYXQgcmVzb2x2ZXMgd2l0aCB0aGUgdXNlciBpbnB1dCBvciBgbnVsbGAgaWYgdGhlIHByb21wdCB3YXMgY2FuY2VsbGVkLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvbXB0KHBhcmFtczogUHJvbXB0UGFyYW1zKTogUHJvbWlzZTxudWxsIHwgc3RyaW5nPiB7XG4gIHJldHVybiBhd2FpdCBzaG93TW9kYWw8bnVsbCB8IHN0cmluZz4oKHByb21pc2VSZXNvbHZlKSA9PlxuICAgIG5ldyBQcm9tcHRNb2RhbCh7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBwcm9taXNlUmVzb2x2ZVxuICAgIH0pXG4gICk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBLHNCQUdPO0FBYVAsbUJBR087QUFDUCxzQkFBcUI7QUFDckIsMEJBQTRDO0FBQzVDLHVCQUF5QjtBQUN6QiwwQkFBb0M7QUFDcEMsa0JBQWtCO0FBQ2xCLCtCQUErQjtBQUMvQixtQkFHTztBQTRFUCxNQUFNLG9CQUFvQix1QkFBeUI7QUFBQSxFQUNoQztBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDVCxjQUFjO0FBQUEsRUFDZCxZQUFZO0FBQUEsRUFDSDtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFB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
@@ -10,6 +10,7 @@ import type { Promisable } from 'type-fest' with { 'resolution-mode': 'import' }
10
10
  import type { MaybeReturn } from '../../type.cjs';
11
11
  import type { ModalCommandBuilder, ModalCommandsRenderMode } from './modal-command-builder.cjs';
12
12
  import type { ModalParamsBase } from './modal.cjs';
13
+ import { SpellcheckMode } from '../obsidian-settings.cjs';
13
14
  /**
14
15
  * Options for {@link prompt}.
15
16
  */
@@ -48,6 +49,17 @@ export interface PromptParams extends ModalParamsBase {
48
49
  * @default `''`
49
50
  */
50
51
  readonly placeholder?: string;
52
+ /**
53
+ * The mode deciding whether the input is spell-checked.
54
+ *
55
+ * The default is what this modal has always done, so passing nothing changes nothing: the input follows
56
+ * `Editor > Spellcheck`, like Obsidian's own name-entry surfaces. Pass {@link SpellcheckMode.Off} for a
57
+ * box that is really a search field, or {@link SpellcheckMode.AlwaysOn} to spell-check it whatever the
58
+ * vault setting says.
59
+ *
60
+ * @default `SpellcheckMode.FollowObsidianSetting`
61
+ */
62
+ readonly spellcheckMode?: SpellcheckMode;
51
63
  /**
52
64
  * A title of the modal.
53
65
  *
@@ -147,6 +147,8 @@ __export(select_item_exports, {
147
147
  module.exports = __toCommonJS(select_item_exports);
148
148
  var import_obsidian = require('obsidian');
149
149
  var import_css_class = require('../css-class.cjs');
150
+ var import_html_element = require('../html-element.cjs');
151
+ var import_obsidian_settings = require('../obsidian-settings.cjs');
150
152
  var import_plugin_context = require('../plugin/plugin-context.cjs');
151
153
  var import_modal = require('./modal.cjs');
152
154
  class ItemSelectModal extends import_obsidian.FuzzySuggestModal {
@@ -155,12 +157,14 @@ class ItemSelectModal extends import_obsidian.FuzzySuggestModal {
155
157
  itemTextFunction;
156
158
  placeholder;
157
159
  promiseResolve;
160
+ spellcheckMode;
158
161
  constructor(params) {
159
162
  super(params.app);
160
163
  this.items = params.items;
161
164
  this.itemTextFunction = params.itemTextFunction;
162
165
  this.placeholder = params.placeholder;
163
166
  this.promiseResolve = params.promiseResolve;
167
+ this.spellcheckMode = params.spellcheckMode ?? import_obsidian_settings.SpellcheckMode.Off;
164
168
  this.setPlaceholder(this.placeholder ?? "");
165
169
  (0, import_plugin_context.addPluginCssClasses)(this.containerEl, params.cssClasses);
166
170
  (0, import_plugin_context.addPluginCssClasses)(this.containerEl, import_css_class.CssClass.SelectItemModal);
@@ -179,6 +183,14 @@ class ItemSelectModal extends import_obsidian.FuzzySuggestModal {
179
183
  this.promiseResolve(null);
180
184
  }
181
185
  }
186
+ onOpen() {
187
+ super.onOpen();
188
+ (0, import_html_element.applySpellcheckMode)({
189
+ app: this.app,
190
+ element: this.inputEl,
191
+ spellcheckMode: this.spellcheckMode
192
+ });
193
+ }
182
194
  selectSuggestion(value, $event) {
183
195
  this.isSelected = true;
184
196
  super.selectSuggestion(value, $event);
@@ -196,4 +208,4 @@ async function selectItem(params) {
196
208
  0 && (module.exports = {
197
209
  selectItem
198
210
  });
199
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21vZGFscy9zZWxlY3QtaXRlbS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFV0aWxpdHkgZm9yIGRpc3BsYXlpbmcgYSBzZWxlY3Rpb24gbW9kYWwgaW4gT2JzaWRpYW4uXG4gKlxuICogVGhpcyBtb2R1bGUgZXhwb3J0cyBhIGZ1bmN0aW9uIHRvIGRpc3BsYXkgYSBtb2RhbCB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBzZWxlY3QgYW4gaXRlbSBmcm9tIGEgbGlzdC4gVGhlIG1vZGFsIHVzZXMgZnV6enkgc2VhcmNoIHRvIGhlbHAgdGhlIHVzZXIgZmluZCB0aGUgaXRlbS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZ1enp5TWF0Y2ggfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IEZ1enp5U3VnZ2VzdE1vZGFsIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2VSZXNvbHZlIH0gZnJvbSAnLi4vLi4vYXN5bmMudHMnO1xuaW1wb3J0IHR5cGUge1xuICBNb2RhbEJhc2VDb25zdHJ1Y3RvclBhcmFtcyxcbiAgTW9kYWxQYXJhbXNCYXNlXG59IGZyb20gJy4vbW9kYWwudHMnO1xuXG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uL2Nzcy1jbGFzcy50cyc7XG5pbXBvcnQgeyBhZGRQbHVnaW5Dc3NDbGFzc2VzIH0gZnJvbSAnLi4vcGx1Z2luL3BsdWdpbi1jb250ZXh0LnRzJztcbmltcG9ydCB7IHNob3dNb2RhbCB9IGZyb20gJy4vbW9kYWwudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHtAbGluayBzZWxlY3RJdGVtfS5cbiAqXG4gKiBAdHlwZVBhcmFtIFQgLSBUaGUgdHlwZSBvZiB0aGUgc2VsZWN0YWJsZSBpdGVtcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RJdGVtUGFyYW1zPFQ+IGV4dGVuZHMgTW9kYWxQYXJhbXNCYXNlIHtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBpdGVtcyB0byBjaG9vc2UgZnJvbS5cbiAgICovXG4gIHJlYWRvbmx5IGl0ZW1zOiBUW107XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZGlzcGxheSB0ZXh0IGZvciBlYWNoIGl0ZW1cbiAgICpcbiAgICogQHBhcmFtIGl0ZW0gLSBUaGUgaXRlbSB0byBnZXQgdGhlIGRpc3BsYXkgdGV4dCBmb3IuXG4gICAqIEByZXR1cm5zIFRoZSBkaXNwbGF5IHRleHQgZm9yIHRoZSBpdGVtLlxuICAgKi9cbiAgaXRlbVRleHRGdW5jdGlvbih0aGlzOiB2b2lkLCBpdGVtOiBUKTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIHBsYWNlaG9sZGVyIHRleHQgZm9yIHRoZSBpbnB1dCBmaWVsZC5cbiAgICpcbiAgICogQGRlZmF1bHQgYCcnYFxuICAgKi9cbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG59XG5cbnR5cGUgSXRlbVNlbGVjdE1vZGFsQ29uc3RydWN0b3JQYXJhbXM8VD4gPSBNb2RhbEJhc2VDb25zdHJ1Y3RvclBhcmFtczxudWxsIHwgVD4gJiBTZWxlY3RJdGVtUGFyYW1zPFQ+O1xuXG5jbGFzcyBJdGVtU2VsZWN0TW9kYWw8VD4gZXh0ZW5kcyBGdXp6eVN1Z2dlc3RNb2RhbDxUPiB7XG4gIHByaXZhdGUgaXNTZWxlY3RlZCA9IGZhbHNlO1xuICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zOiBUW107XG4gIHByaXZhdGUgcmVhZG9ubHkgaXRlbVRleHRGdW5jdGlvbjogKHRoaXM6IHZvaWQsIGl0ZW06IFQpID0+IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBwbGFjZWhvbGRlcjogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IHByb21pc2VSZXNvbHZlOiBQcm9taXNlUmVzb2x2ZTxudWxsIHwgVD47XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogSXRlbVNlbGVjdE1vZGFsQ29uc3RydWN0b3JQYXJhbXM8VD4pIHtcbiAgICBzdXBlcihwYXJhbXMuYXBwKTtcbiAgICB0aGlzLml0ZW1zID0gcGFyYW1zLml0ZW1zO1xuICAgIHRoaXMuaXRlbVRleHRGdW5jdGlvbiA9IHBhcmFtcy5pdGVtVGV4dEZ1bmN0aW9uO1xuICAgIHRoaXMucGxhY2Vob2xkZXIgPSBwYXJhbXMucGxhY2Vob2xkZXI7XG4gICAgdGhpcy5wcm9taXNlUmVzb2x2ZSA9IHBhcmFtcy5wcm9taXNlUmVzb2x2ZTtcblxuICAgIHRoaXMuc2V0UGxhY2Vob2xkZXIodGhpcy5wbGFjZWhvbGRlciA/PyAnJyk7XG4gICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyh0aGlzLmNvbnRhaW5lckVsLCBwYXJhbXMuY3NzQ2xhc3Nlcyk7XG4gICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyh0aGlzLmNvbnRhaW5lckVsLCBDc3NDbGFzcy5TZWxlY3RJdGVtTW9kYWwpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldEl0ZW1zKCk6IFRbXSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXM7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0SXRlbVRleHQoaXRlbTogVCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbVRleHRGdW5jdGlvbihpdGVtKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvbkNob29zZUl0ZW0oaXRlbTogVCk6IHZvaWQge1xuICAgIHRoaXMucHJvbWlzZVJlc29sdmUoaXRlbSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25DbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNTZWxlY3RlZCkge1xuICAgICAgdGhpcy5wcm9taXNlUmVzb2x2ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgc2VsZWN0U3VnZ2VzdGlvbih2YWx1ZTogRnV6enlNYXRjaDxUPiwgJGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgc3VwZXIuc2VsZWN0U3VnZ2VzdGlvbih2YWx1ZSwgJGV2ZW50KTtcbiAgfVxufVxuXG4vKipcbiAqIERpc3BsYXlzIGEgc2VsZWN0aW9uIG1vZGFsIGluIE9ic2lkaWFuIGZvciBjaG9vc2luZyBhbiBpdGVtIGZyb20gYSBsaXN0LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBzZWxlY3RhYmxlIGl0ZW1zLlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgc2VsZWN0aW9uIG1vZGFsLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBzZWxlY3RlZCBpdGVtIG9yIGBudWxsYCBpZiBubyBpdGVtIHdhcyBzZWxlY3RlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbGVjdEl0ZW08VD4ocGFyYW1zOiBTZWxlY3RJdGVtUGFyYW1zPFQ+KTogUHJvbWlzZTxudWxsIHwgVD4ge1xuICByZXR1cm4gYXdhaXQgc2hvd01vZGFsPG51bGwgfCBUPigocHJvbWlzZVJlc29sdmUpID0+XG4gICAgbmV3IEl0ZW1TZWxlY3RNb2RhbCh7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBwcm9taXNlUmVzb2x2ZVxuICAgIH0pXG4gICk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBLHNCQUFrQztBQVFsQyx1QkFBeUI7QUFDekIsNEJBQW9DO0FBQ3BDLG1CQUEwQjtBQStCMUIsTUFBTSx3QkFBMkIsa0NBQXFCO0FBQUEsRUFDNUMsYUFBYTtBQUFBLEVBQ0o7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVWLFlBQVksUUFBNkM7QUFDOUQsVUFBTSxPQUFPLEdBQUc7QUFDaEIsU0FBSyxRQUFRLE9BQU87QUFDcEIsU0FBSyxtQkFBbUIsT0FBTztBQUMvQixTQUFLLGNBQWMsT0FBTztBQUMxQixTQUFLLGlCQUFpQixPQUFPO0FBRTdCLFNBQUssZUFBZSxLQUFLLGVBQWUsRUFBRTtBQUMxQyxtREFBb0IsS0FBSyxhQUFhLE9BQU8sVUFBVTtBQUN2RCxtREFBb0IsS0FBSyxhQUFhLDBCQUFTLGVBQWU7QUFBQSxFQUNoRTtBQUFBLEVBRWdCLFdBQWdCO0FBQzlCLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVnQixZQUFZLE1BQWlCO0FBQzNDLFdBQU8sS0FBSyxpQkFBaUIsSUFBSTtBQUFBLEVBQ25DO0FBQUEsRUFFZ0IsYUFBYSxNQUFlO0FBQzFDLFNBQUssZUFBZSxJQUFJO0FBQUEsRUFDMUI7QUFBQSxFQUVnQixVQUFnQjtBQUM5QixRQUFJLENBQUMsS0FBSyxZQUFZO0FBQ3BCLFdBQUssZUFBZSxJQUFJO0FBQUEsSUFDMUI7QUFBQSxFQUNGO0FBQUEsRUFFZ0IsaUJBQWlCLE9BQXNCLFFBQTBDO0FBQy9GLFNBQUssYUFBYTtBQUNsQixVQUFNLGlCQUFpQixPQUFPLE1BQU07QUFBQSxFQUN0QztBQUNGO0FBU0EsZUFBc0IsV0FBYyxRQUFnRDtBQUNsRixTQUFPLFVBQU07QUFBQSxJQUFvQixDQUFDLG1CQUNoQyxJQUFJLGdCQUFnQjtBQUFBLE1BQ2xCLEdBQUc7QUFBQSxNQUNIO0FBQUEsSUFDRixDQUFDO0FBQUEsRUFDSDtBQUNGOyIsCiAgIm5hbWVzIjogW10KfQo=
211
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL21vZGFscy9zZWxlY3QtaXRlbS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiLyoqXG4gKiBAZmlsZVxuICpcbiAqIFV0aWxpdHkgZm9yIGRpc3BsYXlpbmcgYSBzZWxlY3Rpb24gbW9kYWwgaW4gT2JzaWRpYW4uXG4gKlxuICogVGhpcyBtb2R1bGUgZXhwb3J0cyBhIGZ1bmN0aW9uIHRvIGRpc3BsYXkgYSBtb2RhbCB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBzZWxlY3QgYW4gaXRlbSBmcm9tIGEgbGlzdC4gVGhlIG1vZGFsIHVzZXMgZnV6enkgc2VhcmNoIHRvIGhlbHAgdGhlIHVzZXIgZmluZCB0aGUgaXRlbS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEZ1enp5TWF0Y2ggfSBmcm9tICdvYnNpZGlhbic7XG5cbmltcG9ydCB7IEZ1enp5U3VnZ2VzdE1vZGFsIH0gZnJvbSAnb2JzaWRpYW4nO1xuXG5pbXBvcnQgdHlwZSB7IFByb21pc2VSZXNvbHZlIH0gZnJvbSAnLi4vLi4vYXN5bmMudHMnO1xuaW1wb3J0IHR5cGUge1xuICBNb2RhbEJhc2VDb25zdHJ1Y3RvclBhcmFtcyxcbiAgTW9kYWxQYXJhbXNCYXNlXG59IGZyb20gJy4vbW9kYWwudHMnO1xuXG5pbXBvcnQgeyBDc3NDbGFzcyB9IGZyb20gJy4uL2Nzcy1jbGFzcy50cyc7XG5pbXBvcnQgeyBhcHBseVNwZWxsY2hlY2tNb2RlIH0gZnJvbSAnLi4vaHRtbC1lbGVtZW50LnRzJztcbmltcG9ydCB7IFNwZWxsY2hlY2tNb2RlIH0gZnJvbSAnLi4vb2JzaWRpYW4tc2V0dGluZ3MudHMnO1xuaW1wb3J0IHsgYWRkUGx1Z2luQ3NzQ2xhc3NlcyB9IGZyb20gJy4uL3BsdWdpbi9wbHVnaW4tY29udGV4dC50cyc7XG5pbXBvcnQgeyBzaG93TW9kYWwgfSBmcm9tICcuL21vZGFsLnRzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciB7QGxpbmsgc2VsZWN0SXRlbX0uXG4gKlxuICogQHR5cGVQYXJhbSBUIC0gVGhlIHR5cGUgb2YgdGhlIHNlbGVjdGFibGUgaXRlbXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0SXRlbVBhcmFtczxUPiBleHRlbmRzIE1vZGFsUGFyYW1zQmFzZSB7XG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgaXRlbXMgdG8gY2hvb3NlIGZyb20uXG4gICAqL1xuICByZWFkb25seSBpdGVtczogVFtdO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGRpc3BsYXkgdGV4dCBmb3IgZWFjaCBpdGVtXG4gICAqXG4gICAqIEBwYXJhbSBpdGVtIC0gVGhlIGl0ZW0gdG8gZ2V0IHRoZSBkaXNwbGF5IHRleHQgZm9yLlxuICAgKiBAcmV0dXJucyBUaGUgZGlzcGxheSB0ZXh0IGZvciB0aGUgaXRlbS5cbiAgICovXG4gIGl0ZW1UZXh0RnVuY3Rpb24odGhpczogdm9pZCwgaXRlbTogVCk6IHN0cmluZztcblxuICAvKipcbiAgICogQSBwbGFjZWhvbGRlciB0ZXh0IGZvciB0aGUgaW5wdXQgZmllbGQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGAnJ2BcbiAgICovXG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9kZSBkZWNpZGluZyB3aGV0aGVyIHRoZSBzZWFyY2ggYm94IGlzIHNwZWxsLWNoZWNrZWQuXG4gICAqXG4gICAqIFRoZSBkZWZhdWx0IGlzIHdoYXQgdGhpcyBtb2RhbCBoYXMgYWx3YXlzIGRvbmUsIHNvIHBhc3Npbmcgbm90aGluZyBjaGFuZ2VzIG5vdGhpbmcuIEl0IGRpZmZlcnMgZnJvbVxuICAgKiB0aGUgYHByb21wdCgpYCBwYXJhbWV0ZXIncyBkZWZhdWx0IG9uIHB1cnBvc2U6IE9ic2lkaWFuIGJ1aWxkcyBldmVyeSBgU3VnZ2VzdE1vZGFsYCBpbnB1dFxuICAgKiB3aXRoIGEgaGFyZGNvZGVkIGBzcGVsbGNoZWNrPVwiZmFsc2VcImAgYW5kIG5ldmVyIGNvbnN1bHRzIGBFZGl0b3IgPiBTcGVsbGNoZWNrYCB0aGVyZSwgc28gYE9mZmAgXHUyMDE0IG5vdFxuICAgKiBgRm9sbG93T2JzaWRpYW5TZXR0aW5nYCBcdTIwMTQgaXMgdGhlIHZhbHVlIHRoYXQgbGVhdmVzIHRoZSBib3ggZXhhY3RseSBhcyBPYnNpZGlhbiBidWlsdCBpdC5cbiAgICpcbiAgICogUmFpc2UgaXQgZm9yIGEgcGlja2VyIHdob3NlIGJveCBjYW4gTkFNRSB0aGUgdGhpbmcgaXQgaXMgYWJvdXQgdG8gY3JlYXRlLCByYXRoZXIgdGhhbiBvbmx5IGZpbmQgb25lLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgU3BlbGxjaGVja01vZGUuT2ZmYFxuICAgKi9cbiAgcmVhZG9ubHkgc3BlbGxjaGVja01vZGU/OiBTcGVsbGNoZWNrTW9kZTtcbn1cblxudHlwZSBJdGVtU2VsZWN0TW9kYWxDb25zdHJ1Y3RvclBhcmFtczxUPiA9IE1vZGFsQmFzZUNvbnN0cnVjdG9yUGFyYW1zPG51bGwgfCBUPiAmIFNlbGVjdEl0ZW1QYXJhbXM8VD47XG5cbmNsYXNzIEl0ZW1TZWxlY3RNb2RhbDxUPiBleHRlbmRzIEZ1enp5U3VnZ2VzdE1vZGFsPFQ+IHtcbiAgcHJpdmF0ZSBpc1NlbGVjdGVkID0gZmFsc2U7XG4gIHByaXZhdGUgcmVhZG9ubHkgaXRlbXM6IFRbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBpdGVtVGV4dEZ1bmN0aW9uOiAodGhpczogdm9pZCwgaXRlbTogVCkgPT4gc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvbWlzZVJlc29sdmU6IFByb21pc2VSZXNvbHZlPG51bGwgfCBUPjtcbiAgcHJpdmF0ZSByZWFkb25seSBzcGVsbGNoZWNrTW9kZTogU3BlbGxjaGVja01vZGU7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtczogSXRlbVNlbGVjdE1vZGFsQ29uc3RydWN0b3JQYXJhbXM8VD4pIHtcbiAgICBzdXBlcihwYXJhbXMuYXBwKTtcbiAgICB0aGlzLml0ZW1zID0gcGFyYW1zLml0ZW1zO1xuICAgIHRoaXMuaXRlbVRleHRGdW5jdGlvbiA9IHBhcmFtcy5pdGVtVGV4dEZ1bmN0aW9uO1xuICAgIHRoaXMucGxhY2Vob2xkZXIgPSBwYXJhbXMucGxhY2Vob2xkZXI7XG4gICAgdGhpcy5wcm9taXNlUmVzb2x2ZSA9IHBhcmFtcy5wcm9taXNlUmVzb2x2ZTtcbiAgICB0aGlzLnNwZWxsY2hlY2tNb2RlID0gcGFyYW1zLnNwZWxsY2hlY2tNb2RlID8/IFNwZWxsY2hlY2tNb2RlLk9mZjtcblxuICAgIHRoaXMuc2V0UGxhY2Vob2xkZXIodGhpcy5wbGFjZWhvbGRlciA/PyAnJyk7XG4gICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyh0aGlzLmNvbnRhaW5lckVsLCBwYXJhbXMuY3NzQ2xhc3Nlcyk7XG4gICAgYWRkUGx1Z2luQ3NzQ2xhc3Nlcyh0aGlzLmNvbnRhaW5lckVsLCBDc3NDbGFzcy5TZWxlY3RJdGVtTW9kYWwpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldEl0ZW1zKCk6IFRbXSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXM7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0SXRlbVRleHQoaXRlbTogVCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbVRleHRGdW5jdGlvbihpdGVtKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvbkNob29zZUl0ZW0oaXRlbTogVCk6IHZvaWQge1xuICAgIHRoaXMucHJvbWlzZVJlc29sdmUoaXRlbSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25DbG9zZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNTZWxlY3RlZCkge1xuICAgICAgdGhpcy5wcm9taXNlUmVzb2x2ZShudWxsKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25PcGVuKCk6IHZvaWQge1xuICAgIHN1cGVyLm9uT3BlbigpO1xuICAgIGFwcGx5U3BlbGxjaGVja01vZGUoe1xuICAgICAgYXBwOiB0aGlzLmFwcCxcbiAgICAgIGVsZW1lbnQ6IHRoaXMuaW5wdXRFbCxcbiAgICAgIHNwZWxsY2hlY2tNb2RlOiB0aGlzLnNwZWxsY2hlY2tNb2RlXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgc2VsZWN0U3VnZ2VzdGlvbih2YWx1ZTogRnV6enlNYXRjaDxUPiwgJGV2ZW50OiBLZXlib2FyZEV2ZW50IHwgTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgc3VwZXIuc2VsZWN0U3VnZ2VzdGlvbih2YWx1ZSwgJGV2ZW50KTtcbiAgfVxufVxuXG4vKipcbiAqIERpc3BsYXlzIGEgc2VsZWN0aW9uIG1vZGFsIGluIE9ic2lkaWFuIGZvciBjaG9vc2luZyBhbiBpdGVtIGZyb20gYSBsaXN0LlxuICpcbiAqIEB0eXBlUGFyYW0gVCAtIFRoZSB0eXBlIG9mIHRoZSBzZWxlY3RhYmxlIGl0ZW1zLlxuICogQHBhcmFtIHBhcmFtcyAtIFRoZSBwYXJhbWV0ZXJzIGZvciB0aGUgc2VsZWN0aW9uIG1vZGFsLlxuICogQHJldHVybnMgQSB7QGxpbmsgUHJvbWlzZX0gdGhhdCByZXNvbHZlcyB3aXRoIHRoZSBzZWxlY3RlZCBpdGVtIG9yIGBudWxsYCBpZiBubyBpdGVtIHdhcyBzZWxlY3RlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNlbGVjdEl0ZW08VD4ocGFyYW1zOiBTZWxlY3RJdGVtUGFyYW1zPFQ+KTogUHJvbWlzZTxudWxsIHwgVD4ge1xuICByZXR1cm4gYXdhaXQgc2hvd01vZGFsPG51bGwgfCBUPigocHJvbWlzZVJlc29sdmUpID0+XG4gICAgbmV3IEl0ZW1TZWxlY3RNb2RhbCh7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICBwcm9taXNlUmVzb2x2ZVxuICAgIH0pXG4gICk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQVVBLHNCQUFrQztBQVFsQyx1QkFBeUI7QUFDekIsMEJBQW9DO0FBQ3BDLCtCQUErQjtBQUMvQiw0QkFBb0M7QUFDcEMsbUJBQTBCO0FBNkMxQixNQUFNLHdCQUEyQixrQ0FBcUI7QUFBQSxFQUM1QyxhQUFhO0FBQUEsRUFDSjtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVWLFlBQVksUUFBNkM7QUFDOUQsVUFBTSxPQUFPLEdBQUc7QUFDaEIsU0FBSyxRQUFRLE9BQU87QUFDcEIsU0FBSyxtQkFBbUIsT0FBTztBQUMvQixTQUFLLGNBQWMsT0FBTztBQUMxQixTQUFLLGlCQUFpQixPQUFPO0FBQzdCLFNBQUssaUJBQWlCLE9BQU8sa0JBQWtCLHdDQUFlO0FBRTlELFNBQUssZUFBZSxLQUFLLGVBQWUsRUFBRTtBQUMxQyxtREFBb0IsS0FBSyxhQUFhLE9BQU8sVUFBVTtBQUN2RCxtREFBb0IsS0FBSyxhQUFhLDBCQUFTLGVBQWU7QUFBQSxFQUNoRTtBQUFBLEVBRWdCLFdBQWdCO0FBQzlCLFdBQU8sS0FBSztBQUFBLEVBQ2Q7QUFBQSxFQUVnQixZQUFZLE1BQWlCO0FBQzNDLFdBQU8sS0FBSyxpQkFBaUIsSUFBSTtBQUFBLEVBQ25DO0FBQUEsRUFFZ0IsYUFBYSxNQUFlO0FBQzFDLFNBQUssZUFBZSxJQUFJO0FBQUEsRUFDMUI7QUFBQSxFQUVnQixVQUFnQjtBQUM5QixRQUFJLENBQUMsS0FBSyxZQUFZO0FBQ3BCLFdBQUssZUFBZSxJQUFJO0FBQUEsSUFDMUI7QUFBQSxFQUNGO0FBQUEsRUFFZ0IsU0FBZTtBQUM3QixVQUFNLE9BQU87QUFDYixpREFBb0I7QUFBQSxNQUNsQixLQUFLLEtBQUs7QUFBQSxNQUNWLFNBQVMsS0FBSztBQUFBLE1BQ2QsZ0JBQWdCLEtBQUs7QUFBQSxJQUN2QixDQUFDO0FBQUEsRUFDSDtBQUFBLEVBRWdCLGlCQUFpQixPQUFzQixRQUEwQztBQUMvRixTQUFLLGFBQWE7QUFDbEIsVUFBTSxpQkFBaUIsT0FBTyxNQUFNO0FBQUEsRUFDdEM7QUFDRjtBQVNBLGVBQXNCLFdBQWMsUUFBZ0Q7QUFDbEYsU0FBTyxVQUFNO0FBQUEsSUFBb0IsQ0FBQyxtQkFDaEMsSUFBSSxnQkFBZ0I7QUFBQSxNQUNsQixHQUFHO0FBQUEsTUFDSDtBQUFBLElBQ0YsQ0FBQztBQUFBLEVBQ0g7QUFDRjsiLAogICJuYW1lcyI6IFtdCn0K
@@ -7,6 +7,7 @@
7
7
  * This module exports a function to display a modal that allows the user to select an item from a list. The modal uses fuzzy search to help the user find the item.
8
8
  */
9
9
  import type { ModalParamsBase } from './modal.cjs';
10
+ import { SpellcheckMode } from '../obsidian-settings.cjs';
10
11
  /**
11
12
  * Options for {@link selectItem}.
12
13
  *
@@ -30,6 +31,19 @@ export interface SelectItemParams<T> extends ModalParamsBase {
30
31
  * @default `''`
31
32
  */
32
33
  readonly placeholder?: string;
34
+ /**
35
+ * The mode deciding whether the search box is spell-checked.
36
+ *
37
+ * The default is what this modal has always done, so passing nothing changes nothing. It differs from
38
+ * the `prompt()` parameter's default on purpose: Obsidian builds every `SuggestModal` input
39
+ * with a hardcoded `spellcheck="false"` and never consults `Editor > Spellcheck` there, so `Off` — not
40
+ * `FollowObsidianSetting` — is the value that leaves the box exactly as Obsidian built it.
41
+ *
42
+ * Raise it for a picker whose box can NAME the thing it is about to create, rather than only find one.
43
+ *
44
+ * @default `SpellcheckMode.Off`
45
+ */
46
+ readonly spellcheckMode?: SpellcheckMode;
33
47
  }
34
48
  /**
35
49
  * Displays a selection modal in Obsidian for choosing an item from a list.
@@ -142,24 +142,51 @@ var __copyProps = (to, from, except, desc) => {
142
142
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
143
143
  var obsidian_settings_exports = {};
144
144
  __export(obsidian_settings_exports, {
145
+ SpellcheckMode: () => SpellcheckMode,
145
146
  getNewLinkFormat: () => getNewLinkFormat,
146
147
  isSpellcheckEnabled: () => isSpellcheckEnabled,
148
+ isSpellcheckEnabledForMode: () => isSpellcheckEnabledForMode,
147
149
  shouldUseWikilinks: () => shouldUseWikilinks
148
150
  });
149
151
  module.exports = __toCommonJS(obsidian_settings_exports);
152
+ var import_type_guards = require('../type-guards.cjs');
153
+ var SpellcheckMode = /* @__PURE__ */ ((SpellcheckMode2) => {
154
+ SpellcheckMode2["AlwaysOn"] = "AlwaysOn";
155
+ SpellcheckMode2["FollowObsidianSetting"] = "FollowObsidianSetting";
156
+ SpellcheckMode2["Off"] = "Off";
157
+ return SpellcheckMode2;
158
+ })(SpellcheckMode || {});
150
159
  function getNewLinkFormat(app) {
151
160
  return app.vault.getConfig("newLinkFormat");
152
161
  }
153
162
  function isSpellcheckEnabled(app) {
154
163
  return Boolean(app.vault.getConfig("spellcheck"));
155
164
  }
165
+ function isSpellcheckEnabledForMode(app, spellcheckMode) {
166
+ switch (spellcheckMode) {
167
+ case "AlwaysOn" /* AlwaysOn */: {
168
+ return true;
169
+ }
170
+ case "FollowObsidianSetting" /* FollowObsidianSetting */: {
171
+ return isSpellcheckEnabled(app);
172
+ }
173
+ case "Off" /* Off */: {
174
+ return false;
175
+ }
176
+ default: {
177
+ (0, import_type_guards.assertNever)(spellcheckMode);
178
+ }
179
+ }
180
+ }
156
181
  function shouldUseWikilinks(app) {
157
182
  return !app.vault.getConfig("useMarkdownLinks");
158
183
  }
159
184
  // Annotate the CommonJS export names for ESM import in node:
160
185
  0 && (module.exports = {
186
+ SpellcheckMode,
161
187
  getNewLinkFormat,
162
188
  isSpellcheckEnabled,
189
+ isSpellcheckEnabledForMode,
163
190
  shouldUseWikilinks
164
191
  });
165
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL29ic2lkaWFuLXNldHRpbmdzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBPYnNpZGlhbiBzZXR0aW5ncy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuLyoqXG4gKiBBIGZvcm1hdCBvZiB0aGUgbmV3IGxpbmsuXG4gKi9cbmV4cG9ydCB0eXBlIE5ld0xpbmtGb3JtYXQgPSAnYWJzb2x1dGUnIHwgJ3JlbGF0aXZlJyB8ICdzaG9ydGVzdCc7XG5cbi8qKlxuICogUmV0cmlldmVzIHdoZXRoZXIgdG8gdXNlIHJlbGF0aXZlIGxpbmtzIGJhc2VkIG9uIHRoZSBPYnNpZGlhbiBzZXR0aW5ncy5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdG8gdXNlIHJlbGF0aXZlIGxpbmtzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV3TGlua0Zvcm1hdChhcHA6IEFwcCk6IE5ld0xpbmtGb3JtYXQge1xuICByZXR1cm4gYXBwLnZhdWx0LmdldENvbmZpZygnbmV3TGlua0Zvcm1hdCcpIGFzIE5ld0xpbmtGb3JtYXQ7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHdoZXRoZXIgdGhlIHNwZWxsY2hlY2sgaXMgZW5hYmxlZCBiYXNlZCBvbiB0aGUgT2JzaWRpYW4gc2V0dGluZ3MuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBzcGVsbGNoZWNrIGlzIGVuYWJsZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NwZWxsY2hlY2tFbmFibGVkKGFwcDogQXBwKTogYm9vbGVhbiB7XG4gIHJldHVybiBCb29sZWFuKGFwcC52YXVsdC5nZXRDb25maWcoJ3NwZWxsY2hlY2snKSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHdoZXRoZXIgdG8gdXNlIHdpa2lsaW5rcyBiYXNlZCBvbiB0aGUgT2JzaWRpYW4gc2V0dGluZ3MuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRvIHVzZSB3aWtpbGlua3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaG91bGRVc2VXaWtpbGlua3MoYXBwOiBBcHApOiBib29sZWFuIHtcbiAgcmV0dXJuICFhcHAudmF1bHQuZ2V0Q29uZmlnKCd1c2VNYXJrZG93bkxpbmtzJyk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFtQk8sU0FBUyxpQkFBaUIsS0FBeUI7QUFDeEQsU0FBTyxJQUFJLE1BQU0sVUFBVSxlQUFlO0FBQzVDO0FBUU8sU0FBUyxvQkFBb0IsS0FBbUI7QUFDckQsU0FBTyxRQUFRLElBQUksTUFBTSxVQUFVLFlBQVksQ0FBQztBQUNsRDtBQVFPLFNBQVMsbUJBQW1CLEtBQW1CO0FBQ3BELFNBQU8sQ0FBQyxJQUFJLE1BQU0sVUFBVSxrQkFBa0I7QUFDaEQ7IiwKICAibmFtZXMiOiBbXQp9Cg==
192
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vLi4vLi4vc3JjL29ic2lkaWFuL29ic2lkaWFuLXNldHRpbmdzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWyIvKipcbiAqIEBmaWxlXG4gKlxuICogVGhpcyBtb2R1bGUgcHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBPYnNpZGlhbiBzZXR0aW5ncy5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IEFwcCB9IGZyb20gJ29ic2lkaWFuJztcblxuaW1wb3J0IHsgYXNzZXJ0TmV2ZXIgfSBmcm9tICcuLi90eXBlLWd1YXJkcy50cyc7XG5cbi8qKlxuICogQSB3YXkgYW4gaW5wdXQgZGVjaWRlcyB3aGV0aGVyIGl0IGlzIHNwZWxsLWNoZWNrZWQuXG4gKlxuICogVGhlIGBzcGVsbGNoZWNrYCBhdHRyaWJ1dGUgaXMgdGhlIHdob2xlIG1lY2hhbmlzbTogT2JzaWRpYW4gbmV2ZXIgY2FsbHMgRWxlY3Ryb24nc1xuICogYHNldFNwZWxsQ2hlY2tlckVuYWJsZWRgLCBpdCBvbmx5IHNldHMgdGhlIGF0dHJpYnV0ZSBwZXIgZWxlbWVudC4gU28gYEFsd2F5c09uYCByZWFsbHkgZG9lcyBzcGVsbC1jaGVja1xuICogd2l0aCBgRWRpdG9yID4gU3BlbGxjaGVja2Agb2ZmLCBhbmQgd2hhdCBpdCBpbnZva2VzIGlzIENocm9taXVtJ3MgYnVpbHQtaW4gY2hlY2tlci5cbiAqL1xuZXhwb3J0IGVudW0gU3BlbGxjaGVja01vZGUge1xuICAvKipcbiAgICogQWx3YXlzIHNwZWxsLWNoZWNrIHRoZSBpbnB1dCwgd2hhdGV2ZXIgYEVkaXRvciA+IFNwZWxsY2hlY2tgIHNheXMuXG4gICAqL1xuICBBbHdheXNPbiA9ICdBbHdheXNPbicsXG5cbiAgLyoqXG4gICAqIEZvbGxvdyBgRWRpdG9yID4gU3BlbGxjaGVja2AsIHRoZSB3YXkgT2JzaWRpYW4ncyBvd24gbmFtZS1lbnRyeSBzdXJmYWNlcyBkbyBcdTIwMTQgdGhlIGlubGluZSBub3RlIHRpdGxlLFxuICAgKiB0aGUgZmlsZSBleHBsb3JlcidzIGlubGluZSByZW5hbWUsIHRoZSBwcm9wZXJ0aWVzIGZpZWxkcy5cbiAgICovXG4gIEZvbGxvd09ic2lkaWFuU2V0dGluZyA9ICdGb2xsb3dPYnNpZGlhblNldHRpbmcnLFxuXG4gIC8qKlxuICAgKiBOZXZlciBzcGVsbC1jaGVjayB0aGUgaW5wdXQsIHdoYXRldmVyIGBFZGl0b3IgPiBTcGVsbGNoZWNrYCBzYXlzLlxuICAgKi9cbiAgT2ZmID0gJ09mZidcbn1cblxuLyoqXG4gKiBBIGZvcm1hdCBvZiB0aGUgbmV3IGxpbmsuXG4gKi9cbmV4cG9ydCB0eXBlIE5ld0xpbmtGb3JtYXQgPSAnYWJzb2x1dGUnIHwgJ3JlbGF0aXZlJyB8ICdzaG9ydGVzdCc7XG5cbi8qKlxuICogUmV0cmlldmVzIHdoZXRoZXIgdG8gdXNlIHJlbGF0aXZlIGxpbmtzIGJhc2VkIG9uIHRoZSBPYnNpZGlhbiBzZXR0aW5ncy5cbiAqXG4gKiBAcGFyYW0gYXBwIC0gVGhlIE9ic2lkaWFuIGFwcCBpbnN0YW5jZS5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdG8gdXNlIHJlbGF0aXZlIGxpbmtzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV3TGlua0Zvcm1hdChhcHA6IEFwcCk6IE5ld0xpbmtGb3JtYXQge1xuICByZXR1cm4gYXBwLnZhdWx0LmdldENvbmZpZygnbmV3TGlua0Zvcm1hdCcpIGFzIE5ld0xpbmtGb3JtYXQ7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHdoZXRoZXIgdGhlIHNwZWxsY2hlY2sgaXMgZW5hYmxlZCBiYXNlZCBvbiB0aGUgT2JzaWRpYW4gc2V0dGluZ3MuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBzcGVsbGNoZWNrIGlzIGVuYWJsZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NwZWxsY2hlY2tFbmFibGVkKGFwcDogQXBwKTogYm9vbGVhbiB7XG4gIHJldHVybiBCb29sZWFuKGFwcC52YXVsdC5nZXRDb25maWcoJ3NwZWxsY2hlY2snKSk7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgYSB7QGxpbmsgU3BlbGxjaGVja01vZGV9IGFnYWluc3QgdGhlIE9ic2lkaWFuIHNldHRpbmdzLlxuICpcbiAqIEBwYXJhbSBhcHAgLSBUaGUgT2JzaWRpYW4gYXBwIGluc3RhbmNlLlxuICogQHBhcmFtIHNwZWxsY2hlY2tNb2RlIC0gVGhlIG1vZGUgdG8gcmVzb2x2ZS5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGlucHV0IHNob3VsZCBiZSBzcGVsbC1jaGVja2VkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTcGVsbGNoZWNrRW5hYmxlZEZvck1vZGUoYXBwOiBBcHAsIHNwZWxsY2hlY2tNb2RlOiBTcGVsbGNoZWNrTW9kZSk6IGJvb2xlYW4ge1xuICBzd2l0Y2ggKHNwZWxsY2hlY2tNb2RlKSB7XG4gICAgY2FzZSBTcGVsbGNoZWNrTW9kZS5BbHdheXNPbjoge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNhc2UgU3BlbGxjaGVja01vZGUuRm9sbG93T2JzaWRpYW5TZXR0aW5nOiB7XG4gICAgICByZXR1cm4gaXNTcGVsbGNoZWNrRW5hYmxlZChhcHApO1xuICAgIH1cbiAgICBjYXNlIFNwZWxsY2hlY2tNb2RlLk9mZjoge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBkZWZhdWx0OiB7XG4gICAgICBhc3NlcnROZXZlcihzcGVsbGNoZWNrTW9kZSk7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHdoZXRoZXIgdG8gdXNlIHdpa2lsaW5rcyBiYXNlZCBvbiB0aGUgT2JzaWRpYW4gc2V0dGluZ3MuXG4gKlxuICogQHBhcmFtIGFwcCAtIFRoZSBPYnNpZGlhbiBhcHAgaW5zdGFuY2UuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRvIHVzZSB3aWtpbGlua3MuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaG91bGRVc2VXaWtpbGlua3MoYXBwOiBBcHApOiBib29sZWFuIHtcbiAgcmV0dXJuICFhcHAudmF1bHQuZ2V0Q29uZmlnKCd1c2VNYXJrZG93bkxpbmtzJyk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBUUEseUJBQTRCO0FBU3JCLElBQUssaUJBQUwsa0JBQUtBLG9CQUFMO0FBSUwsRUFBQUEsZ0JBQUEsY0FBVztBQU1YLEVBQUFBLGdCQUFBLDJCQUF3QjtBQUt4QixFQUFBQSxnQkFBQSxTQUFNO0FBZkksU0FBQUE7QUFBQSxHQUFBO0FBNkJMLFNBQVMsaUJBQWlCLEtBQXlCO0FBQ3hELFNBQU8sSUFBSSxNQUFNLFVBQVUsZUFBZTtBQUM1QztBQVFPLFNBQVMsb0JBQW9CLEtBQW1CO0FBQ3JELFNBQU8sUUFBUSxJQUFJLE1BQU0sVUFBVSxZQUFZLENBQUM7QUFDbEQ7QUFTTyxTQUFTLDJCQUEyQixLQUFVLGdCQUF5QztBQUM1RixVQUFRLGdCQUFnQjtBQUFBLElBQ3RCLEtBQUssMkJBQXlCO0FBQzVCLGFBQU87QUFBQSxJQUNUO0FBQUEsSUFDQSxLQUFLLHFEQUFzQztBQUN6QyxhQUFPLG9CQUFvQixHQUFHO0FBQUEsSUFDaEM7QUFBQSxJQUNBLEtBQUssaUJBQW9CO0FBQ3ZCLGFBQU87QUFBQSxJQUNUO0FBQUEsSUFDQSxTQUFTO0FBQ1AsMENBQVksY0FBYztBQUFBLElBQzVCO0FBQUEsRUFDRjtBQUNGO0FBUU8sU0FBUyxtQkFBbUIsS0FBbUI7QUFDcEQsU0FBTyxDQUFDLElBQUksTUFBTSxVQUFVLGtCQUFrQjtBQUNoRDsiLAogICJuYW1lcyI6IFsiU3BlbGxjaGVja01vZGUiXQp9Cg==