@loftyshaky/shared 1.4.0 → 1.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 (59) hide show
  1. package/_locales/en/messages.json +76 -1
  2. package/_locales/ru/messages.json +59 -2
  3. package/announcement.js +1 -1
  4. package/app.js +1 -1
  5. package/{chunk-main-ddb4af78.js → chunk-main-061e9d8b.js} +1 -1
  6. package/{chunk-main-dffc29ad.js → chunk-main-499559bc.js} +1 -1
  7. package/chunk-main-999e7bd1.js +1 -0
  8. package/{chunk-pickr.min-4c2d2755.js → chunk-pickr.min-e5a99742.js} +1 -1
  9. package/ext.js +1 -1
  10. package/index.d.ts +1 -1
  11. package/index.js +1 -1
  12. package/inputs.js +1 -1
  13. package/js/locales.js +11 -5
  14. package/js/webpack.config.js +4 -0
  15. package/package.json +2 -2
  16. package/scss/settings/sections.scss +22 -0
  17. package/scss/settings/transitions.scss +1 -2
  18. package/scss/shared/index.scss +1 -0
  19. package/scss/shared/inputs.scss +1 -0
  20. package/scss/shared/links.scss +4 -0
  21. package/scss/shared/offers.scss +37 -0
  22. package/scss/shared/themes/general/template.scss +10 -2
  23. package/scss/shared/transitions.scss +4 -1
  24. package/scss/shared/vars.scss +1 -0
  25. package/settings.d.ts +1 -1
  26. package/settings.js +1 -1
  27. package/ts/inputs/components/prop_types/section_btn.d.ts +1 -0
  28. package/ts/inputs/obj/input_base.d.ts +2 -1
  29. package/ts/inputs/obj/section.d.ts +3 -0
  30. package/ts/settings/components/prop_types/body.d.ts +1 -0
  31. package/ts/settings/developer_mode/data/index.d.ts +1 -0
  32. package/ts/settings/developer_mode/data/main.d.ts +13 -0
  33. package/ts/settings/internal.d.ts +1 -0
  34. package/ts/shared/app.d.ts +2 -2
  35. package/ts/shared/ext.d.ts +3 -0
  36. package/ts/shared/internal.d.ts +7 -0
  37. package/ts/shared/offers/components/body.d.ts +3 -0
  38. package/ts/shared/offers/components/counter.d.ts +2 -0
  39. package/ts/shared/offers/components/index.d.ts +6 -0
  40. package/ts/shared/offers/components/next_offer_btn.d.ts +2 -0
  41. package/ts/shared/offers/components/offer.d.ts +3 -0
  42. package/ts/shared/offers/components/previous_offer_btn.d.ts +2 -0
  43. package/ts/shared/offers/components/prop_types/body.d.ts +5 -0
  44. package/ts/shared/offers/components/prop_types/index.d.ts +2 -0
  45. package/ts/shared/offers/components/prop_types/offer.d.ts +4 -0
  46. package/ts/shared/offers/components/top_bar.d.ts +2 -0
  47. package/ts/shared/offers/data/index.d.ts +1 -0
  48. package/ts/shared/offers/data/main.d.ts +22 -0
  49. package/ts/shared/offers/interfaces/index.d.ts +1 -0
  50. package/ts/shared/offers/interfaces/offer_banner_type.d.ts +1 -0
  51. package/ts/shared/offers/obj/index.d.ts +1 -0
  52. package/ts/shared/offers/obj/offer.d.ts +10 -0
  53. package/ts/shared/offers/scripts/index.d.ts +1 -0
  54. package/ts/shared/offers/scripts/main.d.ts +8 -0
  55. package/ts/shared/service_worker/scripts/index.d.ts +1 -0
  56. package/ts/shared/service_worker/scripts/main.d.ts +9 -0
  57. package/ts/shared/svg.d.ts +2 -0
  58. package/ts/shared/x.d.ts +2 -0
  59. package/chunk-main-87eebf46.js +0 -1
@@ -24,10 +24,11 @@ export declare class InputBase {
24
24
  form?: string;
25
25
  section?: string;
26
26
  subsection?: string;
27
+ developer_mode_setting?: boolean;
27
28
  event_callback: t.CallbackVariadicVoid;
28
29
  warn_state_checker?: ({ input, }: {
29
30
  input: i_inputs.Input;
30
- }) => boolean | Promise<boolean>;
31
+ }) => boolean | Promise<boolean | undefined>;
31
32
  constructor(obj: InputBase);
32
33
  is_cut_computed?: ((this: InputBase) => boolean) | undefined;
33
34
  is_visible_computed?: ((this: InputBase) => boolean) | undefined;
@@ -1,3 +1,4 @@
1
+ import { i_offers } from "../../shared/internal";
1
2
  import { i_inputs } from "../internal";
2
3
  export declare class Section {
3
4
  name: string;
@@ -10,6 +11,8 @@ export declare class Section {
10
11
  inputs: i_inputs.Inputs | i_inputs.Links;
11
12
  available?: boolean;
12
13
  unavailable_msg?: string;
14
+ include_offers?: boolean;
15
+ offer_banner_type?: i_offers.OfferBannerType;
13
16
  subsections?: {
14
17
  name: string;
15
18
  inputs: i_inputs.Inputs | i_inputs.Links;
@@ -4,4 +4,5 @@ export interface Body {
4
4
  sections: i_inputs.Sections;
5
5
  initial_section: string;
6
6
  change_section_callback: t.CallbackVoid;
7
+ enable_developer_mode_save_callback?: t.CallbackVoid;
7
8
  }
@@ -0,0 +1 @@
1
+ export * from "./main";
@@ -0,0 +1,13 @@
1
+ import { t } from "../../../shared/internal";
2
+ export declare class Main {
3
+ private static i0;
4
+ static i(): Main;
5
+ private constructor();
6
+ private click_count;
7
+ private click_timeout;
8
+ enable_developer_mode: ({ save_callback, }: {
9
+ save_callback: t.CallbackVoid;
10
+ }) => Promise<void>;
11
+ private increment_click_count;
12
+ private reset_click_count;
13
+ }
@@ -1,6 +1,7 @@
1
1
  export * from "./init";
2
2
  export * as c_settings from "./components";
3
3
  export * as d_settings from "./data";
4
+ export * as d_developer_mode from "./developer_mode/data";
4
5
  export * as d_optional_permissions from "./optional_permissions/data";
5
6
  export * as s_settings from "./scripts";
6
7
  export * as p_settings from "./components/prop_types";
@@ -6,13 +6,13 @@ export declare class App {
6
6
  private log_error;
7
7
  [index: string]: any;
8
8
  private origin;
9
+ app_root: string;
9
10
  private messages_en_json;
10
11
  private messages_ru_json;
11
12
  private messages_de_json;
12
13
  get_app_version: () => string;
13
14
  get_language: () => string;
14
- private resolve_path;
15
- private assets;
15
+ private content_dir;
16
16
  read_data_into_vars: () => Promise<string>;
17
17
  msg: (msg: string) => string;
18
18
  read_env_into_global_var: () => Promise<void>;
@@ -8,8 +8,10 @@ export declare class Ext {
8
8
  private static i0;
9
9
  static i(): Ext;
10
10
  private constructor();
11
+ private force_local_storage;
11
12
  private log_error;
12
13
  get_app_version: () => string;
14
+ get_app_name: () => string;
13
15
  iterate_all_tabs: (callback: t.CallbackVariadicVoid) => Promise<void>;
14
16
  msg: (msg: string) => string;
15
17
  get_active_tab: () => Promise<Tabs.Tab | undefined>;
@@ -20,6 +22,7 @@ export declare class Ext {
20
22
  send_msg_to_active_tab: (msg: t.Msg) => Promise<void>;
21
23
  send_msg_to_active_tab_resp: (msg: t.Msg) => Promise<any>;
22
24
  send_msg_to_all_tabs: (msg: t.Msg) => Promise<void>;
25
+ force_local_storage_f: () => void;
23
26
  storage_get: (keys?: string | string[]) => Promise<any>;
24
27
  storage_set: (obj: t.AnyRecord, replace?: boolean) => Promise<void>;
25
28
  storage_remove: (keys: string[]) => Promise<void>;
@@ -10,23 +10,30 @@ export * from "./functions";
10
10
  export * from "./init";
11
11
  export * as c_app_version from "./app_version/components";
12
12
  export * as c_loading_screen from "./loading_screen/components";
13
+ export * as c_offers from "./offers/components";
13
14
  export * as c_tr from "./tr/components";
15
+ export * as o_offers from "./offers/obj";
14
16
  export * as o_schema from "./schema/obj";
15
17
  export * as o_tr from "./tr/obj";
16
18
  export * as d_loading_screen from "./loading_screen/data";
19
+ export * as d_offers from "./offers/data";
17
20
  export * as d_schema from "./schema/data";
18
21
  export * as d_settings from "./settings/data";
19
22
  export * as d_tr from "./tr/data";
20
23
  export * as s_css_vars from "./css_vars/scripts";
21
24
  export * as s_loading_screen from "./loading_screen/scripts";
22
25
  export * as s_no_tr from "./no_tr/scripts";
26
+ export * as s_offers from "./offers/scripts";
27
+ export * as s_service_worker from "./service_worker/scripts";
23
28
  export * as s_tab_index from "./tab_index/scripts";
24
29
  export * as s_theme from "./theme/scripts";
25
30
  export * as s_title from "./title/scripts";
26
31
  export * as s_utils from "./utils/scripts";
27
32
  export * as s_viewport from "./viewport/scripts";
28
33
  export * as p_loading_screen from "./loading_screen/components/prop_types";
34
+ export * as p_offers from "./offers/components/prop_types";
29
35
  export * as p_tr from "./tr/components/prop_types";
30
36
  export * as i_data from "./data/interfaces";
37
+ export * as i_offers from "./offers/interfaces";
31
38
  export * as i_tab_index from "./tab_index/interfaces";
32
39
  export * as i_tr from "./tr/interfaces";
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { p_offers } from "../../internal";
3
+ export declare const Body: React.FunctionComponent<p_offers.Body>;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const Counter: React.FunctionComponent;
@@ -0,0 +1,6 @@
1
+ export * from "./body";
2
+ export * from "./counter";
3
+ export * from "./next_offer_btn";
4
+ export * from "./previous_offer_btn";
5
+ export * from "./offer";
6
+ export * from "./top_bar";
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const NextOfferBtn: React.FunctionComponent;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import { p_offers } from "../../internal";
3
+ export declare const Offer: React.FunctionComponent<p_offers.Offer>;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const PreviousOfferBtn: React.FunctionComponent;
@@ -0,0 +1,5 @@
1
+ import { i_offers } from "../../../internal";
2
+ export interface Body {
3
+ is_visible: boolean;
4
+ offer_banner_type: i_offers.OfferBannerType;
5
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./body";
2
+ export * from "./offer";
@@ -0,0 +1,4 @@
1
+ import { i_offers } from "../../../internal";
2
+ export interface Offer {
3
+ offer_banner_type: i_offers.OfferBannerType;
4
+ }
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const TopBar: React.FunctionComponent;
@@ -0,0 +1 @@
1
+ export * from "./main";
@@ -0,0 +1,22 @@
1
+ import { o_offers, i_offers } from "../../internal";
2
+ export declare class Main {
3
+ private static i0;
4
+ static i(): Main;
5
+ private constructor();
6
+ offers_of_type: o_offers.Offer[];
7
+ current_offer_i: number;
8
+ set_offers: () => void;
9
+ choose_random_prominent_offer: () => void;
10
+ set_offers_of_type: () => void;
11
+ private check_if_is_all_or_current_type_offer;
12
+ found_offers_for_current_locale: () => boolean;
13
+ show_previous_offer: () => void;
14
+ show_next_offer: () => void;
15
+ private get_offer_text_raw;
16
+ get current_offer_text(): string;
17
+ get_current_offer_banner: ({ offer_banner_type, }: {
18
+ offer_banner_type: i_offers.OfferBannerType;
19
+ }) => string | undefined;
20
+ get current_offer_banner_link(): string;
21
+ get current_offer_no(): number;
22
+ }
@@ -0,0 +1 @@
1
+ export * from "./offer_banner_type";
@@ -0,0 +1 @@
1
+ export declare type OfferBannerType = 'horizontal' | 'vertical' | undefined;
@@ -0,0 +1 @@
1
+ export * from "./offer";
@@ -0,0 +1,10 @@
1
+ export declare class Offer {
2
+ name?: string;
3
+ browsers_whitelist?: string | string[];
4
+ countries_whitelist?: string | string[];
5
+ countries_blacklist?: string[];
6
+ is_enabled?: boolean;
7
+ prominent?: boolean;
8
+ has_banner?: boolean;
9
+ constructor(obj: Offer);
10
+ }
@@ -0,0 +1 @@
1
+ export * from "./main";
@@ -0,0 +1,8 @@
1
+ import { o_offers } from "../../internal";
2
+ export declare class Main {
3
+ private static i0;
4
+ static i(): Main;
5
+ private constructor();
6
+ private enable_offers;
7
+ offers: o_offers.Offer[];
8
+ }
@@ -0,0 +1 @@
1
+ export * from "./main";
@@ -0,0 +1,9 @@
1
+ export declare class ServiceWorker {
2
+ private static i0;
3
+ static i(): ServiceWorker;
4
+ private constructor();
5
+ private make_persistent_intervals;
6
+ private persistent_service_worker;
7
+ make_persistent: () => Promise<void>;
8
+ private clear_make_persistent_intervals;
9
+ }
@@ -3,5 +3,7 @@ export declare type SvgType = {
3
3
  Close: string;
4
4
  Help: string;
5
5
  Hourglass: string;
6
+ NavigateBefore: string;
7
+ NavigateNext: string;
6
8
  };
7
9
  export declare const svg: SvgType;
package/ts/shared/x.d.ts CHANGED
@@ -55,6 +55,8 @@ export declare class X {
55
55
  sanitize_filename: (filename: string, new_character?: string) => string;
56
56
  convert_blob_to_base64: (blob: Blob) => Promise<string>;
57
57
  convert_base64_to_blob: (base64: string) => Promise<Blob>;
58
+ chunk_str: (str: string, len: number) => string[];
59
+ bytes_to_base64: (bytes: number) => number;
58
60
  copy_text: (text: string) => void;
59
61
  copy_img: (img_url: string) => void;
60
62
  px: (val: string | number | undefined) => string;
@@ -1 +0,0 @@
1
- "use strict";var main=require("./chunk-main-dffc29ad.js"),React=require("react");function _interopDefaultLegacy(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var React__default=_interopDefaultLegacy(React);globalThis.show_err_ribbon=(error_obj,error_code,{error_msg_key:error_msg_key="",notification_type:notification_type="error",hide_delay:hide_delay=Main$1.i().hide_delay,silent:silent=!1,persistent:persistent=!1,exit:exit=!1,is_fullscreen:is_fullscreen=!1,prevent_subsequent_errors:prevent_subsequent_errors=!1}={})=>Main$1.i().show_error(error_obj,error_code,{error_msg_key:error_msg_key,notification_type:notification_type,silent:silent,persistent:persistent,exit:exit,hide_delay:hide_delay,is_fullscreen:is_fullscreen,prevent_subsequent_errors:prevent_subsequent_errors}),globalThis.show_flash=class{constructor(){this.get_flash_server_text=()=>err((()=>{const flash_server_els=sa(".flash_server");if(n(flash_server_els)){const defined_flash_server_el=[...flash_server_els].find((flash_server_el=>{if(n(flash_server_el)&&n(flash_server_el.textContent)){if("undefined"!==flash_server_el.textContent)return!0}return!1}));return n(defined_flash_server_el)&&n(defined_flash_server_el.textContent)?defined_flash_server_el.textContent:void 0}}),"shr_1246"),this.turn_flash_server_text_into_arr=()=>err((()=>{const flash_server_el_text=this.get_flash_server_text();if(flash_server_el_text)return flash_server_el_text.split(":")}),"shr_1250"),this.get_flash_msg_key=()=>err((()=>{const flash_server_arr=this.turn_flash_server_text_into_arr();if(n(flash_server_arr))return flash_server_arr[0]}),"shr_1249"),this.get_flash_type=()=>err((()=>{const flash_server_arr=this.turn_flash_server_text_into_arr();return n(flash_server_arr)&&n(flash_server_arr[1])&&"-"!==flash_server_arr[1]?flash_server_arr[1]:"neutral"}),"shr_1249"),this.get_flash_hide_delay=()=>err((()=>{const flash_server_arr=this.turn_flash_server_text_into_arr();return n(flash_server_arr)&&n(flash_server_arr[2])&&"-"!==flash_server_arr[2]?+flash_server_arr[2]:5e3}),"shr_1249"),this.show=()=>err((()=>{const flash_msg_key=this.get_flash_msg_key(),flash_type=this.get_flash_type(),flash_hide_delay=this.get_flash_hide_delay();n(flash_msg_key)&&show_err_ribbon(void 0,void 0,{error_msg_key:flash_msg_key,notification_type:flash_type,hide_delay:flash_hide_delay})}),"shr_1252")}static i(){return this.i0||(this.i0=new this)}}.i().show,globalThis.show_notification=({error_msg_key:error_msg_key="",notification_type:notification_type="neutral",hide_delay:hide_delay=Main$1.i().hide_delay,persistent:persistent=!1,is_fullscreen:is_fullscreen=!1,prevent_subsequent_errors:prevent_subsequent_errors=!1}={})=>{Notification.i().show({error_msg_key:error_msg_key,notification_type:notification_type,hide_delay:hide_delay,persistent:persistent,is_fullscreen:is_fullscreen,prevent_subsequent_errors:prevent_subsequent_errors})},globalThis.show_unable_to_access_settings_error=({is_fullscreen:is_fullscreen=!0,settings:settings,provided_settings:provided_settings=!1}={})=>{Notification.i().show_unable_to_access_settings_error({is_fullscreen:is_fullscreen,settings:settings,provided_settings:provided_settings})},globalThis.err=(f,error_code,{error_msg_key:error_msg_key="",silent:silent=!1,persistent:persistent=!1,exit:exit=!1,hide_delay:hide_delay=Main$1.i().hide_delay,is_fullscreen:is_fullscreen=!1,prevent_subsequent_errors:prevent_subsequent_errors=!1}={})=>{try{return f()}catch(error_obj){Main$1.i().show_error(error_obj,error_code,{error_msg_key:error_msg_key,silent:silent,persistent:persistent,exit:exit,hide_delay:hide_delay,is_fullscreen:is_fullscreen,prevent_subsequent_errors:prevent_subsequent_errors})}},globalThis.err_async=(f,error_code,{error_msg_key:error_msg_key="",silent:silent=!1,persistent:persistent=!1,exit:exit=!1,hide_delay:hide_delay=Main$1.i().hide_delay,is_fullscreen:is_fullscreen=!1,prevent_subsequent_errors:prevent_subsequent_errors=!1}={})=>main.__awaiter(void 0,void 0,void 0,(function*(){try{return yield f()}catch(error_obj){Main$1.i().show_error(error_obj,error_code,{error_msg_key:error_msg_key,silent:silent,persistent:persistent,exit:exit,hide_delay:hide_delay,is_fullscreen:is_fullscreen,prevent_subsequent_errors:prevent_subsequent_errors})}})),globalThis.throw_err=msg=>{throw new Error(msg)},globalThis.throw_err_obj=error_obj=>{throw error_obj},globalThis.err_obj=msg=>new Error(msg);class Notification{constructor(){this.show=({error_msg_key:error_msg_key="",notification_type:notification_type="neutral",hide_delay:hide_delay=Main$1.i().hide_delay,persistent:persistent=!1,is_fullscreen:is_fullscreen=!1,prevent_subsequent_errors:prevent_subsequent_errors=!1})=>err((()=>{show_err_ribbon(void 0,void 0,{error_msg_key:error_msg_key,notification_type:notification_type,hide_delay:hide_delay,persistent:persistent,is_fullscreen:is_fullscreen,prevent_subsequent_errors:prevent_subsequent_errors})}),"shr_1253"),this.show_unable_to_access_settings_error=({is_fullscreen:is_fullscreen=!0,settings:settings,provided_settings:provided_settings=!1}={})=>main.__awaiter(this,void 0,void 0,(function*(){const settings_final=provided_settings?settings:yield ext.storage_get();n(settings_final)&&!main._.isEmpty(settings_final)||show_notification({error_msg_key:"unable_to_access_settings_error",notification_type:"negative",is_fullscreen:is_fullscreen,prevent_subsequent_errors:!0})}))}static i(){return this.i0||(this.i0=new this)}}const Body$1=main.observer(class extends React__default.default.Component{static getDerivedStateFromError(){Visibility.i().show_reload_ui_screen()}componentDidCatch(err_obj){show_err_ribbon(err_obj,"shr_1000",{error_msg_key:"cant_render_ui"})}render(){if(Visibility.i().page_is_crashed)return React__default.default.createElement("div",{className:"reload_ui_btn_w"},React__default.default.createElement("button",{className:x.cls(["btn","reload_ui"]),type:"button",onClick:Page.i().reload},ext.msg("reload_ui_btn_text")));const{children:children}=this.props;return children}}),Body=main.observer((props=>{const{app_id:app_id,on_render:on_render}=props;return React.useEffect((()=>{(class{constructor(){this.load=({app_id:app_id})=>{x.css("font_face",document.head,`font_face_link_${app_id}`);const error_root=s(`.error_${app_id}`);if(n(error_root)){const error_shadow=n(error_root.shadowRoot)?error_root.shadowRoot:void 0;if(error_shadow){const error_css=x.css("error",error_shadow);n(error_css)&&x.bind(error_css,"load",(()=>{State.i().change_state({observable_key:"is_loaded",state:!0})}))}}}}static i(){return this.i0||(this.i0=new this)}}).i().load({app_id:app_id}),on_render()}),[app_id,on_render]),React__default.default.createElement("div",{className:x.cls(["main","error",State.i().is_highlighted_cls,State.i().notification_type,State.i().is_fullscreen_cls]),role:"none",style:{display:State.i().is_visible_style},onMouseDown:State.i().clear_all_reset_state_timeouts},React__default.default.createElement(Progress$1,null),React__default.default.createElement("div",{className:"body"},React__default.default.createElement("div",{className:"top_stuff"},React__default.default.createElement("span",{className:"ext_name_and_keep_visible_msg"},React__default.default.createElement(ExtName,null),React__default.default.createElement(KeepVisibleMsg,null)),State.i().is_fullscreen?void 0:React__default.default.createElement(CloseBtn,null)),React__default.default.createElement(Msg$1,null)))})),CloseBtn=main.observer((()=>React__default.default.createElement("button",{className:"close_btn",type:"button",onMouseDown:()=>State.i().change_state({observable_key:"is_visible",state:!1})},React__default.default.createElement(main.svg.Close,null)))),ExtName=()=>React__default.default.createElement("div",{className:"ext_name"},ext.msg("name")," ",React__default.default.createElement(main.Body,null)),KeepVisibleMsg=main.observer((()=>React__default.default.createElement("div",{className:x.cls(["keep_visible_msg",Progress.i().progress_bar_is_visible_cls])},ext.msg("error_keep_visible_msg_text")))),Msg$1=main.observer((()=>React__default.default.createElement("div",{className:"msg"},Msg.i().basic_msg,"error"===State.i().notification_type?React__default.default.createElement(React__default.default.Fragment,null,React__default.default.createElement("button",{type:"button",className:x.cls(["more_info_btn",Msg.i().more_info_btn_is_visible_cls]),onClick:()=>Msg.i().change_visibility_of_advanced_msg({is_visible:!0})},ext.msg("error_more_info_btn_text")),React__default.default.createElement("div",{className:Msg.i().advanced_msg_is_visible_cls},Msg.i().advanced_msg)):void 0))),Progress$1=main.observer((()=>React__default.default.createElement("progress",{className:x.cls(["progress",Progress.i().progress_bar_is_visible_cls]),max:Progress.i().progress_max,value:Progress.i().progress_val})));class Visibility{constructor(){this.page_is_crashed=!1,this.show_reload_ui_screen=()=>{this.page_is_crashed=!0},main.makeObservable(this,{page_is_crashed:main.observable,show_reload_ui_screen:main.action})}static i(){return this.i0||(this.i0=new this)}}class Main$1{constructor(){this.hide_delay=5e3,this.highlight_time=300,this.prevent_subsequent_errors=!1,this.show_error=(error_obj,error_code,{error_msg_key:error_msg_key="",notification_type:notification_type="error",hide_delay:hide_delay=this.hide_delay,silent:silent=!1,persistent:persistent=!1,exit:exit=!1,is_fullscreen:is_fullscreen=!1,prevent_subsequent_errors:prevent_subsequent_errors=!1}={})=>{const prevent_subsequent_errors_final=prevent_subsequent_errors||this.prevent_subsequent_errors,silent_final=prevent_subsequent_errors_final?this.prevent_subsequent_errors:silent,persistent_final=!!prevent_subsequent_errors_final||persistent,error_ui_is_visible=!(x.in_service_worker||silent_final||error_obj&&error_obj.silent);if(error_ui_is_visible&&("error"!==notification_type&&(Msg.i().basic_msg=ext.msg(error_msg_key),State.i().notification_type=notification_type),is_fullscreen&&State.i().change_state({observable_key:"is_fullscreen",state:!0}),State.i().change_state({observable_key:"is_visible",state:!0}),is_fullscreen||State.i().change_state({observable_key:"is_highlighted",state:!0}),State.i().clear_all_reset_state_timeouts(),error_obj&&error_obj.persistent||persistent_final||State.i().run_reset_state_timeout({observable_key:"is_visible",delay:hide_delay+this.highlight_time}),State.i().run_reset_state_timeout({observable_key:"is_highlighted",delay:this.highlight_time})),error_obj&&error_code){error_ui_is_visible&&Msg.i().change_visibility_of_advanced_msg({is_visible:!1});const error_msg_pre=ext.msg(`${error_obj.error_msg||error_msg_key}_error`),error_msg_final=error_msg_pre?` ${error_msg_pre}`:"";if(main.runInAction((()=>err((()=>{silent_final||(Msg.i().basic_msg=`${ext.msg("an_error_occured_msg")+error_msg_final}`,Msg.i().advanced_msg=`${ext.msg("error_code_label")+(error_obj.error_code||error_code)}\n${ext.msg("error_type_label")+error_obj.name}\n${ext.msg("error_msg_label")+error_obj.message}`)}),"shr_1195"))),error_obj.exit||exit){const updated_error_obj=error_obj,set_updated_error_obj_propery=({key:key,undefined_property:undefined_property})=>{updated_error_obj[key]=n(error_obj[key])?error_obj[key]:undefined_property};throw set_updated_error_obj_propery({key:"error_code",undefined_property:error_code}),set_updated_error_obj_propery({key:"error_msg",undefined_property:error_msg_key}),set_updated_error_obj_propery({key:"silent",undefined_property:silent_final}),set_updated_error_obj_propery({key:"persistent",undefined_property:persistent_final}),set_updated_error_obj_propery({key:"exit",undefined_property:exit}),set_updated_error_obj_propery({key:"hide_delay",undefined_property:hide_delay}),updated_error_obj}this.output_error(error_obj,error_code)}prevent_subsequent_errors&&(this.prevent_subsequent_errors=!0)},this.output_error=(error_obj,error_code)=>{const line="---------------------------",separator_bottom=`\n${line}`,error_code_and_msg=`${`${line}\n`}Code: ${error_code}\nMessage: ${error_obj.message}`,console_output=error_obj.stack?`${error_code_and_msg}\nStack: ${error_obj.stack+separator_bottom}`:error_code_and_msg+separator_bottom;console.error(console_output)},main.makeObservable(this,{show_error:main.action})}static i(){return this.i0||(this.i0=new this)}}class Msg{constructor(){this.advanced_msg_is_visible=!1,this.basic_msg="",this.advanced_msg="",this.change_visibility_of_advanced_msg=({is_visible:is_visible})=>{this.advanced_msg_is_visible=is_visible},main.makeObservable(this,{advanced_msg_is_visible:main.observable,basic_msg:main.observable,advanced_msg:main.observable,advanced_msg_is_visible_cls:main.computed,more_info_btn_is_visible_cls:main.computed,change_visibility_of_advanced_msg:main.action})}static i(){return this.i0||(this.i0=new this)}get advanced_msg_is_visible_cls(){return this.advanced_msg_is_visible?"":"none"}get more_info_btn_is_visible_cls(){return this.advanced_msg_is_visible?"none":""}}class Progress{constructor(){this.progress_max=100,this.progress_val=100,this.timestamp_progress_begin=0,this.error_hide_delay=0,this.begin_progress=({error_hide_delay:error_hide_delay})=>{this.error_hide_delay=error_hide_delay,this.timestamp_progress_begin=Date.now(),this.progress_val=0},this.increment_progress=()=>{const progress_percentage=x.percentage(Date.now()-this.timestamp_progress_begin,this.error_hide_delay);this.progress_val=progress_percentage},this.hide_progress=()=>{clearTimeout(this.progress_timeout),this.progress_val=this.progress_max},this.update_progress_autorun=()=>{main.autorun((()=>{this.progress_val>=this.progress_max||(this.progress_timeout=setTimeout((()=>{this.increment_progress()}),10))}))},main.makeObservable(this,{progress_val:main.observable,progress_bar_is_visible_cls:main.computed,begin_progress:main.action,increment_progress:main.action,hide_progress:main.action})}static i(){return this.i0||(this.i0=new this)}get progress_bar_is_visible_cls(){return this.progress_val>=this.progress_max?"none":""}}class State{constructor(){this.is_loaded=!1,this.is_visible=!1,this.is_highlighted=!1,this.is_fullscreen=!1,this.notification_type="error",this.change_state=({observable_key:observable_key,state:state})=>{this[observable_key]=state},this.run_reset_state_timeout=({observable_key:observable_key,delay:delay})=>{this[`${observable_key}_timeout`]=globalThis.setTimeout((()=>{this.change_state({observable_key:observable_key,state:!1})}),delay),"is_visible"===observable_key&&Progress.i().begin_progress({error_hide_delay:delay})},this.clear_all_reset_state_timeouts=()=>{n(this.is_visible_timeout)&&n(this.is_highlighted_timeout)&&(clearTimeout(this.is_visible_timeout),clearTimeout(this.is_highlighted_timeout),Progress.i().hide_progress())},main.makeObservable(this,{is_loaded:main.observable,is_visible:main.observable,is_highlighted:main.observable,is_fullscreen:main.observable,notification_type:main.observable,is_visible_style:main.computed,is_highlighted_cls:main.computed,change_state:main.action,run_reset_state_timeout:main.action})}static i(){return this.i0||(this.i0=new this)}get is_visible_style(){return this.is_loaded&&this.is_visible?"":"none"}get is_highlighted_cls(){return this.is_highlighted?"is_highlighted":""}get is_fullscreen_cls(){return this.is_fullscreen?"fullscreen":""}}class Page{constructor(){this.reload=()=>{globalThis.location.reload()}}static i(){return this.i0||(this.i0=new this)}}exports.Body=Body$1,exports.Body$1=Body,exports.CloseBtn=CloseBtn,exports.ExtName=ExtName,exports.KeepVisibleMsg=KeepVisibleMsg,exports.Main=Main$1,exports.Msg=Msg$1,exports.Progress=Progress$1,exports.Progress$1=Progress,exports.Visibility=Visibility;