@atlaskit/tmp-editor-statsig 8.1.0 → 8.3.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/editor-statsig-tmp
2
2
 
3
+ ## 8.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#177692](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/177692)
8
+ [`19ab0513e027f`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/19ab0513e027f) -
9
+ Add defaultValue parameter to expValEq and expValEqNoExposure to allow for checking default state
10
+ (e.g. false state) and avoid issue when experiment is not defined
11
+
12
+ ## 8.2.0
13
+
14
+ ### Minor Changes
15
+
16
+ - [#176094](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/pull-requests/176094)
17
+ [`09e338a3d7dab`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/09e338a3d7dab) -
18
+ [ED-28357] move find&replace work from behind feature gates to the new experiment
19
+ platform_editor_find_and_replace_improvements
20
+
3
21
  ## 8.1.0
4
22
 
5
23
  ### Minor Changes
@@ -10,6 +10,8 @@ var _expValEqualsInternal = require("./exp-val-equals-internal");
10
10
  *
11
11
  * !!! Note: This method never fires exposure. !!!
12
12
  *
13
+ * IMPORTANT: If experiment is not defined default value will be null, unless provided otherwise.
14
+ *
13
15
  * @example Boolean experiment
14
16
  * if (expValEqualsNoExposure('example-boolean', 'isEnabled', true)) {
15
17
  * // Run code for on variant
@@ -27,9 +29,11 @@ var _expValEqualsInternal = require("./exp-val-equals-internal");
27
29
  * @param experimentName - experiment key
28
30
  * @param experimentParam - the name of the parameter to fetch from the experiment config
29
31
  * @param experimentExpectedValue - expected value to compare with
32
+ * @param experimentDefaultValue - default value to use if the experiment is not defined.
30
33
  *
31
34
  * @returns boolean
32
35
  */
33
36
  function expValEqualsNoExposure(experimentName, experimentParam, experimentExpectedValue) {
34
- return (0, _expValEqualsInternal.expValEqualsInternal)(experimentName, experimentParam, experimentExpectedValue, null, false);
37
+ var experimentDefaultValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
38
+ return (0, _expValEqualsInternal.expValEqualsInternal)(experimentName, experimentParam, experimentExpectedValue, experimentDefaultValue, false);
35
39
  }
@@ -10,6 +10,8 @@ var _expValEqualsInternal = require("./exp-val-equals-internal");
10
10
  *
11
11
  * !!! Note: This method always fires exposure. !!!
12
12
  *
13
+ * IMPORTANT: If experiment is not defined default value will be null, unless provided otherwise.
14
+ *
13
15
  * @example Boolean experiment
14
16
  * if (expValEquals('example-boolean', 'isEnabled', true)) {
15
17
  * // Run code for on variant
@@ -27,9 +29,11 @@ var _expValEqualsInternal = require("./exp-val-equals-internal");
27
29
  * @param experimentName - experiment key
28
30
  * @param experimentParam - the name of the parameter to fetch from the experiment config
29
31
  * @param experimentExpectedValue - expected value to compare with
32
+ * @param experimentDefaultValue - default value to use if the experiment is not defined.
30
33
  *
31
34
  * @returns boolean
32
35
  */
33
36
  function expValEquals(experimentName, experimentParam, experimentExpectedValue) {
34
- return (0, _expValEqualsInternal.expValEqualsInternal)(experimentName, experimentParam, experimentExpectedValue, null, true);
37
+ var experimentDefaultValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
38
+ return (0, _expValEqualsInternal.expValEqualsInternal)(experimentName, experimentParam, experimentExpectedValue, experimentDefaultValue, true);
35
39
  }
@@ -470,5 +470,13 @@ var editorExperimentsConfig = exports.editorExperimentsConfig = {
470
470
  param: 'cohort',
471
471
  values: ['control', 'test_blank', 'test_diagram'],
472
472
  defaultValue: 'control'
473
+ }),
474
+ // Added 2025-06-24
475
+ platform_editor_find_and_replace_improvements: (0, _experimentBuilders.createBooleanExperiment)({
476
+ productKeys: {
477
+ confluence: 'platform_editor_find_and_replace_improvements'
478
+ },
479
+ param: 'isEnabled',
480
+ defaultValue: false
473
481
  })
474
482
  };
@@ -4,6 +4,8 @@ import { expValEqualsInternal } from './exp-val-equals-internal';
4
4
  *
5
5
  * !!! Note: This method never fires exposure. !!!
6
6
  *
7
+ * IMPORTANT: If experiment is not defined default value will be null, unless provided otherwise.
8
+ *
7
9
  * @example Boolean experiment
8
10
  * if (expValEqualsNoExposure('example-boolean', 'isEnabled', true)) {
9
11
  * // Run code for on variant
@@ -21,9 +23,10 @@ import { expValEqualsInternal } from './exp-val-equals-internal';
21
23
  * @param experimentName - experiment key
22
24
  * @param experimentParam - the name of the parameter to fetch from the experiment config
23
25
  * @param experimentExpectedValue - expected value to compare with
26
+ * @param experimentDefaultValue - default value to use if the experiment is not defined.
24
27
  *
25
28
  * @returns boolean
26
29
  */
27
- export function expValEqualsNoExposure(experimentName, experimentParam, experimentExpectedValue) {
28
- return expValEqualsInternal(experimentName, experimentParam, experimentExpectedValue, null, false);
30
+ export function expValEqualsNoExposure(experimentName, experimentParam, experimentExpectedValue, experimentDefaultValue = null) {
31
+ return expValEqualsInternal(experimentName, experimentParam, experimentExpectedValue, experimentDefaultValue, false);
29
32
  }
@@ -4,6 +4,8 @@ import { expValEqualsInternal } from './exp-val-equals-internal';
4
4
  *
5
5
  * !!! Note: This method always fires exposure. !!!
6
6
  *
7
+ * IMPORTANT: If experiment is not defined default value will be null, unless provided otherwise.
8
+ *
7
9
  * @example Boolean experiment
8
10
  * if (expValEquals('example-boolean', 'isEnabled', true)) {
9
11
  * // Run code for on variant
@@ -21,9 +23,10 @@ import { expValEqualsInternal } from './exp-val-equals-internal';
21
23
  * @param experimentName - experiment key
22
24
  * @param experimentParam - the name of the parameter to fetch from the experiment config
23
25
  * @param experimentExpectedValue - expected value to compare with
26
+ * @param experimentDefaultValue - default value to use if the experiment is not defined.
24
27
  *
25
28
  * @returns boolean
26
29
  */
27
- export function expValEquals(experimentName, experimentParam, experimentExpectedValue) {
28
- return expValEqualsInternal(experimentName, experimentParam, experimentExpectedValue, null, true);
30
+ export function expValEquals(experimentName, experimentParam, experimentExpectedValue, experimentDefaultValue = null) {
31
+ return expValEqualsInternal(experimentName, experimentParam, experimentExpectedValue, experimentDefaultValue, true);
29
32
  }
@@ -464,5 +464,13 @@ export const editorExperimentsConfig = {
464
464
  param: 'cohort',
465
465
  values: ['control', 'test_blank', 'test_diagram'],
466
466
  defaultValue: 'control'
467
+ }),
468
+ // Added 2025-06-24
469
+ platform_editor_find_and_replace_improvements: createBooleanExperiment({
470
+ productKeys: {
471
+ confluence: 'platform_editor_find_and_replace_improvements'
472
+ },
473
+ param: 'isEnabled',
474
+ defaultValue: false
467
475
  })
468
476
  };
@@ -4,6 +4,8 @@ import { expValEqualsInternal } from './exp-val-equals-internal';
4
4
  *
5
5
  * !!! Note: This method never fires exposure. !!!
6
6
  *
7
+ * IMPORTANT: If experiment is not defined default value will be null, unless provided otherwise.
8
+ *
7
9
  * @example Boolean experiment
8
10
  * if (expValEqualsNoExposure('example-boolean', 'isEnabled', true)) {
9
11
  * // Run code for on variant
@@ -21,9 +23,11 @@ import { expValEqualsInternal } from './exp-val-equals-internal';
21
23
  * @param experimentName - experiment key
22
24
  * @param experimentParam - the name of the parameter to fetch from the experiment config
23
25
  * @param experimentExpectedValue - expected value to compare with
26
+ * @param experimentDefaultValue - default value to use if the experiment is not defined.
24
27
  *
25
28
  * @returns boolean
26
29
  */
27
30
  export function expValEqualsNoExposure(experimentName, experimentParam, experimentExpectedValue) {
28
- return expValEqualsInternal(experimentName, experimentParam, experimentExpectedValue, null, false);
31
+ var experimentDefaultValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
32
+ return expValEqualsInternal(experimentName, experimentParam, experimentExpectedValue, experimentDefaultValue, false);
29
33
  }
@@ -4,6 +4,8 @@ import { expValEqualsInternal } from './exp-val-equals-internal';
4
4
  *
5
5
  * !!! Note: This method always fires exposure. !!!
6
6
  *
7
+ * IMPORTANT: If experiment is not defined default value will be null, unless provided otherwise.
8
+ *
7
9
  * @example Boolean experiment
8
10
  * if (expValEquals('example-boolean', 'isEnabled', true)) {
9
11
  * // Run code for on variant
@@ -21,9 +23,11 @@ import { expValEqualsInternal } from './exp-val-equals-internal';
21
23
  * @param experimentName - experiment key
22
24
  * @param experimentParam - the name of the parameter to fetch from the experiment config
23
25
  * @param experimentExpectedValue - expected value to compare with
26
+ * @param experimentDefaultValue - default value to use if the experiment is not defined.
24
27
  *
25
28
  * @returns boolean
26
29
  */
27
30
  export function expValEquals(experimentName, experimentParam, experimentExpectedValue) {
28
- return expValEqualsInternal(experimentName, experimentParam, experimentExpectedValue, null, true);
31
+ var experimentDefaultValue = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
32
+ return expValEqualsInternal(experimentName, experimentParam, experimentExpectedValue, experimentDefaultValue, true);
29
33
  }
@@ -464,5 +464,13 @@ export var editorExperimentsConfig = {
464
464
  param: 'cohort',
465
465
  values: ['control', 'test_blank', 'test_diagram'],
466
466
  defaultValue: 'control'
467
+ }),
468
+ // Added 2025-06-24
469
+ platform_editor_find_and_replace_improvements: createBooleanExperiment({
470
+ productKeys: {
471
+ confluence: 'platform_editor_find_and_replace_improvements'
472
+ },
473
+ param: 'isEnabled',
474
+ defaultValue: false
467
475
  })
468
476
  };
@@ -45,7 +45,7 @@ declare function eeTest<ExperimentName extends keyof EditorExperimentsConfig>(ex
45
45
  false: DescribeBody;
46
46
  }, otherExperiments?: EditorExperimentOverrides): void;
47
47
  declare namespace eeTest {
48
- var describe: <ExperimentName extends "platform_editor_reduce_noisy_steps_ncs" | "platform_editor_memoized_node_check" | "platform_editor_media_card_vc_wrapper_attribute" | "platform_editor_block_control_optimise_render" | "example-boolean" | "example-multivariate" | "test-new-experiments-package" | "support_table_in_comment" | "platform_editor_exp_lazy_node_views" | "platform_renderer_table_sticky_scrollbar" | "platform_editor_stable_editorview_classname" | "platform_editor_controls_performance_fixes" | "platform_editor_prevent_toolbar_layout_shifts" | "comment_on_bodied_extensions" | "advanced_layouts" | "single_column_layouts" | "support_table_in_comment_jira" | "platform_editor_ai-prompts-placeholder" | "nested-tables-in-tables" | "platform_editor_ai_unsplash_page_header" | "platform_editor_blockquote_in_text_formatting_menu" | "platform_editor_advanced_code_blocks" | "platform_editor_element_drag_and_drop_multiselect" | "platform_editor_ai_edit_response_in_preview" | "platform_editor_controls" | "platform_editor_smart_link_cmd_ctrl_click" | "platform_editor_insertion" | "platform_editor_vanilla_dom" | "editor_text_highlight_orange_to_yellow" | "platform_editor_ai_proactive_ai_nudge_parameters" | "platform_editor_offline_editing_web" | "editor_ai_inline_suggestion_date_v2" | "platform_editor_tables_drag_and_drop" | "platform_editor_tables_table_selector" | "platform_editor_usesharedpluginstateselector" | "platform_renderer_fix_analytics_memo_callback" | "editor_ai_contextual_selection_toolbar_button" | "editor_ai_converge_free_gen_on_rovo" | "platform_editor_stop_width_reflows" | "platform_editor_core_static_emotion" | "platform_editor_core_static_emotion_non_central" | "editor_ai_comment_freegen_rovo" | "platform_editor_no_cursor_on_edit_page_init" | "confluence_p2m_style_recalc_and_expand_joint_exp" | "platform_editor_nodevisibility" | "platform_editor_breakout_resizing" | "platform_editor_ai_quickstart_command" | "platform_editor_hide_floating_toolbar_in_ssr" | "platform_editor_smart_card_open_overlay_perf" | "platform_editor_toolbar_rerender_optimization_exp" | "platform_editor_controls_toolbar_pinning_exp" | "platform_editor_block_controls_perf_optimization" | "platform_editor_defer_shadow_calculations" | "platform_editor_enable_single_player_step_merging" | "platform_editor_ai_iw_adf_streaming" | "confluence_whiteboards_quick_insert_aa">(experimentName: ExperimentName, describeName: string) => {
48
+ var describe: <ExperimentName extends "platform_editor_reduce_noisy_steps_ncs" | "platform_editor_memoized_node_check" | "platform_editor_media_card_vc_wrapper_attribute" | "platform_editor_block_control_optimise_render" | "example-boolean" | "example-multivariate" | "test-new-experiments-package" | "support_table_in_comment" | "platform_editor_exp_lazy_node_views" | "platform_renderer_table_sticky_scrollbar" | "platform_editor_stable_editorview_classname" | "platform_editor_controls_performance_fixes" | "platform_editor_prevent_toolbar_layout_shifts" | "comment_on_bodied_extensions" | "advanced_layouts" | "single_column_layouts" | "support_table_in_comment_jira" | "platform_editor_ai-prompts-placeholder" | "nested-tables-in-tables" | "platform_editor_ai_unsplash_page_header" | "platform_editor_blockquote_in_text_formatting_menu" | "platform_editor_advanced_code_blocks" | "platform_editor_element_drag_and_drop_multiselect" | "platform_editor_ai_edit_response_in_preview" | "platform_editor_controls" | "platform_editor_smart_link_cmd_ctrl_click" | "platform_editor_insertion" | "platform_editor_vanilla_dom" | "editor_text_highlight_orange_to_yellow" | "platform_editor_ai_proactive_ai_nudge_parameters" | "platform_editor_offline_editing_web" | "editor_ai_inline_suggestion_date_v2" | "platform_editor_tables_drag_and_drop" | "platform_editor_tables_table_selector" | "platform_editor_usesharedpluginstateselector" | "platform_renderer_fix_analytics_memo_callback" | "editor_ai_contextual_selection_toolbar_button" | "editor_ai_converge_free_gen_on_rovo" | "platform_editor_stop_width_reflows" | "platform_editor_core_static_emotion" | "platform_editor_core_static_emotion_non_central" | "editor_ai_comment_freegen_rovo" | "platform_editor_no_cursor_on_edit_page_init" | "confluence_p2m_style_recalc_and_expand_joint_exp" | "platform_editor_nodevisibility" | "platform_editor_breakout_resizing" | "platform_editor_ai_quickstart_command" | "platform_editor_hide_floating_toolbar_in_ssr" | "platform_editor_smart_card_open_overlay_perf" | "platform_editor_toolbar_rerender_optimization_exp" | "platform_editor_controls_toolbar_pinning_exp" | "platform_editor_block_controls_perf_optimization" | "platform_editor_defer_shadow_calculations" | "platform_editor_enable_single_player_step_merging" | "platform_editor_ai_iw_adf_streaming" | "confluence_whiteboards_quick_insert_aa" | "platform_editor_find_and_replace_improvements">(experimentName: ExperimentName, describeName: string) => {
49
49
  variant: (value: {
50
50
  platform_editor_reduce_noisy_steps_ncs: {
51
51
  typeGuard: typeof import("./type-guards").isBoolean;
@@ -392,6 +392,12 @@ declare namespace eeTest {
392
392
  productKeys?: import("./types").ProductKeys | undefined;
393
393
  param: string;
394
394
  };
395
+ platform_editor_find_and_replace_improvements: {
396
+ typeGuard: typeof import("./type-guards").isBoolean;
397
+ defaultValue: boolean;
398
+ productKeys?: import("./types").ProductKeys | undefined;
399
+ param: string;
400
+ };
395
401
  }[ExperimentName]["defaultValue"], describeBody: jest.EmptyFunction) => void;
396
402
  each: (describeBody: jest.EmptyFunction) => void;
397
403
  };
@@ -4,6 +4,8 @@ import { type EditorExperimentsConfig } from './experiments-config';
4
4
  *
5
5
  * !!! Note: This method never fires exposure. !!!
6
6
  *
7
+ * IMPORTANT: If experiment is not defined default value will be null, unless provided otherwise.
8
+ *
7
9
  * @example Boolean experiment
8
10
  * if (expValEqualsNoExposure('example-boolean', 'isEnabled', true)) {
9
11
  * // Run code for on variant
@@ -21,7 +23,8 @@ import { type EditorExperimentsConfig } from './experiments-config';
21
23
  * @param experimentName - experiment key
22
24
  * @param experimentParam - the name of the parameter to fetch from the experiment config
23
25
  * @param experimentExpectedValue - expected value to compare with
26
+ * @param experimentDefaultValue - default value to use if the experiment is not defined.
24
27
  *
25
28
  * @returns boolean
26
29
  */
27
- export declare function expValEqualsNoExposure<ExperimentName extends keyof EditorExperimentsConfig>(experimentName: ExperimentName, experimentParam: EditorExperimentsConfig[ExperimentName]['param'], experimentExpectedValue: EditorExperimentsConfig[ExperimentName]['defaultValue']): boolean;
30
+ export declare function expValEqualsNoExposure<ExperimentName extends keyof EditorExperimentsConfig>(experimentName: ExperimentName, experimentParam: EditorExperimentsConfig[ExperimentName]['param'], experimentExpectedValue: EditorExperimentsConfig[ExperimentName]['defaultValue'], experimentDefaultValue?: EditorExperimentsConfig[ExperimentName]['defaultValue'] | null): boolean;
@@ -4,6 +4,8 @@ import { type EditorExperimentsConfig } from './experiments-config';
4
4
  *
5
5
  * !!! Note: This method always fires exposure. !!!
6
6
  *
7
+ * IMPORTANT: If experiment is not defined default value will be null, unless provided otherwise.
8
+ *
7
9
  * @example Boolean experiment
8
10
  * if (expValEquals('example-boolean', 'isEnabled', true)) {
9
11
  * // Run code for on variant
@@ -21,7 +23,8 @@ import { type EditorExperimentsConfig } from './experiments-config';
21
23
  * @param experimentName - experiment key
22
24
  * @param experimentParam - the name of the parameter to fetch from the experiment config
23
25
  * @param experimentExpectedValue - expected value to compare with
26
+ * @param experimentDefaultValue - default value to use if the experiment is not defined.
24
27
  *
25
28
  * @returns boolean
26
29
  */
27
- export declare function expValEquals<ExperimentName extends keyof EditorExperimentsConfig>(experimentName: ExperimentName, experimentParam: EditorExperimentsConfig[ExperimentName]['param'], experimentExpectedValue: EditorExperimentsConfig[ExperimentName]['defaultValue']): boolean;
30
+ export declare function expValEquals<ExperimentName extends keyof EditorExperimentsConfig>(experimentName: ExperimentName, experimentParam: EditorExperimentsConfig[ExperimentName]['param'], experimentExpectedValue: EditorExperimentsConfig[ExperimentName]['defaultValue'], experimentDefaultValue?: EditorExperimentsConfig[ExperimentName]['defaultValue'] | null): boolean;
@@ -350,4 +350,10 @@ export declare const editorExperimentsConfig: {
350
350
  productKeys?: import("./types").ProductKeys | undefined;
351
351
  param: string;
352
352
  };
353
+ platform_editor_find_and_replace_improvements: {
354
+ typeGuard: typeof import("./type-guards").isBoolean;
355
+ defaultValue: boolean;
356
+ productKeys?: import("./types").ProductKeys | undefined;
357
+ param: string;
358
+ };
353
359
  };
@@ -64,6 +64,7 @@ export declare let _overrides: Partial<{
64
64
  platform_editor_enable_single_player_step_merging: boolean;
65
65
  platform_editor_ai_iw_adf_streaming: boolean;
66
66
  confluence_whiteboards_quick_insert_aa: "control" | "test_blank" | "test_diagram";
67
+ platform_editor_find_and_replace_improvements: boolean;
67
68
  }>;
68
69
  export declare let _paramOverrides: EditorExperimentParamOverrides;
69
70
  export declare let _product: 'confluence' | 'jira' | 'test' | undefined;
@@ -45,7 +45,7 @@ declare function eeTest<ExperimentName extends keyof EditorExperimentsConfig>(ex
45
45
  false: DescribeBody;
46
46
  }, otherExperiments?: EditorExperimentOverrides): void;
47
47
  declare namespace eeTest {
48
- var describe: <ExperimentName extends "platform_editor_reduce_noisy_steps_ncs" | "platform_editor_memoized_node_check" | "platform_editor_media_card_vc_wrapper_attribute" | "platform_editor_block_control_optimise_render" | "example-boolean" | "example-multivariate" | "test-new-experiments-package" | "support_table_in_comment" | "platform_editor_exp_lazy_node_views" | "platform_renderer_table_sticky_scrollbar" | "platform_editor_stable_editorview_classname" | "platform_editor_controls_performance_fixes" | "platform_editor_prevent_toolbar_layout_shifts" | "comment_on_bodied_extensions" | "advanced_layouts" | "single_column_layouts" | "support_table_in_comment_jira" | "platform_editor_ai-prompts-placeholder" | "nested-tables-in-tables" | "platform_editor_ai_unsplash_page_header" | "platform_editor_blockquote_in_text_formatting_menu" | "platform_editor_advanced_code_blocks" | "platform_editor_element_drag_and_drop_multiselect" | "platform_editor_ai_edit_response_in_preview" | "platform_editor_controls" | "platform_editor_smart_link_cmd_ctrl_click" | "platform_editor_insertion" | "platform_editor_vanilla_dom" | "editor_text_highlight_orange_to_yellow" | "platform_editor_ai_proactive_ai_nudge_parameters" | "platform_editor_offline_editing_web" | "editor_ai_inline_suggestion_date_v2" | "platform_editor_tables_drag_and_drop" | "platform_editor_tables_table_selector" | "platform_editor_usesharedpluginstateselector" | "platform_renderer_fix_analytics_memo_callback" | "editor_ai_contextual_selection_toolbar_button" | "editor_ai_converge_free_gen_on_rovo" | "platform_editor_stop_width_reflows" | "platform_editor_core_static_emotion" | "platform_editor_core_static_emotion_non_central" | "editor_ai_comment_freegen_rovo" | "platform_editor_no_cursor_on_edit_page_init" | "confluence_p2m_style_recalc_and_expand_joint_exp" | "platform_editor_nodevisibility" | "platform_editor_breakout_resizing" | "platform_editor_ai_quickstart_command" | "platform_editor_hide_floating_toolbar_in_ssr" | "platform_editor_smart_card_open_overlay_perf" | "platform_editor_toolbar_rerender_optimization_exp" | "platform_editor_controls_toolbar_pinning_exp" | "platform_editor_block_controls_perf_optimization" | "platform_editor_defer_shadow_calculations" | "platform_editor_enable_single_player_step_merging" | "platform_editor_ai_iw_adf_streaming" | "confluence_whiteboards_quick_insert_aa">(experimentName: ExperimentName, describeName: string) => {
48
+ var describe: <ExperimentName extends "platform_editor_reduce_noisy_steps_ncs" | "platform_editor_memoized_node_check" | "platform_editor_media_card_vc_wrapper_attribute" | "platform_editor_block_control_optimise_render" | "example-boolean" | "example-multivariate" | "test-new-experiments-package" | "support_table_in_comment" | "platform_editor_exp_lazy_node_views" | "platform_renderer_table_sticky_scrollbar" | "platform_editor_stable_editorview_classname" | "platform_editor_controls_performance_fixes" | "platform_editor_prevent_toolbar_layout_shifts" | "comment_on_bodied_extensions" | "advanced_layouts" | "single_column_layouts" | "support_table_in_comment_jira" | "platform_editor_ai-prompts-placeholder" | "nested-tables-in-tables" | "platform_editor_ai_unsplash_page_header" | "platform_editor_blockquote_in_text_formatting_menu" | "platform_editor_advanced_code_blocks" | "platform_editor_element_drag_and_drop_multiselect" | "platform_editor_ai_edit_response_in_preview" | "platform_editor_controls" | "platform_editor_smart_link_cmd_ctrl_click" | "platform_editor_insertion" | "platform_editor_vanilla_dom" | "editor_text_highlight_orange_to_yellow" | "platform_editor_ai_proactive_ai_nudge_parameters" | "platform_editor_offline_editing_web" | "editor_ai_inline_suggestion_date_v2" | "platform_editor_tables_drag_and_drop" | "platform_editor_tables_table_selector" | "platform_editor_usesharedpluginstateselector" | "platform_renderer_fix_analytics_memo_callback" | "editor_ai_contextual_selection_toolbar_button" | "editor_ai_converge_free_gen_on_rovo" | "platform_editor_stop_width_reflows" | "platform_editor_core_static_emotion" | "platform_editor_core_static_emotion_non_central" | "editor_ai_comment_freegen_rovo" | "platform_editor_no_cursor_on_edit_page_init" | "confluence_p2m_style_recalc_and_expand_joint_exp" | "platform_editor_nodevisibility" | "platform_editor_breakout_resizing" | "platform_editor_ai_quickstart_command" | "platform_editor_hide_floating_toolbar_in_ssr" | "platform_editor_smart_card_open_overlay_perf" | "platform_editor_toolbar_rerender_optimization_exp" | "platform_editor_controls_toolbar_pinning_exp" | "platform_editor_block_controls_perf_optimization" | "platform_editor_defer_shadow_calculations" | "platform_editor_enable_single_player_step_merging" | "platform_editor_ai_iw_adf_streaming" | "confluence_whiteboards_quick_insert_aa" | "platform_editor_find_and_replace_improvements">(experimentName: ExperimentName, describeName: string) => {
49
49
  variant: (value: {
50
50
  platform_editor_reduce_noisy_steps_ncs: {
51
51
  typeGuard: typeof import("./type-guards").isBoolean;
@@ -392,6 +392,12 @@ declare namespace eeTest {
392
392
  productKeys?: import("./types").ProductKeys | undefined;
393
393
  param: string;
394
394
  };
395
+ platform_editor_find_and_replace_improvements: {
396
+ typeGuard: typeof import("./type-guards").isBoolean;
397
+ defaultValue: boolean;
398
+ productKeys?: import("./types").ProductKeys | undefined;
399
+ param: string;
400
+ };
395
401
  }[ExperimentName]["defaultValue"], describeBody: jest.EmptyFunction) => void;
396
402
  each: (describeBody: jest.EmptyFunction) => void;
397
403
  };
@@ -4,6 +4,8 @@ import { type EditorExperimentsConfig } from './experiments-config';
4
4
  *
5
5
  * !!! Note: This method never fires exposure. !!!
6
6
  *
7
+ * IMPORTANT: If experiment is not defined default value will be null, unless provided otherwise.
8
+ *
7
9
  * @example Boolean experiment
8
10
  * if (expValEqualsNoExposure('example-boolean', 'isEnabled', true)) {
9
11
  * // Run code for on variant
@@ -21,7 +23,8 @@ import { type EditorExperimentsConfig } from './experiments-config';
21
23
  * @param experimentName - experiment key
22
24
  * @param experimentParam - the name of the parameter to fetch from the experiment config
23
25
  * @param experimentExpectedValue - expected value to compare with
26
+ * @param experimentDefaultValue - default value to use if the experiment is not defined.
24
27
  *
25
28
  * @returns boolean
26
29
  */
27
- export declare function expValEqualsNoExposure<ExperimentName extends keyof EditorExperimentsConfig>(experimentName: ExperimentName, experimentParam: EditorExperimentsConfig[ExperimentName]['param'], experimentExpectedValue: EditorExperimentsConfig[ExperimentName]['defaultValue']): boolean;
30
+ export declare function expValEqualsNoExposure<ExperimentName extends keyof EditorExperimentsConfig>(experimentName: ExperimentName, experimentParam: EditorExperimentsConfig[ExperimentName]['param'], experimentExpectedValue: EditorExperimentsConfig[ExperimentName]['defaultValue'], experimentDefaultValue?: EditorExperimentsConfig[ExperimentName]['defaultValue'] | null): boolean;
@@ -4,6 +4,8 @@ import { type EditorExperimentsConfig } from './experiments-config';
4
4
  *
5
5
  * !!! Note: This method always fires exposure. !!!
6
6
  *
7
+ * IMPORTANT: If experiment is not defined default value will be null, unless provided otherwise.
8
+ *
7
9
  * @example Boolean experiment
8
10
  * if (expValEquals('example-boolean', 'isEnabled', true)) {
9
11
  * // Run code for on variant
@@ -21,7 +23,8 @@ import { type EditorExperimentsConfig } from './experiments-config';
21
23
  * @param experimentName - experiment key
22
24
  * @param experimentParam - the name of the parameter to fetch from the experiment config
23
25
  * @param experimentExpectedValue - expected value to compare with
26
+ * @param experimentDefaultValue - default value to use if the experiment is not defined.
24
27
  *
25
28
  * @returns boolean
26
29
  */
27
- export declare function expValEquals<ExperimentName extends keyof EditorExperimentsConfig>(experimentName: ExperimentName, experimentParam: EditorExperimentsConfig[ExperimentName]['param'], experimentExpectedValue: EditorExperimentsConfig[ExperimentName]['defaultValue']): boolean;
30
+ export declare function expValEquals<ExperimentName extends keyof EditorExperimentsConfig>(experimentName: ExperimentName, experimentParam: EditorExperimentsConfig[ExperimentName]['param'], experimentExpectedValue: EditorExperimentsConfig[ExperimentName]['defaultValue'], experimentDefaultValue?: EditorExperimentsConfig[ExperimentName]['defaultValue'] | null): boolean;
@@ -350,4 +350,10 @@ export declare const editorExperimentsConfig: {
350
350
  productKeys?: import("./types").ProductKeys | undefined;
351
351
  param: string;
352
352
  };
353
+ platform_editor_find_and_replace_improvements: {
354
+ typeGuard: typeof import("./type-guards").isBoolean;
355
+ defaultValue: boolean;
356
+ productKeys?: import("./types").ProductKeys | undefined;
357
+ param: string;
358
+ };
353
359
  };
@@ -64,6 +64,7 @@ export declare let _overrides: Partial<{
64
64
  platform_editor_enable_single_player_step_merging: boolean;
65
65
  platform_editor_ai_iw_adf_streaming: boolean;
66
66
  confluence_whiteboards_quick_insert_aa: "control" | "test_blank" | "test_diagram";
67
+ platform_editor_find_and_replace_improvements: boolean;
67
68
  }>;
68
69
  export declare let _paramOverrides: EditorExperimentParamOverrides;
69
70
  export declare let _product: 'confluence' | 'jira' | 'test' | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/tmp-editor-statsig",
3
- "version": "8.1.0",
3
+ "version": "8.3.0",
4
4
  "description": "Temp plugin to ease use of statsig feature flags until platform feature flags are available",
5
5
  "author": "Atlassian Pty Ltd",
6
6
  "license": "Apache-2.0",