From 574d60442a88bc336666d75262fd982ae0c7cfc6 Mon Sep 17 00:00:00 2001 From: Teddy Middleton-Smith Date: Mon, 28 Jul 2025 22:41:38 +0100 Subject: [PATCH] Feat: Assessment page completed with save method combining Assessment, Distraction, Assessment Command Modality Link, and Assessment Response save for creating new complete Assessnent. --- business_objects/dog/assessment.py | 25 +- .../dog/assessment_command_modality_link.py | 60 +- business_objects/dog/assessment_response.py | 48 +- business_objects/dog/bribe.py | 5 +- business_objects/dog/button_icon.py | 5 +- business_objects/dog/button_shape.py | 5 +- business_objects/dog/colour.py | 5 +- business_objects/dog/command.py | 2 +- business_objects/dog/command_button_link.py | 20 +- business_objects/dog/command_category.py | 2 +- business_objects/dog/command_modality.py | 5 +- business_objects/dog/distraction.py | 2 +- .../dog/distraction_intensity_level.py | 2 +- business_objects/dog/distraction_type.py | 2 +- business_objects/dog/dog.py | 2 +- business_objects/dog/dog_command_link.py | 12 +- business_objects/dog/image.py | 2 +- business_objects/dog/lighting_level.py | 2 +- business_objects/dog/location.py | 2 +- business_objects/dog/obedience_level.py | 5 +- .../dog/response_quality_metric.py | 41 +- business_objects/dog/unit_measurement.py | 67 +- business_objects/dog/user.py | 5 - business_objects/dog/weather.py | 2 +- business_objects/file_type.py | 3 - business_objects/project_hub/contact_form.py | 5 +- controllers/dog/assessment.py | 67 +- controllers/legal/legal.py | 6 +- datastores/datastore_dog.py | 265 +++++++ forms/base.py | 2 +- models/model_view_base.py | 7 +- models/model_view_dog_assessment.py | 2 +- robots.txt | 3 - static/MySQL/00000_combined.sql | 748 ++++++++++-------- .../MySQL/10502_tbl_CORE_Msg_Error_Temp.sql | 19 + static/MySQL/11308_tbl_DOG_Assessment.sql | 1 + static/MySQL/11320_tbl_DOG_Distraction.sql | 3 + ...l_DOG_Assessment_Command_Modality_Link.sql | 3 +- ..._Assessment_Command_Modality_Link_Temp.sql | 2 +- .../11340_tbl_DOG_Assessment_Response.sql | 3 + ...i_DOG_Assessment_Command_Modality_Link.sql | 6 +- static/MySQL/70502_p_dog_clear_msg_error.sql | 44 ++ .../70516_p_dog_create_new_user_auth0.sql | 8 +- static/MySQL/70516_p_dog_get_many_user.sql | 2 +- static/MySQL/70518_p_dog_save_user.sql | 2 +- static/MySQL/70530_p_dog_calc_user.sql | 12 +- static/MySQL/71001_p_dog_calc_dog.sql | 8 +- static/MySQL/71001_p_dog_get_many_dog.sql | 4 +- static/MySQL/71003_p_dog_save_command.sql | 4 +- .../71102_p_dog_save_command_category.sql | 4 +- static/MySQL/71104_p_dog_calc_command.sql | 12 +- static/MySQL/71104_p_dog_get_many_command.sql | 4 +- .../71108_p_dog_get_many_dog_command_link.sql | 10 +- .../71110_p_dog_save_dog_command_link.sql | 4 +- .../71111_p_dog_calc_command_modality.sql | 8 +- .../71111_p_dog_get_many_command_modality.sql | 4 +- static/MySQL/71200_p_dog_calc_location.sql | 8 +- .../MySQL/71200_p_dog_get_many_location.sql | 4 +- static/MySQL/71202_p_dog_save_location.sql | 4 +- .../MySQL/71220_p_dog_calc_button_shape.sql | 10 +- .../71220_p_dog_get_many_button_shape.sql | 4 +- static/MySQL/71224_p_dog_calc_colour.sql | 8 +- static/MySQL/71224_p_dog_get_many_colour.sql | 4 +- static/MySQL/71228_p_dog_calc_image.sql | 8 +- static/MySQL/71228_p_dog_get_many_image.sql | 4 +- static/MySQL/71232_p_dog_calc_button_icon.sql | 10 +- .../71232_p_dog_get_many_button_icon.sql | 4 +- static/MySQL/71234_p_dog_save_button_icon.sql | 4 +- ...238_p_dog_get_many_command_button_link.sql | 6 +- .../71240_p_dog_save_command_button_link.sql | 4 +- static/MySQL/71300_p_dog_calc_weather.sql | 8 +- static/MySQL/71300_p_dog_get_many_weather.sql | 4 +- .../MySQL/71304_p_dog_calc_lighting_level.sql | 8 +- .../71304_p_dog_get_many_lighting_level.sql | 4 +- static/MySQL/71308_p_dog_calc_assessment.sql | 8 +- .../MySQL/71308_p_dog_get_many_assessment.sql | 4 +- static/MySQL/71310_p_dog_save_assessment.sql | 50 +- .../71312_p_dog_calc_distraction_type.sql | 8 +- .../71312_p_dog_get_many_distraction_type.sql | 4 +- ...p_dog_calc_distraction_intensity_level.sql | 8 +- ...g_get_many_distraction_intensity_level.sql | 4 +- static/MySQL/71320_p_dog_calc_distraction.sql | 8 +- .../71320_p_dog_get_many_distraction.sql | 4 +- static/MySQL/71322_p_dog_save_distraction.sql | 74 +- static/MySQL/71324_p_dog_calc_bribe.sql | 8 +- static/MySQL/71324_p_dog_get_many_bribe.sql | 4 +- ..._calc_assessment_command_modality_link.sql | 82 +- ..._many_assessment_command_modality_link.sql | 32 +- ..._save_assessment_command_modality_link.sql | 297 ++++--- ...332_p_dog_calc_response_quality_metric.sql | 8 +- ...p_dog_get_many_response_quality_metric.sql | 4 +- .../71336_p_dog_calc_obedience_level.sql | 8 +- .../71336_p_dog_get_many_obedience_level.sql | 4 +- .../71340_p_dog_calc_assessment_response.sql | 34 +- ...340_p_dog_get_many_assessment_response.sql | 24 +- .../71342_p_dog_save_assessment_response.sql | 540 +++++++++++++ ...ve_assessment_distraction_and_response.sql | 562 +++++++++++++ static/MySQL/71601_p_ph_save_contact_form.sql | 4 +- .../71603_p_ph_get_many_contact_form.sql | 4 +- static/MySQL/90000_populate.sql | 6 +- .../71104_p_dog_get_many_command.sql | 8 +- ...213_p_dog_get_many_understanding_level.sql | 10 +- static/css/pages/dog/assessment.css | 23 +- static/dist/css/dog_assessment.bundle.css | 23 +- static/dist/css/dog_assessment.bundle.css.map | 2 +- static/dist/js/main.bundle.js | 329 +++++++- static/dist/js/main.bundle.js.map | 2 +- static/docs/dial-gauge-1.jpg | Bin 0 -> 9800 bytes static/docs/fetch-metrics-logo.png | Bin 0 -> 60361 bytes static/docs/fetch-metrics-logo.xcf | Bin 0 -> 436774 bytes static/docs/paw-print-solid-black | Bin 0 -> 19346 bytes static/docs/robots.txt | 6 + static/js/api.js | 20 + static/js/pages/base.js | 11 +- static/js/pages/base_table.js | 4 +- static/js/pages/dog/assessment.js | 266 ++++++- static/js/pages/dog/assessments.js | 12 +- ..._row_assessment_command_modality_link.html | 18 +- templates/layouts/layout.html | 5 +- templates/layouts/layout_dog.html | 5 +- templates/pages/core/_contact.html | 2 +- templates/pages/dog/_assessment.html | 70 +- 122 files changed, 3261 insertions(+), 1057 deletions(-) delete mode 100644 robots.txt create mode 100644 static/MySQL/10502_tbl_CORE_Msg_Error_Temp.sql create mode 100644 static/MySQL/70502_p_dog_clear_msg_error.sql create mode 100644 static/MySQL/71342_p_dog_save_assessment_response.sql create mode 100644 static/MySQL/71344_p_dog_save_assessment_distraction_and_response.sql create mode 100644 static/docs/dial-gauge-1.jpg create mode 100644 static/docs/fetch-metrics-logo.png create mode 100644 static/docs/fetch-metrics-logo.xcf create mode 100644 static/docs/paw-print-solid-black create mode 100644 static/docs/robots.txt diff --git a/business_objects/dog/assessment.py b/business_objects/dog/assessment.py index 1b86278..c46d3c8 100644 --- a/business_objects/dog/assessment.py +++ b/business_objects/dog/assessment.py @@ -56,10 +56,11 @@ class Assessment(SQLAlchemy_ABC, Base): self.is_new = False self.weather = None self.lighting_level = None + self.temperature_celcius = 22 self.location = None self.user_handler = None - self.distractions = None - self.assessment_command_modality_links = None + self.distractions = [] + self.assessment_command_modality_links = [] super().__init__() @classmethod @@ -99,18 +100,15 @@ class Assessment(SQLAlchemy_ABC, Base): _m = f'{cls.__qualname__}.from_json' assessment = cls() if json is None: return assessment - # Helper_App.console_log(f'{_m}\njson: {json}') assessment.id_assessment = json.get(Assessment.ATTR_ID_ASSESSMENT, -1) assessment.id_weather = json[Weather.ATTR_ID_WEATHER] assessment.id_lighting_level = json[Lighting_Level.ATTR_ID_LIGHTING_LEVEL] assessment.id_location = json[Location.ATTR_ID_LOCATION] - assessment.user_handler = json[cls.FLAG_USER_HANDLER] + assessment.id_user_handler = json[cls.FLAG_USER_HANDLER] assessment.notes = json[cls.FLAG_NOTES] assessment.temperature_celcius = json[cls.FLAG_TEMPERATURE_CELCIUS] - assessment.active = json[cls.FLAG_ACTIVE] + assessment.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) assessment.created_on = json.get(cls.FLAG_CREATED_ON, None) - # assessment.id_command_category = json[Command_Category.FLAG_COMMAND_CATEGORY] - # Helper_App.console_log(f'Dog Command Link: {assessment}') return assessment def to_json(self): @@ -129,8 +127,6 @@ class Assessment(SQLAlchemy_ABC, Base): , self.FLAG_DISTRACTION: [distraction.to_json() for distraction in self.distractions] if (self.distractions is not None and len(self.distractions) > 0) else [] , self.FLAG_ASSESSMENT_COMMAND_MODALITY_LINK: [link.to_json() for link in self.assessment_command_modality_links] if (self.assessment_command_modality_links is not None and len(self.assessment_command_modality_links) > 0) else [] } - # , Command_Category.FLAG_COMMAND_CATEGORY: self.id_command_category - # Helper_App.console_log(f'as_json: {as_json}') return as_json def __repr__(self): @@ -283,8 +279,6 @@ class Parameters_Assessment(Get_Many_Parameters_Base): @classmethod def from_form_filters_assessment(cls, form): _m = f'{cls.__qualname__}.from_form_filters_assessment' - Helper_App.console_log(_m) - Helper_App.console_log(f'Filters: {form}') av.val_instance(form, 'form', _m, Filters_Assessment) has_filter_search_text = not (form.search.data == '' or form.search.data is None) has_filter_weather = not (form.id_weather.data == '0' or form.id_weather.data == '' or form.id_weather.data is None) @@ -292,14 +286,7 @@ class Parameters_Assessment(Get_Many_Parameters_Base): has_filter_location = not (form.id_location.data == '0' or form.id_location.data == '' or form.id_location.data is None) has_filter_user_handler = not (form.id_user_handler.data == '0' or form.id_user_handler.data == '' or form.id_user_handler.data is None) active_only = av.input_bool(form.active_only.data, "active", _m) - Helper_App.console_log(f''' -has_filter_search_text: {has_filter_search_text} -has_filter_weather: {has_filter_weather} -has_filter_lighting_level: {has_filter_lighting_level} -has_filter_location: {has_filter_location} -has_filter_user_handler: {has_filter_user_handler} -active_only: {active_only} -''') + filters = cls.get_default() filters.get_all_assessment = True filters.get_inactive_assessment = not active_only diff --git a/business_objects/dog/assessment_command_modality_link.py b/business_objects/dog/assessment_command_modality_link.py index acaa91a..48965df 100644 --- a/business_objects/dog/assessment_command_modality_link.py +++ b/business_objects/dog/assessment_command_modality_link.py @@ -33,7 +33,7 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base): ATTR_ID_ASSESSMENT_COMMAND_MODALITY_LINK: ClassVar[str] = 'id_link' FLAG_ASSESSMENT_COMMAND_MODALITY_LINK: ClassVar[str] = Assessment.FLAG_ASSESSMENT_COMMAND_MODALITY_LINK FLAG_ASSESSMENT_RESPONSE: ClassVar[str] = 'assessment_response' - FLAG_DISTANCE_FROM_HANDLER: ClassVar[str] = 'distance-from-handler' + FLAG_DISTANCE_FROM_HANDLER_METRES: ClassVar[str] = 'distance-from-handler-metres' FLAG_IS_IN_HEARING_RANGE_OF_HANDLER: ClassVar[str] = 'is-in-hearing-range-of-handler' FLAG_IS_IN_SCENT_RANGE_OF_HANDLER: ClassVar[str] = 'is-in-scent-range-of-handler' FLAG_IS_IN_SIGHT_OF_HANDLER: ClassVar[str] = 'is-in-sight-of-handler' @@ -50,7 +50,7 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base): id_command = db.Column(db.Integer) id_command_modality = db.Column(db.Integer) id_bribe = db.Column(db.Integer) - distance_from_handler = db.Column(db.Float) + distance_from_handler_metres = db.Column(db.Float) is_in_hearing_range_of_handler = db.Column(db.Boolean) is_in_scent_range_of_handler = db.Column(db.Boolean) is_in_sight_of_handler = db.Column(db.Boolean) @@ -78,7 +78,7 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base): assessment_command_modality_link.id_command = query_row[5] assessment_command_modality_link.id_command_modality = query_row[7] assessment_command_modality_link.id_bribe = query_row[9] - assessment_command_modality_link.distance_from_handler = query_row[11] + assessment_command_modality_link.distance_from_handler_metres = query_row[11] assessment_command_modality_link.is_in_hearing_range_of_handler = av.input_bool(query_row[12], 'is_in_hearing_range_of_handler', _m) assessment_command_modality_link.is_in_scent_range_of_handler = av.input_bool(query_row[13], 'is_in_scent_range_of_handler', _m) assessment_command_modality_link.is_in_sight_of_handler = av.input_bool(query_row[14], 'is_in_sight_of_handler', _m) @@ -104,22 +104,19 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base): _m = f'{cls.__qualname__}.from_json' assessment_command_modality_link = cls() if json is None: return assessment_command_modality_link - # Helper_App.console_log(f'{_m}\njson: {json}') assessment_command_modality_link.id_link = json.get(Assessment_Command_Modality_Link.ATTR_ID_ASSESSMENT_COMMAND_MODALITY_LINK, -1) assessment_command_modality_link.id_assessment = json[Assessment.ATTR_ID_ASSESSMENT] assessment_command_modality_link.id_command = json[Command.ATTR_ID_COMMAND] assessment_command_modality_link.id_command_modality = json[Command_Modality.ATTR_ID_COMMAND_MODALITY] assessment_command_modality_link.id_bribe = json[Bribe.ATTR_ID_BRIBE] - assessment_command_modality_link.distance_from_handler = json[cls.FLAG_DISTANCE_FROM_HANDLER] - assessment_command_modality_link.is_in_hearing_range_of_handler = json[cls.FLAG_IS_IN_HEARING_RANGE_OF_HANDLER] - assessment_command_modality_link.is_in_scent_range_of_handler = json[cls.FLAG_IS_IN_SCENT_RANGE_OF_HANDLER] - assessment_command_modality_link.is_in_sight_of_handler = json[cls.FLAG_IS_IN_SIGHT_OF_HANDLER] - assessment_command_modality_link.is_on_lead = json[cls.FLAG_IS_ON_LEAD] - assessment_command_modality_link.trial_count = json[cls.FLAG_TRIAL_COUNT] - assessment_command_modality_link.active = json[cls.FLAG_ACTIVE] + assessment_command_modality_link.distance_from_handler_metres = json[cls.FLAG_DISTANCE_FROM_HANDLER_METRES] + assessment_command_modality_link.is_in_hearing_range_of_handler = av.input_bool(json[cls.FLAG_IS_IN_HEARING_RANGE_OF_HANDLER], cls.FLAG_IS_IN_HEARING_RANGE_OF_HANDLER, _m) + assessment_command_modality_link.is_in_scent_range_of_handler = av.input_bool(json[cls.FLAG_IS_IN_SCENT_RANGE_OF_HANDLER], cls.FLAG_IS_IN_SCENT_RANGE_OF_HANDLER, _m) + assessment_command_modality_link.is_in_sight_of_handler = av.input_bool(json[cls.FLAG_IS_IN_SIGHT_OF_HANDLER], cls.FLAG_IS_IN_SIGHT_OF_HANDLER, _m) + assessment_command_modality_link.is_on_lead = av.input_bool(json[cls.FLAG_IS_ON_LEAD], cls.FLAG_IS_ON_LEAD, _m) + assessment_command_modality_link.trial_count = json.get(cls.FLAG_TRIAL_COUNT) + assessment_command_modality_link.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) assessment_command_modality_link.created_on = json.get(cls.FLAG_CREATED_ON, None) - # assessment_command_modality_link.id_command_category = json[Command_Category.FLAG_COMMAND_CATEGORY] - # Helper_App.console_log(f'Dog Command Link: {assessment_command_modality_link}') return assessment_command_modality_link def to_json(self): @@ -130,7 +127,7 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base): , Command.ATTR_ID_COMMAND: { Command.ATTR_ID_COMMAND: None } if self.command is None else self.command.to_json() , Command_Modality.ATTR_ID_COMMAND_MODALITY: { Command_Modality.ATTR_ID_COMMAND_MODALITY: None } if self.command_modality is None else self.command_modality.to_json() , Bribe.FLAG_BRIBE: { Bribe.FLAG_BRIBE: None } if self.bribe is None else self.bribe.to_json() - , self.FLAG_DISTANCE_FROM_HANDLER: self.distance_from_handler + , self.FLAG_DISTANCE_FROM_HANDLER_METRES: self.distance_from_handler_metres , self.FLAG_IS_IN_HEARING_RANGE_OF_HANDLER: self.is_in_hearing_range_of_handler , self.FLAG_IS_IN_SCENT_RANGE_OF_HANDLER: self.is_in_scent_range_of_handler , self.FLAG_IS_IN_SIGHT_OF_HANDLER: self.is_in_sight_of_handler @@ -140,8 +137,6 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base): , self.FLAG_CREATED_ON: self.created_on , self.FLAG_ASSESSMENT_RESPONSE: [] if self.assessment_responses is None else [response.to_json() for response in self.assessment_responses] } - # , Command_Category.FLAG_COMMAND_CATEGORY: self.id_command_category - # Helper_App.console_log(f'as_json: {as_json}') return as_json def __repr__(self): @@ -152,7 +147,7 @@ class Assessment_Command_Modality_Link(SQLAlchemy_ABC, Base): {Command.FLAG_COMMAND}: {self.command} {Command_Modality.FLAG_COMMAND_MODALITY}: {self.command_modality} {Bribe.FLAG_BRIBE}: {self.bribe} - {self.FLAG_DISTANCE_FROM_HANDLER}: {self.distance_from_handler} + {self.FLAG_DISTANCE_FROM_HANDLER_METRES}: {self.distance_from_handler_metres} {self.FLAG_IS_IN_HEARING_RANGE_OF_HANDLER}: {self.is_in_hearing_range_of_handler} {self.FLAG_IS_IN_SCENT_RANGE_OF_HANDLER}: {self.is_in_scent_range_of_handler} {self.FLAG_IS_IN_SIGHT_OF_HANDLER}: {self.is_in_sight_of_handler} @@ -173,7 +168,7 @@ class Assessment_Command_Modality_Link_Temp(db.Model, Base): id_command = db.Column(db.Integer) id_command_modality = db.Column(db.Integer) id_bribe = db.Column(db.Integer) - distance_from_handler = db.Column(db.Float) + distance_from_handler_metres = db.Column(db.Float) is_in_hearing_range_of_handler = db.Column(db.Boolean) is_in_scent_range_of_handler = db.Column(db.Boolean) is_in_sight_of_handler = db.Column(db.Boolean) @@ -195,7 +190,7 @@ class Assessment_Command_Modality_Link_Temp(db.Model, Base): temp.id_command = assessment_command_modality_link.id_command temp.id_command_modality = assessment_command_modality_link.id_command_modality temp.id_bribe = assessment_command_modality_link.id_bribe - temp.distance_from_handler = assessment_command_modality_link.distance_from_handler + temp.distance_from_handler_metres = assessment_command_modality_link.distance_from_handler_metres temp.is_in_hearing_range_of_handler = assessment_command_modality_link.is_in_hearing_range_of_handler temp.is_in_scent_range_of_handler = assessment_command_modality_link.is_in_scent_range_of_handler temp.is_in_sight_of_handler = assessment_command_modality_link.is_in_sight_of_handler @@ -210,8 +205,8 @@ class Parameters_Assessment_Command_Modality_Link(Get_Many_Parameters_Base): get_all_link: bool get_inactive_link: bool ids_link: str - min_distance_from_handler_link: Optional[float] - max_distance_from_handler_link: Optional[float] + min_distance_from_handler_metres_link: Optional[float] + max_distance_from_handler_metres_link: Optional[float] value_is_in_sight_of_handler_link: Optional[bool] value_is_in_scent_range_of_handler_link: Optional[bool] value_is_in_hearing_range_of_handler_link: Optional[bool] @@ -276,8 +271,8 @@ class Parameters_Assessment_Command_Modality_Link(Get_Many_Parameters_Base): get_all_link = True , get_inactive_link = False , ids_link = '' - , min_distance_from_handler_link = None - , max_distance_from_handler_link = None + , min_distance_from_handler_metres_link = None + , max_distance_from_handler_metres_link = None , value_is_in_sight_of_handler_link = None , value_is_in_scent_range_of_handler_link = None , value_is_in_hearing_range_of_handler_link = None @@ -344,8 +339,8 @@ class Parameters_Assessment_Command_Modality_Link(Get_Many_Parameters_Base): , get_inactive_link = json.get('a_get_inactive_link', False) , ids_link = json.get('a_ids_link', '') , notes_assessment_command_modality_link = json.get('a_notes_assessment_command_modality_link', '') - , min_distance_from_handler_link = json.get('a_min_distance_from_handler_link', None) - , max_distance_from_handler_link = json.get('a_max_distance_from_handler_link', None) + , min_distance_from_handler_metres_link = json.get('a_min_distance_from_handler_metres_link', None) + , max_distance_from_handler_metres_link = json.get('a_max_distance_from_handler_metres_link', None) , value_is_in_sight_of_handler_link = json.get('a_value_is_in_sight_of_handler_link', None) , value_is_in_scent_range_of_handler_link = json.get('a_value_is_in_scent_range_of_handler_link', None) , value_is_in_hearing_range_of_handler_link = json.get('a_value_is_in_hearing_range_of_handler_link', None) @@ -408,8 +403,6 @@ class Parameters_Assessment_Command_Modality_Link(Get_Many_Parameters_Base): @classmethod def from_form_filters_assessment(cls, form): _m = f'{cls.__qualname__}.from_form_filters_assessment' - Helper_App.console_log(_m) - Helper_App.console_log(f'Filters: {form}') av.val_instance(form, 'form', _m, Filters_Assessment) has_filter_search_text = not (form.search.data == '' or form.search.data is None) has_filter_assessment = not (form.id_assessment.data == '0' or form.id_assessment.data == '' or form.id_assessment.data is None) @@ -417,14 +410,7 @@ class Parameters_Assessment_Command_Modality_Link(Get_Many_Parameters_Base): has_filter_command_modality = False has_filter_bribe = False active_only = av.input_bool(form.active_only.data, "active", _m) - Helper_App.console_log(f''' -has_filter_search_text: {has_filter_search_text} -has_filter_assessment: {has_filter_assessment} -has_filter_command: {has_filter_command} -has_filter_command_modality: {has_filter_command_modality} -has_filter_bribe: {has_filter_bribe} -active_only: {active_only} -''') + filters = cls.get_default() filters.get_all_link = True filters.get_inactive_link = not active_only @@ -451,8 +437,8 @@ active_only: {active_only} 'a_get_all_link': self.get_all_link , 'a_get_inactive_link': self.get_inactive_link , 'a_ids_link': self.ids_link - , 'a_min_distance_from_handler_link': self.min_distance_from_handler_link - , 'a_max_distance_from_handler_link': self.max_distance_from_handler_link + , 'a_min_distance_from_handler_metres_link': self.min_distance_from_handler_metres_link + , 'a_max_distance_from_handler_metres_link': self.max_distance_from_handler_metres_link , 'a_value_is_in_sight_of_handler_link': self.value_is_in_sight_of_handler_link , 'a_value_is_in_scent_range_of_handler_link': self.value_is_in_scent_range_of_handler_link , 'a_value_is_in_hearing_range_of_handler_link': self.value_is_in_hearing_range_of_handler_link diff --git a/business_objects/dog/assessment_response.py b/business_objects/dog/assessment_response.py index a4e692f..0807cb9 100644 --- a/business_objects/dog/assessment_response.py +++ b/business_objects/dog/assessment_response.py @@ -61,10 +61,10 @@ class Assessment_Response(SQLAlchemy_ABC, Base): assessment_response.id_response = query_row[0] assessment_response.id_assessment_command_modality_link = query_row[1] assessment_response.id_response_quality_metric = query_row[2] - assessment_response.id_obedience_level = query_row[3] - assessment_response.value_measured = query_row[11] - assessment_response.notes = query_row[10] - assessment_response.active = av.input_bool(query_row[12], 'active', _m) + assessment_response.id_obedience_level = query_row[4] + assessment_response.value_measured = query_row[6] + assessment_response.notes = query_row[7] + assessment_response.active = av.input_bool(query_row[8], 'active', _m) assessment_response.assessment_command_modality_link = Assessment_Command_Modality_Link.from_db_assessment_response(query_row) assessment_response.response_quality_metric = Response_Quality_Metric.from_db_assessment_response(query_row) @@ -76,17 +76,14 @@ class Assessment_Response(SQLAlchemy_ABC, Base): _m = f'{cls.__qualname__}.from_json' assessment_response = cls() if json is None: return assessment_response - # Helper_App.console_log(f'{_m}\njson: {json}') assessment_response.id_response = json.get(Assessment_Response.ATTR_ID_ASSESSMENT_RESPONSE, -1) assessment_response.id_assessment_command_modality_link = json[Assessment_Command_Modality_Link.ATTR_ID_ASSESSMENT_COMMAND_MODALITY_LINK] - assessment_response.id_response_quality_metric = json[Response_Quality_Metric.ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC] + assessment_response.id_response_quality_metric = json[Response_Quality_Metric.ATTR_ID_RESPONSE_QUALITY_METRIC] assessment_response.id_obedience_level = json[Obedience_Level.ATTR_ID_OBEDIENCE_LEVEL] assessment_response.value_measured = json[cls.FLAG_VALUE_MEASURED] assessment_response.notes = json[cls.FLAG_NOTES] - assessment_response.active = json[cls.FLAG_ACTIVE] + assessment_response.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) assessment_response.created_on = json.get(cls.FLAG_CREATED_ON, None) - # assessment_response.id_command_category = json[Command_Category.FLAG_COMMAND_CATEGORY] - # Helper_App.console_log(f'Dog Command Link: {assessment_response}') return assessment_response def to_json(self): @@ -94,15 +91,13 @@ class Assessment_Response(SQLAlchemy_ABC, Base): **self.get_shared_json_attributes(self) , self.ATTR_ID_ASSESSMENT_RESPONSE: self.id_response , Assessment_Command_Modality_Link.ATTR_ID_ASSESSMENT_COMMAND_MODALITY_LINK: { Assessment_Command_Modality_Link.ATTR_ID_ASSESSMENT_COMMAND_MODALITY_LINK: None } if self.assessment_command_modality_link is None else self.assessment_command_modality_link.to_json() - , Response_Quality_Metric.ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC: { Response_Quality_Metric.ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC: None } if self.response_quality_metric is None else self.response_quality_metric.to_json() - , Obedience_Level.ATTR_ID_OBEDIENCE_LEVEL: { Obedience_Level.ATTR_ID_OBEDIENCE_LEVEL: None } if self.assessment_command_modality_link is None else self.assessment_command_modality_link.to_json() + , Response_Quality_Metric.ATTR_ID_RESPONSE_QUALITY_METRIC: { Response_Quality_Metric.ATTR_ID_RESPONSE_QUALITY_METRIC: None } if self.response_quality_metric is None else self.response_quality_metric.to_json() + , Obedience_Level.ATTR_ID_OBEDIENCE_LEVEL: { Obedience_Level.ATTR_ID_OBEDIENCE_LEVEL: None } if self.obedience_level is None else self.obedience_level.to_json() , self.FLAG_VALUE_MEASURED: self.value_measured , self.FLAG_NOTES: self.notes , self.FLAG_ACTIVE: self.active , self.FLAG_CREATED_ON: self.created_on } - # , Command_Category.FLAG_COMMAND_CATEGORY: self.id_command_category - # Helper_App.console_log(f'as_json: {as_json}') return as_json def __repr__(self): @@ -163,8 +158,8 @@ class Parameters_Assessment_Response(Get_Many_Parameters_Base): get_all_ACM_link: bool get_inactive_ACM_link: bool ids_ACM_link: str - min_distance_from_handler_ACM_link: Optional[float] - max_distance_from_handler_ACM_link: Optional[float] + min_distance_from_handler_metres_ACM_link: Optional[float] + max_distance_from_handler_metres_ACM_link: Optional[float] value_is_in_sight_of_handler_ACM_link: Optional[bool] value_is_in_scent_range_of_handler_ACM_link: Optional[bool] value_is_in_hearing_range_of_handler_ACM_link: Optional[bool] @@ -242,8 +237,8 @@ class Parameters_Assessment_Response(Get_Many_Parameters_Base): , get_all_ACM_link = True , get_inactive_ACM_link = False , ids_ACM_link = '' - , min_distance_from_handler_ACM_link = None - , max_distance_from_handler_ACM_link = None + , min_distance_from_handler_metres_ACM_link = None + , max_distance_from_handler_metres_ACM_link = None , value_is_in_sight_of_handler_ACM_link = None , value_is_in_scent_range_of_handler_ACM_link = None , value_is_in_hearing_range_of_handler_ACM_link = None @@ -323,8 +318,8 @@ class Parameters_Assessment_Response(Get_Many_Parameters_Base): , get_inactive_ACM_link = json.get('a_get_inactive_ACM_link', False) , ids_ACM_link = json.get('a_ids_ACM_link', '') , notes_assessment_command_modality_link = json.get('a_notes_assessment_command_modality_link', '') - , min_distance_from_handler_ACM_link = json.get('a_min_distance_from_handler_ACM_link', None) - , max_distance_from_handler_ACM_link = json.get('a_max_distance_from_handler_ACM_link', None) + , min_distance_from_handler_metres_ACM_link = json.get('a_min_distance_from_handler_metres_ACM_link', None) + , max_distance_from_handler_metres_ACM_link = json.get('a_max_distance_from_handler_metres_ACM_link', None) , value_is_in_sight_of_handler_ACM_link = json.get('a_value_is_in_sight_of_handler_ACM_link', None) , value_is_in_scent_range_of_handler_ACM_link = json.get('a_value_is_in_scent_range_of_handler_ACM_link', None) , value_is_in_hearing_range_of_handler_ACM_link = json.get('a_value_is_in_hearing_range_of_handler_ACM_link', None) @@ -393,8 +388,6 @@ class Parameters_Assessment_Response(Get_Many_Parameters_Base): @classmethod def from_form_filters_assessment(cls, form): _m = f'{cls.__qualname__}.from_form_filters_assessment' - Helper_App.console_log(_m) - Helper_App.console_log(f'Filters: {form}') av.val_instance(form, 'form', _m, Filters_Assessment) has_filter_search_text = not (form.search.data == '' or form.search.data is None) has_filter_assessment_command_modality_link = False @@ -403,14 +396,7 @@ class Parameters_Assessment_Response(Get_Many_Parameters_Base): has_filter_user_handler = False has_filter_assessment = not (form.id_assessment.data == '' or form.id_assessment.data == '0' or form.id_assessment.data is None) active_only = av.input_bool(form.active_only.data, "active", _m) - Helper_App.console_log(f''' -has_filter_search_text: {has_filter_search_text} -has_filter_assessment_command_modality_link: {has_filter_assessment_command_modality_link} -has_filter_response_quality_metric: {has_filter_response_quality_metric} -has_filter_obedience_level: {has_filter_obedience_level} -has_filter_user_handler: {has_filter_user_handler} -active_only: {active_only} -''') + filters = cls.get_default() filters.get_all_assessment_response = True filters.get_inactive_assessment_response = not active_only @@ -448,8 +434,8 @@ active_only: {active_only} , 'a_get_all_ACM_link': self.get_all_ACM_link , 'a_get_inactive_ACM_link': self.get_inactive_ACM_link , 'a_ids_ACM_link': self.ids_ACM_link - , 'a_min_distance_from_handler_ACM_link': self.min_distance_from_handler_ACM_link - , 'a_max_distance_from_handler_ACM_link': self.max_distance_from_handler_ACM_link + , 'a_min_distance_from_handler_metres_ACM_link': self.min_distance_from_handler_metres_ACM_link + , 'a_max_distance_from_handler_metres_ACM_link': self.max_distance_from_handler_metres_ACM_link , 'a_value_is_in_sight_of_handler_ACM_link': self.value_is_in_sight_of_handler_ACM_link , 'a_value_is_in_scent_range_of_handler_ACM_link': self.value_is_in_scent_range_of_handler_ACM_link , 'a_value_is_in_hearing_range_of_handler_ACM_link': self.value_is_in_hearing_range_of_handler_ACM_link diff --git a/business_objects/dog/bribe.py b/business_objects/dog/bribe.py index d356f04..c75b2eb 100644 --- a/business_objects/dog/bribe.py +++ b/business_objects/dog/bribe.py @@ -71,12 +71,10 @@ class Bribe(SQLAlchemy_ABC, Base): _m = 'Bribe.from_json' bribe = cls() if json is None: return Bribe - # Helper_App.console_log(f'{_m}\njson: {json}') bribe.id_bribe = json.get(cls.ATTR_ID_BRIBE, -1) bribe.name = json[cls.FLAG_NAME] bribe.code = json.get(cls.FLAG_CODE, bribe.name.upper().replace(" ", "_")) - bribe.active = json[cls.FLAG_ACTIVE] - # Helper_App.console_log(f'Bribe: {bribe}') + bribe.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) return bribe @@ -88,7 +86,6 @@ class Bribe(SQLAlchemy_ABC, Base): , self.FLAG_NAME: self.name , self.FLAG_ACTIVE: self.active } - # Helper_App.console_log(f'as_json: {as_json}') return as_json def __repr__(self): diff --git a/business_objects/dog/button_icon.py b/business_objects/dog/button_icon.py index af31c8e..b976874 100644 --- a/business_objects/dog/button_icon.py +++ b/business_objects/dog/button_icon.py @@ -72,15 +72,13 @@ class Button_Icon(SQLAlchemy_ABC, Base): _m = f'{cls.__qualname__}.from_json' button_icon = cls() if json is None: return button_icon - # Helper_App.console_log(f'{_m}\njson: {json}') button_icon.id_button_icon = json.get(Button_Icon.ATTR_ID_BUTTON_ICON, -1) button_icon.id_image = json[Image.FLAG_IMAGE] button_icon.name = json[cls.FLAG_NAME] button_icon.code = json.get(cls.FLAG_CODE, button_icon.name.upper().replace(" ", "_")) button_icon.notes = json[cls.FLAG_NOTES] - button_icon.active = json[cls.FLAG_ACTIVE] + button_icon.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) button_icon.created_on = json.get(cls.FLAG_CREATED_ON, None) - # Helper_App.console_log(f'Button_Icon: {button_icon}') return button_icon def to_json(self): @@ -94,7 +92,6 @@ class Button_Icon(SQLAlchemy_ABC, Base): , self.FLAG_ACTIVE: self.active , self.FLAG_CREATED_ON: self.created_on } - # Helper_App.console_log(f'as_json: {as_json}') return as_json def __repr__(self): diff --git a/business_objects/dog/button_shape.py b/business_objects/dog/button_shape.py index f1e370d..275669b 100644 --- a/business_objects/dog/button_shape.py +++ b/business_objects/dog/button_shape.py @@ -66,14 +66,12 @@ class Button_Shape(SQLAlchemy_ABC, Base): _m = f'{cls.__qualname__}.from_json' button_shape = cls() if json is None: return button_shape - # Helper_App.console_log(f'{_m}\njson: {json}') button_shape.id_button_shape = json.get(Button_Shape.ATTR_ID_BUTTON_SHAPE, -1) button_shape.name = json[cls.FLAG_NAME] button_shape.code = json.get(cls.FLAG_CODE, button_shape.name.upper().replace(" ", "_")) button_shape.notes = json[cls.FLAG_NOTES] - button_shape.active = json[cls.FLAG_ACTIVE] + button_shape.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) button_shape.created_on = json.get(cls.FLAG_CREATED_ON, None) - # Helper_App.console_log(f'Button_Shape: {button_shape}') return button_shape def to_json(self): @@ -86,7 +84,6 @@ class Button_Shape(SQLAlchemy_ABC, Base): , self.FLAG_ACTIVE: self.active , self.FLAG_CREATED_ON: self.created_on } - # Helper_App.console_log(f'as_json: {as_json}') return as_json def __repr__(self): diff --git a/business_objects/dog/colour.py b/business_objects/dog/colour.py index 986b59b..04c4f2b 100644 --- a/business_objects/dog/colour.py +++ b/business_objects/dog/colour.py @@ -64,13 +64,11 @@ class Colour(SQLAlchemy_ABC, Base): _m = f'{cls.__qualname__}.from_json' colour = cls() if json is None: return colour - # Helper_App.console_log(f'{_m}\njson: {json}') colour.id_colour = json.get(Colour.ATTR_ID_COLOUR, -1) colour.name = json[cls.FLAG_NAME] colour.code = json.get(cls.FLAG_CODE, colour.name.upper().replace(" ", "_")) - colour.active = json[cls.FLAG_ACTIVE] + colour.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) colour.created_on = json.get(cls.FLAG_CREATED_ON, None) - # Helper_App.console_log(f'Colour: {colour}') return colour def to_json(self): @@ -82,7 +80,6 @@ class Colour(SQLAlchemy_ABC, Base): , self.FLAG_ACTIVE: self.active , self.FLAG_CREATED_ON: self.created_on } - # Helper_App.console_log(f'as_json: {as_json}') return as_json def __repr__(self): diff --git a/business_objects/dog/command.py b/business_objects/dog/command.py index 958d386..e0208f6 100644 --- a/business_objects/dog/command.py +++ b/business_objects/dog/command.py @@ -112,7 +112,7 @@ class Command(SQLAlchemy_ABC, Base): command.hand_signal_default_description = json[cls.FLAG_HAND_SIGNAL_DEFAULT_DESCRIPTION] command.can_have_button = json[cls.FLAG_CAN_HAVE_BUTTON] command.notes = json[cls.FLAG_NOTES] - command.active = json[cls.FLAG_ACTIVE] + command.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) command.created_on = json.get(cls.FLAG_CREATED_ON, None) # Helper_App.console_log(f'Command: {command}') return command diff --git a/business_objects/dog/command_button_link.py b/business_objects/dog/command_button_link.py index 08f144d..426a761 100644 --- a/business_objects/dog/command_button_link.py +++ b/business_objects/dog/command_button_link.py @@ -79,17 +79,14 @@ class Command_Button_Link(SQLAlchemy_ABC, Base): _m = 'Command_Button_Link.from_json' command_button_link = cls() if json is None: return command_button_link - # Helper_App.console_log(f'{_m}\njson: {json}') command_button_link.id_link = json.get(Command_Button_Link.ATTR_ID_COMMAND_BUTTON_LINK, -1) command_button_link.id_command = json[Command.FLAG_COMMAND] command_button_link.id_button_shape = json[Button_Shape.FLAG_BUTTON_SHAPE] command_button_link.id_button_colour = json[Colour.FLAG_COLOUR] command_button_link.id_button_icon = json[Button_Icon.FLAG_BUTTON_ICON] command_button_link.id_location = json[Location.FLAG_LOCATION] - command_button_link.active = json[cls.FLAG_ACTIVE] + command_button_link.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) command_button_link.created_on = json.get(cls.FLAG_CREATED_ON, None) - # command_button_link.id_command_category = json[Command_Category.FLAG_COMMAND_CATEGORY] - # Helper_App.console_log(f'Dog Command Link: {command_button_link}') return command_button_link def to_json(self): @@ -104,8 +101,6 @@ class Command_Button_Link(SQLAlchemy_ABC, Base): , self.FLAG_ACTIVE: self.active , self.FLAG_CREATED_ON: self.created_on } - # , Command_Category.FLAG_COMMAND_CATEGORY: self.id_command_category - # Helper_App.console_log(f'as_json: {as_json}') return as_json def __repr__(self): @@ -299,8 +294,6 @@ class Parameters_Command_Button_Link(Get_Many_Parameters_Base): @classmethod def from_form_filters_command_button_link(cls, form): _m = f'{cls.__qualname__}.from_form_filters_command_button_link' - Helper_App.console_log(_m) - Helper_App.console_log(f'Filters: {form}') av.val_instance(form, 'form', _m, Filters_Command_Button_Link) has_filter_search_text = not (form.search.data == '' or form.search.data is None) has_filter_command_category = not (form.id_command_category.data == '0' or form.id_command_category.data == '' or form.id_command_category.data is None) @@ -310,16 +303,7 @@ class Parameters_Command_Button_Link(Get_Many_Parameters_Base): has_filter_button_icon = not (form.id_button_icon.data == '0' or form.id_button_icon.data == '' or form.id_button_icon.data is None) has_filter_location = not (form.id_location.data == '0' or form.id_location.data == '' or form.id_location.data is None) active_only = av.input_bool(form.active_only.data, "active", _m) - Helper_App.console_log(f''' -has_filter_search_text: {has_filter_search_text} -has_filter_command_category: {has_filter_command_category} -has_filter_command: {has_filter_command} -has_filter_button_shape: {has_filter_button_shape} -has_filter_colour: {has_filter_colour} -has_filter_button_icon: {has_filter_button_icon} -has_filter_location: {has_filter_location} -active_only: {active_only} -''') + filters = cls.get_default() filters.get_all_link = True filters.get_inactive_link = not active_only diff --git a/business_objects/dog/command_category.py b/business_objects/dog/command_category.py index 0166a78..5bfc295 100644 --- a/business_objects/dog/command_category.py +++ b/business_objects/dog/command_category.py @@ -85,7 +85,7 @@ class Command_Category(SQLAlchemy_ABC, Base): command_category.id_command_category = json.get(cls.ATTR_ID_COMMAND_CATEGORY, -1) command_category.name = json[cls.FLAG_NAME] command_category.code = json.get(cls.FLAG_CODE, command_category.name.upper().replace(" ", "_")) - command_category.active = json[cls.FLAG_ACTIVE] + command_category.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) # Helper_App.console_log(f'Command_Category: {command_category}') return command_category diff --git a/business_objects/dog/command_modality.py b/business_objects/dog/command_modality.py index 03366a6..3738915 100644 --- a/business_objects/dog/command_modality.py +++ b/business_objects/dog/command_modality.py @@ -71,12 +71,10 @@ class Command_Modality(SQLAlchemy_ABC, Base): _m = 'Command_Modality.from_json' command_modality = cls() if json is None: return Command_Modality - # Helper_App.console_log(f'{_m}\njson: {json}') command_modality.id_command_modality = json.get(cls.ATTR_ID_COMMAND_MODALITY, -1) command_modality.name = json[cls.FLAG_NAME] command_modality.code = json.get(cls.FLAG_CODE, command_modality.name.upper().replace(" ", "_")) - command_modality.active = json[cls.FLAG_ACTIVE] - # Helper_App.console_log(f'Command_Modality: {command_modality}') + command_modality.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) return command_modality @@ -88,7 +86,6 @@ class Command_Modality(SQLAlchemy_ABC, Base): , self.FLAG_NAME: self.name , self.FLAG_ACTIVE: self.active } - # Helper_App.console_log(f'as_json: {as_json}') return as_json def __repr__(self): diff --git a/business_objects/dog/distraction.py b/business_objects/dog/distraction.py index 5b639af..37fd857 100644 --- a/business_objects/dog/distraction.py +++ b/business_objects/dog/distraction.py @@ -111,7 +111,7 @@ class Distraction(SQLAlchemy_ABC, Base): distraction.quantity = json[cls.FLAG_QUANTITY] distraction.proximity_metres = json[cls.FLAG_PROXIMITY_METRES] distraction.notes = json[cls.FLAG_NOTES] - distraction.active = json[cls.FLAG_ACTIVE] + distraction.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) distraction.created_on = json.get(cls.FLAG_CREATED_ON, None) # distraction.id_command_category = json[Command_Category.FLAG_COMMAND_CATEGORY] # Helper_App.console_log(f'Dog Command Link: {distraction}') diff --git a/business_objects/dog/distraction_intensity_level.py b/business_objects/dog/distraction_intensity_level.py index 5ac5e51..c619094 100644 --- a/business_objects/dog/distraction_intensity_level.py +++ b/business_objects/dog/distraction_intensity_level.py @@ -102,7 +102,7 @@ class Distraction_Intensity_Level(SQLAlchemy_ABC, Base): distraction_intensity_level.id_intensity_level = json.get(cls.ATTR_ID_DISTRACTION_INTENSITY_LEVEL, -1) distraction_intensity_level.name = json[cls.FLAG_NAME] distraction_intensity_level.code = json.get(cls.FLAG_CODE, distraction_intensity_level.name.upper().replace(" ", "_")) - distraction_intensity_level.active = json[cls.FLAG_ACTIVE] + distraction_intensity_level.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) # Helper_App.console_log(f'Distraction_Intensity_Level: {distraction_intensity_level}') return distraction_intensity_level diff --git a/business_objects/dog/distraction_type.py b/business_objects/dog/distraction_type.py index d41aa1c..6176a85 100644 --- a/business_objects/dog/distraction_type.py +++ b/business_objects/dog/distraction_type.py @@ -66,7 +66,7 @@ class Distraction_Type(SQLAlchemy_ABC, Base): distraction_type.id_distraction_type = json.get(cls.ATTR_ID_DISTRACTION_TYPE, -1) distraction_type.name = json[cls.FLAG_NAME] distraction_type.code = json.get(cls.FLAG_CODE, distraction_type.name.upper().replace(" ", "_")) - distraction_type.active = json[cls.FLAG_ACTIVE] + distraction_type.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) # Helper_App.console_log(f'Distraction_Type: {distraction_type}') return distraction_type diff --git a/business_objects/dog/dog.py b/business_objects/dog/dog.py index 83c049e..d18143e 100644 --- a/business_objects/dog/dog.py +++ b/business_objects/dog/dog.py @@ -79,7 +79,7 @@ class Dog(SQLAlchemy_ABC, Base): dog.appearance = json[cls.FLAG_APPEARANCE] dog.mass_kg = json[cls.FLAG_MASS_KG] dog.notes = json[cls.FLAG_NOTES] - dog.active = json[cls.FLAG_ACTIVE] + dog.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) # Helper_App.console_log(f'Dog: {dog}') return dog diff --git a/business_objects/dog/dog_command_link.py b/business_objects/dog/dog_command_link.py index 0db8844..79f6605 100644 --- a/business_objects/dog/dog_command_link.py +++ b/business_objects/dog/dog_command_link.py @@ -75,7 +75,7 @@ class Dog_Command_Link(SQLAlchemy_ABC, Base): dog_command_link.id_command = json[Command.ATTR_ID_COMMAND] dog_command_link.hand_signal_description = json[cls.FLAG_HAND_SIGNAL_DESCRIPTION] dog_command_link.notes = json[cls.FLAG_NOTES] - dog_command_link.active = json[cls.FLAG_ACTIVE] + dog_command_link.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) dog_command_link.created_on = json.get(cls.FLAG_CREATED_ON, None) # dog_command_link.id_command_category = json[Command_Category.FLAG_COMMAND_CATEGORY] # Helper_App.console_log(f'Dog Command Link: {dog_command_link}') @@ -221,21 +221,13 @@ class Parameters_Dog_Command_Link(Get_Many_Parameters_Base): @classmethod def from_form_filters_dog_command_link(cls, form): _m = f'{cls.__qualname__}.from_form_filters_dog_command_link' - Helper_App.console_log(_m) - Helper_App.console_log(f'Filters: {form}') av.val_instance(form, 'form', _m, Filters_Dog_Command_Link) has_filter_search_text = not (form.search.data == '' or form.search.data is None) has_filter_dog = not (form.id_dog.data == '0' or form.id_dog.data == '' or form.id_dog.data is None) has_filter_command_category = not (form.id_command_category.data == '0' or form.id_command_category.data == '' or form.id_command_category.data is None) has_filter_command = not (form.id_command.data == '0' or form.id_command.data == '' or form.id_command.data is None) active_only = av.input_bool(form.active_only.data, "active", _m) - Helper_App.console_log(f''' -has_filter_search_text: {has_filter_search_text} -has_filter_dog: {has_filter_dog} -has_filter_command_category: {has_filter_command_category} -has_filter_command: {has_filter_command} -active_only: {active_only} -''') + filters = cls.get_default() filters.get_all_link = True filters.get_inactive_link = not active_only diff --git a/business_objects/dog/image.py b/business_objects/dog/image.py index c08a0d3..9ef9bd6 100644 --- a/business_objects/dog/image.py +++ b/business_objects/dog/image.py @@ -85,7 +85,7 @@ class Image(SQLAlchemy_ABC, Base): image.id_dog = json[Dog.FLAG_DOG] image.path = json[cls.FLAG_PATH] image.name = json[cls.FLAG_NAME] - image.active = json[cls.FLAG_ACTIVE] + image.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) image.created_on = json.get(cls.FLAG_CREATED_ON, None) # Helper_App.console_log(f'Image: {image}') return image diff --git a/business_objects/dog/lighting_level.py b/business_objects/dog/lighting_level.py index acad87f..3a34ac0 100644 --- a/business_objects/dog/lighting_level.py +++ b/business_objects/dog/lighting_level.py @@ -68,7 +68,7 @@ class Lighting_Level(SQLAlchemy_ABC, Base): lighting_level.id_lighting_level = json.get(Lighting_Level.ATTR_ID_LIGHTING_LEVEL, -1) lighting_level.name = json[cls.FLAG_NAME] lighting_level.code = json.get(cls.FLAG_CODE, lighting_level.name.upper().replace(" ", "_")) - lighting_level.active = json[cls.FLAG_ACTIVE] + lighting_level.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) lighting_level.created_on = json.get(cls.FLAG_CREATED_ON, None) # Helper_App.console_log(f'Lighting_Level: {lighting_level}') return lighting_level diff --git a/business_objects/dog/location.py b/business_objects/dog/location.py index e4180f8..db1951b 100644 --- a/business_objects/dog/location.py +++ b/business_objects/dog/location.py @@ -85,7 +85,7 @@ class Location(SQLAlchemy_ABC, Base): location.id_location_parent = json[Location.FLAG_LOCATION_PARENT] location.name = json[cls.FLAG_NAME] location.code = json.get(cls.FLAG_CODE, location.name.upper().replace(" ", "_")) - location.active = json[cls.FLAG_ACTIVE] + location.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) location.created_on = json.get(cls.FLAG_CREATED_ON, None) # Helper_App.console_log(f'Location: {location}') return location diff --git a/business_objects/dog/obedience_level.py b/business_objects/dog/obedience_level.py index 1985466..ce06da5 100644 --- a/business_objects/dog/obedience_level.py +++ b/business_objects/dog/obedience_level.py @@ -61,12 +61,10 @@ class Obedience_Level(SQLAlchemy_ABC, Base): _m = f'{cls.__qualname__}.from_json' obedience_level = cls() if json is None: return Obedience_Level - Helper_App.console_log(f'{_m}\njson: {json}') obedience_level.id_obedience_level = json.get(Obedience_Level.ATTR_ID_OBEDIENCE_LEVEL, -1) obedience_level.code = json[cls.FLAG_CODE] obedience_level.name = json[cls.FLAG_NAME] - obedience_level.active = json[cls.FLAG_ACTIVE] - Helper_App.console_log(f'Obedience_Level: {obedience_level}') + obedience_level.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) return obedience_level @@ -78,7 +76,6 @@ class Obedience_Level(SQLAlchemy_ABC, Base): , self.FLAG_NAME: self.name , self.FLAG_ACTIVE: self.active } - Helper_App.console_log(f'as_json: {as_json}') return as_json def __repr__(self): diff --git a/business_objects/dog/response_quality_metric.py b/business_objects/dog/response_quality_metric.py index 096b6e5..95412bc 100644 --- a/business_objects/dog/response_quality_metric.py +++ b/business_objects/dog/response_quality_metric.py @@ -20,11 +20,11 @@ from typing import ClassVar class Response_Quality_Metric(SQLAlchemy_ABC, Base): - ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC: ClassVar[str] = 'id_response_quality_metric' + ATTR_ID_RESPONSE_QUALITY_METRIC: ClassVar[str] = 'id_response_quality_metric' FLAG_RESPONSE_QUALITY_METRIC: ClassVar[str] = 'response-quality-metric' FLAG_VALUE_MIN: ClassVar[str] = 'value-min' FLAG_VALUE_MAX: ClassVar[str] = 'value-max' - NAME_ATTR_OPTION_VALUE: ClassVar[str] = ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC + NAME_ATTR_OPTION_VALUE: ClassVar[str] = ATTR_ID_RESPONSE_QUALITY_METRIC NAME_ATTR_OPTION_TEXT: ClassVar[str] = Base.FLAG_NAME __tablename__ = 'DOG_Response_Quality_Metric' @@ -47,25 +47,26 @@ class Response_Quality_Metric(SQLAlchemy_ABC, Base): @classmethod def from_db_response_quality_metric(cls, query_row): _m = f'{cls.__qualname__}.from_db_response_quality_metric' - response = cls() - response.id_response_quality_metric = query_row[0] - response.id_unit_measurement = query_row[1] - response.code = query_row[5] - response.name = query_row[6] - response.value_min = query_row[7] - response.value_max = query_row[8] - response.active = av.input_bool(query_row[9], 'active', _m) - response.unit_measurement = Unit_Measurement.from_db_response_quality_metric(query_row) - return response + metric = cls() + metric.id_response_quality_metric = query_row[0] + metric.id_unit_measurement = query_row[1] + metric.code = query_row[5] + metric.name = query_row[6] + metric.value_min = query_row[7] + metric.value_max = query_row[8] + metric.active = av.input_bool(query_row[9], 'active', _m) + metric.unit_measurement = Unit_Measurement.from_db_response_quality_metric(query_row) + return metric @classmethod def from_db_assessment_response(cls, query_row): _m = f'{cls.__qualname__}.from_db_assessment_response' - level = cls() - level.id_response_quality_metric = query_row[2] - level.name = query_row[3] - level.active = True - return level + metric = cls() + metric.id_response_quality_metric = query_row[2] + metric.name = query_row[3] + metric.active = True + metric.unit_measurement = Unit_Measurement.from_db_assessment_response(query_row) + return metric @classmethod def from_json(cls, json): @@ -73,12 +74,12 @@ class Response_Quality_Metric(SQLAlchemy_ABC, Base): response_quality_metric = cls() if json is None: return Response_Quality_Metric # Helper_App.console_log(f'{_m}\njson: {json}') - response_quality_metric.id_response_quality_metric = json.get(cls.ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC, -1) + response_quality_metric.id_response_quality_metric = json.get(cls.ATTR_ID_RESPONSE_QUALITY_METRIC, -1) response_quality_metric.name = json[cls.FLAG_NAME] response_quality_metric.code = json.get(cls.FLAG_CODE, response_quality_metric.name.upper().replace(" ", "_")) response_quality_metric.value_min = json[cls.FLAG_VALUE_MIN] response_quality_metric.value_max = json[cls.FLAG_VALUE_MAX] - response_quality_metric.active = json[cls.FLAG_ACTIVE] + response_quality_metric.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) # Helper_App.console_log(f'Response_Quality_Metric: {response_quality_metric}') return response_quality_metric @@ -86,7 +87,7 @@ class Response_Quality_Metric(SQLAlchemy_ABC, Base): def to_json(self): as_json = { **self.get_shared_json_attributes(self) - , self.ATTR_ID_ASSESSMENT_RESPONSE_QUALITY_METRIC: self.id_response_quality_metric + , self.ATTR_ID_RESPONSE_QUALITY_METRIC: self.id_response_quality_metric , self.FLAG_CODE: self.code , self.FLAG_NAME: f'{self.name} ({self.unit_measurement.symbol})' , self.FLAG_VALUE_MIN: self.value_min diff --git a/business_objects/dog/unit_measurement.py b/business_objects/dog/unit_measurement.py index 3af9875..6665e98 100644 --- a/business_objects/dog/unit_measurement.py +++ b/business_objects/dog/unit_measurement.py @@ -53,49 +53,57 @@ class Unit_Measurement(SQLAlchemy_ABC, Base): @classmethod def from_db_unit_measurement(cls, query_row): _m = f'{cls.__qualname__}.from_db_unit_measurement' - level = cls() - level.id_unit_measurement = query_row[0] - level.name_singular = query_row[1] - level.name_plural = query_row[2] - level.symbol = query_row[3] - level.symbol_is_suffix_not_prefix = query_row[4] - level.is_base_unit = query_row[5] - level.is_unit_of_distance = query_row[6] - level.is_unit_of_mass = query_row[7] - level.is_unit_of_time = query_row[8] - level.is_unit_of_volume = query_row[9] - level.active = True - return level + unit = cls() + unit.id_unit_measurement = query_row[0] + unit.name_singular = query_row[1] + unit.name_plural = query_row[2] + unit.symbol = query_row[3] + unit.symbol_is_suffix_not_prefix = query_row[4] + unit.is_base_unit = av.input_bool(query_row[5], 'is_base_unit', _m) + unit.is_unit_of_distance = av.input_bool(query_row[6], 'is_base_unit', _m) + unit.is_unit_of_mass = av.input_bool(query_row[7], 'is_base_unit', _m) + unit.is_unit_of_time = av.input_bool(query_row[8], 'is_base_unit', _m) + unit.is_unit_of_volume = av.input_bool(query_row[9], 'is_base_unit', _m) + unit.active = True + return unit @classmethod def from_db_response_quality_metric(cls, query_row): _m = f'{cls.__qualname__}.from_db_response_quality_metric' - level = cls() - level.id_unit_measurement = query_row[1] - level.name_singular = query_row[2] - level.name_plural = query_row[3] - level.symbol = query_row[4] - level.active = True - return level + unit = cls() + unit.id_unit_measurement = query_row[1] + unit.name_singular = query_row[2] + unit.name_plural = query_row[3] + unit.symbol = query_row[4] + unit.active = True + return unit + + @classmethod + def from_db_assessment_response(cls, query_row): + _m = f'{cls.__qualname__}.from_db_assessment_response' + unit = cls() + unit.id_unit_measurement = None + unit.name_singular = '' + unit.name_plural = '' + unit.symbol = '' + return unit @classmethod def from_json(cls, json): _m = f'{cls.__qualname__}.from_json' unit_measurement = cls() if json is None: return Unit_Measurement - Helper_App.console_log(f'{_m}\njson: {json}') unit_measurement.id_unit_measurement = json.get(Unit_Measurement.ATTR_ID_UNIT_MEASUREMENT, -1) unit_measurement.name_singular = json[cls.FLAG_NAME_SINGULAR] unit_measurement.name_plural = json[cls.FLAG_NAME_PLURAL] unit_measurement.symbol = json[cls.FLAG_SYMBOL] - unit_measurement.symbol_is_suffix_not_prefix = json[cls.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX] - unit_measurement.is_base_unit = json[cls.FLAG_IS_BASE_UNIT] - unit_measurement.is_unit_of_distance = json[cls.FLAG_IS_UNIT_OF_DISTANCE] - unit_measurement.is_unit_of_mass = json[cls.FLAG_IS_UNIT_OF_MASS] - unit_measurement.is_unit_of_time = json[cls.FLAG_IS_UNIT_OF_TIME] - unit_measurement.is_unit_of_volume = json[cls.FLAG_IS_UNIT_OF_VOLUME] - unit_measurement.active = json[cls.FLAG_ACTIVE] - Helper_App.console_log(f'Unit_Measurement: {unit_measurement}') + unit_measurement.symbol_is_suffix_not_prefix = av.input_bool(json[cls.FLAG_SYMBOL_IS_SUFFIX_NOT_PREFIX], cls.FLAG_ACTIVE, _m) + unit_measurement.is_base_unit = av.input_bool(json[cls.FLAG_IS_BASE_UNIT], cls.FLAG_ACTIVE, _m) + unit_measurement.is_unit_of_distance = av.input_bool(json[cls.FLAG_IS_UNIT_OF_DISTANCE], cls.FLAG_ACTIVE, _m) + unit_measurement.is_unit_of_mass = av.input_bool(json[cls.FLAG_IS_UNIT_OF_MASS], cls.FLAG_ACTIVE, _m) + unit_measurement.is_unit_of_time = av.input_bool(json[cls.FLAG_IS_UNIT_OF_TIME], cls.FLAG_ACTIVE, _m) + unit_measurement.is_unit_of_volume = av.input_bool(json[cls.FLAG_IS_UNIT_OF_VOLUME], cls.FLAG_ACTIVE, _m) + unit_measurement.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) return unit_measurement @@ -114,7 +122,6 @@ class Unit_Measurement(SQLAlchemy_ABC, Base): , self.FLAG_IS_UNIT_OF_VOLUME: self.is_unit_of_volume , self.FLAG_ACTIVE: self.active } - Helper_App.console_log(f'as_json: {as_json}') return as_json def __repr__(self): diff --git a/business_objects/dog/user.py b/business_objects/dog/user.py index f4397d3..eb731fc 100644 --- a/business_objects/dog/user.py +++ b/business_objects/dog/user.py @@ -72,7 +72,6 @@ class User(SQLAlchemy_ABC, Base): _m = 'User.from_json' user = User() if json is None: return user - Helper_App.console_log(f'{_m}\njson: {json}') user.id_user = json['id_user'] user.id_user_auth0 = json['id_user_auth0'] user.firstname = json['firstname'] @@ -83,7 +82,6 @@ class User(SQLAlchemy_ABC, Base): user.can_admin_dog = user.is_super_user - Helper_App.console_log(f'user: {user}') return user @staticmethod @@ -91,7 +89,6 @@ class User(SQLAlchemy_ABC, Base): _m = 'User.from_json_auth0' user = User() if json is None: return user - Helper_App.console_log(f'{_m}\njson: {json}') user_info = json['userinfo'] user.id_user = None user.id_user_auth0 = user_info['sub'] @@ -103,7 +100,6 @@ class User(SQLAlchemy_ABC, Base): user.can_admin_dog = user.is_super_user - Helper_App.console_log(f'user: {user}') return user def to_json(self): @@ -118,7 +114,6 @@ class User(SQLAlchemy_ABC, Base): , 'is_email_verified': self.is_email_verified , 'is_super_user': self.is_super_user } - Helper_App.console_log(f'as_json: {as_json}') return as_json def __repr__(self): diff --git a/business_objects/dog/weather.py b/business_objects/dog/weather.py index 4c11693..37e26af 100644 --- a/business_objects/dog/weather.py +++ b/business_objects/dog/weather.py @@ -68,7 +68,7 @@ class Weather(SQLAlchemy_ABC, Base): weather.id_weather = json.get(Weather.ATTR_ID_WEATHER, -1) weather.name = json[cls.FLAG_NAME] weather.code = json.get(cls.FLAG_CODE, weather.name.upper().replace(" ", "_")) - weather.active = json[cls.FLAG_ACTIVE] + weather.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) weather.created_on = json.get(cls.FLAG_CREATED_ON, None) # Helper_App.console_log(f'Weather: {weather}') return weather diff --git a/business_objects/file_type.py b/business_objects/file_type.py index a4d41b7..9bcb552 100644 --- a/business_objects/file_type.py +++ b/business_objects/file_type.py @@ -56,13 +56,11 @@ class File_Type(SQLAlchemy_ABC, Base): _m = 'File_Type.from_json' file_type = cls() if json is None: return File_Type - # Helper_App.console_log(f'{_m}\njson: {json}') file_type.id_file_type = json.get(cls.ATTR_ID_FILE_TYPE, -1) file_type.name = json[cls.FLAG_NAME] file_type.code = json.get(cls.FLAG_CODE, file_type.name.upper().replace(" ", "_")) file_type.is_image = json[cls.FLAG_IS_IMAGE] file_type.active = json[cls.FLAG_ACTIVE] - # Helper_App.console_log(f'File_Type: {file_type}') return file_type @@ -75,7 +73,6 @@ class File_Type(SQLAlchemy_ABC, Base): , self.FLAG_IS_IMAGE: self.is_image , self.FLAG_ACTIVE: self.active } - # Helper_App.console_log(f'as_json: {as_json}') return as_json def __repr__(self): diff --git a/business_objects/project_hub/contact_form.py b/business_objects/project_hub/contact_form.py index 7d4174e..dc62425 100644 --- a/business_objects/project_hub/contact_form.py +++ b/business_objects/project_hub/contact_form.py @@ -63,16 +63,14 @@ class Contact_Form(SQLAlchemy_ABC, Base): _m = 'Contact_Form.from_json' contact_form = cls() if json is None: return Contact_Form - Helper_App.console_log(f'{_m}\njson: {json}') contact_form.id_contact_form = -1 contact_form.email = json[cls.FLAG_EMAIL] contact_form.name_contact = json[cls.FLAG_NAME_CONTACT] contact_form.name_company = json[cls.FLAG_NAME_COMPANY] contact_form.message = json[cls.FLAG_MESSAGE] contact_form.receive_marketing_communications = json[cls.FLAG_RECEIVE_MARKETING_COMMUNICATIONS] - contact_form.active = json[cls.FLAG_ACTIVE] + contact_form.active = av.input_bool(json[cls.FLAG_ACTIVE], cls.FLAG_ACTIVE, _m) contact_form.created_on = json.get(cls.FLAG_CREATED_ON, None) - Helper_App.console_log(f'Contact_Form: {contact_form}') return contact_form @@ -87,7 +85,6 @@ class Contact_Form(SQLAlchemy_ABC, Base): , self.FLAG_ACTIVE: self.active , self.FLAG_CREATED_ON: self.created_on } - Helper_App.console_log(f'as_json: {as_json}') return as_json def __repr__(self): diff --git a/controllers/dog/assessment.py b/controllers/dog/assessment.py index b843bc5..bd3b443 100644 --- a/controllers/dog/assessment.py +++ b/controllers/dog/assessment.py @@ -15,6 +15,9 @@ Dog Assessments Page Controller. from business_objects.api import API from business_objects.dog.command import Command from business_objects.dog.assessment import Assessment +from business_objects.dog.assessment_command_modality_link import Assessment_Command_Modality_Link +from business_objects.dog.assessment_response import Assessment_Response +from business_objects.dog.distraction import Distraction from datastores.datastore_dog import DataStore_Dog from forms.dog.assessment import Filters_Assessment from helpers.helper_app import Helper_App @@ -56,18 +59,31 @@ def assessments(): Helper_App.console_log(f'form_filters={form_filters}') return render_template('pages/dog/_assessments.html', model = model) -@routes_dog_assessment.route(Model_View_Dog_Assessment.HASH_SAVE_DOG_ASSESSMENT, methods=['POST']) +@routes_dog_assessment.route(Model_View_Dog_Assessment.HASH_SAVE_DOG_ASSESSMENT_DISTRACTION_AND_RESPONSE, methods=['POST']) def save_assessment(): + Helper_App.console_log('save_assessment') data = Helper_App.get_request_data(request) try: + token_received = data.get(Model_View_Dog_Assessment.FLAG_CSRF_TOKEN) + token_expected = session.get(Model_View_Dog_Assessment.FLAG_CSRF_TOKEN) # 'csrf_token' + if (not token_received) or not hmac.compare_digest(token_received, token_expected): + Helper_App.console_log(f'token_received: {token_received}\ntoken_expected: {token_expected}') + Helper_App.console_log(f'session: {session}\nkey: {Model_View_Dog_Assessment.FLAG_CSRF_TOKEN}') + return jsonify({ + Model_View_Dog_Assessment.FLAG_STATUS: Model_View_Dog_Assessment.FLAG_FAILURE, + Model_View_Dog_Assessment.FLAG_MESSAGE: f'Invalid token received.' + }) form_filters = Filters_Assessment.from_json(data[Model_View_Dog_Assessment.FLAG_FORM_FILTERS]) + """ if not form_filters.validate_on_submit(): return jsonify({ Model_View_Dog_Assessment.FLAG_STATUS: Model_View_Dog_Assessment.FLAG_FAILURE, Model_View_Dog_Assessment.FLAG_MESSAGE: f'Filters form invalid.\n{form_filters.errors}' }) - model_return = Model_View_Dog_Assessment(form_filters_old=form_filters) - if not model_return.is_user_logged_in: + """ + model_permissions = Model_View_Dog_Assessment(form_filters_old=form_filters) + Helper_App.console_log('made model') + if not model_permissions.is_user_logged_in: raise Exception('User not logged in') assessments = data[Model_View_Dog_Assessment.FLAG_ASSESSMENT] @@ -77,19 +93,47 @@ def save_assessment(): Model_View_Dog_Assessment.FLAG_MESSAGE: f'No assessments.' }) objs_assessment = [] + objs_distraction = [] + objs_assessment_command_modality_link = [] + objs_assessment_responses = [] for assessment in assessments: objs_assessment.append(Assessment.from_json(assessment)) + objs_distraction.extend([Distraction.from_json(link_json) for link_json in assessment.get(Distraction.FLAG_DISTRACTION, [])]) + for link_json in assessment.get(Assessment_Command_Modality_Link.FLAG_ASSESSMENT_COMMAND_MODALITY_LINK, []): + objs_assessment_command_modality_link.append(Assessment_Command_Modality_Link.from_json(link_json)) + objs_assessment_responses.extend([Assessment_Response.from_json(response_json) for response_json in link_json.get(Assessment_Response.FLAG_ASSESSMENT_RESPONSE, [])]) + """ + errors = [] Helper_App.console_log(f'objs_assessment={objs_assessment}') - errors = DataStore_Dog.save_assessments(data.get('comment', 'No comment'), objs_assessment) - + if len(objs_assessment) > 0: + errors.extend(DataStore_Dog.save_assessments(data.get('comment', 'No comment'), objs_assessment)) + Helper_App.console_log(f'objs_distraction={objs_distraction}') + if len(objs_distraction) > 0: + errors.extend(DataStore_Dog.save_distractions(data.get('comment', 'No comment'), objs_distraction)) + Helper_App.console_log(f'objs_assessment_command_modality_link={objs_assessment_command_modality_link}') + if len(objs_assessment_command_modality_link) > 0: + errors.extend(DataStore_Dog.save_assessment_command_modality_links(data.get('comment', 'No comment'), objs_assessment_command_modality_link)) + Helper_App.console_log(f'objs_assessment_responses={objs_assessment_responses}') + if len(objs_assessment_responses) > 0: + errors.extend(DataStore_Dog.save_assessment_responses(data.get('comment', 'No comment'), objs_assessment_responses)) + """ + errors = DataStore_Dog.save_assessments_distactions_and_responses( + comment = data.get('comment', 'No comment') + , assessments = objs_assessment + , distractions = objs_distraction + , assessment_command_modality_links = objs_assessment_command_modality_link + , assessment_responses = objs_assessment_responses + ) + # model_return = Model_View_Dog_Assessment(form_filters_old=form_filters) + if (len(errors) > 0): return jsonify({ Model_View_Dog_Assessment.FLAG_STATUS: Model_View_Dog_Assessment.FLAG_FAILURE, - Model_View_Dog_Assessment.FLAG_MESSAGE: f'Error saving assessments.\n{model_return.convert_list_objects_to_json(errors)}' + Model_View_Dog_Assessment.FLAG_MESSAGE: f'Error saving assessments.\n{model_permissions.convert_list_objects_to_json(errors)}' }) return jsonify({ Model_View_Dog_Assessment.FLAG_STATUS: Model_View_Dog_Assessment.FLAG_SUCCESS, - Model_View_Dog_Assessment.FLAG_DATA: Model_View_Dog_Assessment.convert_list_objects_to_json(model_return.assessments) + Model_View_Dog_Assessment.FLAG_DATA: None # Model_View_Dog_Assessment.convert_list_objects_to_json(model_permissions.assessments) }) except Exception as e: return jsonify({ @@ -107,12 +151,17 @@ def assessment(): Helper_App.console_log(f'Error: {e}') form_filters = Filters_Assessment() Helper_App.console_log(f'form_filters={form_filters}') - id_assessment = request.args.get(Model_View_Dog_Assessment.ATTR_ID_ASSESSMENT, None) + temp_id_assessment = request.args.get(Model_View_Dog_Assessment.ATTR_ID_ASSESSMENT, -1) + id_assessment = None if (temp_id_assessment is None or temp_id_assessment == '') else int(temp_id_assessment) model = Model_View_Dog_Assessment(form_filters_old = form_filters, id_assessment = id_assessment, hash_page_current = Model_View_Dog_Assessment.HASH_PAGE_DOG_ASSESSMENT) model._title = 'Assessment' if model.assessments is None or len(model.assessments) == 0: - return assessments() + if id_assessment is not None and id_assessment > 0: + return assessments() + else: + model.assessments = [Assessment()] if not model.is_user_logged_in: return redirect(url_for('routes_core_home.home')) + session[Model_View_Dog_Assessment.FLAG_CSRF_TOKEN] = model.form_filters.csrf_token.current_token #.hidden_tag() Helper_App.console_log(f'form_filters={form_filters}') return render_template('pages/dog/_assessment.html', model = model) diff --git a/controllers/legal/legal.py b/controllers/legal/legal.py index 4161312..6acd459 100644 --- a/controllers/legal/legal.py +++ b/controllers/legal/legal.py @@ -20,7 +20,7 @@ from models.model_view_accessibility_statement import Model_View_Accessibility_S from models.model_view_retention_schedule import Model_View_Retention_Schedule import lib.argument_validation as av # external -from flask import render_template, Blueprint +from flask import render_template, Blueprint, send_from_directory routes_legal = Blueprint('routes_legal', __name__) @@ -67,4 +67,6 @@ def privacy_policy(): except Exception as e: return str(e) return html_body - +@routes_legal.route('/robots.txt', methods=['GET']) +def robots_txt(): + return send_from_directory('static', 'docs/robots.txt') diff --git a/datastores/datastore_dog.py b/datastores/datastore_dog.py index d6dd5c2..4d7b7c9 100644 --- a/datastores/datastore_dog.py +++ b/datastores/datastore_dog.py @@ -681,6 +681,54 @@ class DataStore_Dog(DataStore_Base): cls.db_cursor_clear(cursor) return assessments, errors + + @classmethod + def save_assessments(cls, comment, assessments): + _m = f'{cls}.save_assessments' + av.val_str(comment, 'comment', _m) + + guid = Helper_DB_MySQL.create_guid_str() + now = datetime.now() + user = cls.get_user_session() + + Helper_App.console_log(f'saving assessments: {assessments}') + + rows = [] + for link in assessments: + row = Assessment_Temp.from_assessment(link) + row.guid = guid + rows.append(row) + + Helper_App.console_log(f'rows: {rows}') + + cls.upload_bulk(Assessment_Temp.__tablename__, rows, 1000) + + Helper_App.console_log('assessments uploaded') + + argument_dict_list = { + 'a_comment': comment, + 'a_guid': guid, + 'a_id_user': user.id_user, + 'a_debug': 0 + } + result = cls.db_procedure_execute('p_dog_save_assessment', argument_dict_list) + + Helper_App.console_log('Assessments saved') + + # Errors + cursor = result.cursor + cursor.nextset() + result_set_e = cursor.fetchall() + Helper_App.console_log(f"Raw errors: {result_set_e}") + errors = [] + if len(result_set_e) > 0: + errors = [SQL_Error.from_db_record(row) for row in result_set_e] + for error in errors: + Helper_App.console_log(f"Error [{error.code}]: {error.msg}") + + cls.db_cursor_clear(cursor) + + return errors @classmethod @@ -872,6 +920,54 @@ class DataStore_Dog(DataStore_Base): cls.db_cursor_clear(cursor) return distractions, errors + + @classmethod + def save_distractions(cls, comment, distractions): + _m = f'{cls}.save_distractions' + av.val_str(comment, 'comment', _m) + + guid = Helper_DB_MySQL.create_guid_str() + now = datetime.now() + user = cls.get_user_session() + + Helper_App.console_log(f'saving distractions: {distractions}') + + rows = [] + for distraction in distractions: + row = Distraction_Temp.from_distraction(distraction) + row.guid = guid + rows.append(row) + + Helper_App.console_log(f'rows: {rows}') + + cls.upload_bulk(Distraction_Temp.__tablename__, rows, 1000) + + Helper_App.console_log('distractions uploaded') + + argument_dict_list = { + 'a_comment': comment, + 'a_guid': guid, + 'a_id_user': user.id_user, + 'a_debug': 0 + } + result = cls.db_procedure_execute('p_dog_save_distraction', argument_dict_list) + + Helper_App.console_log('Distractions saved') + + # Errors + cursor = result.cursor + cursor.nextset() + result_set_e = cursor.fetchall() + Helper_App.console_log(f"Raw errors: {result_set_e}") + errors = [] + if len(result_set_e) > 0: + errors = [SQL_Error.from_db_record(row) for row in result_set_e] + for error in errors: + Helper_App.console_log(f"Error [{error.code}]: {error.msg}") + + cls.db_cursor_clear(cursor) + + return errors @classmethod @@ -986,6 +1082,54 @@ class DataStore_Dog(DataStore_Base): cls.db_cursor_clear(cursor) return assessment_command_modality_links, errors + + @classmethod + def save_assessment_command_modality_links(cls, comment, assessment_command_modality_links): + _m = f'{cls}.save_assessment_command_modality_links' + av.val_str(comment, 'comment', _m) + + guid = Helper_DB_MySQL.create_guid_str() + now = datetime.now() + user = cls.get_user_session() + + Helper_App.console_log(f'saving assessment_command_modality_links: {assessment_command_modality_links}') + + rows = [] + for link in assessment_command_modality_links: + row = Assessment_Command_Modality_Link_Temp.from_assessment_command_modality_link(link) + row.guid = guid + rows.append(row) + + Helper_App.console_log(f'rows: {rows}') + + cls.upload_bulk(Assessment_Command_Modality_Link_Temp.__tablename__, rows, 1000) + + Helper_App.console_log('assessment_command_modality_links uploaded') + + argument_dict_list = { + 'a_comment': comment, + 'a_guid': guid, + 'a_id_user': user.id_user, + 'a_debug': 0 + } + result = cls.db_procedure_execute('p_dog_save_assessment_command_modality_link', argument_dict_list) + + Helper_App.console_log('Assessment_Command_Modality_Links saved') + + # Errors + cursor = result.cursor + cursor.nextset() + result_set_e = cursor.fetchall() + Helper_App.console_log(f"Raw errors: {result_set_e}") + errors = [] + if len(result_set_e) > 0: + errors = [SQL_Error.from_db_record(row) for row in result_set_e] + for error in errors: + Helper_App.console_log(f"Error [{error.code}]: {error.msg}") + + cls.db_cursor_clear(cursor) + + return errors @classmethod @@ -1100,3 +1244,124 @@ class DataStore_Dog(DataStore_Base): cls.db_cursor_clear(cursor) return assessment_responses, errors + + @classmethod + def save_assessment_responses(cls, comment, assessment_responses): + _m = f'{cls}.save_assessment_responses' + av.val_str(comment, 'comment', _m) + + guid = Helper_DB_MySQL.create_guid_str() + now = datetime.now() + user = cls.get_user_session() + + Helper_App.console_log(f'saving assessment_responses: {assessment_responses}') + + rows = [] + for response in assessment_responses: + row = Assessment_Response_Temp.from_assessment_response(response) + row.guid = guid + rows.append(row) + + Helper_App.console_log(f'rows: {rows}') + + cls.upload_bulk(Assessment_Response_Temp.__tablename__, rows, 1000) + + Helper_App.console_log('assessment_responses uploaded') + + argument_dict_list = { + 'a_comment': comment, + 'a_guid': guid, + 'a_id_user': user.id_user, + 'a_debug': 0 + } + result = cls.db_procedure_execute('p_dog_save_assessment_response', argument_dict_list) + + Helper_App.console_log('Assessment_Responses saved') + + # Errors + cursor = result.cursor + cursor.nextset() + result_set_e = cursor.fetchall() + Helper_App.console_log(f"Raw errors: {result_set_e}") + errors = [] + if len(result_set_e) > 0: + errors = [SQL_Error.from_db_record(row) for row in result_set_e] + for error in errors: + Helper_App.console_log(f"Error [{error.code}]: {error.msg}") + + cls.db_cursor_clear(cursor) + + return errors + + + @classmethod + def save_assessments_distactions_and_responses(cls, comment, assessments, distractions, assessment_command_modality_links, assessment_responses): + _m = f'{cls}.save_assessments_distactions_and_responses' + av.val_str(comment, 'comment', _m) + + guid = Helper_DB_MySQL.create_guid_str() + now = datetime.now() + user = cls.get_user_session() + + Helper_App.console_log(f'saving assessments, distractions, and responses:\nAssessments: {assessments}\nDistractions: {distractions}\nAssessment Command Modality Links: {assessment_command_modality_links}\nResponses: {assessment_responses}') + + rows_assessment = [] + for assessment in assessments: + row = Assessment_Temp.from_assessment(assessment) + row.guid = guid + rows_assessment.append(row) + Helper_App.console_log(f'rows_assessment: {rows_assessment}') + cls.upload_bulk(Assessment_Temp.__tablename__, rows_assessment, 1000) + Helper_App.console_log('assessments uploaded') + + rows_distraction = [] + for distraction in distractions: + row = Distraction_Temp.from_distraction(distraction) + row.guid = guid + rows_distraction.append(row) + Helper_App.console_log(f'rows_distraction: {rows_distraction}') + cls.upload_bulk(Distraction_Temp.__tablename__, rows_distraction, 1000) + Helper_App.console_log('distractions uploaded') + + rows_link = [] + for link in assessment_command_modality_links: + row = Assessment_Command_Modality_Link_Temp.from_assessment_command_modality_link(link) + row.guid = guid + rows_link.append(row) + Helper_App.console_log(f'rows_link: {rows_link}') + cls.upload_bulk(Assessment_Command_Modality_Link_Temp.__tablename__, rows_link, 1000) + Helper_App.console_log('links uploaded') + + rows_response = [] + for response in assessment_responses: + row = Assessment_Response_Temp.from_assessment_response(response) + row.guid = guid + rows_response.append(row) + Helper_App.console_log(f'rows_response: {rows_response}') + cls.upload_bulk(Assessment_Response_Temp.__tablename__, rows_response, 1000) + Helper_App.console_log('assessment responses uploaded') + + argument_dict_list = { + 'a_comment': comment, + 'a_guid': guid, + 'a_id_user': user.id_user, + 'a_debug': 0 + } + result = cls.db_procedure_execute('p_dog_save_assessment_distraction_and_response', argument_dict_list) + + Helper_App.console_log('All saved') + + # Errors + cursor = result.cursor + cursor.nextset() + result_set_e = cursor.fetchall() + Helper_App.console_log(f"Raw errors: {result_set_e}") + errors = [] + if len(result_set_e) > 0: + errors = [SQL_Error.from_db_record(row) for row in result_set_e] + for error in errors: + Helper_App.console_log(f"Error [{error.code}]: {error.msg}") + + cls.db_cursor_clear(cursor) + + return errors diff --git a/forms/base.py b/forms/base.py index 4739f6d..22bef12 100644 --- a/forms/base.py +++ b/forms/base.py @@ -41,7 +41,7 @@ class Form_Base(FlaskForm, metaclass=Form_Base_Meta): @staticmethod def get_select_option_default_value(): - return '' + return '0' def __repr__(self): fields = ', '.join( diff --git a/models/model_view_base.py b/models/model_view_base.py index ade4c7c..bb3b170 100644 --- a/models/model_view_base.py +++ b/models/model_view_base.py @@ -76,6 +76,8 @@ class Model_View_Base(BaseModel, ABC): ATTR_ID_IMAGE: ClassVar[str] = Image.ATTR_ID_IMAGE ATTR_ID_LIGHTING_LEVEL: ClassVar[str] = Lighting_Level.ATTR_ID_LIGHTING_LEVEL ATTR_ID_LOCATION: ClassVar[str] = Location.ATTR_ID_LOCATION + ATTR_ID_OBEDIENCE_LEVEL: ClassVar[str] = Obedience_Level.ATTR_ID_OBEDIENCE_LEVEL + ATTR_ID_RESPONSE_QUALITY_METRIC: ClassVar[str] = Response_Quality_Metric.ATTR_ID_RESPONSE_QUALITY_METRIC ATTR_ID_WEATHER: ClassVar[str] = Weather.ATTR_ID_WEATHER ATTR_TEXT_COLLAPSED: ClassVar[str] = 'textCollapsed' ATTR_TEXT_EXPANDED: ClassVar[str] = 'textExpanded' @@ -243,7 +245,7 @@ class Model_View_Base(BaseModel, ABC): HASH_PAGE_DOG_COMMANDS: ClassVar[str] = '/dog/commands' HASH_PAGE_DOG_DOG_COMMAND_LINKS: ClassVar[str] = '/dog/dog-command-links' HASH_PAGE_DOG_DOGS: ClassVar[str] = '/dog/dogs' - HASH_PAGE_DOG_HOME: ClassVar[str] = '/dog/home' + HASH_PAGE_DOG_HOME: ClassVar[str] = '/dog/' HASH_PAGE_DOG_LOCATIONS: ClassVar[str] = '/dog/locations' HASH_PAGE_ERROR_NO_PERMISSION: ClassVar[str] = '/error' HASH_PAGE_HOME: ClassVar[str] = '/' @@ -252,7 +254,8 @@ class Model_View_Base(BaseModel, ABC): HASH_PAGE_USER_ACCOUNT: ClassVar[str] = '/user' HASH_PAGE_USER_LOGIN: ClassVar[str] = '/login' HASH_PAGE_USER_LOGOUT: ClassVar[str] = '/logout' - HASH_SAVE_DOG_ASSESSMENT: ClassVar[str] = '/dog/save-assessment' + # HASH_SAVE_DOG_ASSESSMENT: ClassVar[str] = '/dog/save-assessment' + HASH_SAVE_DOG_ASSESSMENT_DISTRACTION_AND_RESPONSE: ClassVar[str] = '/dog/save-assessment-distraction-and-response' HASH_SAVE_DOG_BUTTON_ICON: ClassVar[str] = '/dog/save-button-icon' HASH_SAVE_DOG_COLOUR: ClassVar[str] = '/dog/save-colour' HASH_SAVE_DOG_COMMAND: ClassVar[str] = '/dog/save-command' diff --git a/models/model_view_dog_assessment.py b/models/model_view_dog_assessment.py index 1d84120..d050fba 100644 --- a/models/model_view_dog_assessment.py +++ b/models/model_view_dog_assessment.py @@ -41,7 +41,7 @@ from typing import ClassVar, Optional from operator import attrgetter class Model_View_Dog_Assessment(Model_View_Dog_Base): - FLAG_DISTANCE_FROM_HANDLER: ClassVar[str] = Assessment_Command_Modality_Link.FLAG_DISTANCE_FROM_HANDLER + FLAG_DISTANCE_FROM_HANDLER_METRES: ClassVar[str] = Assessment_Command_Modality_Link.FLAG_DISTANCE_FROM_HANDLER_METRES FLAG_DISTRACTION_INTENSITY_LEVEL_EMOTIONAL: ClassVar[str] = Distraction.FLAG_DISTRACTION_INTENSITY_LEVEL_EMOTIONAL FLAG_DISTRACTION_INTENSITY_LEVEL_SCENT: ClassVar[str] = Distraction.FLAG_DISTRACTION_INTENSITY_LEVEL_SCENT FLAG_DISTRACTION_INTENSITY_LEVEL_SIGHT: ClassVar[str] = Distraction.FLAG_DISTRACTION_INTENSITY_LEVEL_SIGHT diff --git a/robots.txt b/robots.txt deleted file mode 100644 index 2730005..0000000 --- a/robots.txt +++ /dev/null @@ -1,3 +0,0 @@ -User-agent: * -Disallow: /qa -Disallow: /dev \ No newline at end of file diff --git a/static/MySQL/00000_combined.sql b/static/MySQL/00000_combined.sql index bd62b43..3bedc38 100644 --- a/static/MySQL/00000_combined.sql +++ b/static/MySQL/00000_combined.sql @@ -1,26 +1,24 @@ USE demo; -DROP PROCEDURE IF EXISTS demo.p_ph_save_contact_form; +DROP PROCEDURE IF EXISTS demo.p_dog_save_assessment_distraction_and_response; DELIMITER // -CREATE PROCEDURE demo.p_ph_save_contact_form ( +CREATE PROCEDURE demo.p_dog_save_assessment_distraction_and_response ( IN a_comment VARCHAR(500), IN a_guid BINARY(36), IN a_id_user INT, IN a_debug BIT ) BEGIN - DECLARE v_code_type_error_bad_data VARCHAR(100); - DECLARE v_id_access_level_view INT; - DECLARE v_id_access_level_edit INT; - DECLARE v_id_change_set INT; - DECLARE v_id_permission_contact_form_admin INT; - DECLARE v_id_permission_contact_form_new INT; - DECLARE v_id_type_error_bad_data INT; - DECLARE v_time_start TIMESTAMP(6); DECLARE v_can_admin BIT; DECLARE v_can_create BIT; + DECLARE v_code_type_error_bad_data VARCHAR(100); + DECLARE v_id_access_level_edit INT; + DECLARE v_id_change_set INT; + DECLARE v_id_permission_dog_new INT; + DECLARE v_id_type_error_bad_data INT; + DECLARE v_time_start TIMESTAMP(6); DECLARE exit handler for SQLEXCEPTION BEGIN @@ -32,16 +30,16 @@ BEGIN ROLLBACK; - CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( - display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL - , code VARCHAR(50) NOT NULL - , msg VARCHAR(4000) NOT NULL + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Combined ( + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT + , code VARCHAR(250) + , msg TEXT NOT NULL ); - INSERT INTO tmp_Msg_Error ( + INSERT INTO tmp_Msg_Error_Combined ( id_type - , code + , code , msg ) SELECT @@ -51,156 +49,191 @@ BEGIN FROM demo.CORE_Msg_Error_Type MET WHERE MET.code = 'MYSQL_ERROR' ; - - SELECT * - FROM tmp_Msg_Error; - DROP TABLE IF EXISTS tmp_Msg_Error + + SELECT + t_ERROR.id_error + , t_ERROR.id_type + , t_ERROR.code + , ERROR_TYPE.name + , ERROR_TYPE.description + , ERROR_TYPE.is_breaking_error + , ERROR_TYPE.background_colour + , ERROR_TYPE.text_colour + , t_ERROR.msg + FROM tmp_Msg_Error_Combined t_ERROR + INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type ; + + DROP TABLE IF EXISTS tmp_Msg_Error_Combined; END; + SET SESSION group_concat_max_len=15000; + SET v_time_start := CURRENT_TIMESTAMP(6); SET v_code_type_error_bad_data := 'BAD_DATA'; - SET v_id_type_error_bad_data := (SELECT id_type FROM demo.CORE_Msg_Error_Type WHERE code = v_code_type_error_bad_data LIMIT 1); - SET v_id_permission_contact_form_admin := (SELECT id_permission FROM demo.DOG_Permission P WHERE P.code = 'CONTACT_FORM_ADMIN' LIMIT 1); - SET v_id_permission_contact_form_new := (SELECT id_permission FROM demo.DOG_Permission P WHERE P.code = 'CONTACT_FORM_CREATE' LIMIT 1); + SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1); + SET v_id_permission_dog_new := (SELECT PERMISSION.id_permission FROM demo.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_CREATE' LIMIT 1); + SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM demo.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1); CALL demo.p_core_validate_guid ( a_guid ); - DROP TABLE IF EXISTS tmp_Contact_Form; + DROP TABLE IF EXISTS tmp_Assessment_Response_Save_ADR; + DROP TABLE IF EXISTS tmp_Assessment_Command_Modality_Link_Save_ADR; + DROP TABLE IF EXISTS tmp_Distraction_Save_ADR; + DROP TABLE IF EXISTS tmp_Assessment_Save_ADR; - CREATE TEMPORARY TABLE tmp_Contact_Form ( - id_contact_form INT NOT NULL - , email VARCHAR(255) NOT NULL - , name_contact VARCHAR(255) NOT NULL - , name_company VARCHAR(255) NOT NULL - , message TEXT NOT NULL - , receive_marketing_communications BIT NOT NULL - , active BIT NOT NULL - , name_error VARCHAR(255) - , is_new BIT NOT NULL + CREATE TEMPORARY TABLE tmp_Assessment_Save_ADR ( + id_temp INT + , id_assessment INT + , id_assessment_old INT + , active BIT + , is_new BIT ); - - CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( - display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL - , code VARCHAR(50) NOT NULL - , msg VARCHAR(4000) NOT NULL + + CREATE TEMPORARY TABLE tmp_Distraction_Save_ADR ( + id_temp INT + , id_distraction INT + , id_distraction_old INT + , id_assessment INT + , active BIT + , is_new BIT + ); + + CREATE TEMPORARY TABLE tmp_Assessment_Command_Modality_Link_Save_ADR ( + id_temp INT + , id_link INT + , id_link_old INT + , id_assessment INT + , active BIT + , is_new BIT + ); + + CREATE TEMPORARY TABLE tmp_Assessment_Response_Save_ADR ( + id_temp INT + , id_response INT + , id_response_old INT + , id_assessment_command_modality_link INT + , active BIT + , is_new BIT + ); + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Combined ( + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT + , code VARCHAR(250) + , msg TEXT NOT NULL ); -- Get data from Temp table - INSERT INTO tmp_Contact_Form ( - id_contact_form - , email - , name_contact - , name_company - , message - , receive_marketing_communications + INSERT INTO tmp_Assessment_Save_ADR ( + id_temp + , id_assessment + , id_assessment_old , active , is_new ) SELECT - CF_T.id_contact_form AS id_contact_form - , IFNULL(CF_T.email, CF.email) AS code - , IFNULL(CF_T.name_contact, CF.name_contact) AS name_contact - , IFNULL(CF_T.name_company, CF.name_company) AS name_company - , IFNULL(CF_T.message, CF.message) AS message - , COALESCE(CF_T.receive_marketing_communications, CF.receive_marketing_communications, 0) AS receive_marketing_communications - , COALESCE(CF_T.active, CF.active, 1) AS active - , CASE WHEN IFNULL(CF_T.id_contact_form, 0) < 1 THEN 1 ELSE 0 END AS is_new - FROM demo.PH_Contact_Form_Temp CF_T - LEFT JOIN demo.PH_Contact_Form CF ON CF_T.id_contact_form = CF.id_contact_form - WHERE CF_T.guid = a_guid + ASSESSMENT_T.id_temp + , ASSESSMENT_T.id_assessment + , ASSESSMENT_T.id_assessment + , COALESCE( + ASSESSMENT_T.active + , ASSESSMENT.active + , 1 + ) AS active + , CASE WHEN COALESCE(ASSESSMENT_T.id_assessment, 0) < 1 THEN 1 ELSE 0 END AS is_new + FROM demo.DOG_Assessment_Temp ASSESSMENT_T + LEFT JOIN demo.DOG_Assessment ASSESSMENT ON ASSESSMENT_T.id_assessment = ASSESSMENT.id_assessment + WHERE ASSESSMENT_T.guid = a_guid ; - UPDATE tmp_Contact_Form t_CF - SET name_error = COALESCE(t_CF.email, t_CF.name_company, t_CF.name_contact, t_CF.message, '(No Contact Form)') + INSERT INTO tmp_Distraction_Save_ADR ( + id_temp + , id_distraction + , id_distraction_old + , id_assessment + , active + , is_new + ) + SELECT + DISTRACTION_T.id_temp + , DISTRACTION_T.id_distraction + , DISTRACTION_T.id_distraction + , DISTRACTION_T.id_assessment + , COALESCE( + DISTRACTION_T.active + , DISTRACTION.active + , 1 + ) AS active + , CASE WHEN COALESCE(DISTRACTION_T.id_distraction, 0) < 1 THEN 1 ELSE 0 END AS is_new + FROM demo.DOG_Distraction_Temp DISTRACTION_T + LEFT JOIN demo.DOG_Distraction DISTRACTION ON DISTRACTION_T.id_distraction = DISTRACTION.id_distraction + WHERE DISTRACTION_T.guid = a_guid ; - - -- Validation - -- Missing mandatory fields - -- email - IF EXISTS (SELECT * FROM tmp_Contact_Form t_CF WHERE ISNULL(t_CF.email) LIMIT 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Contact Form(s) do not have an Email: ', GROUP_CONCAT(t_CF.name_error SEPARATOR ', ')) AS msg - FROM tmp_Contact_Form t_CF - WHERE ISNULL(t_CF.email) - ; - END IF; - -- name_contact - IF EXISTS (SELECT * FROM tmp_Contact_Form t_CF WHERE ISNULL(t_CF.name_contact) LIMIT 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Contact Form(s) do not have a Contact Name: ', GROUP_CONCAT(t_CF.name_error SEPARATOR ', ')) AS msg - FROM tmp_Contact_Form t_CF - WHERE ISNULL(t_CF.name_contact) - ; - END IF; - -- name_company - IF EXISTS (SELECT * FROM tmp_Contact_Form t_CF WHERE ISNULL(t_CF.name_company) LIMIT 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Contact Form(s) do not have a Company Name: ', GROUP_CONCAT(t_CF.name_error SEPARATOR ', ')) AS msg - FROM tmp_Contact_Form t_CF - WHERE ISNULL(t_CF.name) - ; - END IF; - -- message - IF EXISTS (SELECT * FROM tmp_Contact_Form t_CF WHERE ISNULL(t_CF.message) LIMIT 1) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Contact Form(s) do not have a Message: ', GROUP_CONCAT(t_CF.name_error SEPARATOR ', ')) AS msg - FROM tmp_Contact_Form t_CF - WHERE ISNULL(t_CF.message) - ; + + INSERT INTO tmp_Assessment_Command_Modality_Link_Save_ADR ( + id_temp + , id_link + , id_link_old + , id_assessment + , active + , is_new + ) + SELECT + ASSESSMENT_COMMAND_MODALITY_LINK_T.id_temp + , ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link + , ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link + , ASSESSMENT_COMMAND_MODALITY_LINK_T.id_assessment + , COALESCE( + ASSESSMENT_COMMAND_MODALITY_LINK_T.active + , ASSESSMENT_COMMAND_MODALITY_LINK.active + , 1 + ) AS active + , CASE WHEN COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link, 0) < 1 THEN 1 ELSE 0 END AS is_new + FROM demo.DOG_Assessment_Command_Modality_Link_Temp ASSESSMENT_COMMAND_MODALITY_LINK_T + LEFT JOIN demo.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link + WHERE ASSESSMENT_COMMAND_MODALITY_LINK_T.guid = a_guid + ; + + INSERT INTO tmp_Assessment_Response_Save_ADR ( + id_temp + , id_response + , id_response_old + , id_assessment_command_modality_link + , active + , is_new + ) + SELECT + ASSESSMENT_RESPONSE_T.id_temp + , ASSESSMENT_RESPONSE_T.id_response + , ASSESSMENT_RESPONSE_T.id_response + , ASSESSMENT_RESPONSE_T.id_assessment_command_modality_link + , COALESCE( + ASSESSMENT_RESPONSE_T.active + , ASSESSMENT_RESPONSE.active + , 1 + ) AS active + , CASE WHEN COALESCE(ASSESSMENT_RESPONSE_T.id_response, 0) < 1 THEN 1 ELSE 0 END AS is_new + FROM demo.DOG_Assessment_Response_Temp ASSESSMENT_RESPONSE_T + LEFT JOIN demo.DOG_Assessment_Response ASSESSMENT_RESPONSE ON ASSESSMENT_RESPONSE_T.id_response = ASSESSMENT_RESPONSE.id_response + WHERE ASSESSMENT_RESPONSE_T.guid = a_guid + ; + + IF a_debug = 1 THEN + SELECT 'Temp records'; + SELECT * FROM tmp_Assessment_Save_ADR; + SELECT COUNT(*) FROM tmp_Assessment_Save_ADR; + SELECT * FROM tmp_Distraction_Save_ADR; + SELECT COUNT(*) FROM tmp_Distraction_Save_ADR; + SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR; + SELECT COUNT(*) FROM tmp_Assessment_Command_Modality_Link_Save_ADR; + SELECT * FROM tmp_Assessment_Response_Save_ADR; + SELECT COUNT(*) FROM tmp_Assessment_Response_Save_ADR; END IF; -- Permissions - IF a_debug = 1 THEN - SELECT - a_guid - , 0 -- get_all_user - , 0 -- get_inactive_user - , a_id_user -- ids_user - , '' -- a_auth0_ids_user - , '' -- a_names_user - , '' -- a_emails_user - , 1 -- a_require_all_id_search_filters_met - , 1 -- a_require_any_id_search_filters_met - , 0 -- a_require_all_non_id_search_filters_met - , 0 -- a_require_any_non_id_search_filters_met - , v_id_permission_contact_form_admin -- ids_permission - , v_id_access_level_view -- ids_access_level - , 0 -- a_show_errors - , 0 -- a_debug - ; - END IF; - + -- Can Create CALL demo.p_dog_calc_user( a_guid , 0 -- get_all_user @@ -213,196 +246,300 @@ BEGIN , 1 -- a_require_any_id_search_filters_met , 0 -- a_require_all_non_id_search_filters_met , 0 -- a_require_any_non_id_search_filters_met - , v_id_permission_contact_form_admin -- ids_permission - , v_id_access_level_view -- ids_access_level + , v_id_permission_dog_new -- ids_permission + , v_id_access_level_edit -- ids_access_level , 0 -- a_show_errors , 0 -- a_debug ); SELECT - IFNULL(CALC_USER_T.has_access, 0) - INTO - v_can_admin - FROM demo.DOG_Calc_User_Temp CALC_USER_T - WHERE CALC_USER_T.GUID = a_guid - LIMIT 1 - ; - - IF a_debug = 1 THEN - SELECT v_can_admin; - SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR; - SELECT * FROM tmp_Msg_Error t_ERROR; - END IF; - - CALL demo.p_dog_clear_calc_user( - a_guid - , 0 -- a_debug - ); - - - IF a_debug = 1 THEN - SELECT - a_guid - , 0 -- get_all_user - , 0 -- get_inactive_user - , a_id_user -- ids_user - , '' -- a_auth0_ids_user - , '' -- a_names_user - , '' -- a_emails_user - , 1 -- a_require_all_id_search_filters_met - , 1 -- a_require_any_id_search_filters_met - , 0 -- a_require_all_non_id_search_filters_met - , 0 -- a_require_any_non_id_search_filters_met - , v_id_permission_contact_form_new -- ids_permission - , v_id_access_level_view -- ids_access_level - , 0 -- a_show_errors - , 0 -- a_debug - ; - END IF; - - CALL demo.p_dog_calc_user( - a_guid - , 0 -- get_all_user - , 0 -- get_inactive_user - , a_id_user -- ids_user - , '' -- a_auth0_ids_user - , '' -- a_names_user - , '' -- a_emails_user - , 1 -- a_require_all_id_search_filters_met - , 1 -- a_require_any_id_search_filters_met - , 0 -- a_require_all_non_id_search_filters_met - , 0 -- a_require_any_non_id_search_filters_met - , v_id_permission_contact_form_new -- ids_permission - , v_id_access_level_view -- ids_access_level - , 0 -- a_show_errors - , 0 -- a_debug - ); - - SELECT - IFNULL(CALC_USER_T.has_access, 0) + IFNULL(CU_T.has_access, 0) INTO v_can_create - FROM demo.DOG_Calc_User_Temp CALC_USER_T - WHERE CALC_USER_T.GUID = a_guid + FROM demo.DOG_Calc_User_Temp CU_T + WHERE CU_T.GUID = a_guid LIMIT 1 ; - - IF a_debug = 1 THEN - SELECT v_can_create; - SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR; - SELECT * FROM tmp_Msg_Error t_ERROR; - END IF; CALL demo.p_dog_clear_calc_user( a_guid , 0 -- a_debug ); - IF (v_can_admin = 0 AND EXISTS(SELECT * FROM tmp_Contact_Form WHERE is_new = 0)) THEN + IF v_can_create = 0 THEN DELETE t_ME - FROM tmp_Msg_Error t_ME + FROM tmp_Msg_Error_Combined t_ME WHERE t_ME.id_type <> v_id_type_error_no_permission ; - INSERT INTO tmp_Msg_Error ( + INSERT INTO tmp_Msg_Error_Combined ( id_type - , code + , code , msg ) VALUES ( v_id_type_error_no_permission - , v_code_type_error_no_permission - , 'You do not have permission to admin Contact Forms.' + , v_code_type_error_no_permission + , 'You do not have permission to edit Assessment_Distraction_And_Responses.' ) ; END IF; - - IF EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN - IF a_debug = 1 THEN - SELECT * from tmp_Contact_Form; - END IF; - DELETE FROM tmp_Contact_Form; - END IF; + -- DELETE FROM tmp_Msg_Error_Combined_Save; + -- Save Assessments + -- CREATE TEMPORARY TABLE tmp_Assessment_Save_ADR_Save_Error AS + -- INSERT INTO tmp_Msg_Error_Combined_Save + CALL demo.p_dog_save_assessment ( + a_comment + , a_guid + , a_id_user + , 0 -- debug + ); - IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN - START TRANSACTION; - - INSERT INTO demo.PH_Contact_Form_Change_Set ( - comment - , id_user_updated_last_by - , updated_last_on - ) - VALUES ( - a_comment - , a_id_user - , v_time_start - ) - ; - - SET v_id_change_set := LAST_INSERT_ID(); - - UPDATE demo.PH_Contact_Form CF - INNER JOIN tmp_Contact_Form t_CF - ON CF.id_contact_form = t_CF.id_contact_form - AND t_CF.is_new = 0 - SET - CF.email = t_CF.email - , CF.name_contact = t_CF.name_contact - , CF.name_company = t_CF.name_company - , CF.message = t_CF.message - , CF.receive_marketing_communications = t_CF.receive_marketing_communications - , CF.active = t_CF.active - , CF.id_change_set = v_id_change_set - ; - - INSERT INTO demo.PH_Contact_Form ( - email - , name_contact - , name_company - , message - , receive_marketing_communications - , active - , id_user_created_by - , created_on - ) - SELECT - t_CF.email AS email - , t_CF.name_contact AS name_contact - , t_CF.name_company AS name_company - , t_CF.message AS message - , t_CF.receive_marketing_communications AS receive_marketing_communications - , t_CF.active AS active - , a_id_user AS created_by - , v_time_start AS created_on - FROM tmp_Contact_Form t_CF - WHERE - t_CF.is_new = 1 - AND t_CF.active = 1 - ; - - COMMIT; - END IF; - - START TRANSACTION; + /* + INSERT INTO tmp_Msg_Error_Combined ( + id_type + , code + , msg + ) + SELECT + t_ASSESSMENT_SAVE_ERROR.id_type + , t_ASSESSMENT_SAVE_ERROR.code + , t_ASSESSMENT_SAVE_ERROR.msg + FROM tmp_Assessment_Save_ADR_Save_Error t_ASSESSMENT_SAVE_ERROR + ; + */ - DELETE FROM demo.PH_Contact_Form_Temp - WHERE GUID = a_guid + -- Get New Assessment Ids + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Combined t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + + -- Update Temporary tables with new Ids + UPDATE tmp_Assessment_Save_ADR t_ASSESSMENT + INNER JOIN demo.DOG_Assessment ASSESSMENT ON t_ASSESSMENT.id_temp = ASSESSMENT.id_temp + INNER JOIN tmp_Distraction_Save_ADR t_DISTRACTION ON t_ASSESSMENT.id_assessment_old = t_DISTRACTION.id_assessment + INNER JOIN tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT.id_assessment_old = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment + SET + t_ASSESSMENT.id_assessment = ASSESSMENT.id_assessment + , t_DISTRACTION.id_assessment = ASSESSMENT.id_assessment + , t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = ASSESSMENT.id_assessment + WHERE + t_ASSESSMENT.active = 1 + AND t_ASSESSMENT.is_new = 1 ; - - COMMIT; + + -- Update Staging tables with new Ids + IF EXISTS (SELECT * FROM tmp_Assessment_Save_ADR t_ASSESSMENT WHERE t_ASSESSMENT.id_assessment <> t_ASSESSMENT.id_assessment_old LIMIT 1) THEN + + START TRANSACTION; + + UPDATE demo.DOG_Distraction_Temp DISTRACTION_T + INNER JOIN tmp_Distraction_Save_ADR t_DISTRACTION ON DISTRACTION_T.id_temp = t_DISTRACTION.id_temp + INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON t_DISTRACTION.id_assessment = t_ASSESSMENT.id_assessment + SET DISTRACTION_T.id_assessment = t_DISTRACTION.id_assessment + WHERE t_ASSESSMENT.id_assessment <> t_ASSESSMENT.id_assessment_old + ; + + UPDATE demo.DOG_Assessment_Command_Modality_Link_Temp ASSESSMENT_COMMAND_MODALITY_LINK_T + INNER JOIN tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_temp = ASSESSMENT_COMMAND_MODALITY_LINK_T.id_temp + INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON t_ASSESSMENT.id_assessment = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment + SET ASSESSMENT_COMMAND_MODALITY_LINK_T.id_assessment = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment + WHERE t_ASSESSMENT.id_assessment <> t_ASSESSMENT.id_assessment_old + ; + + COMMIT; + END IF; + + END IF; + + IF a_debug = 1 THEN + SELECT 'After align assessment Ids'; + SELECT * FROM tmp_Assessment_Save_ADR; + SELECT * FROM tmp_Distraction_Save_ADR; + SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR; + SELECT * FROM tmp_Assessment_Response_Save_ADR; + END IF; + + -- DELETE FROM tmp_Msg_Error_Combined_Save; + -- Save Distractions + -- CREATE TEMPORARY TABLE tmp_Distraction_Save_ADR_Save_Error AS + -- INSERT INTO tmp_Msg_Error_Combined_Save + CALL demo.p_dog_save_distraction ( + a_comment + , a_guid + , a_id_user + , 0 -- debug + ); + + /* + INSERT INTO tmp_Msg_Error_Combined ( + id_type + , code + , msg + ) + SELECT + t_DISTRACTION_SAVE_ERROR.id_type + , t_DISTRACTION_SAVE_ERROR.code + , t_DISTRACTION_SAVE_ERROR.msg + FROM tmp_Distraction_Save_ADR_Save_Error t_DISTRACTION_SAVE_ERROR + ; + */ + + -- DELETE FROM tmp_Msg_Error_Combined_Save; + -- Save Assessment Command Modality Links + -- CREATE TEMPORARY TABLE tmp_Assessment_Command_Modality_Link_Save_ADR_Save_Error AS + -- INSERT INTO tmp_Msg_Error_Combined_Save + CALL demo.p_dog_save_assessment_command_modality_link ( + a_comment + , a_guid + , a_id_user + , 0 -- debug + ); + + /* + INSERT INTO tmp_Msg_Error_Combined ( + id_type + , code + , msg + ) + SELECT + t_ACML_SAVE_ERROR.id_type + , t_ACML_SAVE_ERROR.code + , t_ACML_SAVE_ERROR.msg + FROM tmp_Assessment_Command_Modality_Link_Save_ADR_Save_Error t_ACML_SAVE_ERROR + ; + */ + + -- Get New Assessment Command Modality Link Ids + IF EXISTS (SELECT * FROM tmp_Msg_Error_Combined t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + START TRANSACTION; + + DELETE ASSESSMENT + FROM demo.DOG_Assessment ASSESSMENT + INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON ASSESSMENT.id_assessment = t_ASSESSMENT.id_assessment + WHERE t_ASSESSMENT.is_new = 1 + ; + + COMMIT; + ELSE + -- Update Temporary tables with new Ids + UPDATE tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK + INNER JOIN demo.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_temp = ASSESSMENT_COMMAND_MODALITY_LINK.id_temp + LEFT JOIN tmp_Assessment_Response_Save_ADR t_ASSESSMENT_RESPONSE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link = t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link + SET + t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link + , t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link + WHERE + t_ASSESSMENT_COMMAND_MODALITY_LINK.active = 1 + AND t_ASSESSMENT_COMMAND_MODALITY_LINK.is_new = 1 + ; + + -- Update Staging tables with new Ids + IF EXISTS (SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK WHERE t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link <> t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link_old LIMIT 1) THEN + + START TRANSACTION; + + UPDATE demo.DOG_Assessment_Response_Temp ASSESSMENT_RESPONSE_T + INNER JOIN tmp_Assessment_Response_Save_ADR t_ASSESSMENT_RESPONSE ON ASSESSMENT_RESPONSE_T.id_temp = t_ASSESSMENT_RESPONSE.id_temp + INNER JOIN tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link + SET ASSESSMENT_RESPONSE_T.id_assessment_command_modality_link = t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link + WHERE t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link <> t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link_old + ; + + COMMIT; + END IF; + + END IF; + + IF a_debug = 1 THEN + SELECT 'After align assessment Ids'; + SELECT * FROM tmp_Assessment_Save_ADR; + SELECT * FROM tmp_Distraction_Save_ADR; + SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR; + SELECT * FROM tmp_Assessment_Response_Save_ADR; + END IF; + + -- DELETE FROM tmp_Msg_Error_Combined_Save; + -- Save Assessment Responses + -- CREATE TEMPORARY TABLE tmp_Assessment_Response_Save_ADR_Save_Error AS + -- INSERT INTO tmp_Msg_Error_Combined_Save + CALL demo.p_dog_save_assessment_response ( + a_comment + , a_guid + , a_id_user + , 0 -- debug + ); + + /* + INSERT INTO tmp_Msg_Error_Combined ( + id_type + , code + , msg + ) + SELECT + t_ASSESSMENT_RESPONSE_SAVE_ERROR.id_type + , t_ASSESSMENT_RESPONSE_SAVE_ERROR.code + , t_ASSESSMENT_RESPONSE_SAVE_ERROR.msg + FROM tmp_Assessment_Response_Save_ADR_Save_Error t_ASSESSMENT_RESPONSE_SAVE_ERROR + ; + */ + + -- Get New Assessment Command Modality Link Ids + IF EXISTS (SELECT * FROM tmp_Msg_Error_Combined t_ERROR INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + START TRANSACTION; + + DELETE ASSESSMENT_COMMAND_MODALITY_LINK + FROM demo.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK + INNER JOIN tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK ON ASSESSMENT_COMMAND_MODALITY_LINK.id_link = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment_command_modality_link + INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = t_ASSESSMENT.id_assessment + WHERE + t_ASSESSMENT_COMMAND_MODALITY_LINK.is_new = 1 + OR t_ASSESSMENT.is_new = 1 + ; + + DELETE ASSESSMENT + FROM demo.DOG_Assessment ASSESSMENT + INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON ASSESSMENT.id_assessment = t_ASSESSMENT.id_assessment + WHERE t_ASSESSMENT.is_new = 1 + ; + + COMMIT; + END IF; -- Errors - SELECT * - FROM tmp_Msg_Error t_ME - INNER JOIN demo.CORE_Msg_Error_Type MET ON t_ME.id_type = MET.id_type + SELECT + t_ERROR.id_error + , t_ERROR.id_type + , t_ERROR.code + , ERROR_TYPE.name + , ERROR_TYPE.description + , ERROR_TYPE.is_breaking_error + , ERROR_TYPE.background_colour + , ERROR_TYPE.text_colour + , t_ERROR.msg + FROM tmp_Msg_Error_Combined t_ERROR + INNER JOIN demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type ; IF a_debug = 1 THEN - SELECT * from tmp_Contact_Form; + SELECT * FROM tmp_Assessment_Save_ADR; + SELECT * FROM tmp_Distraction_Save_ADR; + SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR; + SELECT * FROM tmp_Assessment_Response_Save_ADR; END IF; - DROP TEMPORARY TABLE tmp_Contact_Form; - DROP TEMPORARY TABLE tmp_Msg_Error; + CALL demo.p_dog_clear_msg_error ( + a_guid + , 0 -- debug + ); + + DROP TABLE IF EXISTS tmp_Assessment_Response_Save_ADR_Save_Error; + DROP TABLE IF EXISTS tmp_Assessment_Command_Modality_Link_Save_ADR_Save_Error; + DROP TABLE IF EXISTS tmp_Distraction_Save_ADR_Save_Error; + DROP TABLE IF EXISTS tmp_Assessment_Save_ADR_Save_Error; + DROP TABLE IF EXISTS tmp_Assessment_Response_Save_ADR; + DROP TABLE IF EXISTS tmp_Assessment_Command_Modality_Link_Save_ADR; + DROP TABLE IF EXISTS tmp_Distraction_Save_ADR; + DROP TABLE IF EXISTS tmp_Assessment_Save_ADR; + DROP TEMPORARY TABLE tmp_Msg_Error_Combined; IF a_debug = 1 THEN CALL demo.p_core_debug_timing_reporting ( v_time_start ); @@ -411,26 +548,15 @@ END // DELIMITER ; -select - * - -- COUNT(*) --- delete -from demo.PH_Contact_Form_Temp -; +/* -CALL demo.p_ph_save_contact_form ( +CALL demo.p_dog_save_assessment_distraction_and_response ( 'nipples' - , (SELECT GUID FROM demo.PH_Contact_Form_Temp ORDER BY id_temp DESC LIMIT 1) + , 'ripplesipplenipplytippledipplykipple' , 1 , 1 ); -select - * - -- COUNT(*) --- delete -from demo.PH_Contact_Form_Temp -; - +*/ \ No newline at end of file diff --git a/static/MySQL/10502_tbl_CORE_Msg_Error_Temp.sql b/static/MySQL/10502_tbl_CORE_Msg_Error_Temp.sql new file mode 100644 index 0000000..30fa7b8 --- /dev/null +++ b/static/MySQL/10502_tbl_CORE_Msg_Error_Temp.sql @@ -0,0 +1,19 @@ + +USE parts; + +-- DROP TABLE IF EXISTS parts.DOG_Msg_Error_Temp; + +SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning +FROM INFORMATION_SCHEMA.TABLES +WHERE + TABLE_SCHEMA = 'parts' + AND TABLE_NAME = 'DOG_Msg_Error_Temp' +; + +CREATE TABLE IF NOT EXISTS parts.DOG_Msg_Error_Temp ( + id_temp INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , id_type INT NOT NULL + , code VARCHAR(250) NOT NULL + , msg TEXT NOT NULL + , GUID BINARY(36) NOT NULL +); diff --git a/static/MySQL/11308_tbl_DOG_Assessment.sql b/static/MySQL/11308_tbl_DOG_Assessment.sql index 0e4612b..da5f814 100644 --- a/static/MySQL/11308_tbl_DOG_Assessment.sql +++ b/static/MySQL/11308_tbl_DOG_Assessment.sql @@ -10,6 +10,7 @@ WHERE CREATE TABLE IF NOT EXISTS parts.DOG_Assessment ( id_assessment INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , id_temp INT , id_weather INT NOT NULL , CONSTRAINT FK_DOG_Assessment_id_weather FOREIGN KEY (id_weather) diff --git a/static/MySQL/11320_tbl_DOG_Distraction.sql b/static/MySQL/11320_tbl_DOG_Distraction.sql index ff3ec9f..58c2be4 100644 --- a/static/MySQL/11320_tbl_DOG_Distraction.sql +++ b/static/MySQL/11320_tbl_DOG_Distraction.sql @@ -1,6 +1,8 @@ USE parts; +-- DROP TABLE IF EXISTS parts.DOG_Distraction; + SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE @@ -10,6 +12,7 @@ WHERE CREATE TABLE IF NOT EXISTS parts.DOG_Distraction ( id_distraction INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , id_temp INT , id_assessment INT NOT NULL , CONSTRAINT FK_DOG_Distraction_id_assessment FOREIGN KEY (id_assessment) diff --git a/static/MySQL/11328_tbl_DOG_Assessment_Command_Modality_Link.sql b/static/MySQL/11328_tbl_DOG_Assessment_Command_Modality_Link.sql index a6ba3e3..8ee868e 100644 --- a/static/MySQL/11328_tbl_DOG_Assessment_Command_Modality_Link.sql +++ b/static/MySQL/11328_tbl_DOG_Assessment_Command_Modality_Link.sql @@ -10,6 +10,7 @@ WHERE CREATE TABLE IF NOT EXISTS parts.DOG_Assessment_Command_Modality_Link ( id_link INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , id_temp INT , id_assessment INT NOT NULL , CONSTRAINT FK_DOG_Assessment_Command_Modality_Link_id_assessment FOREIGN KEY (id_assessment) @@ -26,7 +27,7 @@ CREATE TABLE IF NOT EXISTS parts.DOG_Assessment_Command_Modality_Link ( , CONSTRAINT FK_DOG_Assessment_Command_Modality_Link_id_bribe FOREIGN KEY (id_bribe) REFERENCES parts.DOG_Bribe(id_bribe) - , distance_from_handler FLOAT + , distance_from_handler_metres FLOAT , is_in_sight_of_handler BIT , is_in_scent_range_of_handler BIT , is_in_hearing_range_of_handler BIT diff --git a/static/MySQL/11330_tbl_DOG_Assessment_Command_Modality_Link_Temp.sql b/static/MySQL/11330_tbl_DOG_Assessment_Command_Modality_Link_Temp.sql index 113ace5..8fe3d1e 100644 --- a/static/MySQL/11330_tbl_DOG_Assessment_Command_Modality_Link_Temp.sql +++ b/static/MySQL/11330_tbl_DOG_Assessment_Command_Modality_Link_Temp.sql @@ -17,7 +17,7 @@ CREATE TABLE IF NOT EXISTS parts.DOG_Assessment_Command_Modality_Link_Temp ( , id_command INT , id_command_modality INT , id_bribe INT - , distance_from_handler FLOAT + , distance_from_handler_metres FLOAT , is_in_sight_of_handler BIT , is_in_scent_range_of_handler BIT , is_in_hearing_range_of_handler BIT diff --git a/static/MySQL/11340_tbl_DOG_Assessment_Response.sql b/static/MySQL/11340_tbl_DOG_Assessment_Response.sql index 1a872ce..ad45b79 100644 --- a/static/MySQL/11340_tbl_DOG_Assessment_Response.sql +++ b/static/MySQL/11340_tbl_DOG_Assessment_Response.sql @@ -1,6 +1,8 @@ USE parts; +-- DROP TABLE IF EXISTS parts.DOG_Assessment_Response; + SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE @@ -10,6 +12,7 @@ WHERE CREATE TABLE IF NOT EXISTS parts.DOG_Assessment_Response ( id_response INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , id_temp INT , id_assessment_command_modality_link INT NOT NULL , CONSTRAINT FK_DOG_Assessment_Response_id_assessment_command_modality_link FOREIGN KEY (id_assessment_command_modality_link) diff --git a/static/MySQL/31328_tri_DOG_Assessment_Command_Modality_Link.sql b/static/MySQL/31328_tri_DOG_Assessment_Command_Modality_Link.sql index a58d916..d9dd5ae 100644 --- a/static/MySQL/31328_tri_DOG_Assessment_Command_Modality_Link.sql +++ b/static/MySQL/31328_tri_DOG_Assessment_Command_Modality_Link.sql @@ -46,9 +46,9 @@ BEGIN SELECT NEW.id_link, 'id_bribe', CONVERT(OLD.id_bribe, CHAR), CONVERT(NEW.id_bribe, CHAR), NEW.id_change_set WHERE NOT (OLD.id_bribe <=> NEW.id_bribe) UNION - -- Changed distance_from_handler - SELECT NEW.id_link, 'distance_from_handler', CONVERT(OLD.distance_from_handler, CHAR), CONVERT(NEW.distance_from_handler, CHAR), NEW.id_change_set - WHERE NOT (OLD.distance_from_handler <=> NEW.distance_from_handler) + -- Changed distance_from_handler_metres + SELECT NEW.id_link, 'distance_from_handler_metres', CONVERT(OLD.distance_from_handler_metres, CHAR), CONVERT(NEW.distance_from_handler_metres, CHAR), NEW.id_change_set + WHERE NOT (OLD.distance_from_handler_metres <=> NEW.distance_from_handler_metres) UNION -- Changed is_in_sight_of_handler SELECT NEW.id_link, 'is_in_sight_of_handler', CONVERT(CONVERT(OLD.is_in_sight_of_handler, SIGNED), CHAR), CONVERT(CONVERT(NEW.is_in_sight_of_handler, SIGNED), CHAR), NEW.id_change_set diff --git a/static/MySQL/70502_p_dog_clear_msg_error.sql b/static/MySQL/70502_p_dog_clear_msg_error.sql new file mode 100644 index 0000000..badf99d --- /dev/null +++ b/static/MySQL/70502_p_dog_clear_msg_error.sql @@ -0,0 +1,44 @@ + +USE parts; + +DROP PROCEDURE IF EXISTS parts.p_dog_clear_msg_error; + +DELIMITER // +CREATE PROCEDURE parts.p_dog_clear_msg_error ( + IN a_guid BINARY(36) + , IN a_debug BIT +) +BEGIN + DECLARE v_time_start TIMESTAMP(6); + SET v_time_start := CURRENT_TIMESTAMP(6); + + CALL parts.p_core_validate_guid ( a_guid ); + + START TRANSACTION; + + DELETE MSG_ERROR_T + FROM parts.DOG_Msg_Error_Temp MSG_ERROR_T + WHERE MSG_ERROR_T.GUID = a_guid + ; + + COMMIT; + + IF a_debug = 1 THEN + CALL parts.p_debug_timing_reporting( v_time_start ); + END IF; +END // +DELIMITER ; + +/* + +CALL parts.p_dog_clear_msg_error ( + 'crips ' -- a_guid + , 1 -- debug +); + +SELECT * +FROM parts.DOG_Msg_Error_Temp +WHERE GUID = 'chips ' +; + +*/ diff --git a/static/MySQL/70516_p_dog_create_new_user_auth0.sql b/static/MySQL/70516_p_dog_create_new_user_auth0.sql index 139c6e3..fdf8c20 100644 --- a/static/MySQL/70516_p_dog_create_new_user_auth0.sql +++ b/static/MySQL/70516_p_dog_create_new_user_auth0.sql @@ -44,7 +44,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -113,8 +113,8 @@ BEGIN DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; CREATE TEMPORARY TABLE tmp_User ( - id_user INT NULL - , rank_user INT NULL + id_user INT + , rank_user INT , can_admin_dog BIT NULL , can_admin_user BIT NULL ); @@ -128,7 +128,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split; diff --git a/static/MySQL/70516_p_dog_get_many_user.sql b/static/MySQL/70516_p_dog_get_many_user.sql index 125e131..8597b4a 100644 --- a/static/MySQL/70516_p_dog_get_many_user.sql +++ b/static/MySQL/70516_p_dog_get_many_user.sql @@ -52,7 +52,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/70518_p_dog_save_user.sql b/static/MySQL/70518_p_dog_save_user.sql index aee02d0..3c2f459 100644 --- a/static/MySQL/70518_p_dog_save_user.sql +++ b/static/MySQL/70518_p_dog_save_user.sql @@ -32,7 +32,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/70530_p_dog_calc_user.sql b/static/MySQL/70530_p_dog_calc_user.sql index 09eaa84..301db41 100644 --- a/static/MySQL/70530_p_dog_calc_user.sql +++ b/static/MySQL/70530_p_dog_calc_user.sql @@ -53,7 +53,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_User ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -169,32 +169,32 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_User ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_User ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_User; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Auth0_Id_Calc_User ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Auth0_Id_Calc_User; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_User ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name_Calc_User; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Email_Calc_User ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Email_Calc_User; diff --git a/static/MySQL/71001_p_dog_calc_dog.sql b/static/MySQL/71001_p_dog_calc_dog.sql index 626866f..9243ce6 100644 --- a/static/MySQL/71001_p_dog_calc_dog.sql +++ b/static/MySQL/71001_p_dog_calc_dog.sql @@ -43,7 +43,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Dog ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -137,20 +137,20 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Dog ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Dog ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Dog; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Dog ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name_Calc_Dog; diff --git a/static/MySQL/71001_p_dog_get_many_dog.sql b/static/MySQL/71001_p_dog_get_many_dog.sql index ba8daa4..a150ef3 100644 --- a/static/MySQL/71001_p_dog_get_many_dog.sql +++ b/static/MySQL/71001_p_dog_get_many_dog.sql @@ -40,7 +40,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -137,7 +137,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/71003_p_dog_save_command.sql b/static/MySQL/71003_p_dog_save_command.sql index 7c51fd2..cb64a19 100644 --- a/static/MySQL/71003_p_dog_save_command.sql +++ b/static/MySQL/71003_p_dog_save_command.sql @@ -34,7 +34,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); @@ -114,7 +114,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); diff --git a/static/MySQL/71102_p_dog_save_command_category.sql b/static/MySQL/71102_p_dog_save_command_category.sql index 48703d3..d97d1ca 100644 --- a/static/MySQL/71102_p_dog_save_command_category.sql +++ b/static/MySQL/71102_p_dog_save_command_category.sql @@ -32,7 +32,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); @@ -102,7 +102,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); diff --git a/static/MySQL/71104_p_dog_calc_command.sql b/static/MySQL/71104_p_dog_calc_command.sql index 09a2fa9..95ae665 100644 --- a/static/MySQL/71104_p_dog_calc_command.sql +++ b/static/MySQL/71104_p_dog_calc_command.sql @@ -53,7 +53,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Command ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -171,32 +171,32 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Command ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Command ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Command; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Command ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name_Calc_Command; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Hand_Signal_Default_Description_Calc_Command ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Hand_Signal_Default_Description_Calc_Command; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Notes_Calc_Command ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Notes_Calc_Command; diff --git a/static/MySQL/71104_p_dog_get_many_command.sql b/static/MySQL/71104_p_dog_get_many_command.sql index 3fa4716..a3b5f2d 100644 --- a/static/MySQL/71104_p_dog_get_many_command.sql +++ b/static/MySQL/71104_p_dog_get_many_command.sql @@ -48,7 +48,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -173,7 +173,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/71108_p_dog_get_many_dog_command_link.sql b/static/MySQL/71108_p_dog_get_many_dog_command_link.sql index 5e3480e..b6be48b 100644 --- a/static/MySQL/71108_p_dog_get_many_dog_command_link.sql +++ b/static/MySQL/71108_p_dog_get_many_dog_command_link.sql @@ -68,7 +68,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -257,26 +257,26 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Dog_Command_Link ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Dog_Command_Link; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Hand_Signal_Description_Calc_Dog_Command_Link ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Hand_Signal_Description_Calc_Dog_Command_Link; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Notes_Calc_Dog_Command_Link ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Notes_Calc_Dog_Command_Link; diff --git a/static/MySQL/71110_p_dog_save_dog_command_link.sql b/static/MySQL/71110_p_dog_save_dog_command_link.sql index 32ef969..865c7b6 100644 --- a/static/MySQL/71110_p_dog_save_dog_command_link.sql +++ b/static/MySQL/71110_p_dog_save_dog_command_link.sql @@ -32,7 +32,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); @@ -106,7 +106,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); diff --git a/static/MySQL/71111_p_dog_calc_command_modality.sql b/static/MySQL/71111_p_dog_calc_command_modality.sql index e841363..a281755 100644 --- a/static/MySQL/71111_p_dog_calc_command_modality.sql +++ b/static/MySQL/71111_p_dog_calc_command_modality.sql @@ -43,7 +43,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Command_Modality ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -138,20 +138,20 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Command_Modality ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Command_Modality ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Command_Modality; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Command_Modality ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name_Calc_Command_Modality; diff --git a/static/MySQL/71111_p_dog_get_many_command_modality.sql b/static/MySQL/71111_p_dog_get_many_command_modality.sql index 20796cb..7f73fec 100644 --- a/static/MySQL/71111_p_dog_get_many_command_modality.sql +++ b/static/MySQL/71111_p_dog_get_many_command_modality.sql @@ -40,7 +40,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -135,7 +135,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/71200_p_dog_calc_location.sql b/static/MySQL/71200_p_dog_calc_location.sql index e8d843a..4d81240 100644 --- a/static/MySQL/71200_p_dog_calc_location.sql +++ b/static/MySQL/71200_p_dog_calc_location.sql @@ -43,7 +43,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Location ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -151,20 +151,20 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Location ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Location ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Location; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Location ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name_Calc_Location; diff --git a/static/MySQL/71200_p_dog_get_many_location.sql b/static/MySQL/71200_p_dog_get_many_location.sql index 960ef81..29d28fd 100644 --- a/static/MySQL/71200_p_dog_get_many_location.sql +++ b/static/MySQL/71200_p_dog_get_many_location.sql @@ -41,7 +41,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -141,7 +141,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/71202_p_dog_save_location.sql b/static/MySQL/71202_p_dog_save_location.sql index 105c4a6..c45b817 100644 --- a/static/MySQL/71202_p_dog_save_location.sql +++ b/static/MySQL/71202_p_dog_save_location.sql @@ -32,7 +32,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); @@ -104,7 +104,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); diff --git a/static/MySQL/71220_p_dog_calc_button_shape.sql b/static/MySQL/71220_p_dog_calc_button_shape.sql index cffebbc..0d55ba0 100644 --- a/static/MySQL/71220_p_dog_calc_button_shape.sql +++ b/static/MySQL/71220_p_dog_calc_button_shape.sql @@ -45,7 +45,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Button_Shape ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -143,26 +143,26 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Button_Shape ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Button_Shape ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Button_Shape; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Button_Shape ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name_Calc_Button_Shape; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Notes_Calc_Button_Shape ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Notes_Calc_Button_Shape; diff --git a/static/MySQL/71220_p_dog_get_many_button_shape.sql b/static/MySQL/71220_p_dog_get_many_button_shape.sql index 68e1c69..fc1e7a9 100644 --- a/static/MySQL/71220_p_dog_get_many_button_shape.sql +++ b/static/MySQL/71220_p_dog_get_many_button_shape.sql @@ -41,7 +41,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -139,7 +139,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/71224_p_dog_calc_colour.sql b/static/MySQL/71224_p_dog_calc_colour.sql index b6db4b5..2020a00 100644 --- a/static/MySQL/71224_p_dog_calc_colour.sql +++ b/static/MySQL/71224_p_dog_calc_colour.sql @@ -43,7 +43,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Colour ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -138,20 +138,20 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Colour ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Colour ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Colour; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Colour ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name_Calc_Colour; diff --git a/static/MySQL/71224_p_dog_get_many_colour.sql b/static/MySQL/71224_p_dog_get_many_colour.sql index bca9209..02a1103 100644 --- a/static/MySQL/71224_p_dog_get_many_colour.sql +++ b/static/MySQL/71224_p_dog_get_many_colour.sql @@ -40,7 +40,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -135,7 +135,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/71228_p_dog_calc_image.sql b/static/MySQL/71228_p_dog_calc_image.sql index de5ff6c..70ce78f 100644 --- a/static/MySQL/71228_p_dog_calc_image.sql +++ b/static/MySQL/71228_p_dog_calc_image.sql @@ -53,7 +53,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Image ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -185,20 +185,20 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Image ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Image ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Image; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Image ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name_Calc_Image; diff --git a/static/MySQL/71228_p_dog_get_many_image.sql b/static/MySQL/71228_p_dog_get_many_image.sql index 1e0880a..803b288 100644 --- a/static/MySQL/71228_p_dog_get_many_image.sql +++ b/static/MySQL/71228_p_dog_get_many_image.sql @@ -49,7 +49,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -164,7 +164,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/71232_p_dog_calc_button_icon.sql b/static/MySQL/71232_p_dog_calc_button_icon.sql index 64ac929..2797433 100644 --- a/static/MySQL/71232_p_dog_calc_button_icon.sql +++ b/static/MySQL/71232_p_dog_calc_button_icon.sql @@ -55,7 +55,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Button_Icon ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -185,26 +185,26 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Button_Icon ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Button_Icon ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Button_Icon; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Button_Icon ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name_Calc_Button_Icon; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Notes_Calc_Button_Icon ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Notes_Calc_Button_Icon; diff --git a/static/MySQL/71232_p_dog_get_many_button_icon.sql b/static/MySQL/71232_p_dog_get_many_button_icon.sql index 480ad9a..07a9885 100644 --- a/static/MySQL/71232_p_dog_get_many_button_icon.sql +++ b/static/MySQL/71232_p_dog_get_many_button_icon.sql @@ -49,7 +49,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -164,7 +164,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/71234_p_dog_save_button_icon.sql b/static/MySQL/71234_p_dog_save_button_icon.sql index 4b6de34..b8d524d 100644 --- a/static/MySQL/71234_p_dog_save_button_icon.sql +++ b/static/MySQL/71234_p_dog_save_button_icon.sql @@ -32,7 +32,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); @@ -104,7 +104,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); diff --git a/static/MySQL/71238_p_dog_get_many_command_button_link.sql b/static/MySQL/71238_p_dog_get_many_command_button_link.sql index dc7361f..39937e4 100644 --- a/static/MySQL/71238_p_dog_get_many_command_button_link.sql +++ b/static/MySQL/71238_p_dog_get_many_command_button_link.sql @@ -100,7 +100,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -356,14 +356,14 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Command_Button_Link ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Command_Button_Link; diff --git a/static/MySQL/71240_p_dog_save_command_button_link.sql b/static/MySQL/71240_p_dog_save_command_button_link.sql index 101f601..6c4c66b 100644 --- a/static/MySQL/71240_p_dog_save_command_button_link.sql +++ b/static/MySQL/71240_p_dog_save_command_button_link.sql @@ -32,7 +32,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); @@ -108,7 +108,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); diff --git a/static/MySQL/71300_p_dog_calc_weather.sql b/static/MySQL/71300_p_dog_calc_weather.sql index a047869..7261a7f 100644 --- a/static/MySQL/71300_p_dog_calc_weather.sql +++ b/static/MySQL/71300_p_dog_calc_weather.sql @@ -43,7 +43,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Weather ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -138,20 +138,20 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Weather ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Weather ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Weather; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Weather ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name_Calc_Weather; diff --git a/static/MySQL/71300_p_dog_get_many_weather.sql b/static/MySQL/71300_p_dog_get_many_weather.sql index 2508249..aa28d7a 100644 --- a/static/MySQL/71300_p_dog_get_many_weather.sql +++ b/static/MySQL/71300_p_dog_get_many_weather.sql @@ -40,7 +40,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -135,7 +135,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/71304_p_dog_calc_lighting_level.sql b/static/MySQL/71304_p_dog_calc_lighting_level.sql index 9c4229e..ab6f7d9 100644 --- a/static/MySQL/71304_p_dog_calc_lighting_level.sql +++ b/static/MySQL/71304_p_dog_calc_lighting_level.sql @@ -43,7 +43,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Lighting_Level ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -138,20 +138,20 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Lighting_Level ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Lighting_Level ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Lighting_Level; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Lighting_Level ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name_Calc_Lighting_Level; diff --git a/static/MySQL/71304_p_dog_get_many_lighting_level.sql b/static/MySQL/71304_p_dog_get_many_lighting_level.sql index 935c2db..ace8739 100644 --- a/static/MySQL/71304_p_dog_get_many_lighting_level.sql +++ b/static/MySQL/71304_p_dog_get_many_lighting_level.sql @@ -40,7 +40,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -135,7 +135,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/71308_p_dog_calc_assessment.sql b/static/MySQL/71308_p_dog_calc_assessment.sql index 9ca4a79..ee76f00 100644 --- a/static/MySQL/71308_p_dog_calc_assessment.sql +++ b/static/MySQL/71308_p_dog_calc_assessment.sql @@ -65,7 +65,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Assessment ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -237,20 +237,20 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Assessment ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Assessment ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Assessment; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Notes_Calc_Assessment ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Notes_Calc_Assessment; diff --git a/static/MySQL/71308_p_dog_get_many_assessment.sql b/static/MySQL/71308_p_dog_get_many_assessment.sql index 3670609..86d20d1 100644 --- a/static/MySQL/71308_p_dog_get_many_assessment.sql +++ b/static/MySQL/71308_p_dog_get_many_assessment.sql @@ -60,7 +60,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -171,7 +171,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/71310_p_dog_save_assessment.sql b/static/MySQL/71310_p_dog_save_assessment.sql index f2fa819..63ed91c 100644 --- a/static/MySQL/71310_p_dog_save_assessment.sql +++ b/static/MySQL/71310_p_dog_save_assessment.sql @@ -32,7 +32,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); @@ -64,6 +64,22 @@ BEGIN INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type ; + START TRANSACTION; + INSERT INTO parts.DOG_Msg_Error_Temp ( + id_type + , code + , msg + , guid + ) + SELECT + t_ERROR.id_type + , t_ERROR.code + , t_ERROR.msg + , a_guid + FROM tmp_Msg_Error t_ERROR + ; + COMMIT; + DROP TABLE IF EXISTS tmp_Msg_Error; END; @@ -112,7 +128,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); @@ -171,7 +187,7 @@ BEGIN UPDATE tmp_Assessment t_ASSESSMENT LEFT JOIN parts.DOG_Assessment ASSESSMENT ON t_ASSESSMENT.id_assessment = ASSESSMENT.id_assessment SET t_ASSESSMENT.name_error = CONCAT( - CONVERT(COALESCE(t_ASSESSMENT.created_on, ASSESSMENT.created_on, v_time_start), CHAR) + CONVERT(COALESCE(ASSESSMENT.created_on, v_time_start), CHAR) , CASE WHEN t_ASSESSMENT.notes IS NOT NULL THEN CONCAT(' - ', t_ASSESSMENT.notes) ELSE '' END /* COALESCE(WEATHER.name, '(No Weather)') @@ -281,10 +297,10 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Assessment t_ASSESSMENT - LEFT JOIN demo.DOG_User USER_HANDLER ON t_ASSESSMENT.id_user_handler = USER_HANDLER.id_user_handler + LEFT JOIN demo.DOG_User USER_HANDLER ON t_ASSESSMENT.id_user_handler = USER_HANDLER.id_user WHERE ISNULL(t_ASSESSMENT.id_user_handler) - OR ISNULL(USER_HANDLER.id_user_handler) + OR ISNULL(USER_HANDLER.id_user) OR USER_HANDLER.active = 0 ) THEN INSERT INTO tmp_Msg_Error ( @@ -297,10 +313,10 @@ BEGIN , v_code_type_error_bad_data , CONCAT('The following Dog User_Handler Assessment(s) do not have a valid User_Handler: ', GROUP_CONCAT(t_ASSESSMENT.name_error SEPARATOR ', ')) AS msg FROM tmp_Assessment t_ASSESSMENT - LEFT JOIN parts.DOG_User USER_HANDLER ON t_ASSESSMENT.id_user_handler = USER_HANDLER.id_user_handler + LEFT JOIN parts.DOG_User USER_HANDLER ON t_ASSESSMENT.id_user_handler = USER_HANDLER.id_user WHERE ISNULL(t_ASSESSMENT.id_user_handler) - OR ISNULL(USER_HANDLER.id_user_handler) + OR ISNULL(USER_HANDLER.id_user) OR USER_HANDLER.active = 0 ; END IF; @@ -399,7 +415,8 @@ BEGIN ; INSERT INTO parts.DOG_Assessment ( - id_weather + id_temp + , id_weather , id_lighting_level , id_location , id_user_handler @@ -411,7 +428,8 @@ BEGIN , created_on ) SELECT - t_ASSESSMENT.id_weather AS id_weather + t_ASSESSMENT.id_temp + , t_ASSESSMENT.id_weather AS id_weather , t_ASSESSMENT.id_lighting_level AS id_lighting_level , t_ASSESSMENT.id_location AS id_location , t_ASSESSMENT.id_user_handler AS id_user_handler @@ -426,6 +444,20 @@ BEGIN t_ASSESSMENT.is_new = 1 AND t_ASSESSMENT.active = 1 ; + + INSERT INTO parts.DOG_Msg_Error_Temp ( + id_type + , code + , msg + , guid + ) + SELECT + t_ERROR.id_type + , t_ERROR.code + , t_ERROR.msg + , a_guid + FROM tmp_Msg_Error t_ERROR + ; COMMIT; END IF; diff --git a/static/MySQL/71312_p_dog_calc_distraction_type.sql b/static/MySQL/71312_p_dog_calc_distraction_type.sql index aa5f157..ccbee6a 100644 --- a/static/MySQL/71312_p_dog_calc_distraction_type.sql +++ b/static/MySQL/71312_p_dog_calc_distraction_type.sql @@ -43,7 +43,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Distraction_Type ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -138,20 +138,20 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Distraction_Type ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Distraction_Type ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Distraction_Type; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Distraction_Type ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name_Calc_Distraction_Type; diff --git a/static/MySQL/71312_p_dog_get_many_distraction_type.sql b/static/MySQL/71312_p_dog_get_many_distraction_type.sql index cfd24de..161b96e 100644 --- a/static/MySQL/71312_p_dog_get_many_distraction_type.sql +++ b/static/MySQL/71312_p_dog_get_many_distraction_type.sql @@ -40,7 +40,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -135,7 +135,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/71316_p_dog_calc_distraction_intensity_level.sql b/static/MySQL/71316_p_dog_calc_distraction_intensity_level.sql index 5cc7386..a07a81c 100644 --- a/static/MySQL/71316_p_dog_calc_distraction_intensity_level.sql +++ b/static/MySQL/71316_p_dog_calc_distraction_intensity_level.sql @@ -43,7 +43,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Distraction_Intensity_Level ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -138,20 +138,20 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Distraction_Intensity_Level ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Distraction_Intensity_Level ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Distraction_Intensity_Level; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Distraction_Intensity_Level ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name_Calc_Distraction_Intensity_Level; diff --git a/static/MySQL/71316_p_dog_get_many_distraction_intensity_level.sql b/static/MySQL/71316_p_dog_get_many_distraction_intensity_level.sql index 2c718fb..1268075 100644 --- a/static/MySQL/71316_p_dog_get_many_distraction_intensity_level.sql +++ b/static/MySQL/71316_p_dog_get_many_distraction_intensity_level.sql @@ -40,7 +40,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -135,7 +135,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/71320_p_dog_calc_distraction.sql b/static/MySQL/71320_p_dog_calc_distraction.sql index 2148374..0431e2b 100644 --- a/static/MySQL/71320_p_dog_calc_distraction.sql +++ b/static/MySQL/71320_p_dog_calc_distraction.sql @@ -99,7 +99,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Distraction ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -339,20 +339,20 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Distraction ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Distraction ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Distraction; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Notes_Calc_Distraction ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Notes_Calc_Distraction; diff --git a/static/MySQL/71320_p_dog_get_many_distraction.sql b/static/MySQL/71320_p_dog_get_many_distraction.sql index a881ee0..5e4061a 100644 --- a/static/MySQL/71320_p_dog_get_many_distraction.sql +++ b/static/MySQL/71320_p_dog_get_many_distraction.sql @@ -93,7 +93,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -243,7 +243,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/71322_p_dog_save_distraction.sql b/static/MySQL/71322_p_dog_save_distraction.sql index a03d075..8883cae 100644 --- a/static/MySQL/71322_p_dog_save_distraction.sql +++ b/static/MySQL/71322_p_dog_save_distraction.sql @@ -32,7 +32,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); @@ -64,6 +64,22 @@ BEGIN INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type ; + START TRANSACTION; + INSERT INTO parts.DOG_Msg_Error_Temp ( + id_type + , code + , msg + , guid + ) + SELECT + t_ERROR.id_type + , t_ERROR.code + , t_ERROR.msg + , a_guid + FROM tmp_Msg_Error t_ERROR + ; + COMMIT; + DROP TABLE IF EXISTS tmp_Msg_Error; END; @@ -118,7 +134,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); @@ -213,7 +229,7 @@ BEGIN , ' - ' , COALESCE(DISTRACTION_INTENSITY_LEVEL_SCENT.name, '(No Distraction Intensity Level Touch)') , ' - x' - , CONVERT(COALESCE(t_ASSESSMENT.quantity, 0), CHAR) + , CONVERT(COALESCE(t_DISTRACTION.quantity, 0), CHAR) ) ; @@ -257,10 +273,10 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Distraction t_DISTRACTION - LEFT JOIN demo.DOG_Distraction_Type DISTRACTION_TYPE ON t_DISTRACTION.id_distraction_type = DISTRACTION_TYPE.id_distraction_type + LEFT JOIN demo.DOG_Distraction_Type DISTRACTION_TYPE ON t_DISTRACTION.id_distraction_type = DISTRACTION_TYPE.id_type WHERE ISNULL(t_DISTRACTION.id_distraction_type) - OR ISNULL(DISTRACTION_TYPE.id_distraction_type) + OR ISNULL(DISTRACTION_TYPE.id_type) OR DISTRACTION_TYPE.active = 0 ) THEN INSERT INTO tmp_Msg_Error ( @@ -273,10 +289,10 @@ BEGIN , v_code_type_error_bad_data , CONCAT('The following Dog Distraction_Type Distraction(s) do not have a valid Distraction_Type: ', GROUP_CONCAT(t_DISTRACTION.name_error SEPARATOR ', ')) AS msg FROM tmp_Distraction t_DISTRACTION - LEFT JOIN parts.DOG_Distraction_Type DISTRACTION_TYPE ON t_DISTRACTION.id_distraction_type = DISTRACTION_TYPE.id_distraction_type + LEFT JOIN parts.DOG_Distraction_Type DISTRACTION_TYPE ON t_DISTRACTION.id_distraction_type = DISTRACTION_TYPE.id_type WHERE ISNULL(t_DISTRACTION.id_distraction_type) - OR ISNULL(DISTRACTION_TYPE.id_distraction_type) + OR ISNULL(DISTRACTION_TYPE.id_type) OR DISTRACTION_TYPE.active = 0 ; END IF; @@ -284,10 +300,10 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Distraction t_DISTRACTION - LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_EMOTIONAL ON t_DISTRACTION.id_intensity_level_emotional = DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level_emotional + LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_EMOTIONAL ON t_DISTRACTION.id_intensity_level_emotional = DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level WHERE ISNULL(t_DISTRACTION.id_intensity_level_emotional) - OR ISNULL(DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level_emotional) + OR ISNULL(DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level) OR DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.active = 0 ) THEN INSERT INTO tmp_Msg_Error ( @@ -300,10 +316,10 @@ BEGIN , v_code_type_error_bad_data , CONCAT('The following Distraction(s) do not have a valid Distraction_Intensity_Level_Emotional: ', GROUP_CONCAT(t_DISTRACTION.name_error SEPARATOR ', ')) AS msg FROM tmp_Distraction t_DISTRACTION - LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_EMOTIONAL ON t_DISTRACTION.id_intensity_level_emotional = DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level_emotional + LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_EMOTIONAL ON t_DISTRACTION.id_intensity_level_emotional = DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level WHERE ISNULL(t_DISTRACTION.id_intensity_level_emotional) - OR ISNULL(DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level_emotional) + OR ISNULL(DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level) OR DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.active = 0 ; END IF; @@ -314,7 +330,7 @@ BEGIN LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SCENT ON t_DISTRACTION.id_intensity_level_scent = DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level WHERE ISNULL(t_DISTRACTION.id_intensity_level_scent) - OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level_scent) + OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level) OR DISTRACTION_INTENSITY_LEVEL_SCENT.active = 0 ) THEN INSERT INTO tmp_Msg_Error ( @@ -330,7 +346,7 @@ BEGIN LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SCENT ON t_DISTRACTION.id_intensity_level_scent = DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level WHERE ISNULL(t_DISTRACTION.id_intensity_level_scent) - OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level_scent) + OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SCENT.id_intensity_level) OR DISTRACTION_INTENSITY_LEVEL_SCENT.active = 0 ; END IF; @@ -341,7 +357,7 @@ BEGIN LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SIGHT ON t_DISTRACTION.id_intensity_level_sight = DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level WHERE ISNULL(t_DISTRACTION.id_intensity_level_sight) - OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level_sight) + OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level) OR DISTRACTION_INTENSITY_LEVEL_SIGHT.active = 0 ) THEN INSERT INTO tmp_Msg_Error ( @@ -357,7 +373,7 @@ BEGIN LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SIGHT ON t_DISTRACTION.id_intensity_level_sight = DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level WHERE ISNULL(t_DISTRACTION.id_intensity_level_sight) - OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level_sight) + OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SIGHT.id_intensity_level) OR DISTRACTION_INTENSITY_LEVEL_SIGHT.active = 0 ; END IF; @@ -368,7 +384,7 @@ BEGIN LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SOUND ON t_DISTRACTION.id_intensity_level_sound = DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level WHERE ISNULL(t_DISTRACTION.id_intensity_level_sound) - OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level_sound) + OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level) OR DISTRACTION_INTENSITY_LEVEL_SOUND.active = 0 ) THEN INSERT INTO tmp_Msg_Error ( @@ -384,7 +400,7 @@ BEGIN LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_SOUND ON t_DISTRACTION.id_intensity_level_sound = DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level WHERE ISNULL(t_DISTRACTION.id_intensity_level_sound) - OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level_sound) + OR ISNULL(DISTRACTION_INTENSITY_LEVEL_SOUND.id_intensity_level) OR DISTRACTION_INTENSITY_LEVEL_SOUND.active = 0 ; END IF; @@ -395,7 +411,7 @@ BEGIN LEFT JOIN demo.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_TOUCH ON t_DISTRACTION.id_intensity_level_touch = DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level WHERE ISNULL(t_DISTRACTION.id_intensity_level_touch) - OR ISNULL(DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level_touch) + OR ISNULL(DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level) OR DISTRACTION_INTENSITY_LEVEL_TOUCH.active = 0 ) THEN INSERT INTO tmp_Msg_Error ( @@ -411,7 +427,7 @@ BEGIN LEFT JOIN parts.DOG_Distraction_Intensity_Level DISTRACTION_INTENSITY_LEVEL_TOUCH ON t_DISTRACTION.id_intensity_level_touch = DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level WHERE ISNULL(t_DISTRACTION.id_intensity_level_touch) - OR ISNULL(DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level_touch) + OR ISNULL(DISTRACTION_INTENSITY_LEVEL_TOUCH.id_intensity_level) OR DISTRACTION_INTENSITY_LEVEL_TOUCH.active = 0 ; END IF; @@ -513,7 +529,8 @@ BEGIN ; INSERT INTO parts.DOG_Distraction ( - id_assessment + id_temp + , id_assessment , id_distraction_type , id_intensity_level_emotional , id_intensity_level_scent @@ -528,7 +545,8 @@ BEGIN , created_on ) SELECT - t_DISTRACTION.id_assessment AS id_assessment + t_DISTRACTION.id_temp + , t_DISTRACTION.id_assessment AS id_assessment , t_DISTRACTION.id_distraction_type AS id_distraction_type , t_DISTRACTION.id_intensity_level_emotional AS id_intensity_level_emotional , t_DISTRACTION.id_intensity_level_scent AS id_intensity_level_scent @@ -546,6 +564,20 @@ BEGIN t_DISTRACTION.is_new = 1 AND t_DISTRACTION.active = 1 ; + + INSERT INTO parts.DOG_Msg_Error_Temp ( + id_type + , code + , msg + , guid + ) + SELECT + t_ERROR.id_type + , t_ERROR.code + , t_ERROR.msg + , a_guid + FROM tmp_Msg_Error t_ERROR + ; COMMIT; END IF; diff --git a/static/MySQL/71324_p_dog_calc_bribe.sql b/static/MySQL/71324_p_dog_calc_bribe.sql index d9a5e15..56bc267 100644 --- a/static/MySQL/71324_p_dog_calc_bribe.sql +++ b/static/MySQL/71324_p_dog_calc_bribe.sql @@ -43,7 +43,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Bribe ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -138,20 +138,20 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Bribe ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Bribe ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Bribe; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Bribe ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name_Calc_Bribe; diff --git a/static/MySQL/71324_p_dog_get_many_bribe.sql b/static/MySQL/71324_p_dog_get_many_bribe.sql index 52ea0de..0cb6fbf 100644 --- a/static/MySQL/71324_p_dog_get_many_bribe.sql +++ b/static/MySQL/71324_p_dog_get_many_bribe.sql @@ -40,7 +40,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -135,7 +135,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/71328_p_dog_calc_assessment_command_modality_link.sql b/static/MySQL/71328_p_dog_calc_assessment_command_modality_link.sql index 8b76c63..0a2f314 100644 --- a/static/MySQL/71328_p_dog_calc_assessment_command_modality_link.sql +++ b/static/MySQL/71328_p_dog_calc_assessment_command_modality_link.sql @@ -10,8 +10,8 @@ CREATE PROCEDURE parts.p_dog_calc_assessment_command_modality_link ( , IN a_get_all_link BIT , IN a_get_inactive_link BIT , IN a_ids_link TEXT - , IN a_min_distance_from_handler_link FLOAT - , IN a_max_distance_from_handler_link FLOAT + , IN a_min_distance_from_handler_metres_link FLOAT + , IN a_max_distance_from_handler_metres_link FLOAT , IN a_value_is_in_sight_of_handler_link BIT , IN a_value_is_in_scent_range_of_handler_link BIT , IN a_value_is_in_hearing_range_of_handler_link BIT @@ -81,8 +81,8 @@ BEGIN DECLARE v_has_filter_assessment_command_modality_link_is_in_scent_range_of_handler BIT; DECLARE v_has_filter_assessment_command_modality_link_is_in_hearing_range_of_handler BIT; DECLARE v_has_filter_assessment_command_modality_link_is_on_lead BIT; - DECLARE v_has_filter_assessment_command_modality_link_distance_from_handler_min BIT; - DECLARE v_has_filter_assessment_command_modality_link_distance_from_handler_max BIT; + DECLARE v_has_filter_assessment_command_modality_link_distance_from_handler_metres_min BIT; + DECLARE v_has_filter_assessment_command_modality_link_distance_from_handler_metres_max BIT; DECLARE v_has_filter_assessment_command_modality_link_trial_count_min BIT; DECLARE v_has_filter_assessment_command_modality_link_trial_count_max BIT; DECLARE v_id_access_level_view INT; @@ -104,7 +104,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_ACM_Link ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -155,8 +155,8 @@ BEGIN SET a_get_inactive_link := IFNULL(a_get_inactive_link, 0); SET a_ids_link := TRIM(IFNULL(a_ids_link, '')); /* - , IN a_min_distance_from_handler_link FLOAT - , IN a_max_distance_from_handler_link FLOAT + , IN a_min_distance_from_handler_metres_link FLOAT + , IN a_max_distance_from_handler_metres_link FLOAT , IN a_value_is_in_sight_of_handler_link INT , IN a_value_is_in_scent_range_of_handler_link INT , IN a_value_is_in_hearing_range_of_handler_link INT @@ -178,8 +178,8 @@ BEGIN , a_get_all_link , a_get_inactive_link , a_ids_link - , a_min_distance_from_handler_link - , a_max_distance_from_handler_link + , a_min_distance_from_handler_metres_link + , a_max_distance_from_handler_metres_link , a_value_is_in_sight_of_handler_link , a_value_is_in_scent_range_of_handler_link , a_value_is_in_hearing_range_of_handler_link @@ -319,7 +319,7 @@ BEGIN , id_command INT , id_command_modality INT , id_bribe INT - , distance_from_handler FLOAT + , distance_from_handler_metres FLOAT , is_in_sight_of_handler BIT , is_in_scent_range_of_handler BIT , is_in_hearing_range_of_handler BIT @@ -332,14 +332,14 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_ACM_Link ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_ACM_Link ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_ACM_Link; @@ -348,8 +348,8 @@ BEGIN SET v_has_filter_assessment_command_modality_link_is_in_scent_range_of_handler := NOT ISNULL(a_value_is_in_scent_range_of_handler_link); SET v_has_filter_assessment_command_modality_link_is_in_hearing_range_of_handler := NOT ISNULL(a_value_is_in_hearing_range_of_handler_link); SET v_has_filter_assessment_command_modality_link_is_on_lead := NOT ISNULL(a_value_is_on_lead_link); - SET v_has_filter_assessment_command_modality_link_distance_from_handler_min := NOT ISNULL(a_min_distance_from_handler_link); - SET v_has_filter_assessment_command_modality_link_distance_from_handler_max := NOT ISNULL(a_max_distance_from_handler_link); + SET v_has_filter_assessment_command_modality_link_distance_from_handler_metres_min := NOT ISNULL(a_min_distance_from_handler_metres_link); + SET v_has_filter_assessment_command_modality_link_distance_from_handler_metres_max := NOT ISNULL(a_max_distance_from_handler_metres_link); SET v_has_filter_assessment_command_modality_link_trial_count_min := NOT ISNULL(a_min_trial_count_link); SET v_has_filter_assessment_command_modality_link_trial_count_max := NOT ISNULL(a_max_trial_count_link); @@ -769,7 +769,7 @@ BEGIN , ASSESSMENT_COMMAND_MODALITY_LINK.id_command , ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality , ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe - , ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler + , ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres , ASSESSMENT_COMMAND_MODALITY_LINK.is_in_sight_of_handler , ASSESSMENT_COMMAND_MODALITY_LINK.is_in_scent_range_of_handler , ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler @@ -786,18 +786,18 @@ BEGIN AND v_has_filter_assessment_command_modality_link_is_in_scent_range_of_handler = 0 AND v_has_filter_assessment_command_modality_link_is_in_hearing_range_of_handler = 0 AND v_has_filter_assessment_command_modality_link_is_on_lead = 0 - AND v_has_filter_assessment_command_modality_link_distance_from_handler_min = 0 - AND v_has_filter_assessment_command_modality_link_distance_from_handler_max = 0 + AND v_has_filter_assessment_command_modality_link_distance_from_handler_metres_min = 0 + AND v_has_filter_assessment_command_modality_link_distance_from_handler_metres_max = 0 AND v_has_filter_assessment_command_modality_link_trial_count_min = 0 AND v_has_filter_assessment_command_modality_link_trial_count_max = 0 ) OR ( - v_has_filter_assessment_command_modality_link_distance_from_handler_min = 0 - OR ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler >= a_min_distance_from_handler_link + v_has_filter_assessment_command_modality_link_distance_from_handler_metres_min = 0 + OR ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres >= a_min_distance_from_handler_metres_link ) OR ( - v_has_filter_assessment_command_modality_link_distance_from_handler_max = 0 - OR ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler <= a_max_distance_from_handler_link + v_has_filter_assessment_command_modality_link_distance_from_handler_metres_max = 0 + OR ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres <= a_max_distance_from_handler_metres_link ) OR ( v_has_filter_assessment_command_modality_link_is_in_sight_of_handler = 0 @@ -834,12 +834,12 @@ BEGIN AND ASSESSMENT_COMMAND_MODALITY_LINK_FILTERS.does_meet_id_filter = 1 ) OR ( - v_has_filter_assessment_command_modality_link_distance_from_handler_min = 0 - AND ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler >= a_min_distance_from_handler_link + v_has_filter_assessment_command_modality_link_distance_from_handler_metres_min = 0 + AND ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres >= a_min_distance_from_handler_metres_link ) OR ( - v_has_filter_assessment_command_modality_link_distance_from_handler_max = 0 - AND ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler <= a_max_distance_from_handler_link + v_has_filter_assessment_command_modality_link_distance_from_handler_metres_max = 0 + AND ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres <= a_max_distance_from_handler_metres_link ) OR ( v_has_filter_assessment_command_modality_link_is_in_sight_of_handler = 0 @@ -878,7 +878,7 @@ BEGIN , id_command , id_command_modality , id_bribe - , distance_from_handler + , distance_from_handler_metres , is_in_sight_of_handler , is_in_scent_range_of_handler , is_in_hearing_range_of_handler @@ -912,7 +912,7 @@ BEGIN , ASSESSMENT_COMMAND_MODALITY_LINK.id_command , ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality , ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe - , ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler + , ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres , ASSESSMENT_COMMAND_MODALITY_LINK.is_in_sight_of_handler , ASSESSMENT_COMMAND_MODALITY_LINK.is_in_scent_range_of_handler , ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler @@ -929,18 +929,18 @@ BEGIN AND v_has_filter_assessment_command_modality_link_is_in_scent_range_of_handler = 0 AND v_has_filter_assessment_command_modality_link_is_in_hearing_range_of_handler = 0 AND v_has_filter_assessment_command_modality_link_is_on_lead = 0 - AND v_has_filter_assessment_command_modality_link_distance_from_handler_min = 0 - AND v_has_filter_assessment_command_modality_link_distance_from_handler_max = 0 + AND v_has_filter_assessment_command_modality_link_distance_from_handler_metres_min = 0 + AND v_has_filter_assessment_command_modality_link_distance_from_handler_metres_max = 0 AND v_has_filter_assessment_command_modality_link_trial_count_min = 0 AND v_has_filter_assessment_command_modality_link_trial_count_max = 0 ) OR ( - v_has_filter_assessment_command_modality_link_distance_from_handler_min = 0 - OR ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler >= a_min_distance_from_handler_link + v_has_filter_assessment_command_modality_link_distance_from_handler_metres_min = 0 + OR ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres >= a_min_distance_from_handler_metres_link ) OR ( - v_has_filter_assessment_command_modality_link_distance_from_handler_max = 0 - OR ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler <= a_max_distance_from_handler_link + v_has_filter_assessment_command_modality_link_distance_from_handler_metres_max = 0 + OR ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres <= a_max_distance_from_handler_metres_link ) OR ( v_has_filter_assessment_command_modality_link_is_in_sight_of_handler = 0 @@ -977,12 +977,12 @@ BEGIN AND ASSESSMENT_COMMAND_MODALITY_LINK_FILTERS.does_meet_id_filter = 1 ) OR ( - v_has_filter_assessment_command_modality_link_distance_from_handler_min = 0 - AND ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler >= a_min_distance_from_handler_link + v_has_filter_assessment_command_modality_link_distance_from_handler_metres_min = 0 + AND ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres >= a_min_distance_from_handler_metres_link ) OR ( - v_has_filter_assessment_command_modality_link_distance_from_handler_max = 0 - AND ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler <= a_max_distance_from_handler_link + v_has_filter_assessment_command_modality_link_distance_from_handler_metres_max = 0 + AND ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres <= a_max_distance_from_handler_metres_link ) OR ( v_has_filter_assessment_command_modality_link_is_in_sight_of_handler = 0 @@ -1211,7 +1211,7 @@ BEGIN , id_command , id_command_modality , id_bribe - , distance_from_handler + , distance_from_handler_metres , is_in_sight_of_handler , is_in_scent_range_of_handler , is_in_hearing_range_of_handler @@ -1229,7 +1229,7 @@ BEGIN , t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command , t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality , t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe - , t_ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler + , t_ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres , t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_sight_of_handler , t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_scent_range_of_handler , t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler @@ -1315,8 +1315,8 @@ CALL parts.p_dog_calc_assessment_command_modality_link ( , 1 -- a_get_all_link , 0 -- a_get_inactive_link , '' -- a_ids_link - , NULL -- a_min_distance_from_handler_link - , NULL -- a_max_distance_from_handler_link + , NULL -- a_min_distance_from_handler_metres_link + , NULL -- a_max_distance_from_handler_metres_link , NULL -- a_value_is_in_sight_of_handler_link , NULL -- a_value_is_in_scent_range_of_handler_link , NULL -- a_value_is_in_hearing_range_of_handler_link diff --git a/static/MySQL/71328_p_dog_get_many_assessment_command_modality_link.sql b/static/MySQL/71328_p_dog_get_many_assessment_command_modality_link.sql index 3ee5e7d..a19d9bb 100644 --- a/static/MySQL/71328_p_dog_get_many_assessment_command_modality_link.sql +++ b/static/MySQL/71328_p_dog_get_many_assessment_command_modality_link.sql @@ -9,8 +9,8 @@ CREATE PROCEDURE parts.p_dog_get_many_assessment_command_modality_link ( , IN a_get_all_link BIT , IN a_get_inactive_link BIT , IN a_ids_link TEXT - , IN a_min_distance_from_handler_link FLOAT - , IN a_max_distance_from_handler_link FLOAT + , IN a_min_distance_from_handler_metres_link FLOAT + , IN a_max_distance_from_handler_metres_link FLOAT , IN a_value_is_in_sight_of_handler_link BIT , IN a_value_is_in_scent_range_of_handler_link BIT , IN a_value_is_in_hearing_range_of_handler_link BIT @@ -94,7 +94,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -150,8 +150,8 @@ BEGIN , a_get_all_link , a_get_inactive_link , a_ids_link - , a_min_distance_from_handler_link - , a_max_distance_from_handler_link + , a_min_distance_from_handler_metres_link + , a_max_distance_from_handler_metres_link , a_value_is_in_sight_of_handler_link , a_value_is_in_scent_range_of_handler_link , a_value_is_in_hearing_range_of_handler_link @@ -230,7 +230,7 @@ BEGIN , id_command INT , id_command_modality INT , id_bribe INT - , distance_from_handler FLOAT + , distance_from_handler_metres FLOAT , is_in_sight_of_handler BIT , is_in_scent_range_of_handler BIT , is_in_hearing_range_of_handler BIT @@ -243,7 +243,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -335,8 +335,8 @@ BEGIN , a_get_all_link , a_get_inactive_link , a_ids_link - , a_min_distance_from_handler_link - , a_max_distance_from_handler_link + , a_min_distance_from_handler_metres_link + , a_max_distance_from_handler_metres_link , a_value_is_in_sight_of_handler_link , a_value_is_in_scent_range_of_handler_link , a_value_is_in_hearing_range_of_handler_link @@ -405,8 +405,8 @@ BEGIN , a_get_all_link , a_get_inactive_link , a_ids_link - , a_min_distance_from_handler_link - , a_max_distance_from_handler_link + , a_min_distance_from_handler_metres_link + , a_max_distance_from_handler_metres_link , a_value_is_in_sight_of_handler_link , a_value_is_in_scent_range_of_handler_link , a_value_is_in_hearing_range_of_handler_link @@ -479,7 +479,7 @@ BEGIN , id_command , id_command_modality , id_bribe - , distance_from_handler + , distance_from_handler_metres , is_in_sight_of_handler , is_in_scent_range_of_handler , is_in_hearing_range_of_handler @@ -495,7 +495,7 @@ BEGIN , ASSESSMENT_COMMAND_MODALITY_LINK_T.id_command , ASSESSMENT_COMMAND_MODALITY_LINK_T.id_command_modality , ASSESSMENT_COMMAND_MODALITY_LINK_T.id_bribe - , ASSESSMENT_COMMAND_MODALITY_LINK_T.distance_from_handler + , ASSESSMENT_COMMAND_MODALITY_LINK_T.distance_from_handler_metres , ASSESSMENT_COMMAND_MODALITY_LINK_T.is_in_sight_of_handler , ASSESSMENT_COMMAND_MODALITY_LINK_T.is_in_scent_range_of_handler , ASSESSMENT_COMMAND_MODALITY_LINK_T.is_in_hearing_range_of_handler @@ -538,7 +538,7 @@ BEGIN , COMMAND_MODALITY.name AS name_command_modality , t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe , BRIBE.name AS name_bribe - , t_ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler + , t_ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres , t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_sight_of_handler , t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_scent_range_of_handler , t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler @@ -598,8 +598,8 @@ CALL parts.p_dog_get_many_assessment_command_modality_link ( , 1 -- a_get_all_link , 0 -- a_get_inactive_link , '' -- a_ids_link - , NULL -- a_min_distance_from_handler_link - , NULL -- a_max_distance_from_handler_link + , NULL -- a_min_distance_from_handler_metres_link + , NULL -- a_max_distance_from_handler_metres_link , NULL -- a_value_is_in_sight_of_handler_link , NULL -- a_value_is_in_scent_range_of_handler_link , NULL -- a_value_is_in_hearing_range_of_handler_link diff --git a/static/MySQL/71330_p_dog_save_assessment_command_modality_link.sql b/static/MySQL/71330_p_dog_save_assessment_command_modality_link.sql index 123194e..765492a 100644 --- a/static/MySQL/71330_p_dog_save_assessment_command_modality_link.sql +++ b/static/MySQL/71330_p_dog_save_assessment_command_modality_link.sql @@ -32,7 +32,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); @@ -64,6 +64,22 @@ BEGIN INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type ; + START TRANSACTION; + INSERT INTO parts.DOG_Msg_Error_Temp ( + id_type + , code + , msg + , guid + ) + SELECT + t_ERROR.id_type + , t_ERROR.code + , t_ERROR.msg + , a_guid + FROM tmp_Msg_Error t_ERROR + ; + COMMIT; + DROP TABLE IF EXISTS tmp_Msg_Error; END; @@ -87,7 +103,7 @@ BEGIN , id_command INT , id_command_modality INT , id_bribe INT - , distance_from_handler FLOAT + , distance_from_handler_metres FLOAT , is_in_sight_of_handler BIT , is_in_scent_range_of_handler BIT , is_in_hearing_range_of_handler BIT @@ -105,9 +121,9 @@ BEGIN , id_command INT , id_command_modality INT , id_bribe INT - , id_distance_from_handler INT - , id_is_in_sight_of_handler INT - , id_is_in_scent_range_of_handler INT + , distance_from_handler_metres INT + , is_in_sight_of_handler INT + , is_in_scent_range_of_handler INT , is_in_hearing_range_of_handler INT , is_on_lead FLOAT , trial_count TEXT @@ -118,7 +134,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) , msg TEXT NOT NULL ); @@ -132,12 +148,12 @@ BEGIN , id_command , id_command_modality , id_bribe - , id_distance_from_handler - , id_is_in_sight_of_handler - , id_is_in_scent_range_of_handler + , distance_from_handler_metres + , is_in_sight_of_handler + , is_in_scent_range_of_handler , is_in_hearing_range_of_handler , is_on_lead - , trial_count + -- , trial_count , active , is_new ) @@ -161,21 +177,41 @@ BEGIN , ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe ) AS id_bribe , COALESCE( - ASSESSMENT_COMMAND_MODALITY_LINK_T.id_distance_from_handler - , ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler - ) AS id_distance_from_handler + ASSESSMENT_COMMAND_MODALITY_LINK_T.distance_from_handler_metres + , ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres + , 1 + ) AS distance_from_handler_metres , COALESCE( - ASSESSMENT_COMMAND_MODALITY_LINK_T.id_is_in_sight_of_handler - , ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler - ) AS id_is_in_sight_of_handler + ASSESSMENT_COMMAND_MODALITY_LINK_T.is_in_sight_of_handler + , ASSESSMENT_COMMAND_MODALITY_LINK.is_in_sight_of_handler + , 1 + ) AS is_in_sight_of_handler , COALESCE( - ASSESSMENT_COMMAND_MODALITY_LINK_T.id_is_in_scent_range_of_handler - , ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler - ) AS id_is_in_scent_range_of_handler - , ASSESSMENT_COMMAND_MODALITY_LINK_T.is_in_hearing_range_of_handler - , ASSESSMENT_COMMAND_MODALITY_LINK_T.is_on_lead - , ASSESSMENT_COMMAND_MODALITY_LINK_T.trial_count - , COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_T.active, 1) AS active + ASSESSMENT_COMMAND_MODALITY_LINK_T.is_in_scent_range_of_handler + , ASSESSMENT_COMMAND_MODALITY_LINK.is_in_scent_range_of_handler + , 1 + ) AS is_in_scent_range_of_handler + , COALESCE( + ASSESSMENT_COMMAND_MODALITY_LINK_T.is_in_hearing_range_of_handler + , ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler + , 1 + ) AS is_in_hearing_range_of_handler + , COALESCE( + ASSESSMENT_COMMAND_MODALITY_LINK_T.is_on_lead + , ASSESSMENT_COMMAND_MODALITY_LINK.is_on_lead + , 0 + ) AS is_on_lead + /* + , COALESCE( + ASSESSMENT_COMMAND_MODALITY_LINK_T.trial_count + , ASSESSMENT_COMMAND_MODALITY_LINK.trial_count + ) AS trial_count + */ + , COALESCE( + ASSESSMENT_COMMAND_MODALITY_LINK_T.active + , ASSESSMENT_COMMAND_MODALITY_LINK.active + , 1 + ) AS active , CASE WHEN COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link, 0) < 1 THEN 1 ELSE 0 END AS is_new FROM parts.DOG_Assessment_Command_Modality_Link_Temp ASSESSMENT_COMMAND_MODALITY_LINK_T LEFT JOIN parts.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link @@ -190,30 +226,18 @@ BEGIN -- Error names UPDATE tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN parts.DOG_Assessment_Command_Modality_Command ASSESSMENT_COMMAND_MODALITY_COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = ASSESSMENT_COMMAND_MODALITY_COMMAND.id_type - LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.id_intensity_level - LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.id_intensity_level - LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler = ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.id_intensity_level - LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.id_intensity_level - LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.id_intensity_level + LEFT JOIN parts.DOG_Assessment ASSESSMENT ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = ASSESSMENT.id_assessment + LEFT JOIN parts.DOG_Command COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = COMMAND.id_command + LEFT JOIN parts.DOG_Command_Modality COMMAND_MODALITY ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = COMMAND_MODALITY.id_command_modality + LEFT JOIN parts.DOG_Bribe BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = BRIBE.id_bribe SET t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error = CONCAT( - /* - CONVERT(COALESCE(t_ASSESSMENT_COMMAND_MODALITY_LINK.created_on, ASSESSMENT_COMMAND_MODALITY_LINK.created_on, v_time_start), CHAR) - , CASE WHEN t_ASSESSMENT_COMMAND_MODALITY_LINK.trial_count IS NOT NULL THEN CONCAT(' - ', t_ASSESSMENT_COMMAND_MODALITY_LINK.trial_count) ELSE '' END - */ - COALESCE(ASSESSMENT_COMMAND_MODALITY_COMMAND.name, '(No Assessment_Command_Modality_Link Type)') + COALESCE(CONVERT(ASSESSMENT.created_on, CHAR), '(No Assessment)') , ' - ' - , COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.name, '(No Assessment_Command_Modality_Link Intensity Level Emotional)') + , COALESCE(COMMAND.name, '(No Command)') , ' - ' - , COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.name, '(No Assessment_Command_Modality_Link Intensity Level Scent)') + , COALESCE(COMMAND_MODALITY.name, '(No Command Modality)') , ' - ' - , COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.name, '(No Assessment_Command_Modality_Link Intensity Level Sight)') - , ' - ' - , COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.name, '(No Assessment_Command_Modality_Link Intensity Level Sound)') - , ' - ' - , COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.name, '(No Assessment_Command_Modality_Link Intensity Level Touch)') - , ' - x' - , CONVERT(COALESCE(t_ASSESSMENT.is_in_hearing_range_of_handler, 0), CHAR) + , COALESCE(BRIBE.name, '(No Bribe)') ) ; @@ -244,7 +268,7 @@ BEGIN SELECT v_id_type_error_bad_data , v_code_type_error_bad_data - , CONCAT('The following Dog Assessment Assessment_Command_Modality_Link(s) do not have a valid Assessment: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg + , CONCAT('The following Dog Assessment Command Modality Link(s) do not have a valid Assessment: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK LEFT JOIN parts.DOG_Assessment ASSESSMENT ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = ASSESSMENT.id_assessment WHERE @@ -257,11 +281,11 @@ BEGIN IF EXISTS ( SELECT * FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN demo.DOG_Assessment_Command_Modality_Command ASSESSMENT_COMMAND_MODALITY_COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = ASSESSMENT_COMMAND_MODALITY_COMMAND.id_command + LEFT JOIN demo.DOG_Command COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = COMMAND.id_command WHERE ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command) - OR ISNULL(ASSESSMENT_COMMAND_MODALITY_COMMAND.id_command) - OR ASSESSMENT_COMMAND_MODALITY_COMMAND.active = 0 + OR ISNULL(COMMAND.id_command) + OR COMMAND.active = 0 ) THEN INSERT INTO tmp_Msg_Error ( id_type @@ -271,24 +295,24 @@ BEGIN SELECT v_id_type_error_bad_data , v_code_type_error_bad_data - , CONCAT('The following Dog Assessment_Command_Modality_Command Assessment_Command_Modality_Link(s) do not have a valid Assessment_Command_Modality_Command: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg + , CONCAT('The following Dog Assessment Command Modality Link(s) do not have a valid Command: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN parts.DOG_Assessment_Command_Modality_Command ASSESSMENT_COMMAND_MODALITY_COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = ASSESSMENT_COMMAND_MODALITY_COMMAND.id_command + LEFT JOIN demo.DOG_Command COMMAND ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command = COMMAND.id_command WHERE ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command) - OR ISNULL(ASSESSMENT_COMMAND_MODALITY_COMMAND.id_command) - OR ASSESSMENT_COMMAND_MODALITY_COMMAND.active = 0 + OR ISNULL(COMMAND.id_command) + OR COMMAND.active = 0 ; END IF; -- id_command_modality IF EXISTS ( SELECT * FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN demo.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.id_command_modality + LEFT JOIN demo.DOG_Command_Modality COMMAND_MODALITY ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = COMMAND_MODALITY.id_command_modality WHERE ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality) - OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.id_command_modality) - OR ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.active = 0 + OR ISNULL(COMMAND_MODALITY.id_command_modality) + OR COMMAND_MODALITY.active = 0 ) THEN INSERT INTO tmp_Msg_Error ( id_type @@ -298,24 +322,24 @@ BEGIN SELECT v_id_type_error_bad_data , v_code_type_error_bad_data - , CONCAT('The following Assessment_Command_Modality_Link(s) do not have a valid Assessment_Command_Modality_Link_Command_Modality: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg + , CONCAT('The following Dog Assessment Command Modality Link(s) do not have a valid Command Modality: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.id_command_modality + LEFT JOIN parts.DOG_Command_Modality COMMAND_MODALITY ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = COMMAND_MODALITY.id_command_modality WHERE ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality) - OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.id_command_modality) - OR ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.active = 0 + OR ISNULL(COMMAND_MODALITY.id_command_modality) + OR COMMAND_MODALITY.active = 0 ; END IF; -- id_bribe IF EXISTS ( SELECT * FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN demo.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.id_intensity_level + LEFT JOIN demo.DOG_Bribe BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = BRIBE.id_bribe WHERE ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe) - OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.id_bribe) - OR ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.active = 0 + OR ISNULL(BRIBE.id_bribe) + OR BRIBE.active = 0 ) THEN INSERT INTO tmp_Msg_Error ( id_type @@ -325,24 +349,20 @@ BEGIN SELECT v_id_type_error_bad_data , v_code_type_error_bad_data - , CONCAT('The following Assessment_Command_Modality_Link(s) do not have a valid Intensity Level Scent: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg + , CONCAT('The following Dog Assessment Command Modality Link(s) do not have a valid Bribe: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.id_intensity_level + LEFT JOIN demo.DOG_Bribe BRIBE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = BRIBE.id_bribe WHERE ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe) - OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.id_bribe) - OR ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.active = 0 + OR ISNULL(BRIBE.id_bribe) + OR BRIBE.active = 0 ; END IF; - -- id_distance_from_handler + -- distance_from_handler_metres IF EXISTS ( SELECT * FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN demo.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler = ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.id_intensity_level - WHERE - ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler) - OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.id_distance_from_handler) - OR ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.active = 0 + WHERE IFNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres, -1) < 0 ) THEN INSERT INTO tmp_Msg_Error ( id_type @@ -352,67 +372,9 @@ BEGIN SELECT v_id_type_error_bad_data , v_code_type_error_bad_data - , CONCAT('The following Assessment_Command_Modality_Link(s) do not have a valid Intensity Level Sight: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg + , CONCAT('The following Assessment_Command_Modality_Link(s) do not have a valid Distance From Handler: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler = ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.id_intensity_level - WHERE - ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler) - OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.id_distance_from_handler) - OR ASSESSMENT_COMMAND_MODALITY_LINK_DISTANCE_FROM_HANDLER.active = 0 - ; - END IF; - -- id_is_in_sight_of_handler - IF EXISTS ( - SELECT * - FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN demo.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.id_intensity_level - WHERE - ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler) - OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.id_is_in_sight_of_handler) - OR ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.active = 0 - ) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Assessment_Command_Modality_Link(s) do not have a valid Intensity Level Sound: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg - FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.id_intensity_level - WHERE - ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler) - OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.id_is_in_sight_of_handler) - OR ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SIGHT_OF_HANDLER.active = 0 - ; - END IF; - -- id_is_in_scent_range_of_handler - IF EXISTS ( - SELECT * - FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN demo.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.id_intensity_level - WHERE - ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler) - OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.id_is_in_scent_range_of_handler) - OR ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.active = 0 - ) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('The following Assessment_Command_Modality_Link(s) do not have a valid Intensity Level Touch: ', GROUP_CONCAT(t_ASSESSMENT_COMMAND_MODALITY_LINK.name_error SEPARATOR ', ')) AS msg - FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK - LEFT JOIN parts.DOG_Assessment_Command_Modality_Link_Intensity_Level ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler = ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.id_intensity_level - WHERE - ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler) - OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.id_is_in_scent_range_of_handler) - OR ASSESSMENT_COMMAND_MODALITY_LINK_IS_IN_SCENT_RANGE_OF_HANDLER.active = 0 + WHERE IFNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres, -1) < 0 ; END IF; @@ -502,42 +464,44 @@ BEGIN , ASSESSMENT_COMMAND_MODALITY_LINK.id_command = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command , ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality , ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe - , ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler - , ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler - , ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler + , ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres = t_ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres + , ASSESSMENT_COMMAND_MODALITY_LINK.is_in_sight_of_handler = t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_sight_of_handler + , ASSESSMENT_COMMAND_MODALITY_LINK.is_in_scent_range_of_handler = t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_scent_range_of_handler , ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler = t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler , ASSESSMENT_COMMAND_MODALITY_LINK.is_on_lead = t_ASSESSMENT_COMMAND_MODALITY_LINK.is_on_lead - , ASSESSMENT_COMMAND_MODALITY_LINK.trial_count = t_ASSESSMENT_COMMAND_MODALITY_LINK.trial_count + -- , ASSESSMENT_COMMAND_MODALITY_LINK.trial_count = t_ASSESSMENT_COMMAND_MODALITY_LINK.trial_count , ASSESSMENT_COMMAND_MODALITY_LINK.active = t_ASSESSMENT_COMMAND_MODALITY_LINK.active , ASSESSMENT_COMMAND_MODALITY_LINK.id_change_set = v_id_change_set ; INSERT INTO parts.DOG_Assessment_Command_Modality_Link ( - id_assessment + id_temp + , id_assessment , id_command , id_command_modality , id_bribe - , id_distance_from_handler - , id_is_in_sight_of_handler - , id_is_in_scent_range_of_handler + , distance_from_handler_metres + , is_in_sight_of_handler + , is_in_scent_range_of_handler , is_in_hearing_range_of_handler , is_on_lead - , trial_count + -- , trial_count , active , id_user_created_by , created_on ) SELECT - t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment AS id_assessment + t_ASSESSMENT_COMMAND_MODALITY_LINK.id_temp + , t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment AS id_assessment , t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command AS id_command , t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality AS id_command_modality , t_ASSESSMENT_COMMAND_MODALITY_LINK.id_bribe AS id_bribe - , t_ASSESSMENT_COMMAND_MODALITY_LINK.id_distance_from_handler AS id_distance_from_handler - , t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_sight_of_handler AS id_is_in_sight_of_handler - , t_ASSESSMENT_COMMAND_MODALITY_LINK.id_is_in_scent_range_of_handler AS id_is_in_scent_range_of_handler + , t_ASSESSMENT_COMMAND_MODALITY_LINK.distance_from_handler_metres AS distance_from_handler_metres + , t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_sight_of_handler AS is_in_sight_of_handler + , t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_scent_range_of_handler AS is_in_scent_range_of_handler , t_ASSESSMENT_COMMAND_MODALITY_LINK.is_in_hearing_range_of_handler AS is_in_hearing_range_of_handler , t_ASSESSMENT_COMMAND_MODALITY_LINK.is_on_lead AS is_on_lead - , t_ASSESSMENT_COMMAND_MODALITY_LINK.trial_count AS trial_count + -- , t_ASSESSMENT_COMMAND_MODALITY_LINK.trial_count AS trial_count , t_ASSESSMENT_COMMAND_MODALITY_LINK.active AS active , a_id_user AS created_by , v_time_start AS created_on @@ -546,6 +510,20 @@ BEGIN t_ASSESSMENT_COMMAND_MODALITY_LINK.is_new = 1 AND t_ASSESSMENT_COMMAND_MODALITY_LINK.active = 1 ; + + INSERT INTO parts.DOG_Msg_Error_Temp ( + id_type + , code + , msg + , guid + ) + SELECT + t_ERROR.id_type + , t_ERROR.code + , t_ERROR.msg + , a_guid + FROM tmp_Msg_Error t_ERROR + ; COMMIT; END IF; @@ -590,7 +568,7 @@ DELIMITER ; /* -'ripplesipplenippletippledipplekipple' +'ripplesipplenippletippledipplykipple' DELETE FROM parts.DOG_Assessment_Command_Modality_Link WHERE id_link > 740; * / delete @@ -625,26 +603,37 @@ from parts.DOG_Assessment_Command_Modality_Link INSERT INTO parts.DOG_Assessment_Command_Modality_Link_Temp ( id_link - , id_dog + , id_assessment , id_command - , hand_signal_description - , trial_count + , id_command_modality + , id_bribe + , distance_from_handler_metres + , is_in_sight_of_handler + , is_in_scent_range_of_handler + , is_in_hearing_range_of_handler + , is_on_lead , active , guid ) VALUES ( -1 -- id_link - , 1 -- id_dog + , 1 -- id_assessment , 1 -- id_command - , 'Test deez noots' -- hand_signal_description - , NULL -- trial_count + , 1 -- id_command_modality + , 1 -- id_bribe + , 15 -- distance_from_handler_metres + , 1 -- is_in_sight_of_handler + , 0 -- is_in_scent_range_of_handler + , 0 -- is_in_hearing_range_of_handler + , 0 -- is_on_lead + -- , NULL -- trial_count , 1 -- active - , 'ripplesipplenippletippledipplekipple' + , 'ripplesipplenippletippledipplykipple' ); CALL parts.p_dog_save_assessment_command_modality_link ( 'nipples' - , 'ripplesipplenippletippledipplekipple' + , 'ripplesipplenippletippledipplykipple' , 1 , 1 ); diff --git a/static/MySQL/71332_p_dog_calc_response_quality_metric.sql b/static/MySQL/71332_p_dog_calc_response_quality_metric.sql index 98a9641..470925c 100644 --- a/static/MySQL/71332_p_dog_calc_response_quality_metric.sql +++ b/static/MySQL/71332_p_dog_calc_response_quality_metric.sql @@ -45,7 +45,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_RQM ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -146,20 +146,20 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_RQM ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_RQM ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_RQM; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_RQM ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name_Calc_RQM; diff --git a/static/MySQL/71332_p_dog_get_many_response_quality_metric.sql b/static/MySQL/71332_p_dog_get_many_response_quality_metric.sql index b60d758..3cc4392 100644 --- a/static/MySQL/71332_p_dog_get_many_response_quality_metric.sql +++ b/static/MySQL/71332_p_dog_get_many_response_quality_metric.sql @@ -40,7 +40,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -137,7 +137,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/71336_p_dog_calc_obedience_level.sql b/static/MySQL/71336_p_dog_calc_obedience_level.sql index a33db59..5e2411e 100644 --- a/static/MySQL/71336_p_dog_calc_obedience_level.sql +++ b/static/MySQL/71336_p_dog_calc_obedience_level.sql @@ -43,7 +43,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Obedience_Level ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -138,20 +138,20 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Obedience_Level ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Obedience_Level ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Obedience_Level; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name_Calc_Obedience_Level ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name_Calc_Obedience_Level; diff --git a/static/MySQL/71336_p_dog_get_many_obedience_level.sql b/static/MySQL/71336_p_dog_get_many_obedience_level.sql index e50d8c4..11e1a87 100644 --- a/static/MySQL/71336_p_dog_get_many_obedience_level.sql +++ b/static/MySQL/71336_p_dog_get_many_obedience_level.sql @@ -40,7 +40,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -135,7 +135,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); diff --git a/static/MySQL/71340_p_dog_calc_assessment_response.sql b/static/MySQL/71340_p_dog_calc_assessment_response.sql index 5d96f88..b47ecd9 100644 --- a/static/MySQL/71340_p_dog_calc_assessment_response.sql +++ b/static/MySQL/71340_p_dog_calc_assessment_response.sql @@ -17,8 +17,8 @@ CREATE PROCEDURE parts.p_dog_calc_assessment_response ( , IN a_get_all_ACM_link BIT , IN a_get_inactive_ACM_link BIT , IN a_ids_ACM_link TEXT - , IN a_min_distance_from_handler_ACM_link FLOAT - , IN a_max_distance_from_handler_ACM_link FLOAT + , IN a_min_distance_from_handler_metres_ACM_link FLOAT + , IN a_max_distance_from_handler_metres_ACM_link FLOAT , IN a_value_is_in_sight_of_handler_ACM_link INT , IN a_value_is_in_scent_range_of_handler_ACM_link INT , IN a_value_is_in_hearing_range_of_handler_ACM_link INT @@ -112,7 +112,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Assessment_Response ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -189,8 +189,8 @@ BEGIN , a_get_all_ACM_link , a_get_inactive_ACM_link , a_ids_ACM_link - , a_min_distance_from_handler_ACM_link - , a_max_distance_from_handler_ACM_link + , a_min_distance_from_handler_metres_ACM_link + , a_max_distance_from_handler_metres_ACM_link , a_value_is_in_sight_of_handler_ACM_link , a_value_is_in_scent_range_of_handler_ACM_link , a_value_is_in_hearing_range_of_handler_ACM_link @@ -280,7 +280,7 @@ BEGIN , id_command INT , id_command_modality INT , id_bribe INT - , distance_from_handler FLOAT + , distance_from_handler_metres FLOAT , is_in_sight_of_handler BIT , is_in_scent_range_of_handler BIT , is_in_hearing_range_of_handler BIT @@ -326,20 +326,20 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Calc_Assessment_Response ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id_Calc_Assessment_Response ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id_Calc_Assessment_Response; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Notes_Calc_Assessment_Response ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Notes_Calc_Assessment_Response; @@ -357,8 +357,8 @@ BEGIN , a_get_all_ACM_link , a_get_inactive_ACM_link , a_ids_ACM_link - , a_min_distance_from_handler_ACM_link - , a_max_distance_from_handler_ACM_link + , a_min_distance_from_handler_metres_ACM_link + , a_max_distance_from_handler_metres_ACM_link , a_value_is_in_sight_of_handler_ACM_link , a_value_is_in_scent_range_of_handler_ACM_link , a_value_is_in_hearing_range_of_handler_ACM_link @@ -427,8 +427,8 @@ BEGIN , a_get_all_ACM_link , a_get_inactive_ACM_link , a_ids_ACM_link - , a_min_distance_from_handler_ACM_link - , a_max_distance_from_handler_ACM_link + , a_min_distance_from_handler_metres_ACM_link + , a_max_distance_from_handler_metres_ACM_link , a_value_is_in_sight_of_handler_ACM_link , a_value_is_in_scent_range_of_handler_ACM_link , a_value_is_in_hearing_range_of_handler_ACM_link @@ -496,7 +496,7 @@ BEGIN , id_command , id_command_modality , id_bribe - , distance_from_handler + , distance_from_handler_metres , is_in_sight_of_handler , is_in_scent_range_of_handler , is_in_hearing_range_of_handler @@ -512,7 +512,7 @@ BEGIN , ASSESSMENT_COMMAND_MODALITY_LINK_T.id_command , ASSESSMENT_COMMAND_MODALITY_LINK_T.id_command_modality , ASSESSMENT_COMMAND_MODALITY_LINK_T.id_bribe - , ASSESSMENT_COMMAND_MODALITY_LINK_T.distance_from_handler + , ASSESSMENT_COMMAND_MODALITY_LINK_T.distance_from_handler_metres , ASSESSMENT_COMMAND_MODALITY_LINK_T.is_in_sight_of_handler , ASSESSMENT_COMMAND_MODALITY_LINK_T.is_in_scent_range_of_handler , ASSESSMENT_COMMAND_MODALITY_LINK_T.is_in_hearing_range_of_handler @@ -1201,8 +1201,8 @@ CALL parts.p_dog_calc_assessment_response ( , 1 -- a_get_all_ACM_link , 0 -- a_get_inactive_ACM_link , '' -- a_ids_ACM_link - , NULL -- a_min_distance_from_handler_ACM_link - , NULL -- a_max_distance_from_handler_ACM_link + , NULL -- a_min_distance_from_handler_metres_ACM_link + , NULL -- a_max_distance_from_handler_metres_ACM_link , NULL -- a_value_is_in_sight_of_handler_ACM_link , NULL -- a_value_is_in_scent_range_of_handler_ACM_link , NULL -- a_value_is_in_hearing_range_of_handler_ACM_link diff --git a/static/MySQL/71340_p_dog_get_many_assessment_response.sql b/static/MySQL/71340_p_dog_get_many_assessment_response.sql index 92e055e..6e1bc80 100644 --- a/static/MySQL/71340_p_dog_get_many_assessment_response.sql +++ b/static/MySQL/71340_p_dog_get_many_assessment_response.sql @@ -16,8 +16,8 @@ CREATE PROCEDURE parts.p_dog_get_many_assessment_response ( , IN a_get_all_ACM_link BIT , IN a_get_inactive_ACM_link BIT , IN a_ids_ACM_link TEXT - , IN a_min_distance_from_handler_ACM_link FLOAT - , IN a_max_distance_from_handler_ACM_link FLOAT + , IN a_min_distance_from_handler_metres_ACM_link FLOAT + , IN a_max_distance_from_handler_metres_ACM_link FLOAT , IN a_value_is_in_sight_of_handler_ACM_link INT , IN a_value_is_in_scent_range_of_handler_ACM_link INT , IN a_value_is_in_hearing_range_of_handler_ACM_link INT @@ -107,7 +107,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -171,8 +171,8 @@ BEGIN , a_get_all_ACM_link , a_get_inactive_ACM_link , a_ids_ACM_link - , a_min_distance_from_handler_ACM_link - , a_max_distance_from_handler_ACM_link + , a_min_distance_from_handler_metres_ACM_link + , a_max_distance_from_handler_metres_ACM_link , a_value_is_in_sight_of_handler_ACM_link , a_value_is_in_scent_range_of_handler_ACM_link , a_value_is_in_hearing_range_of_handler_ACM_link @@ -266,7 +266,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -366,8 +366,8 @@ BEGIN , a_get_all_ACM_link , a_get_inactive_ACM_link , a_ids_ACM_link - , a_min_distance_from_handler_ACM_link - , a_max_distance_from_handler_ACM_link + , a_min_distance_from_handler_metres_ACM_link + , a_max_distance_from_handler_metres_ACM_link , a_value_is_in_sight_of_handler_ACM_link , a_value_is_in_scent_range_of_handler_ACM_link , a_value_is_in_hearing_range_of_handler_ACM_link @@ -450,8 +450,8 @@ BEGIN , a_get_all_ACM_link , a_get_inactive_ACM_link , a_ids_ACM_link - , a_min_distance_from_handler_ACM_link - , a_max_distance_from_handler_ACM_link + , a_min_distance_from_handler_metres_ACM_link + , a_max_distance_from_handler_metres_ACM_link , a_value_is_in_sight_of_handler_ACM_link , a_value_is_in_scent_range_of_handler_ACM_link , a_value_is_in_hearing_range_of_handler_ACM_link @@ -638,8 +638,8 @@ CALL parts.p_dog_get_many_assessment_response ( , 1 -- a_get_all_ACM_link , 0 -- a_get_inactive_ACM_link , '' -- a_ids_ACM_link - , NULL -- a_min_distance_from_handler_ACM_link - , NULL -- a_max_distance_from_handler_ACM_link + , NULL -- a_min_distance_from_handler_metres_ACM_link + , NULL -- a_max_distance_from_handler_metres_ACM_link , NULL -- a_value_is_in_sight_of_handler_ACM_link , NULL -- a_value_is_in_scent_range_of_handler_ACM_link , NULL -- a_value_is_in_hearing_range_of_handler_ACM_link diff --git a/static/MySQL/71342_p_dog_save_assessment_response.sql b/static/MySQL/71342_p_dog_save_assessment_response.sql new file mode 100644 index 0000000..5a3e59d --- /dev/null +++ b/static/MySQL/71342_p_dog_save_assessment_response.sql @@ -0,0 +1,540 @@ + +USE parts; + +DROP PROCEDURE IF EXISTS parts.p_dog_save_assessment_response; + +DELIMITER // +CREATE PROCEDURE parts.p_dog_save_assessment_response ( + IN a_comment VARCHAR(500), + IN a_guid BINARY(36), + IN a_id_user INT, + IN a_debug BIT +) +BEGIN + DECLARE v_can_admin BIT; + DECLARE v_can_create BIT; + DECLARE v_code_type_error_bad_data VARCHAR(100); + DECLARE v_id_access_level_edit INT; + DECLARE v_id_change_set INT; + DECLARE v_id_permission_dog_new INT; + DECLARE v_id_type_error_bad_data INT; + DECLARE v_time_start TIMESTAMP(6); + + DECLARE exit handler for SQLEXCEPTION + BEGIN + GET DIAGNOSTICS CONDITION 1 + @sqlstate = RETURNED_SQLSTATE + , @errno = MYSQL_ERRNO + , @text = MESSAGE_TEXT + ; + + ROLLBACK; + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT + , code VARCHAR(250) + , msg TEXT NOT NULL + ); + + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + SELECT + MET.id_type + , @errno + , @text + FROM parts.CORE_Msg_Error_Type MET + WHERE MET.code = 'MYSQL_ERROR' + ; + + SELECT + t_ERROR.id_error + , t_ERROR.id_type + , t_ERROR.code + , ERROR_TYPE.name + , ERROR_TYPE.description + , ERROR_TYPE.is_breaking_error + , ERROR_TYPE.background_colour + , ERROR_TYPE.text_colour + , t_ERROR.msg + FROM tmp_Msg_Error t_ERROR + INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + ; + + START TRANSACTION; + INSERT INTO parts.DOG_Msg_Error_Temp ( + id_type + , code + , msg + , guid + ) + SELECT + t_ERROR.id_type + , t_ERROR.code + , t_ERROR.msg + , a_guid + FROM tmp_Msg_Error t_ERROR + ; + COMMIT; + + DROP TABLE IF EXISTS tmp_Msg_Error; + END; + + SET SESSION group_concat_max_len=15000; + + SET v_time_start := CURRENT_TIMESTAMP(6); + SET v_code_type_error_bad_data := 'BAD_DATA'; + SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1); + SET v_id_permission_dog_new := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_CREATE' LIMIT 1); + SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM parts.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1); + + CALL parts.p_core_validate_guid ( a_guid ); + + DROP TABLE IF EXISTS tmp_Assessment_Response_Copy; + DROP TABLE IF EXISTS tmp_Assessment_Response; + + CREATE TEMPORARY TABLE tmp_Assessment_Response ( + id_temp INT + , id_response INT + , id_assessment_command_modality_link INT + , id_response_quality_metric INT + , id_obedience_level INT + , value_measured DOUBLE + , notes TEXT + , active BIT + , is_new BIT + , name_error VARCHAR(250) + ); + + CREATE TEMPORARY TABLE tmp_Assessment_Response_Copy ( + id_temp INT + , id_response INT + , id_assessment_command_modality_link INT + , id_response_quality_metric INT + , id_obedience_level INT + , value_measured DOUBLE + , notes TEXT + , active BIT + , is_new BIT + , name_error VARCHAR(250) + ); + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT + , code VARCHAR(250) + , msg TEXT NOT NULL + ); + + + -- Get data from Temp table + INSERT INTO tmp_Assessment_Response ( + id_temp + , id_response + , id_assessment_command_modality_link + , id_response_quality_metric + , id_obedience_level + , value_measured + , notes + , active + , is_new + ) + SELECT + ASSESSMENT_RESPONSE_T.id_temp + , ASSESSMENT_RESPONSE_T.id_response + , COALESCE( + ASSESSMENT_RESPONSE_T.id_assessment_command_modality_link + , ASSESSMENT_RESPONSE.id_assessment_command_modality_link + ) AS id_assessment_command_modality_link + , COALESCE( + ASSESSMENT_RESPONSE_T.id_response_quality_metric + , ASSESSMENT_RESPONSE.id_response_quality_metric + ) AS id_response_quality_metric + , COALESCE( + ASSESSMENT_RESPONSE_T.id_obedience_level + , ASSESSMENT_RESPONSE.id_obedience_level + ) AS id_obedience_level + , ASSESSMENT_RESPONSE_T.value_measured + , ASSESSMENT_RESPONSE_T.notes + , COALESCE( + ASSESSMENT_RESPONSE_T.active + , ASSESSMENT_RESPONSE.active + , 1 + ) AS active + , CASE WHEN COALESCE(ASSESSMENT_RESPONSE_T.id_response, 0) < 1 THEN 1 ELSE 0 END AS is_new + FROM parts.DOG_Assessment_Response_Temp ASSESSMENT_RESPONSE_T + LEFT JOIN parts.DOG_Assessment_Response ASSESSMENT_RESPONSE ON ASSESSMENT_RESPONSE_T.id_response = ASSESSMENT_RESPONSE.id_response + WHERE ASSESSMENT_RESPONSE_T.guid = a_guid + ; + + IF a_debug = 1 THEN + SELECT 'Assessment_Response_Temp records'; + SELECT * FROM tmp_Assessment_Response; + SELECT COUNT(*) FROM tmp_Assessment_Response; + END IF; + + -- Error names + UPDATE tmp_Assessment_Response t_ASSESSMENT_RESPONSE + LEFT JOIN parts.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link + LEFT JOIN parts.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON t_ASSESSMENT_RESPONSE.id_response_quality_metric = RESPONSE_QUALITY_METRIC.id_metric + LEFT JOIN parts.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_ASSESSMENT_RESPONSE.id_obedience_level = OBEDIENCE_LEVEL.id_obedience_level + SET t_ASSESSMENT_RESPONSE.name_error = CONCAT( + COALESCE(CONVERT(ASSESSMENT_COMMAND_MODALITY_LINK.created_on, CHAR), '(No Assessment Command Modality Link)') + , ' - ' + , COALESCE(RESPONSE_QUALITY_METRIC.name, '(No Response Quality Metric)') + , ' - ' + , COALESCE(OBEDIENCE_LEVEL.name, '(No Obedience Level)') + ) + ; + + IF a_debug = 1 THEN + SELECT 'After set name_error'; + SELECT * FROM tmp_Assessment_Response; + SELECT COUNT(*) FROM tmp_Assessment_Response; + END IF; + + + -- Validation + -- Missing mandatory fields + -- id_assessment_command_modality_link + IF EXISTS ( + SELECT * + FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE + LEFT JOIN demo.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link + WHERE + ISNULL(t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link) + OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK.id_link) + OR ASSESSMENT_COMMAND_MODALITY_LINK.active = 0 + ) THEN + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('The following Dog Assessment Response(s) do not have a valid Assessment_Command_Modality_Link: ', GROUP_CONCAT(t_ASSESSMENT_RESPONSE.name_error SEPARATOR ', ')) AS msg + FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE + LEFT JOIN parts.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link + WHERE + ISNULL(t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link) + OR ISNULL(ASSESSMENT_COMMAND_MODALITY_LINK.id_link) + OR ASSESSMENT_COMMAND_MODALITY_LINK.active = 0 + ; + END IF; + -- id_response_quality_metric + IF EXISTS ( + SELECT * + FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE + LEFT JOIN demo.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON t_ASSESSMENT_RESPONSE.id_response_quality_metric = RESPONSE_QUALITY_METRIC.id_metric + WHERE + ISNULL(t_ASSESSMENT_RESPONSE.id_response_quality_metric) + OR ISNULL(RESPONSE_QUALITY_METRIC.id_metric) + OR RESPONSE_QUALITY_METRIC.active = 0 + ) THEN + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('The following Dog Assessment Response(s) do not have a valid Response_Quality_Metric: ', GROUP_CONCAT(t_ASSESSMENT_RESPONSE.name_error SEPARATOR ', ')) AS msg + FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE + LEFT JOIN demo.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON t_ASSESSMENT_RESPONSE.id_response_quality_metric = RESPONSE_QUALITY_METRIC.id_metric + WHERE + ISNULL(t_ASSESSMENT_RESPONSE.id_response_quality_metric) + OR ISNULL(RESPONSE_QUALITY_METRIC.id_metric) + OR RESPONSE_QUALITY_METRIC.active = 0 + ; + END IF; + -- id_obedience_level + IF EXISTS ( + SELECT * + FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE + LEFT JOIN demo.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_ASSESSMENT_RESPONSE.id_obedience_level = OBEDIENCE_LEVEL.id_obedience_level + WHERE + ISNULL(t_ASSESSMENT_RESPONSE.id_obedience_level) + OR ISNULL(OBEDIENCE_LEVEL.id_obedience_level) + OR OBEDIENCE_LEVEL.active = 0 + ) THEN + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + SELECT + v_id_type_error_bad_data + , v_code_type_error_bad_data + , CONCAT('The following Dog Assessment Response(s) do not have a valid Obedience Level: ', GROUP_CONCAT(t_ASSESSMENT_RESPONSE.name_error SEPARATOR ', ')) AS msg + FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE + LEFT JOIN parts.DOG_Obedience_Level OBEDIENCE_LEVEL ON t_ASSESSMENT_RESPONSE.id_obedience_level = OBEDIENCE_LEVEL.id_obedience_level + WHERE + ISNULL(t_ASSESSMENT_RESPONSE.id_obedience_level) + OR ISNULL(OBEDIENCE_LEVEL.id_obedience_level) + OR OBEDIENCE_LEVEL.active = 0 + ; + END IF; + + -- Permissions + -- Can Create + CALL parts.p_dog_calc_user( + a_guid + , 0 -- get_all_user + , 0 -- get_inactive_user + , a_id_user -- ids_user + , '' -- a_auth0_ids_user + , '' -- a_names_user + , '' -- a_emails_user + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met + , v_id_permission_dog_new -- ids_permission + , v_id_access_level_edit -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ); + + SELECT + IFNULL(CU_T.has_access, 0) + INTO + v_can_create + FROM parts.DOG_Calc_User_Temp CU_T + WHERE CU_T.GUID = a_guid + LIMIT 1 + ; + + CALL parts.p_dog_clear_calc_user( + a_guid + , 0 -- a_debug + ); + + IF v_can_create = 0 THEN + DELETE t_ME + FROM tmp_Msg_Error t_ME + WHERE t_ME.id_type <> v_id_type_error_no_permission + ; + INSERT INTO tmp_Msg_Error ( + id_type + , code + , msg + ) + VALUES ( + v_id_type_error_no_permission + , v_code_type_error_no_permission + , 'You do not have permission to edit Assessment_Responses.' + ) + ; + END IF; + + IF EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + IF a_debug = 1 THEN + SELECT * from tmp_Assessment_Response; + END IF; + + DELETE FROM tmp_Assessment_Response; + END IF; + + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + START TRANSACTION; + + INSERT INTO parts.DOG_Dog_Change_Set ( + comment + , id_user_updated_last_by + , updated_last_on + ) + VALUES ( + a_comment + , a_id_user + , v_time_start + ) + ; + + SET v_id_change_set := LAST_INSERT_ID(); + + UPDATE parts.DOG_Assessment_Response ASSESSMENT_RESPONSE + INNER JOIN tmp_Assessment_Response t_ASSESSMENT_RESPONSE + ON ASSESSMENT_RESPONSE.id_response = t_ASSESSMENT_RESPONSE.id_response + AND t_ASSESSMENT_RESPONSE.is_new = 0 + SET + ASSESSMENT_RESPONSE.id_assessment_command_modality_link = t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link + , ASSESSMENT_RESPONSE.id_response_quality_metric = t_ASSESSMENT_RESPONSE.id_response_quality_metric + , ASSESSMENT_RESPONSE.id_obedience_level = t_ASSESSMENT_RESPONSE.id_obedience_level + , ASSESSMENT_RESPONSE.value_measured = t_ASSESSMENT_RESPONSE.value_measured + , ASSESSMENT_RESPONSE.notes = t_ASSESSMENT_RESPONSE.notes + , ASSESSMENT_RESPONSE.active = t_ASSESSMENT_RESPONSE.active + , ASSESSMENT_RESPONSE.id_change_set = v_id_change_set + ; + + INSERT INTO parts.DOG_Assessment_Response ( + id_temp + , id_assessment_command_modality_link + , id_response_quality_metric + , id_obedience_level + , value_measured + , notes + , active + , id_user_created_by + , created_on + ) + SELECT + t_ASSESSMENT_RESPONSE.id_temp + , t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link AS id_assessment_command_modality_link + , t_ASSESSMENT_RESPONSE.id_response_quality_metric AS id_response_quality_metric + , t_ASSESSMENT_RESPONSE.id_obedience_level AS id_obedience_level + , t_ASSESSMENT_RESPONSE.value_measured AS value_measured + , t_ASSESSMENT_RESPONSE.notes AS notes + , t_ASSESSMENT_RESPONSE.active AS active + , a_id_user AS created_by + , v_time_start AS created_on + FROM tmp_Assessment_Response t_ASSESSMENT_RESPONSE + WHERE + t_ASSESSMENT_RESPONSE.is_new = 1 + AND t_ASSESSMENT_RESPONSE.active = 1 + ; + + INSERT INTO parts.DOG_Msg_Error_Temp ( + id_type + , code + , msg + , guid + ) + SELECT + t_ERROR.id_type + , t_ERROR.code + , t_ERROR.msg + , a_guid + FROM tmp_Msg_Error t_ERROR + ; + + COMMIT; + END IF; + + START TRANSACTION; + + DELETE FROM parts.DOG_Assessment_Response_Temp + WHERE GUID = a_guid + ; + + COMMIT; + + -- Errors + SELECT + t_ERROR.id_error + , t_ERROR.id_type + , t_ERROR.code + , ERROR_TYPE.name + , ERROR_TYPE.description + , ERROR_TYPE.is_breaking_error + , ERROR_TYPE.background_colour + , ERROR_TYPE.text_colour + , t_ERROR.msg + FROM tmp_Msg_Error t_ERROR + INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + ; + + IF a_debug = 1 THEN + SELECT * FROM tmp_Assessment_Response; + END IF; + + DROP TEMPORARY TABLE tmp_Assessment_Response; + DROP TEMPORARY TABLE tmp_Msg_Error; + + IF a_debug = 1 THEN + CALL parts.p_core_debug_timing_reporting ( v_time_start ); + END IF; +END // +DELIMITER ; + + + +/* + +'ripplesipplenipplytippledipplykipple' +DELETE FROM parts.DOG_Assessment_Response WHERE id_response > 740; +* / +delete +from parts.DOG_Assessment_Response_Audit +where id_response > 768 +; +delete +from parts.DOG_Assessment_Response +where id_response > 768 +; +delete +from parts.DOG_Assessment_Response_Temp +; +select + * + -- COUNT(*) +-- delete +from parts.DOG_Assessment_Response_Temp +; +select COUNT(*) +from parts.DOG_Assessment_Response_Temp +; +select + * + -- COUNT(*) +-- delete +from parts.DOG_Assessment_Response +; +select COUNT(*) +from parts.DOG_Assessment_Response +; + +INSERT INTO parts.DOG_Assessment_Response_Temp ( + id_response + , id_assessment_command_modality_link + , id_response_quality_metric + , id_obedience_level + , value_measured + , notes + , active + , guid +) +VALUES ( + -1 -- id_response + , 1 -- id_assessment_command_modality_link + , 1 -- id_response_quality_metric + , 1 -- id_obedience_level + , 10000 -- value_measured + , 'suck balls' -- notes + , 1 -- active + , 'ripplesipplenipplytippledipplykipple' +); + +CALL parts.p_dog_save_assessment_response ( + 'nipples' + , 'ripplesipplenipplytippledipplykipple' + , 1 + , 1 +); + + +select + * + -- COUNT(*) +-- delete +from parts.DOG_Assessment_Response_Temp +; +select COUNT(*) +from parts.DOG_Assessment_Response_Temp +; +select + * + -- COUNT(*) +-- delete +from parts.DOG_Assessment_Response +; +select COUNT(*) +from parts.DOG_Assessment_Response +; + +*/ \ No newline at end of file diff --git a/static/MySQL/71344_p_dog_save_assessment_distraction_and_response.sql b/static/MySQL/71344_p_dog_save_assessment_distraction_and_response.sql new file mode 100644 index 0000000..649e537 --- /dev/null +++ b/static/MySQL/71344_p_dog_save_assessment_distraction_and_response.sql @@ -0,0 +1,562 @@ + +USE parts; + +DROP PROCEDURE IF EXISTS parts.p_dog_save_assessment_distraction_and_response; + +DELIMITER // +CREATE PROCEDURE parts.p_dog_save_assessment_distraction_and_response ( + IN a_comment VARCHAR(500), + IN a_guid BINARY(36), + IN a_id_user INT, + IN a_debug BIT +) +BEGIN + DECLARE v_can_admin BIT; + DECLARE v_can_create BIT; + DECLARE v_code_type_error_bad_data VARCHAR(100); + DECLARE v_id_access_level_edit INT; + DECLARE v_id_change_set INT; + DECLARE v_id_permission_dog_new INT; + DECLARE v_id_type_error_bad_data INT; + DECLARE v_time_start TIMESTAMP(6); + + DECLARE exit handler for SQLEXCEPTION + BEGIN + GET DIAGNOSTICS CONDITION 1 + @sqlstate = RETURNED_SQLSTATE + , @errno = MYSQL_ERRNO + , @text = MESSAGE_TEXT + ; + + ROLLBACK; + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Combined ( + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT + , code VARCHAR(250) + , msg TEXT NOT NULL + ); + + INSERT INTO tmp_Msg_Error_Combined ( + id_type + , code + , msg + ) + SELECT + MET.id_type + , @errno + , @text + FROM parts.CORE_Msg_Error_Type MET + WHERE MET.code = 'MYSQL_ERROR' + ; + + SELECT + t_ERROR.id_error + , t_ERROR.id_type + , t_ERROR.code + , ERROR_TYPE.name + , ERROR_TYPE.description + , ERROR_TYPE.is_breaking_error + , ERROR_TYPE.background_colour + , ERROR_TYPE.text_colour + , t_ERROR.msg + FROM tmp_Msg_Error_Combined t_ERROR + INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + ; + + DROP TABLE IF EXISTS tmp_Msg_Error_Combined; + END; + + SET SESSION group_concat_max_len=15000; + + SET v_time_start := CURRENT_TIMESTAMP(6); + SET v_code_type_error_bad_data := 'BAD_DATA'; + SET v_id_type_error_bad_data := (SELECT ERROR_TYPE.id_type FROM parts.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_bad_data LIMIT 1); + SET v_id_permission_dog_new := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_CREATE' LIMIT 1); + SET v_id_access_level_edit := (SELECT ACCESS_LEVEL.id_access_level FROM parts.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'EDIT' LIMIT 1); + + CALL parts.p_core_validate_guid ( a_guid ); + + DROP TABLE IF EXISTS tmp_Assessment_Response_Save_ADR; + DROP TABLE IF EXISTS tmp_Assessment_Command_Modality_Link_Save_ADR; + DROP TABLE IF EXISTS tmp_Distraction_Save_ADR; + DROP TABLE IF EXISTS tmp_Assessment_Save_ADR; + + CREATE TEMPORARY TABLE tmp_Assessment_Save_ADR ( + id_temp INT + , id_assessment INT + , id_assessment_old INT + , active BIT + , is_new BIT + ); + + CREATE TEMPORARY TABLE tmp_Distraction_Save_ADR ( + id_temp INT + , id_distraction INT + , id_distraction_old INT + , id_assessment INT + , active BIT + , is_new BIT + ); + + CREATE TEMPORARY TABLE tmp_Assessment_Command_Modality_Link_Save_ADR ( + id_temp INT + , id_link INT + , id_link_old INT + , id_assessment INT + , active BIT + , is_new BIT + ); + + CREATE TEMPORARY TABLE tmp_Assessment_Response_Save_ADR ( + id_temp INT + , id_response INT + , id_response_old INT + , id_assessment_command_modality_link INT + , active BIT + , is_new BIT + ); + + CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error_Combined ( + id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT + , code VARCHAR(250) + , msg TEXT NOT NULL + ); + + + -- Get data from Temp table + INSERT INTO tmp_Assessment_Save_ADR ( + id_temp + , id_assessment + , id_assessment_old + , active + , is_new + ) + SELECT + ASSESSMENT_T.id_temp + , ASSESSMENT_T.id_assessment + , ASSESSMENT_T.id_assessment + , COALESCE( + ASSESSMENT_T.active + , ASSESSMENT.active + , 1 + ) AS active + , CASE WHEN COALESCE(ASSESSMENT_T.id_assessment, 0) < 1 THEN 1 ELSE 0 END AS is_new + FROM parts.DOG_Assessment_Temp ASSESSMENT_T + LEFT JOIN parts.DOG_Assessment ASSESSMENT ON ASSESSMENT_T.id_assessment = ASSESSMENT.id_assessment + WHERE ASSESSMENT_T.guid = a_guid + ; + + INSERT INTO tmp_Distraction_Save_ADR ( + id_temp + , id_distraction + , id_distraction_old + , id_assessment + , active + , is_new + ) + SELECT + DISTRACTION_T.id_temp + , DISTRACTION_T.id_distraction + , DISTRACTION_T.id_distraction + , DISTRACTION_T.id_assessment + , COALESCE( + DISTRACTION_T.active + , DISTRACTION.active + , 1 + ) AS active + , CASE WHEN COALESCE(DISTRACTION_T.id_distraction, 0) < 1 THEN 1 ELSE 0 END AS is_new + FROM parts.DOG_Distraction_Temp DISTRACTION_T + LEFT JOIN parts.DOG_Distraction DISTRACTION ON DISTRACTION_T.id_distraction = DISTRACTION.id_distraction + WHERE DISTRACTION_T.guid = a_guid + ; + + INSERT INTO tmp_Assessment_Command_Modality_Link_Save_ADR ( + id_temp + , id_link + , id_link_old + , id_assessment + , active + , is_new + ) + SELECT + ASSESSMENT_COMMAND_MODALITY_LINK_T.id_temp + , ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link + , ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link + , ASSESSMENT_COMMAND_MODALITY_LINK_T.id_assessment + , COALESCE( + ASSESSMENT_COMMAND_MODALITY_LINK_T.active + , ASSESSMENT_COMMAND_MODALITY_LINK.active + , 1 + ) AS active + , CASE WHEN COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link, 0) < 1 THEN 1 ELSE 0 END AS is_new + FROM parts.DOG_Assessment_Command_Modality_Link_Temp ASSESSMENT_COMMAND_MODALITY_LINK_T + LEFT JOIN parts.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link + WHERE ASSESSMENT_COMMAND_MODALITY_LINK_T.guid = a_guid + ; + + INSERT INTO tmp_Assessment_Response_Save_ADR ( + id_temp + , id_response + , id_response_old + , id_assessment_command_modality_link + , active + , is_new + ) + SELECT + ASSESSMENT_RESPONSE_T.id_temp + , ASSESSMENT_RESPONSE_T.id_response + , ASSESSMENT_RESPONSE_T.id_response + , ASSESSMENT_RESPONSE_T.id_assessment_command_modality_link + , COALESCE( + ASSESSMENT_RESPONSE_T.active + , ASSESSMENT_RESPONSE.active + , 1 + ) AS active + , CASE WHEN COALESCE(ASSESSMENT_RESPONSE_T.id_response, 0) < 1 THEN 1 ELSE 0 END AS is_new + FROM parts.DOG_Assessment_Response_Temp ASSESSMENT_RESPONSE_T + LEFT JOIN parts.DOG_Assessment_Response ASSESSMENT_RESPONSE ON ASSESSMENT_RESPONSE_T.id_response = ASSESSMENT_RESPONSE.id_response + WHERE ASSESSMENT_RESPONSE_T.guid = a_guid + ; + + IF a_debug = 1 THEN + SELECT 'Temp records'; + SELECT * FROM tmp_Assessment_Save_ADR; + SELECT COUNT(*) FROM tmp_Assessment_Save_ADR; + SELECT * FROM tmp_Distraction_Save_ADR; + SELECT COUNT(*) FROM tmp_Distraction_Save_ADR; + SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR; + SELECT COUNT(*) FROM tmp_Assessment_Command_Modality_Link_Save_ADR; + SELECT * FROM tmp_Assessment_Response_Save_ADR; + SELECT COUNT(*) FROM tmp_Assessment_Response_Save_ADR; + END IF; + + -- Permissions + -- Can Create + CALL parts.p_dog_calc_user( + a_guid + , 0 -- get_all_user + , 0 -- get_inactive_user + , a_id_user -- ids_user + , '' -- a_auth0_ids_user + , '' -- a_names_user + , '' -- a_emails_user + , 1 -- a_require_all_id_search_filters_met + , 1 -- a_require_any_id_search_filters_met + , 0 -- a_require_all_non_id_search_filters_met + , 0 -- a_require_any_non_id_search_filters_met + , v_id_permission_dog_new -- ids_permission + , v_id_access_level_edit -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ); + + SELECT + IFNULL(CU_T.has_access, 0) + INTO + v_can_create + FROM parts.DOG_Calc_User_Temp CU_T + WHERE CU_T.GUID = a_guid + LIMIT 1 + ; + + CALL parts.p_dog_clear_calc_user( + a_guid + , 0 -- a_debug + ); + + IF v_can_create = 0 THEN + DELETE t_ME + FROM tmp_Msg_Error_Combined t_ME + WHERE t_ME.id_type <> v_id_type_error_no_permission + ; + INSERT INTO tmp_Msg_Error_Combined ( + id_type + , code + , msg + ) + VALUES ( + v_id_type_error_no_permission + , v_code_type_error_no_permission + , 'You do not have permission to edit Assessment_Distraction_And_Responses.' + ) + ; + END IF; + + -- DELETE FROM tmp_Msg_Error_Combined_Save; + -- Save Assessments + -- CREATE TEMPORARY TABLE tmp_Assessment_Save_ADR_Save_Error AS + -- INSERT INTO tmp_Msg_Error_Combined_Save + CALL parts.p_dog_save_assessment ( + a_comment + , a_guid + , a_id_user + , 0 -- debug + ); + + /* + INSERT INTO tmp_Msg_Error_Combined ( + id_type + , code + , msg + ) + SELECT + t_ASSESSMENT_SAVE_ERROR.id_type + , t_ASSESSMENT_SAVE_ERROR.code + , t_ASSESSMENT_SAVE_ERROR.msg + FROM tmp_Assessment_Save_ADR_Save_Error t_ASSESSMENT_SAVE_ERROR + ; + */ + + -- Get New Assessment Ids + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error_Combined t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + + -- Update Temporary tables with new Ids + UPDATE tmp_Assessment_Save_ADR t_ASSESSMENT + INNER JOIN parts.DOG_Assessment ASSESSMENT ON t_ASSESSMENT.id_temp = ASSESSMENT.id_temp + INNER JOIN tmp_Distraction_Save_ADR t_DISTRACTION ON t_ASSESSMENT.id_assessment_old = t_DISTRACTION.id_assessment + INNER JOIN tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT.id_assessment_old = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment + SET + t_ASSESSMENT.id_assessment = ASSESSMENT.id_assessment + , t_DISTRACTION.id_assessment = ASSESSMENT.id_assessment + , t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = ASSESSMENT.id_assessment + WHERE + t_ASSESSMENT.active = 1 + AND t_ASSESSMENT.is_new = 1 + ; + + -- Update Staging tables with new Ids + IF EXISTS (SELECT * FROM tmp_Assessment_Save_ADR t_ASSESSMENT WHERE t_ASSESSMENT.id_assessment <> t_ASSESSMENT.id_assessment_old LIMIT 1) THEN + + START TRANSACTION; + + UPDATE parts.DOG_Distraction_Temp DISTRACTION_T + INNER JOIN tmp_Distraction_Save_ADR t_DISTRACTION ON DISTRACTION_T.id_temp = t_DISTRACTION.id_temp + INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON t_DISTRACTION.id_assessment = t_ASSESSMENT.id_assessment + SET DISTRACTION_T.id_assessment = t_DISTRACTION.id_assessment + WHERE t_ASSESSMENT.id_assessment <> t_ASSESSMENT.id_assessment_old + ; + + UPDATE parts.DOG_Assessment_Command_Modality_Link_Temp ASSESSMENT_COMMAND_MODALITY_LINK_T + INNER JOIN tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_temp = ASSESSMENT_COMMAND_MODALITY_LINK_T.id_temp + INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON t_ASSESSMENT.id_assessment = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment + SET ASSESSMENT_COMMAND_MODALITY_LINK_T.id_assessment = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment + WHERE t_ASSESSMENT.id_assessment <> t_ASSESSMENT.id_assessment_old + ; + + COMMIT; + END IF; + + END IF; + + IF a_debug = 1 THEN + SELECT 'After align assessment Ids'; + SELECT * FROM tmp_Assessment_Save_ADR; + SELECT * FROM tmp_Distraction_Save_ADR; + SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR; + SELECT * FROM tmp_Assessment_Response_Save_ADR; + END IF; + + -- DELETE FROM tmp_Msg_Error_Combined_Save; + -- Save Distractions + -- CREATE TEMPORARY TABLE tmp_Distraction_Save_ADR_Save_Error AS + -- INSERT INTO tmp_Msg_Error_Combined_Save + CALL parts.p_dog_save_distraction ( + a_comment + , a_guid + , a_id_user + , 0 -- debug + ); + + /* + INSERT INTO tmp_Msg_Error_Combined ( + id_type + , code + , msg + ) + SELECT + t_DISTRACTION_SAVE_ERROR.id_type + , t_DISTRACTION_SAVE_ERROR.code + , t_DISTRACTION_SAVE_ERROR.msg + FROM tmp_Distraction_Save_ADR_Save_Error t_DISTRACTION_SAVE_ERROR + ; + */ + + -- DELETE FROM tmp_Msg_Error_Combined_Save; + -- Save Assessment Command Modality Links + -- CREATE TEMPORARY TABLE tmp_Assessment_Command_Modality_Link_Save_ADR_Save_Error AS + -- INSERT INTO tmp_Msg_Error_Combined_Save + CALL parts.p_dog_save_assessment_command_modality_link ( + a_comment + , a_guid + , a_id_user + , 0 -- debug + ); + + /* + INSERT INTO tmp_Msg_Error_Combined ( + id_type + , code + , msg + ) + SELECT + t_ACML_SAVE_ERROR.id_type + , t_ACML_SAVE_ERROR.code + , t_ACML_SAVE_ERROR.msg + FROM tmp_Assessment_Command_Modality_Link_Save_ADR_Save_Error t_ACML_SAVE_ERROR + ; + */ + + -- Get New Assessment Command Modality Link Ids + IF EXISTS (SELECT * FROM tmp_Msg_Error_Combined t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + START TRANSACTION; + + DELETE ASSESSMENT + FROM parts.DOG_Assessment ASSESSMENT + INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON ASSESSMENT.id_assessment = t_ASSESSMENT.id_assessment + WHERE t_ASSESSMENT.is_new = 1 + ; + + COMMIT; + ELSE + -- Update Temporary tables with new Ids + UPDATE tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK + INNER JOIN parts.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_temp = ASSESSMENT_COMMAND_MODALITY_LINK.id_temp + LEFT JOIN tmp_Assessment_Response_Save_ADR t_ASSESSMENT_RESPONSE ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link = t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link + SET + t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link + , t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = ASSESSMENT_COMMAND_MODALITY_LINK.id_link + WHERE + t_ASSESSMENT_COMMAND_MODALITY_LINK.active = 1 + AND t_ASSESSMENT_COMMAND_MODALITY_LINK.is_new = 1 + ; + + -- Update Staging tables with new Ids + IF EXISTS (SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK WHERE t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link <> t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link_old LIMIT 1) THEN + + START TRANSACTION; + + UPDATE parts.DOG_Assessment_Response_Temp ASSESSMENT_RESPONSE_T + INNER JOIN tmp_Assessment_Response_Save_ADR t_ASSESSMENT_RESPONSE ON ASSESSMENT_RESPONSE_T.id_temp = t_ASSESSMENT_RESPONSE.id_temp + INNER JOIN tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK ON t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link + SET ASSESSMENT_RESPONSE_T.id_assessment_command_modality_link = t_ASSESSMENT_RESPONSE.id_assessment_command_modality_link + WHERE t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link <> t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link_old + ; + + COMMIT; + END IF; + + END IF; + + IF a_debug = 1 THEN + SELECT 'After align assessment Ids'; + SELECT * FROM tmp_Assessment_Save_ADR; + SELECT * FROM tmp_Distraction_Save_ADR; + SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR; + SELECT * FROM tmp_Assessment_Response_Save_ADR; + END IF; + + -- DELETE FROM tmp_Msg_Error_Combined_Save; + -- Save Assessment Responses + -- CREATE TEMPORARY TABLE tmp_Assessment_Response_Save_ADR_Save_Error AS + -- INSERT INTO tmp_Msg_Error_Combined_Save + CALL parts.p_dog_save_assessment_response ( + a_comment + , a_guid + , a_id_user + , 0 -- debug + ); + + /* + INSERT INTO tmp_Msg_Error_Combined ( + id_type + , code + , msg + ) + SELECT + t_ASSESSMENT_RESPONSE_SAVE_ERROR.id_type + , t_ASSESSMENT_RESPONSE_SAVE_ERROR.code + , t_ASSESSMENT_RESPONSE_SAVE_ERROR.msg + FROM tmp_Assessment_Response_Save_ADR_Save_Error t_ASSESSMENT_RESPONSE_SAVE_ERROR + ; + */ + + -- Get New Assessment Command Modality Link Ids + IF EXISTS (SELECT * FROM tmp_Msg_Error_Combined t_ERROR INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type WHERE ERROR_TYPE.is_breaking_error = 1 LIMIT 1) THEN + START TRANSACTION; + + DELETE ASSESSMENT_COMMAND_MODALITY_LINK + FROM parts.DOG_Assessment_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK + INNER JOIN tmp_Assessment_Command_Modality_Link_Save_ADR t_ASSESSMENT_COMMAND_MODALITY_LINK ON ASSESSMENT_COMMAND_MODALITY_LINK.id_link = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment_command_modality_link + INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = t_ASSESSMENT.id_assessment + WHERE + t_ASSESSMENT_COMMAND_MODALITY_LINK.is_new = 1 + OR t_ASSESSMENT.is_new = 1 + ; + + DELETE ASSESSMENT + FROM parts.DOG_Assessment ASSESSMENT + INNER JOIN tmp_Assessment_Save_ADR t_ASSESSMENT ON ASSESSMENT.id_assessment = t_ASSESSMENT.id_assessment + WHERE t_ASSESSMENT.is_new = 1 + ; + + COMMIT; + END IF; + + -- Errors + SELECT + t_ERROR.id_error + , t_ERROR.id_type + , t_ERROR.code + , ERROR_TYPE.name + , ERROR_TYPE.description + , ERROR_TYPE.is_breaking_error + , ERROR_TYPE.background_colour + , ERROR_TYPE.text_colour + , t_ERROR.msg + FROM tmp_Msg_Error_Combined t_ERROR + INNER JOIN parts.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + ; + + IF a_debug = 1 THEN + SELECT * FROM tmp_Assessment_Save_ADR; + SELECT * FROM tmp_Distraction_Save_ADR; + SELECT * FROM tmp_Assessment_Command_Modality_Link_Save_ADR; + SELECT * FROM tmp_Assessment_Response_Save_ADR; + END IF; + + CALL parts.p_dog_clear_msg_error ( + a_guid + , 0 -- debug + ); + + DROP TABLE IF EXISTS tmp_Assessment_Response_Save_ADR_Save_Error; + DROP TABLE IF EXISTS tmp_Assessment_Command_Modality_Link_Save_ADR_Save_Error; + DROP TABLE IF EXISTS tmp_Distraction_Save_ADR_Save_Error; + DROP TABLE IF EXISTS tmp_Assessment_Save_ADR_Save_Error; + DROP TABLE IF EXISTS tmp_Assessment_Response_Save_ADR; + DROP TABLE IF EXISTS tmp_Assessment_Command_Modality_Link_Save_ADR; + DROP TABLE IF EXISTS tmp_Distraction_Save_ADR; + DROP TABLE IF EXISTS tmp_Assessment_Save_ADR; + DROP TEMPORARY TABLE tmp_Msg_Error_Combined; + + IF a_debug = 1 THEN + CALL parts.p_core_debug_timing_reporting ( v_time_start ); + END IF; +END // +DELIMITER ; + + + +/* + +CALL parts.p_dog_save_assessment_distraction_and_response ( + 'nipples' + , 'ripplesipplenipplytippledipplykipple' + , 1 + , 1 +); + + +*/ \ No newline at end of file diff --git a/static/MySQL/71601_p_ph_save_contact_form.sql b/static/MySQL/71601_p_ph_save_contact_form.sql index 6936a84..e6ed635 100644 --- a/static/MySQL/71601_p_ph_save_contact_form.sql +++ b/static/MySQL/71601_p_ph_save_contact_form.sql @@ -34,7 +34,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(50) NOT NULL , msg VARCHAR(4000) NOT NULL ); @@ -82,7 +82,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(50) NOT NULL , msg VARCHAR(4000) NOT NULL ); diff --git a/static/MySQL/71603_p_ph_get_many_contact_form.sql b/static/MySQL/71603_p_ph_get_many_contact_form.sql index 23e2cd3..2c0e7da 100644 --- a/static/MySQL/71603_p_ph_get_many_contact_form.sql +++ b/static/MySQL/71603_p_ph_get_many_contact_form.sql @@ -50,14 +50,14 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(50) NOT NULL , msg VARCHAR(4000) NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split; diff --git a/static/MySQL/90000_populate.sql b/static/MySQL/90000_populate.sql index 48f9394..260de60 100644 --- a/static/MySQL/90000_populate.sql +++ b/static/MySQL/90000_populate.sql @@ -989,6 +989,10 @@ INSERT INTO parts.DOG_Bribe ( ) VALUES ( + 'NONE' + , 'None' + ) + , ( 'TREAT' , 'Treat' ) @@ -1016,7 +1020,7 @@ INSERT INTO parts.DOG_Assessment_Command_Modality_Link ( , id_command , id_command_modality , id_bribe - , distance_from_handler + , distance_from_handler_metres , is_in_sight_of_handler , is_in_scent_range_of_handler , is_in_hearing_range_of_handler diff --git a/static/MySQL/deprecated/71104_p_dog_get_many_command.sql b/static/MySQL/deprecated/71104_p_dog_get_many_command.sql index 80c5bc4..215bc1f 100644 --- a/static/MySQL/deprecated/71104_p_dog_get_many_command.sql +++ b/static/MySQL/deprecated/71104_p_dog_get_many_command.sql @@ -38,7 +38,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -120,20 +120,20 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name; diff --git a/static/MySQL/deprecated/7213_p_dog_get_many_understanding_level.sql b/static/MySQL/deprecated/7213_p_dog_get_many_understanding_level.sql index 7633def..7075c06 100644 --- a/static/MySQL/deprecated/7213_p_dog_get_many_understanding_level.sql +++ b/static/MySQL/deprecated/7213_p_dog_get_many_understanding_level.sql @@ -40,7 +40,7 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); @@ -126,26 +126,26 @@ BEGIN CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT - , id_type INT NULL + , id_type INT , code VARCHAR(250) NOT NULL , msg TEXT NOT NULL ); CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Id ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Id; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Code ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Code; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Split_Name ( substring VARCHAR(4000) NOT NULL - , as_int INT NULL + , as_int INT ); DELETE FROM tmp_Split_Name; diff --git a/static/css/pages/dog/assessment.css b/static/css/pages/dog/assessment.css index 6c98e07..a20da37 100644 --- a/static/css/pages/dog/assessment.css +++ b/static/css/pages/dog/assessment.css @@ -1,5 +1,9 @@ +#formFilters { + display: none; +} + .container.save.button-cancel { position: fixed; top: 10vh; @@ -49,8 +53,8 @@ table.table-main.assessment_command_modality_link thead tr th.is-in-sight-of-han table.table-main.assessment_command_modality_link tbody tr td.is-in-sight-of-handler, table.table-main.assessment_command_modality_link thead tr th.is-on-lead, table.table-main.assessment_command_modality_link tbody tr td.is-on-lead { - max-width: 4vh; - min-width: 4vh; + max-width: 3vh; + min-width: 3vh; } table.table-main.assessment_command_modality_link thead tr th.notes, table.table-main.assessment_command_modality_link tbody tr td.notes { @@ -61,6 +65,17 @@ table.table-main.assessment_command_modality_link tbody tr td.notes { table.table-main.assessment_command_modality_link thead tr th.assessment_response, table.table-main.assessment_command_modality_link tbody tr td.assessment_response { - max-width: 43vh; - min-width: 43vh; + max-width: 60vh; + min-width: 60vh; +} + +table.table-main.assessment_command_modality_link tbody tr td.assessment_response thead tr th.response-quality-metric, +table.table-main.assessment_command_modality_link tbody tr td.assessment_response tbody tr td.response-quality-metric { + max-width: 15vh; + min-width: 15vh; +} +table.table-main.assessment_command_modality_link tbody tr td.assessment_response thead tr th.obedience-level, +table.table-main.assessment_command_modality_link tbody tr td.assessment_response tbody tr td.obedience-level { + max-width: 15vh; + min-width: 15vh; } \ No newline at end of file diff --git a/static/dist/css/dog_assessment.bundle.css b/static/dist/css/dog_assessment.bundle.css index 4d936b8..96dc0a7 100644 --- a/static/dist/css/dog_assessment.bundle.css +++ b/static/dist/css/dog_assessment.bundle.css @@ -75,6 +75,10 @@ } +#formFilters { + display: none; +} + .container.save.button-cancel { position: fixed; top: 10vh; @@ -124,8 +128,8 @@ table.table-main.assessment_command_modality_link thead tr th.is-in-sight-of-han table.table-main.assessment_command_modality_link tbody tr td.is-in-sight-of-handler, table.table-main.assessment_command_modality_link thead tr th.is-on-lead, table.table-main.assessment_command_modality_link tbody tr td.is-on-lead { - max-width: 4vh; - min-width: 4vh; + max-width: 3vh; + min-width: 3vh; } table.table-main.assessment_command_modality_link thead tr th.notes, table.table-main.assessment_command_modality_link tbody tr td.notes { @@ -136,8 +140,19 @@ table.table-main.assessment_command_modality_link tbody tr td.notes { table.table-main.assessment_command_modality_link thead tr th.assessment_response, table.table-main.assessment_command_modality_link tbody tr td.assessment_response { - max-width: 43vh; - min-width: 43vh; + max-width: 60vh; + min-width: 60vh; +} + +table.table-main.assessment_command_modality_link tbody tr td.assessment_response thead tr th.response-quality-metric, +table.table-main.assessment_command_modality_link tbody tr td.assessment_response tbody tr td.response-quality-metric { + max-width: 15vh; + min-width: 15vh; +} +table.table-main.assessment_command_modality_link tbody tr td.assessment_response thead tr th.obedience-level, +table.table-main.assessment_command_modality_link tbody tr td.assessment_response tbody tr td.obedience-level { + max-width: 15vh; + min-width: 15vh; } /*# sourceMappingURL=dog_assessment.bundle.css.map*/ \ No newline at end of file diff --git a/static/dist/css/dog_assessment.bundle.css.map b/static/dist/css/dog_assessment.bundle.css.map index 9ae1a56..8e5f6fc 100644 --- a/static/dist/css/dog_assessment.bundle.css.map +++ b/static/dist/css/dog_assessment.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/dog_assessment.bundle.css","mappings":";;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;AAEA;IACI,eAAe;AACnB;;;;AAIA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;;;;AAIf;IACI,6BAA6B;IAC7B,gBAAgB;IAChB,cAAc;IACd,SAAS;IACT,SAAS;IACT,qBAAqB;IACrB,2BAA2B;IAC3B,aAAa;IACb,sBAAsB;IACtB,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;IACX,yBAAyB;AAC7B;;;AAGA,WAAW;AACX;IACI,gBAAgB;IAChB,kBAAkB;IAClB,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,sCAAsC;IACtC,kBAAkB;IAClB,SAAS;IACT,WAAW;AACf;;AAEA;IACI;QACI,eAAe;QACf,cAAc;QACd,eAAe;QACf,WAAW;QACX,eAAe;IACnB;IACA;QACI,eAAe;IACnB;IACA;QACI,cAAc;IAClB;AACJ;;AAEA;IACI,UAAU;IACV,SAAS;AACb,C;;;ACxEA;IACI,eAAe;IACf,SAAS;IACT,WAAW;AACf;;;AAGA;;;;;;;;IAQI,cAAc;IACd,cAAc;AAClB;;AAEA;;IAEI,eAAe;IACf,eAAe;AACnB;;AAEA;;IAEI,eAAe;IACf,eAAe;AACnB;;AAEA;;IAEI,cAAc;IACd,cAAc;AAClB;AACA;;IAEI,eAAe;IACf,gBAAgB;AACpB;AACA;;;;;;;;IAQI,cAAc;IACd,cAAc;AAClB;AACA;;IAEI,eAAe;IACf,eAAe;AACnB;;;AAGA;;IAEI,eAAe;IACf,eAAe;AACnB,C","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/assessment.css"],"sourcesContent":["\n\n.container-input > input {\n padding: 0vh 1vh;\n border-radius: 0.5vh;\n max-width: 7vh;\n}\n\n#basket {\n max-width: 100%;\n}\n\n\n\n/* Right column */\n.rightcolumn {\n min-width: fit-content;\n}\n\n/* Main Table */\n\n\n\n#pageBody {\n /* height: 69vh !important; */\n max-height: 79vh;\n padding: 0 5vw;\n margin: 0;\n border: 0;\n align-content: center;\n justify-content: flex-start;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n overflow-y: auto;\n overflow-x: hidden;\n position: absolute;\n width: 90vw;\n color: var(--colour-text);\n}\n\n\n/* Footer */\n.footer {\n padding: 1vh 1vw;\n text-align: center;\n margin: 0;\n max-height: 5vh;\n overflow-y: auto;\n background-color: var(--colour-accent);\n position: absolute;\n bottom: 0;\n width: 98vw;\n}\n\n@media screen and (max-width: 400px) {\n .footer {\n max-height: 8vh;\n padding: 0 2vw;\n font-size: 10px; \n width: 96vw;\n max-width: 96vw;\n }\n .footer > h4 {\n font-size: 10px;\n }\n .footer > h5 {\n font-size: 9px;\n }\n}\n\n.footer > h4, h5 {\n padding: 0;\n margin: 0;\n}","\n\n.container.save.button-cancel {\n position: fixed;\n top: 10vh;\n right: 10vh;\n}\n\n\ntable.table-main.assessment thead tr th.active,\ntable.table-main.assessment tbody tr td.active,\ntable.table-main.distraction thead tr th.active,\ntable.table-main.distraction tbody tr td.active,\ntable.table-main.assessment_command_modality_link thead tr th.active,\ntable.table-main.assessment_command_modality_link tbody tr td.active,\ntable.table-main.assessment_response thead tr th.active,\ntable.table-main.assessment_response tbody tr td.active {\n max-width: 6vh;\n min-width: 6vh;\n}\n\ntable.table-main.assessment thead tr th,\ntable.table-main.assessment tbody tr td {\n max-width: 15vh;\n min-width: 15vh;\n}\n\ntable.table-main.distraction thead tr th,\ntable.table-main.distraction tbody tr td {\n max-width: 12vh;\n min-width: 12vh;\n}\n\ntable.table-main.assessment_command_modality_link thead tr th,\ntable.table-main.assessment_command_modality_link tbody tr td {\n max-width: 6vh;\n min-width: 6vh;\n}\ntable.table-main.assessment_command_modality_link tbody tr td.ddl-preview div, \ntable.table-main.assessment_command_modality_link tbody tr td.ddl-preview select {\n padding-left: 0;\n padding-right: 0;\n}\ntable.table-main.assessment_command_modality_link thead tr th.is-in-hearing-range-of-handler,\ntable.table-main.assessment_command_modality_link tbody tr td.is-in-hearing-range-of-handler,\ntable.table-main.assessment_command_modality_link thead tr th.is-in-scent-range-of-handler,\ntable.table-main.assessment_command_modality_link tbody tr td.is-in-scent-range-of-handler,\ntable.table-main.assessment_command_modality_link thead tr th.is-in-sight-of-handler,\ntable.table-main.assessment_command_modality_link tbody tr td.is-in-sight-of-handler,\ntable.table-main.assessment_command_modality_link thead tr th.is-on-lead,\ntable.table-main.assessment_command_modality_link tbody tr td.is-on-lead {\n max-width: 4vh;\n min-width: 4vh;\n}\ntable.table-main.assessment_command_modality_link thead tr th.notes,\ntable.table-main.assessment_command_modality_link tbody tr td.notes {\n max-width: 12vh;\n min-width: 12vh;\n}\n\n\ntable.table-main.assessment_command_modality_link thead tr th.assessment_response,\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response {\n max-width: 43vh;\n min-width: 43vh;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/dog_assessment.bundle.css","mappings":";;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;AAEA;IACI,eAAe;AACnB;;;;AAIA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;;;;AAIf;IACI,6BAA6B;IAC7B,gBAAgB;IAChB,cAAc;IACd,SAAS;IACT,SAAS;IACT,qBAAqB;IACrB,2BAA2B;IAC3B,aAAa;IACb,sBAAsB;IACtB,uBAAuB;IACvB,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;IAClB,WAAW;IACX,yBAAyB;AAC7B;;;AAGA,WAAW;AACX;IACI,gBAAgB;IAChB,kBAAkB;IAClB,SAAS;IACT,eAAe;IACf,gBAAgB;IAChB,sCAAsC;IACtC,kBAAkB;IAClB,SAAS;IACT,WAAW;AACf;;AAEA;IACI;QACI,eAAe;QACf,cAAc;QACd,eAAe;QACf,WAAW;QACX,eAAe;IACnB;IACA;QACI,eAAe;IACnB;IACA;QACI,cAAc;IAClB;AACJ;;AAEA;IACI,UAAU;IACV,SAAS;AACb,C;;;ACxEA;IACI,aAAa;AACjB;;AAEA;IACI,eAAe;IACf,SAAS;IACT,WAAW;AACf;;;AAGA;;;;;;;;IAQI,cAAc;IACd,cAAc;AAClB;;AAEA;;IAEI,eAAe;IACf,eAAe;AACnB;;AAEA;;IAEI,eAAe;IACf,eAAe;AACnB;;AAEA;;IAEI,cAAc;IACd,cAAc;AAClB;AACA;;IAEI,eAAe;IACf,gBAAgB;AACpB;AACA;;;;;;;;IAQI,cAAc;IACd,cAAc;AAClB;AACA;;IAEI,eAAe;IACf,eAAe;AACnB;;;AAGA;;IAEI,eAAe;IACf,eAAe;AACnB;;AAEA;;IAEI,eAAe;IACf,eAAe;AACnB;AACA;;IAEI,eAAe;IACf,eAAe;AACnB,C","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/assessment.css"],"sourcesContent":["\n\n.container-input > input {\n padding: 0vh 1vh;\n border-radius: 0.5vh;\n max-width: 7vh;\n}\n\n#basket {\n max-width: 100%;\n}\n\n\n\n/* Right column */\n.rightcolumn {\n min-width: fit-content;\n}\n\n/* Main Table */\n\n\n\n#pageBody {\n /* height: 69vh !important; */\n max-height: 79vh;\n padding: 0 5vw;\n margin: 0;\n border: 0;\n align-content: center;\n justify-content: flex-start;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n overflow-y: auto;\n overflow-x: hidden;\n position: absolute;\n width: 90vw;\n color: var(--colour-text);\n}\n\n\n/* Footer */\n.footer {\n padding: 1vh 1vw;\n text-align: center;\n margin: 0;\n max-height: 5vh;\n overflow-y: auto;\n background-color: var(--colour-accent);\n position: absolute;\n bottom: 0;\n width: 98vw;\n}\n\n@media screen and (max-width: 400px) {\n .footer {\n max-height: 8vh;\n padding: 0 2vw;\n font-size: 10px; \n width: 96vw;\n max-width: 96vw;\n }\n .footer > h4 {\n font-size: 10px;\n }\n .footer > h5 {\n font-size: 9px;\n }\n}\n\n.footer > h4, h5 {\n padding: 0;\n margin: 0;\n}","\n\n#formFilters {\n display: none;\n}\n\n.container.save.button-cancel {\n position: fixed;\n top: 10vh;\n right: 10vh;\n}\n\n\ntable.table-main.assessment thead tr th.active,\ntable.table-main.assessment tbody tr td.active,\ntable.table-main.distraction thead tr th.active,\ntable.table-main.distraction tbody tr td.active,\ntable.table-main.assessment_command_modality_link thead tr th.active,\ntable.table-main.assessment_command_modality_link tbody tr td.active,\ntable.table-main.assessment_response thead tr th.active,\ntable.table-main.assessment_response tbody tr td.active {\n max-width: 6vh;\n min-width: 6vh;\n}\n\ntable.table-main.assessment thead tr th,\ntable.table-main.assessment tbody tr td {\n max-width: 15vh;\n min-width: 15vh;\n}\n\ntable.table-main.distraction thead tr th,\ntable.table-main.distraction tbody tr td {\n max-width: 12vh;\n min-width: 12vh;\n}\n\ntable.table-main.assessment_command_modality_link thead tr th,\ntable.table-main.assessment_command_modality_link tbody tr td {\n max-width: 6vh;\n min-width: 6vh;\n}\ntable.table-main.assessment_command_modality_link tbody tr td.ddl-preview div, \ntable.table-main.assessment_command_modality_link tbody tr td.ddl-preview select {\n padding-left: 0;\n padding-right: 0;\n}\ntable.table-main.assessment_command_modality_link thead tr th.is-in-hearing-range-of-handler,\ntable.table-main.assessment_command_modality_link tbody tr td.is-in-hearing-range-of-handler,\ntable.table-main.assessment_command_modality_link thead tr th.is-in-scent-range-of-handler,\ntable.table-main.assessment_command_modality_link tbody tr td.is-in-scent-range-of-handler,\ntable.table-main.assessment_command_modality_link thead tr th.is-in-sight-of-handler,\ntable.table-main.assessment_command_modality_link tbody tr td.is-in-sight-of-handler,\ntable.table-main.assessment_command_modality_link thead tr th.is-on-lead,\ntable.table-main.assessment_command_modality_link tbody tr td.is-on-lead {\n max-width: 3vh;\n min-width: 3vh;\n}\ntable.table-main.assessment_command_modality_link thead tr th.notes,\ntable.table-main.assessment_command_modality_link tbody tr td.notes {\n max-width: 12vh;\n min-width: 12vh;\n}\n\n\ntable.table-main.assessment_command_modality_link thead tr th.assessment_response,\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response {\n max-width: 60vh;\n min-width: 60vh;\n}\n\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response thead tr th.response-quality-metric,\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response tbody tr td.response-quality-metric {\n max-width: 15vh;\n min-width: 15vh;\n}\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response thead tr th.obedience-level,\ntable.table-main.assessment_command_modality_link tbody tr td.assessment_response tbody tr td.obedience-level {\n max-width: 15vh;\n min-width: 15vh;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/js/main.bundle.js b/static/dist/js/main.bundle.js index d0c7df0..dd77627 100644 --- a/static/dist/js/main.bundle.js +++ b/static/dist/js/main.bundle.js @@ -842,6 +842,62 @@ var API = /*#__PURE__*/function () { return _saveCommandButtonLinks.apply(this, arguments); } return saveCommandButtonLinks; + }() // Assessments + }, { + key: "saveAssessments", + value: function () { + var _saveAssessments = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee9(assessments, formFilters, comment) { + var dataRequest; + return _regeneratorRuntime().wrap(function _callee9$(_context9) { + while (1) switch (_context9.prev = _context9.next) { + case 0: + dataRequest = {}; + dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters); + dataRequest[flagAssessment] = assessments; + dataRequest[flagComment] = comment; + _context9.next = 6; + return API.request(hashSaveDogAssessment, 'POST', dataRequest); + case 6: + return _context9.abrupt("return", _context9.sent); + case 7: + case "end": + return _context9.stop(); + } + }, _callee9); + })); + function saveAssessments(_x20, _x21, _x22) { + return _saveAssessments.apply(this, arguments); + } + return saveAssessments; + }() // Assessments + }, { + key: "saveAssessmentsDistractionsAndResponses", + value: function () { + var _saveAssessmentsDistractionsAndResponses = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee10(assessments, formFilters, comment) { + var filtersJson, dataRequest; + return _regeneratorRuntime().wrap(function _callee10$(_context10) { + while (1) switch (_context10.prev = _context10.next) { + case 0: + filtersJson = DOM.convertForm2JSON(formFilters); + filtersJson[attrIdAssessment] = null; + dataRequest = {}; + dataRequest[flagFormFilters] = filtersJson; + dataRequest[flagAssessment] = assessments; + dataRequest[flagComment] = comment; + _context10.next = 8; + return API.request(hashSaveDogAssessmentDistractionAndResponse, 'POST', dataRequest); + case 8: + return _context10.abrupt("return", _context10.sent); + case 9: + case "end": + return _context10.stop(); + } + }, _callee10); + })); + function saveAssessmentsDistractionsAndResponses(_x23, _x24, _x25) { + return _saveAssessmentsDistractionsAndResponses.apply(this, arguments); + } + return saveAssessmentsDistractionsAndResponses; }() }]); }(); @@ -941,6 +997,7 @@ function base_toPrimitive(t, r) { if ("object" != base_typeof(t) || !t) return t + var BasePage = /*#__PURE__*/function () { function BasePage(router) { base_classCallCheck(this, BasePage); @@ -1150,7 +1207,7 @@ var BasePage = /*#__PURE__*/function () { key: "hookupButtonSave", value: function hookupButtonSave() { var _this4 = this; - Events.initialiseEventHandler('form.' + flagFilter + ' button.' + flagSave, flagInitialised, function (button) { + Events.initialiseEventHandler('.' + flagContainer + '.' + flagSave + '.' + flagCancel + ' button.' + flagSave, flagInitialised, function (button) { button.addEventListener("click", function (event) { event.stopPropagation(); button = event.target; @@ -1181,10 +1238,17 @@ var BasePage = /*#__PURE__*/function () { }, { key: "toggleShowButtonsSaveCancel", value: function toggleShowButtonsSaveCancel(show) { - var buttonContainerSelector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '.' + flagContainer + '.' + flagSave + '.' + flagCancel; + var buttonContainerSelector = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; // , buttonSave = null, buttonCancel = null - var buttonSave = document.querySelector(buttonContainerSelector + ' button.' + flagSave); - var buttonCancel = document.querySelector(buttonContainerSelector + ' button.' + flagCancel); + if (Validation.isEmpty(buttonContainerSelector)) buttonContainerSelector = '.' + flagContainer + '.' + flagSave + '.' + flagCancel; + var buttonSave = document.querySelector(buttonContainerSelector + ' ' + idButtonSave); + var buttonCancel = document.querySelector(buttonContainerSelector + ' ' + idButtonCancel); + utils_Utils.consoleLogIfNotProductionEnvironment({ + show: show, + buttonContainerSelector: buttonContainerSelector, + buttonCancel: buttonCancel, + buttonSave: buttonSave + }); if (show) { buttonCancel.classList.remove(flagIsCollapsed); buttonSave.classList.remove(flagIsCollapsed); @@ -5375,7 +5439,7 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) { key: "hookupButtonCancel", value: function hookupButtonCancel() { var _this11 = this; - Events.initialiseEventHandler(idFormFilters + ' button.' + flagCancel, flagInitialised, function (button) { + Events.initialiseEventHandler('.' + flagContainer + '.' + flagSave + '.' + flagCancel + ' button.' + flagCancel, flagInitialised, function (button) { button.addEventListener("click", function (event) { event.stopPropagation(); button = event.target; @@ -5967,6 +6031,12 @@ var TableBasePage = /*#__PURE__*/function (_BasePage) { var isDirtyMainTable = records.length > 0; var formFilters = TableBasePage.getFormFilters(); var areDirtyFilters = DOM.hasDirtyChildrenContainer(formFilters); + console.log({ + records: records, + isDirtyMainTable: isDirtyMainTable, + formFilters: formFilters, + areDirtyFilters: areDirtyFilters + }); this.toggleShowButtonsSaveCancel(isDirtyMainTable && !areDirtyFilters); } }], [{ @@ -6899,7 +6969,7 @@ var PageDogAssessment = /*#__PURE__*/function (_TableBasePage) { var _this; assessment_classCallCheck(this, PageDogAssessment); _this = assessment_callSuper(this, PageDogAssessment, [router]); - assessment_defineProperty(_this, "callSaveTableContent", API.saveAssessments); + assessment_defineProperty(_this, "callSaveTableContent", API.saveAssessmentsDistractionsAndResponses); _this.dogMixin = new DogTableMixinPage(_this); return _this; } @@ -6920,18 +6990,151 @@ var PageDogAssessment = /*#__PURE__*/function (_TableBasePage) { utils_Utils.consoleLogIfNotProductionEnvironment("applying data row: ", rowJson); } } + }, { + key: "getTableRecords", + value: function getTableRecords() { + var dirtyOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + dirtyOnly = true; + var row = document.querySelector(idTableAssessment + ' tbody tr.' + flagAssessment); + return [this.getJsonRow(row)]; + } }, { key: "getJsonRow", value: function getJsonRow(row) { + console.log("getJsonRow: ", row); if (row == null) return; - /* - let inputTemperatureCelcius = row.querySelector('td.' + flagTemperatureCelcius + ' input'); - let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive); - */ + var inputWeather = row.querySelector(idTableAssessment + ' td.' + flagWeather + ' .' + flagWeather); + var inputLightingLevel = row.querySelector(idTableAssessment + ' td.' + flagLightingLevel + ' .' + flagLightingLevel); + var inputTemeratureCelcius = row.querySelector(idTableAssessment + ' td.' + flagTemperatureCelcius + ' .' + flagTemperatureCelcius); + var inputLocation = row.querySelector(idTableAssessment + ' td.' + flagLocation + ' .' + flagLocation); + var inputUserHandler = row.querySelector(idTableAssessment + ' td.' + flagUserHandler + ' .' + flagUserHandler); + var inputNotes = row.querySelector(idTableAssessment + ' td.' + flagNotes + ' .' + flagNotes); + // let buttonActive = row.querySelector(idTableAssessment + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive); + var idAssessment = row.getAttribute(attrIdAssessment); var jsonRow = {}; - jsonRow[attrIdAssessment] = row.getAttribute(attrIdAssessment); + jsonRow[attrIdAssessment] = idAssessment; + jsonRow[attrIdWeather] = DOM.getElementAttributeValueCurrent(inputWeather); + jsonRow[attrIdLightingLevel] = DOM.getElementAttributeValueCurrent(inputLightingLevel); + jsonRow[flagTemperatureCelcius] = DOM.getElementAttributeValueCurrent(inputTemeratureCelcius); + jsonRow[attrIdLocation] = DOM.getElementAttributeValueCurrent(inputLocation); + jsonRow[flagUserHandler] = DOM.getElementAttributeValueCurrent(inputUserHandler); + jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes); + jsonRow[flagActive] = true; // buttonActive.classList.contains(flagDelete); + jsonRow[flagDistraction] = this.getDirtyDistractions(idAssessment); + jsonRow[flagAssessmentCommandModalityLink] = this.getDirtyAssessmentCommandModalityLinks(idAssessment); + console.log({ + jsonRow: jsonRow + }); return jsonRow; } + }, { + key: "getDirtyDistractions", + value: function getDirtyDistractions(idAssessment) { + var dirtyRows = document.querySelectorAll(idTableDistractions + ' tbody tr.' + flagDistraction + '.' + flagDirty); + if (dirtyRows == null || dirtyRows.length == 0) return []; + // dirtyRows = Array.from(dirtyRows); + var dirtyRow, inputDistractionType, distractionType, inputIntensityLevelEmotional, intensityLevelEmotional, inputIntensityLevelScent, intensityLevelScent, inputIntensityLevelSight, intensityLevelSight, inputIntensityLevelSound, intensityLevelSound, inputIntensityLevelTouch, intensityLevelTouch, inputQuantity, quantity, inputProximityMetres, proximityMetres, inputNotes, notes, buttonActive, active; + console.log('getDirtyDistractions'); + console.log({ + dirtyRows: dirtyRows + }); + var dirtyDistractions = []; + for (var indexRow = 0; indexRow < dirtyRows.length; indexRow++) { + var _dirtyDistractions$pu; + dirtyRow = dirtyRows[indexRow]; + inputDistractionType = dirtyRow.querySelector('td.' + flagDistractionType + ' .' + flagDistractionType); + distractionType = DOM.getElementAttributeValueCurrent(inputDistractionType); + inputIntensityLevelEmotional = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelEmotional + ' .' + flagDistractionIntensityLevelEmotional); + intensityLevelEmotional = DOM.getElementAttributeValueCurrent(inputIntensityLevelEmotional); + inputIntensityLevelScent = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelScent + ' .' + flagDistractionIntensityLevelScent); + intensityLevelScent = DOM.getElementAttributeValueCurrent(inputIntensityLevelScent); + inputIntensityLevelSight = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelSight + ' .' + flagDistractionIntensityLevelSight); + intensityLevelSight = DOM.getElementAttributeValueCurrent(inputIntensityLevelSight); + inputIntensityLevelSound = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelSound + ' .' + flagDistractionIntensityLevelSound); + intensityLevelSound = DOM.getElementAttributeValueCurrent(inputIntensityLevelSound); + inputIntensityLevelTouch = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelTouch + ' .' + flagDistractionIntensityLevelTouch); + intensityLevelTouch = DOM.getElementAttributeValueCurrent(inputIntensityLevelTouch); + inputQuantity = dirtyRow.querySelector('td.' + flagQuantity + ' .' + flagQuantity); + quantity = DOM.getElementAttributeValueCurrent(inputQuantity); + inputProximityMetres = dirtyRow.querySelector('td.' + flagProximityMetres + ' .' + flagProximityMetres); + proximityMetres = DOM.getElementAttributeValueCurrent(inputProximityMetres); + inputNotes = dirtyRow.querySelector('td.' + flagNotes + ' .' + flagNotes); + notes = DOM.getElementAttributeValueCurrent(inputNotes); + buttonActive = dirtyRow.querySelector(idTableDistractions + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive); + active = buttonActive.classList.contains(flagDelete); + dirtyDistractions.push((_dirtyDistractions$pu = {}, assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(_dirtyDistractions$pu, attrIdDistraction, dirtyRow.getAttribute(attrIdDistraction)), attrIdAssessment, idAssessment), attrIdDistractionType, distractionType), flagDistractionIntensityLevelEmotional, intensityLevelEmotional), flagDistractionIntensityLevelScent, intensityLevelScent), flagDistractionIntensityLevelSight, intensityLevelSight), flagDistractionIntensityLevelSound, intensityLevelSound), flagDistractionIntensityLevelTouch, intensityLevelTouch), flagQuantity, quantity), flagProximityMetres, proximityMetres), assessment_defineProperty(assessment_defineProperty(_dirtyDistractions$pu, flagNotes, notes), flagActive, active))); + } + ; + return dirtyDistractions; + } + }, { + key: "getDirtyAssessmentCommandModalityLinks", + value: function getDirtyAssessmentCommandModalityLinks(idAssessment) { + var dirtyRows = document.querySelectorAll(idTableAssessmentCommandModalityLinks + ' > tbody > tr.' + flagAssessmentCommandModalityLink + '.' + flagDirty); + if (dirtyRows == null || dirtyRows.length == 0) return []; + dirtyRows = Array.from(dirtyRows); + var dirtyRow, idAssessmentCommandModalityLink, inputCommand, command, inputCommandModality, commandModality, inputBribe, bribe, inputDistanceFromHandler, distanceFromhandler, inputIsInHearingRangeOfHandler, isInHearingRangeOfHandler, inputIsInScentRangeOfHandler, isInScentRangeOfHandler, inputIsInSightOfHandler, isInSightOfHandler, inputIsOnLead, isOnLead, inputNotes, notes, buttonActive, active; + console.log('getDirtyAssessmentCommandModalityLinks'); + console.log({ + dirtyRows: dirtyRows + }); + var dirtyLinks = []; + for (var indexRow = 0; indexRow < dirtyRows.length; indexRow++) { + var _dirtyLinks$push; + dirtyRow = dirtyRows[indexRow]; + idAssessmentCommandModalityLink = dirtyRow.getAttribute(attrIdAssessmentCommandModalityLink); + inputCommand = dirtyRow.querySelector('td.' + flagCommand + ' .' + flagCommand); + command = DOM.getElementAttributeValueCurrent(inputCommand); + inputCommandModality = dirtyRow.querySelector('td.' + flagCommandModality + ' .' + flagCommandModality); + commandModality = DOM.getElementAttributeValueCurrent(inputCommandModality); + inputBribe = dirtyRow.querySelector('td.' + flagBribe + ' .' + flagBribe); + bribe = DOM.getElementAttributeValueCurrent(inputBribe); + inputDistanceFromHandler = dirtyRow.querySelector('td.' + flagDistanceFromHandlerMetres + ' .' + flagDistanceFromHandlerMetres); + distanceFromhandler = DOM.getElementAttributeValueCurrent(inputDistanceFromHandler); + inputIsInHearingRangeOfHandler = dirtyRow.querySelector('td.' + flagIsInHearingRangeOfHandler + ' .' + flagIsInHearingRangeOfHandler); + isInHearingRangeOfHandler = DOM.getElementAttributeValueCurrent(inputIsInHearingRangeOfHandler); + inputIsInScentRangeOfHandler = dirtyRow.querySelector('td.' + flagIsInScentRangeOfHandler + ' .' + flagIsInScentRangeOfHandler); + isInScentRangeOfHandler = DOM.getElementAttributeValueCurrent(inputIsInScentRangeOfHandler); + inputIsInSightOfHandler = dirtyRow.querySelector('td.' + flagIsInSightOfHandler + ' .' + flagIsInSightOfHandler); + isInSightOfHandler = DOM.getElementAttributeValueCurrent(inputIsInSightOfHandler); + inputIsOnLead = dirtyRow.querySelector('td.' + flagIsOnLead + ' .' + flagIsOnLead); + isOnLead = DOM.getElementAttributeValueCurrent(inputIsOnLead); + inputNotes = dirtyRow.querySelector('td.' + flagNotes + ' .' + flagNotes); + notes = DOM.getElementAttributeValueCurrent(inputNotes); + buttonActive = dirtyRow.querySelector(idTableAssessmentCommandModalityLinks + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive); + active = buttonActive.classList.contains(flagDelete); + dirtyLinks.push((_dirtyLinks$push = {}, assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(_dirtyLinks$push, attrIdAssessmentCommandModalityLink, idAssessmentCommandModalityLink), attrIdAssessment, idAssessment), attrIdCommand, command), attrIdCommandModality, commandModality), attrIdBribe, bribe), flagDistanceFromHandlerMetres, distanceFromhandler), flagIsInHearingRangeOfHandler, isInHearingRangeOfHandler), flagIsInScentRangeOfHandler, isInScentRangeOfHandler), flagIsInSightOfHandler, isInSightOfHandler), flagIsOnLead, isOnLead), assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(_dirtyLinks$push, flagNotes, notes), flagActive, active), flagAssessmentResponse, this.getDirtyAssessmentResponses(dirtyRow, idAssessmentCommandModalityLink)))); + } + return dirtyLinks; + } + }, { + key: "getDirtyAssessmentResponses", + value: function getDirtyAssessmentResponses(rowAssessmentCommandModalityLink, idAssessmentCommandModalityLink) { + var dirtyRows = rowAssessmentCommandModalityLink.querySelectorAll(idTableAssessmentResponses + ' tbody tr.' + flagAssessmentResponse + '.' + flagDirty); + if (dirtyRows == null || dirtyRows.length == 0) return []; + dirtyRows = Array.from(dirtyRows); + var dirtyRow, inputResponseQualityMetric, responseQualityMetric, inputObedienceLevel, obedienceLevel, inputValueMeasured, valueMeasured, inputNotes, notes, buttonActive, active; + console.log('getDirtyAssessmentResponses'); + console.log({ + dirtyRows: dirtyRows + }); + var dirtyResponses = []; + for (var indexRow = 0; indexRow < dirtyRows.length; indexRow++) { + dirtyRow = dirtyRows[indexRow]; + inputResponseQualityMetric = dirtyRow.querySelector('td.' + flagResponseQualityMetric + ' .' + flagResponseQualityMetric); + responseQualityMetric = DOM.getElementAttributeValueCurrent(inputResponseQualityMetric); + inputObedienceLevel = dirtyRow.querySelector('td.' + flagObedienceLevel + ' .' + flagObedienceLevel); + obedienceLevel = DOM.getElementAttributeValueCurrent(inputObedienceLevel); + inputValueMeasured = dirtyRow.querySelector('td.' + flagValueMeasured + ' .' + flagValueMeasured); + valueMeasured = DOM.getElementAttributeValueCurrent(inputValueMeasured); + inputNotes = dirtyRow.querySelector('td.' + flagNotes + ' .' + flagNotes); + notes = DOM.getElementAttributeValueCurrent(inputNotes); + buttonActive = dirtyRow.querySelector(idTableAssessmentResponses + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive); + active = buttonActive.classList.contains(flagDelete); + dirtyResponses.push(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty({}, attrIdAssessmentResponse, dirtyRow.getAttribute(attrIdAssessmentResponse)), attrIdAssessmentCommandModalityLink, idAssessmentCommandModalityLink), attrIdResponseQualityMetric, responseQualityMetric), attrIdObedienceLevel, obedienceLevel), flagValueMeasured, valueMeasured), flagNotes, notes), flagActive, active)); + } + return dirtyResponses; + } }, { key: "initialiseRowNew", value: function initialiseRowNew(tbody, row) {} @@ -6945,6 +7148,16 @@ var PageDogAssessment = /*#__PURE__*/function (_TableBasePage) { clickableElement.click(); }); } + }, { + key: "callFilterTableContent", + value: function callFilterTableContent() { + if (assessment[attrIdAssessment] < 1) { + var formFilters = TableBasePage.getFormFilters(); + var filterAssessment = formFilters.querySelector('#' + attrIdAssessment); + DOM.setElementValueCurrent(filterAssessment, ''); + } + assessment_superPropGet(PageDogAssessment, "callFilterTableContent", this, 3)([]); + } }, { key: "hookupTableMain", value: function hookupTableMain() { @@ -6962,6 +7175,12 @@ var PageDogAssessment = /*#__PURE__*/function (_TableBasePage) { this.hookupTableAssessmentFieldLocation(); this.hookupTableAssessmentFieldUserHandler(); this.hookupTableAssessmentFieldNotes(); + if (assessment[attrIdAssessment] < 1) { + var tbody = document.querySelector(idTableAssessment + ' tbody'); + var row = tbody.querySelector('tr'); + row.classList.add(flagRowNew); + this.postInitialiseRowNewCallback(tbody); + } } }, { key: "hookupTableAssessmentFieldWeather", @@ -7148,7 +7367,7 @@ var PageDogAssessment = /*#__PURE__*/function (_TableBasePage) { this.hookupTableAssessmentCommandModalityLinksFieldsCommand(); this.hookupTableAssessmentCommandModalityLinksFieldsCommandModality(); this.hookupTableAssessmentCommandModalityLinksFieldsBribe(); - this.hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandler(); + this.hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandlerMetres(); this.hookupTableAssessmentCommandModalityLinksFieldsIsInHearingRangeOfHandler(); this.hookupTableAssessmentCommandModalityLinksFieldsIsInScentRangeOfHandler(); this.hookupTableAssessmentCommandModalityLinksFieldsIsInSightOfHandler(); @@ -7228,9 +7447,9 @@ var PageDogAssessment = /*#__PURE__*/function (_TableBasePage) { this.hookupTableCellDdlPreviews(fieldFlag, optionList, cellSelector); } }, { - key: "hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandler", - value: function hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandler() { - this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagDistanceFromHandler + ' .' + flagDistanceFromHandler); + key: "hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandlerMetres", + value: function hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandlerMetres() { + this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagDistanceFromHandlerMetres + ' .' + flagDistanceFromHandlerMetres); } }, { key: "hookupTableAssessmentCommandModalityLinksFieldsIsInHearingRangeOfHandler", @@ -7270,6 +7489,8 @@ var PageDogAssessment = /*#__PURE__*/function (_TableBasePage) { var selector = idTableAssessmentCommandModalityLinks + ' td.' + flagAssessmentResponse + ' div.' + flagAssessmentResponse; var handler = function handler(event, element) { var parentTd = DOM.getCellFromElement(element); + var rowAssessmentCommandModalityLink = parentTd.closest('tr.' + flagAssessmentCommandModalityLink); + var idAssessmentCommandModalityLink = rowAssessmentCommandModalityLink.getAttribute(attrIdAssessmentCommandModalityLink); var responsesTable = document.createElement("table"); responsesTable.id = idTableAssessmentResponses.replace("#", ""); responsesTable.classList.add(flagTableMain, flagAssessmentResponse); @@ -7299,16 +7520,42 @@ var PageDogAssessment = /*#__PURE__*/function (_TableBasePage) { head.appendChild(headRow); responsesTable.appendChild(head); var body = document.createElement("tbody"); - var assessmentCommandModalityLink = assessment[flagAssessmentCommandModalityLink]; + var assessmentCommandModalityLinks = assessment[flagAssessmentCommandModalityLink].filter(function (link) { + return link[attrIdAssessmentCommandModalityLink] == idAssessmentCommandModalityLink; + }); + var assessmentCommandModalityLink = assessmentCommandModalityLinks == null || assessmentCommandModalityLinks.length == 0 ? null : assessmentCommandModalityLinks[0]; var responses = assessmentCommandModalityLink == null ? null : assessmentCommandModalityLink[flagAssessmentResponse]; + console.log({ + assessmentCommandModalityLinks: assessmentCommandModalityLinks, + responses: responses + }); if (responses != null && responses.length > 0) { - for (var response in responses) { + for (var responseKey in Object.keys(responses)) { + var response = responses[responseKey]; var row = PageDogAssessment.createNewRowTableAssessmentResponses(response); body.appendChild(row); } } responsesTable.appendChild(body); parentTd.innerHTML = responsesTable.outerHTML; + var responseRows = parentTd.querySelectorAll('tbody tr.' + flagAssessmentResponse); + if (responseRows != null && responseRows.length > 0) { + for (var indexRow = 0; indexRow < responseRows.length; indexRow++) { + var _row = responseRows[indexRow]; + // let idAssessmentResponse = row.getAttribute(attrIdAssessmentResponse); + + var _response = responses[indexRow]; // idAssessmentResponse]; + console.log({ + indexRow: indexRow, + row: _row, + response: _response + }); // idAssessmentResponse, + var inputValueMeasured = _row.querySelector('td.' + flagValueMeasured + ' .' + flagValueMeasured); + DOM.setElementValueCurrent(inputValueMeasured, _response[flagValueMeasured]); + var inputNotes = _row.querySelector('td.' + flagNotes + ' .' + flagNotes); + DOM.setElementValueCurrent(inputNotes, _response[flagNotes]); + } + } _this3.hookupTablesAssessmentResponses(); }; Events.hookupEventHandler(eventType, selector, handler); @@ -7369,7 +7616,7 @@ var PageDogAssessment = /*#__PURE__*/function (_TableBasePage) { row.querySelectorAll('.' + flagInitialised).forEach(function (element) { element.classList.remove(flagInitialised); }); - var countRows = document.querySelectorAll(attrIdAssessmentResponse + ' > tbody > tr').length; + var countRows = document.querySelectorAll(idTableAssessmentResponses + ' > tbody > tr').length; row.setAttribute(attrIdAssessmentResponse, -1 - countRows); tbody.prepend(row); tbody.scrollTop = 0; @@ -7441,7 +7688,10 @@ var PageDogAssessment = /*#__PURE__*/function (_TableBasePage) { }], [{ key: "createNewRowTableAssessmentResponses", value: function createNewRowTableAssessmentResponses(response) { - if (response == null) response = assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty({}, attrIdAssessmentResponse, null), flagResponseQualityMetric, 0), flagObedienceLevel, 0), flagValueMeasured, ''), flagNotes, ''), flagActive, true); + if (response == null) response = assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty(assessment_defineProperty({}, attrIdAssessmentResponse, null), attrIdResponseQualityMetric, assessment_defineProperty({}, attrIdResponseQualityMetric, 0)), attrIdObedienceLevel, assessment_defineProperty({}, attrIdObedienceLevel, 0)), flagValueMeasured, ''), flagNotes, ''), flagActive, true); + console.log({ + response: response + }); var isNew = response[attrIdAssessmentResponse] == null || response[attrIdAssessmentResponse] < 1; var row = document.createElement("tr"); row.classList.add(flagAssessmentResponse); @@ -7451,16 +7701,20 @@ var PageDogAssessment = /*#__PURE__*/function (_TableBasePage) { tdResponseQualityMetric.classList.add(flagResponseQualityMetric, flagDdlPreview); var divResponseQualityMetric = document.createElement("div"); divResponseQualityMetric.classList.add(flagResponseQualityMetric); - DOM.setElementAttributesValuesCurrentAndPrevious(divResponseQualityMetric, response[flagResponseQualityMetric]); - divResponseQualityMetric.innerText = response[flagResponseQualityMetric]; + var idResponseQualityMetric = response[attrIdResponseQualityMetric][attrIdResponseQualityMetric]; + var responseQualityMetric = filterResponseQualityMetrics[idResponseQualityMetric]; + DOM.setElementAttributesValuesCurrentAndPrevious(divResponseQualityMetric, idResponseQualityMetric); + divResponseQualityMetric.innerText = responseQualityMetric == null ? '' : responseQualityMetric[flagName]; tdResponseQualityMetric.appendChild(divResponseQualityMetric); row.appendChild(tdResponseQualityMetric); var tdObedienceLevel = document.createElement("td"); tdObedienceLevel.classList.add(flagObedienceLevel, flagDdlPreview); var divObedienceLevel = document.createElement("div"); divObedienceLevel.classList.add(flagObedienceLevel); - DOM.setElementAttributesValuesCurrentAndPrevious(divObedienceLevel, response[flagObedienceLevel]); - divObedienceLevel.innerText = response[flagObedienceLevel]; + var idObedienceLevel = response[attrIdObedienceLevel][attrIdObedienceLevel]; + var obedienceLevel = filterObedienceLevels[idObedienceLevel]; + DOM.setElementAttributesValuesCurrentAndPrevious(divObedienceLevel, idObedienceLevel); + divObedienceLevel.innerText = obedienceLevel == null ? '' : obedienceLevel[flagName]; tdObedienceLevel.appendChild(divObedienceLevel); row.appendChild(tdObedienceLevel); var tdValueMeasured = document.createElement("td"); @@ -7468,18 +7722,26 @@ var PageDogAssessment = /*#__PURE__*/function (_TableBasePage) { var inputValueMeasured = document.createElement("input"); inputValueMeasured.type = "number"; inputValueMeasured.classList.add(flagValueMeasured); - DOM.setElementAttributesValuesCurrentAndPrevious(inputValueMeasured, response[flagValueMeasured]); - inputValueMeasured.value = response[flagValueMeasured]; + var valueMeasured = response[flagValueMeasured]; + DOM.setElementValueCurrent(inputValueMeasured, valueMeasured); + DOM.setElementAttributeValuePrevious(inputValueMeasured, valueMeasured); tdValueMeasured.appendChild(inputValueMeasured); row.appendChild(tdValueMeasured); var tdNotes = document.createElement("td"); tdNotes.classList.add(flagNotes, flagDdlPreview); var inputNotes = document.createElement("textarea"); inputNotes.classList.add(flagNotes); - DOM.setElementAttributesValuesCurrentAndPrevious(inputNotes, response[flagNotes]); - inputNotes.value = response[flagNotes]; + var notes = response[flagNotes]; + DOM.setElementValueCurrent(inputNotes, notes); + DOM.setElementAttributeValuePrevious(inputNotes, notes); tdNotes.appendChild(inputNotes); row.appendChild(tdNotes); + console.log(inputValueMeasured.tagName); + console.log(inputNotes.tagName); + console.log({ + valueMeasured: valueMeasured, + notes: notes + }); var tdActive = document.createElement("td"); tdActive.classList.add(flagActive, flagDdlPreview); var templateAddIcon = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagAdd); @@ -7618,10 +7880,15 @@ var PageDogAssessments = /*#__PURE__*/function (_TableBasePage) { value: function postInitialiseRowNewCallback(tbody) { var newRows = tbody.querySelectorAll('tr.' + flagRowNew); var newestRow = newRows[0]; - var clickableElementsSelector = ['td.' + flagWeather + ' div.' + flagWeather, ',td.' + flagLightingLevel + ' div.' + flagLightingLevel, ',td.' + flagLocation + ' div.' + flagLocation, ',td.' + flagUserHandler + ' div.' + flagUserHandler].join(''); - newestRow.querySelectorAll(clickableElementsSelector).forEach(function (clickableElement) { - clickableElement.click(); - }); + var clickableElementsSelector = ['td.' + flagDetail + ' .' + flagDetail].join(''); + var detailButton = newestRow.querySelector('td.' + flagDetail + ' .' + flagDetail); /*.forEach((clickableElement) => { + clickableElement. + clickableElement.click(); + }); + */ + newestRow.classList.add(flagIsCollapsed); + detailButton.click(); + // console.log({ newestRow, detailButton }); } }, { key: "hookupTableMain", diff --git a/static/dist/js/main.bundle.js.map b/static/dist/js/main.bundle.js.map index c81f98b..f1860be 100644 --- a/static/dist/js/main.bundle.js.map +++ b/static/dist/js/main.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"js/main.bundle.js","mappings":"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","sources":["webpack://app/./static/js/lib/validation.js","webpack://app/./static/js/dom.js","webpack://app/./static/js/lib/events.js","webpack://app/./static/js/lib/local_storage.js","webpack://app/./static/js/api.js","webpack://app/./static/js/lib/utils.js","webpack://app/./static/js/components/common/temporary/overlay_confirm.js","webpack://app/./static/js/pages/base.js","webpack://app/./static/js/pages/core/home.js","webpack://app/./static/js/vendor/altcha.js","webpack://app/./static/js/pages/core/contact.js","webpack://app/./static/js/pages/core/contact-success.js","webpack://app/./static/js/pages/dog/home.js","webpack://app/./static/js/lib/business_objects/business_objects.js","webpack://app/./static/js/components/common/temporary/overlay_error.js","webpack://app/./static/js/pages/base_table.js","webpack://app/./static/js/pages/dog/mixin.js","webpack://app/./static/js/pages/dog/mixin_table.js","webpack://app/./static/js/pages/dog/command_categories.js","webpack://app/./static/js/pages/dog/commands.js","webpack://app/./static/js/pages/dog/dog_command_links.js","webpack://app/./static/js/pages/dog/locations.js","webpack://app/./static/js/pages/dog/button_icons.js","webpack://app/./static/js/pages/dog/command_button_links.js","webpack://app/./static/js/pages/dog/assessment.js","webpack://app/./static/js/pages/dog/assessments.js","webpack://app/./static/js/pages/legal/accessibility_report.js","webpack://app/./static/js/pages/legal/accessibility_statement.js","webpack://app/./static/js/pages/legal/license.js","webpack://app/./static/js/pages/legal/privacy_policy.js","webpack://app/./static/js/pages/legal/retention_schedule.js","webpack://app/./static/js/router.js","webpack://app/./static/js/app.js","webpack://app/./static/css/main.css?0a91","webpack://app/./static/css/components/button.css?0e0b","webpack://app/./static/css/components/card.css","webpack://app/./static/css/components/dialog.css","webpack://app/./static/css/components/form.css?94e1","webpack://app/./static/css/components/image.css?9f9c","webpack://app/./static/css/components/label.css?b78f","webpack://app/./static/css/components/modal.css","webpack://app/./static/css/components/navigation.css","webpack://app/./static/css/components/overlay.css?6dfd","webpack://app/./static/css/components/table.css?e553","webpack://app/./static/css/layouts/header.css?da75","webpack://app/./static/css/layouts/footer.css?65e3","webpack://app/./static/css/layouts/table-main.css?8c15","webpack://app/./static/css/lib/reset.css","webpack://app/./static/css/lib/typography.css","webpack://app/./static/css/lib/utils.css?0479","webpack://app/./static/css/lib/variables.css","webpack://app/./static/css/themes/light.css?855e"],"sourcesContent":["\nexport default class Validation {\n /*\n isNullOrWhitespace(v) {\n let txt = JSON.stringify(v).replace('/\\s\\g', '');\n return (txt == '' || 'null');\n }\n */\n\n static isEmpty(object) {\n\n let isEmpty = true;\n\n if (object !== null && object !== \"null\" && object !== undefined && object !== \"undefined\") {\n\n if (object.length == undefined) {\n isEmpty = false; // object exists but isn't a collection\n }\n else if (typeof object === \"function\") {\n isEmpty = false; // object is reference\n }\n else { // string or collection\n\n let isString = (typeof object == \"string\");\n\n if (isString) object = object.trim();\n\n if (object.length > 0) {\n\n if (isString) {\n isEmpty = false; // String greater than length 0\n }\n else {\n\n if (typeof object[0] != \"string\") {\n isEmpty = false;\n }\n else {\n for(let i = 0; i < object.length; i++) {\n if (object[i] != \"\") {\n isEmpty = false;\n break\n }\n }\n }\n }\n }\n }\n }\n\n return isEmpty;\n }\n\n static isValidNumber(value, positiveOnly) {\n return !Validation.isEmpty(value) && !isNaN(value) && (!positiveOnly || parseFloat(value) > 0);\n }\n\n static getDataContentType(params) {\n\n var data = null;\n var contentType = '';\n\n if (!Validation.isEmpty(params)) {\n\n if (typeof params === \"string\") {\n data = params;\n contentType = \"application/x-www-form-urlencoded; charset=UTF-8\";\n }\n else {\n data = JSON.stringify(params);\n contentType = \"application/json; charset=UTF-8\";\n }\n }\n\n return { Data: data, ContentType: contentType };\n }\n\n static arrayContainsItem(array, itemValue) {\n\n var hasItem = false;\n\n if (!Validation.isEmpty(array) && !Validation.isEmpty(itemValue)) {\n\n var isJQueryElementArray = array[0] instanceof jQuery;\n\n if (isJQueryElementArray) {\n\n for (let i = 0; i < array.length; i++) {\n\n if (document.querySelectorAll(array[i]).is(itemValue)) {\n hasItem = true;\n break;\n }\n }\n }\n else {\n\n var isDate = array[0] instanceof Date;\n\n if (isDate) {\n \n for (let i = 0; i < array.length; i++) {\n\n if (array[i].getTime() === itemValue.getTime()) {\n hasItem = true;\n break;\n }\n }\n }\n else {\n\n for (let i = 0; i < array.length; i++) {\n\n if (array[i] == itemValue) {\n hasItem = true;\n break;\n }\n }\n }\n }\n }\n\n return hasItem;\n }\n\n static dictHasKey(d, k) {\n return (k in d);\n }\n static areEqualDicts(dict1, dict2) {\n const keys1 = Object.keys(dict1);\n const keys2 = Object.keys(dict2);\n \n if (keys1.length !== keys2.length) {\n return false;\n }\n \n for (let key of keys1) {\n if (dict1[key] !== dict2[key]) {\n return false;\n }\n }\n \n return true;\n }\n\n static imageExists(url, callback) {\n\n var img = new Image();\n\n img.onload = function() { callback(true); };\n img.onerror = function() { callback(false); };\n img.src = url;\n }\n\n static toFixedOrDefault(value, decimalPlaces, defaultValue = null) {\n return Validation.isValidNumber(value) ? parseFloat(value).toFixed(decimalPlaces) : defaultValue;\n }\n}\n","\nimport Utils from \"./lib/utils.js\";\nimport Validation from \"./lib/validation.js\";\n\nexport default class DOM {\n static setElementAttributesValuesCurrentAndPrevious(element, data) {\n DOM.setElementAttributeValueCurrent(element, data);\n DOM.setElementAttributeValuePrevious(element, data);\n }\n static setElementAttributeValueCurrent(element, data) {\n element.setAttribute(attrValueCurrent, data);\n }\n static setElementAttributeValuePrevious(element, data) {\n element.setAttribute(attrValuePrevious, data);\n }\n static setElementValuesCurrentAndPrevious(element, data) {\n DOM.setElementValueCurrent(element, data);\n DOM.setElementAttributeValuePrevious(element, data);\n }\n static setElementValueCurrent(element, data) {\n DOM.setElementAttributeValueCurrent(element, data);\n let tagName = element.tagName.toUpperCase();\n if (element.type === \"checkbox\") {\n element.checked = data;\n }\n else if (tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT') {\n element.value = data;\n }\n else {\n element.textContent = data;\n }\n }\n static setElementValueCurrentIfEmpty(element, data) {\n if (Validation.isEmpty(DOM.getElementValueCurrent(element))) {\n DOM.setElementValueCurrent(element, data);\n }\n }\n static getCellFromElement(element) {\n return element.closest('td');\n }\n static getRowFromElement(element, flagRow) {\n let selector = Validation.isEmpty(flagRow) ? 'tr' : 'tr.' + flagRow;\n return element.closest(selector);\n }\n static getClosestParent(element, parentSelector) {\n let parent = element.parentElement;\n while (parent) {\n if (parent.matches(parentSelector)) {\n return parent;\n }\n parent = parent.parentElement;\n }\n return null;\n }\n static convertForm2JSON(elementForm) {\n let dataForm = {};\n if (Validation.isEmpty(elementForm)) {\n return dataForm;\n }\n let containersFilter = elementForm.querySelectorAll('.' + flagContainerInput + '.' + flagFilter);\n let containerFilter, labelFilter, keyFilter, filter;\n for (let indexFilter = 0; indexFilter < containersFilter.length; indexFilter++) {\n containerFilter = containersFilter[indexFilter];\n labelFilter = containerFilter.querySelector('label');\n keyFilter = labelFilter.getAttribute('for');\n filter = containerFilter.querySelector(`#${keyFilter}`);\n dataForm[keyFilter] = DOM.getElementValueCurrent(filter);\n }\n return dataForm;\n }\n static loadPageBody(contentNew) {\n let pageBody = document.querySelector(idPageBody);\n pageBody.innerHTML = contentNew;\n }\n static getHashPageCurrent() {\n const hashPageCurrent = document.body.dataset.page;\n return hashPageCurrent;\n }\n static updateAndCheckIsElementDirty(element) {\n element.setAttribute(attrValueCurrent, DOM.getElementValueCurrent(element));\n return DOM.isElementDirty(element);\n }\n static isElementDirty(element) {\n let isDirty = element.getAttribute(attrValuePrevious) != element.getAttribute(attrValueCurrent);\n DOM.handleDirtyElement(element, isDirty);\n return isDirty;\n }\n static handleDirtyElement(element, isDirty) {\n DOM.toggleElementHasClassnameFlag(element, isDirty, flagDirty);\n }\n static toggleElementHasClassnameFlag(element, elementHasFlag, flag) {\n let elementAlreadyHasFlag = element.classList.contains(flag);\n if (elementHasFlag == elementAlreadyHasFlag) return;\n if (elementHasFlag) {\n element.classList.add(flag);\n } else {\n element.classList.remove(flag);\n }\n }\n static hasDirtyChildrenContainer(container) {\n if (container == null) return false;\n return container.querySelector('.' + flagDirty) != null;\n }\n static hasDirtyChildrenNotDeletedContainer(container) {\n if (container == null || container.classList.contains(flagDelete)) return false;\n return container.querySelector('.' + flagDirty + ':not(.' + flagDelete + ', .' + flagDelete + ' *)') != null;\n }\n static getElementValueCurrent(element) {\n let returnVal = '';\n \n if (!Validation.isEmpty(element)) {\n \n let tagName = element.tagName.toUpperCase();\n if (element.type === \"checkbox\") {\n returnVal = element.checked;\n }\n /*\n else if (element.classList.contains(flagIsDatePicker)) {\n returnVal = getDatePickerDate(element, adjust4DayLightSavings);\n }\n */\n else if (tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT') {\n returnVal = element.value;\n }\n else if (element.classList.contains(flagButton) && element.classList.contains(flagActive)) { // tagName === 'BUTTON'\n returnVal = element.classList.contains(flagDelete);\n }\n else if (tagName === 'TD') {\n returnVal = DOM.getElementAttributeValueCurrent(element);\n }\n else if (tagName == 'SVG' && element.classList.contains(flagCheckbox)) {\n returnVal = (element.classList.contains(flagIsChecked))\n }\n else {\n returnVal = element.textContent;\n }\n }\n \n if (Validation.isEmpty(returnVal)) returnVal = '';\n \n return returnVal;\n }\n static getElementAttributeValueCurrent(element) {\n // debugger;\n if (Validation.isEmpty(element)) return null;\n return element.getAttribute(attrValueCurrent);\n }\n static getElementAttributeValuePrevious(element) {\n if (Validation.isEmpty(element)) return null;\n return element.getAttribute(attrValuePrevious);\n }\n /* base_table.handleChangeElementCellTable\n static updateAndCheckIsTableElementDirty(element) {\n let wasDirty = DOM.isElementDirty(element);\n let row = DOM.getRowFromElement(element);\n let wasDirtyRow = DOM.hasDirtyChildrenNotDeletedContainer(row);\n let isDirty = DOM.updateAndCheckIsElementDirty(element);\n let cell = DOM.getCellFromElement(element);\n Utils.consoleLogIfNotProductionEnvironment({element, row, cell, isDirty, wasDirty});\n if (isDirty != wasDirty) {\n DOM.handleDirtyElement(cell, isDirty);\n let isDirtyRow = DOM.hasDirtyChildrenNotDeletedContainer(row);\n Utils.consoleLogIfNotProductionEnvironment({isDirtyRow, wasDirtyRow});\n if (isDirtyRow != wasDirtyRow) {\n DOM.handleDirtyElement(row, isDirtyRow);\n }\n }\n }\n */\n static scrollToElement(parent, element) {\n // REQUIRED: parent has scroll-bar\n parent.scrollTop(parent.scrollTop() + (element.offset().top - parent.offset().top));\n }\n static isElementInContainer(container, element) {\n\n if (typeof jQuery === 'function') {\n if (container instanceof jQuery) container = container[0];\n if (element instanceof jQuery) element = element[0];\n }\n\n var containerBounds = container.getBoundingClientRect();\n var elementBounds = element.getBoundingClientRect();\n\n return (\n containerBounds.top <= elementBounds.top &&\n containerBounds.left <= elementBounds.left &&\n ((elementBounds.top + elementBounds.height) <= (containerBounds.top + containerBounds.height)) &&\n ((elementBounds.left + elementBounds.width) <= (containerBounds.left + containerBounds.width))\n );\n }\n static alertError(errorType, errorText) {\n alert(errorType + '\\n' + errorText);\n }\n static createOptionUnselectedProductVariation() {\n return {\n [flagProductVariationType]: {\n [flagNameAttrOptionText]: [flagName],\n [flagNameAttrOptionValue]: [attrIdProductVariationType],\n [flagName]: 'Select Variation Type',\n [attrIdProductVariationType]: 0,\n },\n [flagProductVariation]: {\n [flagNameAttrOptionText]: [flagName],\n [flagNameAttrOptionValue]: [attrIdProductVariation],\n [flagName]: 'Select Variation',\n [attrIdProductVariation]: 0,\n },\n };\n }\n static createOption(optionJson) {\n if (Validation.isEmpty(optionJson)) optionJson = {\n text: 'Select',\n value: 0,\n };\n let option = document.createElement('option');\n option.value = optionJson.value;\n option.textContent = optionJson.text;\n option.selected = optionJson.selected;\n return option;\n }\n\n static escapeHtml(text) {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n static unescapeHtml(html) {\n const div = document.createElement('div');\n div.innerHTML = html;\n return div.textContent || div.innerText || '';\n }\n}\n","\nexport default class Events {\n static initialiseEventHandler(selectorElement, classInitialised, eventHandler) {\n document.querySelectorAll(selectorElement).forEach(function(element) {\n if (element.classList.contains(classInitialised)) return;\n eventHandler(element);\n element.classList.add(classInitialised);\n });\n }\n static hookupEventHandler(eventType, selector, callback) {\n Events.initialiseEventHandler(selector, flagInitialised, (element) => {\n element.addEventListener(eventType, (event) => {\n event.stopPropagation();\n callback(event, element);\n });\n });\n }\n}","\nimport Validation from \"./validation.js\";\n\nexport default class LocalStorage {\n/*\nfunction getPageLocalStorage(pageHash) {\n\n let ls;\n try {\n ls = JSON.parse(localStorage.getItem(pageHash));\n } catch {\n\n }\n\n if (Validation.isEmpty(ls)) return {}\n\n return ls;\n}\nfunction getPageLocalStorageCurrent() {\n\n return JSON.parse(localStorage.getItem(hashPageCurrent));\n}\n\nfunction setPageLocalStorage(pageHash, newLS) {\n\n localStorage.setItem(pageHash, JSON.stringify(newLS));\n}\n\nfunction clearPageLocalStorage(pageHash) {\n localStorage.removeItem(pageHash);\n}\n\nfunction setupPageLocalStorage(pageHash) {\n\n let ls = getPageLocalStorage(pageHash);\n\n if (Validation.isEmpty(ls)) ls = {};\n\n setPageLocalStorage(pageHash, ls);\n}\n*/\n\n static getLocalStorage(key) {\n return JSON.parse(localStorage.getItem(key));\n }\n\n static setLocalStorage(key, newLS) {\n localStorage.setItem(key, JSON.stringify(newLS));\n }\n\n/*\nfunction setupPageLocalStorageNext(pageHashNext) {\n let lsOld = getPageLocalStorage(hashPageCurrent);\n hashPageCurrent = pageHashNext;\n clearPageLocalStorage(hashPageCurrent);\n setupPageLocalStorage(hashPageCurrent);\n let lsNew = getPageLocalStorage(hashPageCurrent);\n lsNew[keyBasket] = (keyBasket in lsOld) ? lsOld[keyBasket] : {'items': []};\n setPageLocalStorage(hashPageCurrent, lsNew);\n}\n*/\n}","import DOM from './dom.js';\n\nexport default class API {\n \n static getCsrfToken() {\n return document.querySelector(idCSRFToken).getAttribute('content');\n }\n \n static async request(hashEndpoint, method = 'GET', data = null, params = null) {\n const url = API.getUrlFromHash(hashEndpoint, params);\n const csrfToken = API.getCsrfToken();\n const options = {\n method,\n headers: {\n 'Content-Type': 'application/json',\n [flagCsrfToken]: csrfToken,\n }\n };\n\n if (data && (method === 'POST' || method === 'PUT' || method === 'PATCH')) {\n data = { \n ...data, \n [flagCsrfToken]: csrfToken,\n };\n options.body = JSON.stringify(data);\n }\n\n try {\n const response = await fetch(url, options);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n return await response.json();\n } catch (error) {\n console.error('API request failed:', error);\n throw error;\n }\n }\n \n static getUrlFromHash(hash, params = null) {\n if (hash == null) hash = hashPageHome;\n let url = API.parameteriseUrl(_pathHost + hash, params);\n return url;\n }\n static parameteriseUrl(url, params) {\n if (params) {\n url += '?' + new URLSearchParams(params).toString();\n }\n return url;\n }\n static goToUrl(url) {\n window.location.href = url;\n }\n static goToHash(hash, params = null) {\n const url = API.getUrlFromHash(hash, params);\n API.goToUrl(url);\n }\n\n // specific api calls\n /* Example:\n getUsers: () => request('/users'),\n getUserById: (id) => request(`/users/${id}`),\n createUser: (userData) => request('/users', 'POST', userData),\n updateUser: (id, userData) => request(`/users/${id}`, 'PUT', userData),\n deleteUser: (id) => request(`/users/${id}`, 'DELETE'),\n */\n static async loginUser() {\n let callback = {};\n callback[flagCallback] = DOM.getHashPageCurrent();\n return await API.request(hashPageUserLogin, 'POST', callback);\n }\n\n // dog\n // Command categories\n static async saveCommandCategories(commandCategories, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagCommandCategory] = commandCategories;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogCommandCategory, 'POST', dataRequest);\n }\n \n // Commands\n static async saveCommands(commands, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagCommand] = commands;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogCommand, 'POST', dataRequest);\n }\n \n // Dog Command Links\n static async saveDogCommandLinks(dogCommandLinks, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagDogCommandLink] = dogCommandLinks;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogDogCommandLink, 'POST', dataRequest);\n }\n \n // Locations\n static async saveLocations(locations, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagLocation] = locations;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogLocation, 'POST', dataRequest);\n }\n \n // Button Icons\n static async saveButtonIcons(buttonIcons, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagButtonIcon] = buttonIcons;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogButtonIcon, 'POST', dataRequest);\n }\n \n // Command Button Links\n static async saveCommandButtonLinks(links, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagCommandButtonLink] = links;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogCommandButtonLink, 'POST', dataRequest);\n }\n \n}\n","// Utility functions\n/*\nfunction $(selector) {\n return document.querySelector(selector);\n}\n\nfunction $$(selector) {\n return document.querySelectorAll(selector);\n}\n*/\nexport default class Utils {\n static getListFromDict(dict) {\n let list = [];\n for (let key in dict) {\n list.push(dict[key]);\n }\n return list;\n }\n static consoleLogIfNotProductionEnvironment(message) {\n if (environment.is_production != \"true\") {\n console.log(message);\n }\n }\n}","\nimport Events from \"../../../lib/events.js\";\n\nexport default class OverlayConfirm {\n static hookup(callbackSuccess) {\n Events.initialiseEventHandler(idOverlayConfirm + ' button.' + flagCancel, flagInitialised, (buttonCancel) => {\n buttonCancel.addEventListener('click', () => {\n let overlay = document.querySelector(idOverlayConfirm);\n overlay.style.visibility = 'hidden';\n });\n });\n Events.initialiseEventHandler(idOverlayConfirm + ' button.' + flagSubmit, flagInitialised, (buttonConfirm) => {\n buttonConfirm.addEventListener('click', () => {\n let overlay = document.querySelector(idOverlayConfirm);\n let textarea = overlay.querySelector('textarea');\n overlay.style.visibility = 'hidden';\n callbackSuccess(textarea.value);\n });\n });\n }\n static show() {\n let overlay = document.querySelector(idOverlayConfirm);\n overlay.classList.remove(flagIsCollapsed);\n overlay.style.visibility = 'visible';\n }\n}","\nimport BusinessObjects from \"../lib/business_objects/business_objects.js\";\nimport Events from \"../lib/events.js\";\nimport LocalStorage from \"../lib/local_storage.js\";\nimport API from \"../api.js\";\nimport DOM from \"../dom.js\";\nimport Utils from \"../lib/utils.js\";\n\nimport OverlayConfirm from \"../components/common/temporary/overlay_confirm.js\";\nimport OverlayError from \"../components/common/temporary/overlay_error.js\";\n\nexport default class BasePage {\n constructor(router) {\n if (!router) {\n throw new Error(\"Router is required\");\n }\n else {\n Utils.consoleLogIfNotProductionEnvironment(\"initialising with router: \", router);\n }\n this.router = router;\n this.title = titlePageCurrent;\n if (this.constructor === BasePage) {\n throw new Error(\"Cannot instantiate abstract class\");\n }\n \n if (!this.constructor.hash) {\n throw new Error(`Class ${this.constructor.name} must have a static hash attribute.`);\n }\n }\n\n initialize() {\n throw new Error(\"Method 'initialize()' must be implemented.\");\n }\n\n sharedInitialize() {\n this.logInitialisation();\n this.hookupCommonElements();\n }\n\n logInitialisation() {\n Utils.consoleLogIfNotProductionEnvironment('Initializing ' + this.title + ' page');\n }\n \n hookupCommonElements() {\n // hookupVideos();\n this.hookupLogos();\n this.hookupNavigation();\n this.hookupOverlays();\n }\n \n hookupNavigation() {\n Events.hookupEventHandler(\"click\", idButtonHamburger, (event, element) => {\n let overlayHamburger = document.querySelector(idOverlayHamburger);\n if (overlayHamburger.classList.contains(flagIsCollapsed)) {\n overlayHamburger.classList.remove(flagIsCollapsed);\n overlayHamburger.classList.add(flagExpanded);\n } else {\n overlayHamburger.classList.remove(flagExpanded);\n overlayHamburger.classList.add(flagIsCollapsed);\n }\n });\n\n this.hookupButtonsNavHome();\n this.hookupButtonsNavContact();\n // this.hookupButtonsNavAdminHome();\n this.hookupButtonsNavUserAccount();\n this.hookupButtonsNavUserLogout();\n this.hookupButtonsNavUserLogin();\n\n // this.hookupButtonsNavStoreHome();\n // this.hookupButtonsNavStoreManufacturingPurchaseOrders();\n this.hookupButtonsNavDogHome();\n this.hookupButtonsNavDogCommandCategories();\n this.hookupButtonsNavDogCommands();\n this.hookupButtonsNavDogDogCommandLinks();\n this.hookupButtonsNavDogDogs();\n this.hookupButtonsNavDogLocations();\n this.hookupButtonsNavDogButtonIcons();\n this.hookupButtonsNavDogCommandButtonLinks();\n this.hookupButtonsNavDogAssessments();\n }\n hookupEventHandler(eventType, selector, callback) {\n Events.initialiseEventHandler(selector, flagInitialised, (element) => {\n element.addEventListener(eventType, (event) => {\n event.stopPropagation();\n callback(event, element);\n });\n });\n }\n hookupButtonsNavHome() {\n this.hookupButtonsNav('.' + flagNavHome, hashPageHome);\n }\n hookupButtonsNav(buttonSelector, hashPageNav) {\n Events.hookupEventHandler(\"click\", buttonSelector, (event, button) => { \n this.router.navigateToHash(hashPageNav); \n });\n }\n hookupButtonsNavContact() {\n this.hookupButtonsNav('.' + flagNavContact, hashPageContact);\n }\n /*\n hookupButtonsNavAdminHome() {\n this.hookupButtonsNav('.' + flagNavAdminHome, hashPageAdminHome);\n }\n hookupButtonsNavServices() {\n this.hookupButtonsNav('.' + flagNavServices, hashPageServices);\n }\n */\n hookupButtonsNavUserAccount() {\n this.hookupButtonsNav('.' + flagNavUserAccount, hashPageUserAccount);\n }\n hookupButtonsNavUserLogout() {\n this.hookupButtonsNav('.' + flagNavUserLogout, hashPageUserLogout);\n }\n hookupButtonsNavUserLogin() {\n Events.hookupEventHandler(\"click\", '.' + flagNavUserLogin, (event, navigator) => { \n event.stopPropagation();\n this.leave();\n API.loginUser()\n .then((response) => {\n if (response.Success) {\n window.location.href = response[flagCallback];\n } else {\n DOM.alertError(\"Error\", response.Message);\n }\n });\n });\n }\n hookupButtonsNavDogHome() {\n this.hookupButtonsNav('.' + flagNavDogHome, hashPageDogHome);\n }\n hookupButtonsNavDogCommandCategories() {\n this.hookupButtonsNav('.' + flagNavDogCommandCategories, hashPageDogCommandCategories);\n }\n hookupButtonsNavDogCommands() {\n this.hookupButtonsNav('.' + flagNavDogCommands, hashPageDogCommands);\n }\n hookupButtonsNavDogDogCommandLinks() {\n this.hookupButtonsNav('.' + flagNavDogDogCommandLinks, hashPageDogDogCommandLinks);\n }\n hookupButtonsNavDogDogs() {\n this.hookupButtonsNav('.' + flagNavDogDogs, hashPageDogDogs);\n }\n hookupButtonsNavDogLocations() {\n this.hookupButtonsNav('.' + flagNavDogLocations, hashPageDogLocations);\n }\n hookupButtonsNavDogButtonIcons() {\n this.hookupButtonsNav('.' + flagNavDogButtonIcons, hashPageDogButtonIcons);\n }\n hookupButtonsNavDogCommandButtonLinks() {\n this.hookupButtonsNav('.' + flagNavDogCommandButtonLinks, hashPageDogCommandButtonLinks);\n }\n hookupButtonsNavDogAssessments() {\n this.hookupButtonsNav('.' + flagNavDogAssessments, hashPageDogAssessments);\n }\n\n hookupLogos() {\n Events.hookupEventHandler(\"click\", \".\" + flagImageLogo + \",\" + \".\" + flagLogo, (event, element) => {\n Utils.consoleLogIfNotProductionEnvironment('clicking logo');\n this.router.navigateToHash(hashPageHome);\n });\n }\n\n hookupOverlays() {\n this.hookupOverlayFromId(idOverlayConfirm);\n this.hookupOverlayFromId(idOverlayError);\n }\n\n hookupOverlayFromId(idOverlay) {\n Events.initialiseEventHandler(idOverlay, flagInitialised, (overlay) => {\n overlay.querySelector('button.' + flagCancel).addEventListener(\"click\", (event) => {\n event.stopPropagation();\n overlay.style.display = 'none';\n });\n });\n }\n\n hookupButtonSave() {\n Events.initialiseEventHandler('form.' + flagFilter + ' button.' + flagSave, flagInitialised, (button) => {\n button.addEventListener(\"click\", (event) => {\n event.stopPropagation();\n button = event.target;\n if (button.classList.contains(flagIsCollapsed)) return;\n Utils.consoleLogIfNotProductionEnvironment('saving page: ', this.title);\n OverlayConfirm.show();\n });\n });\n }\n\n leave() {\n Utils.consoleLogIfNotProductionEnvironment('Leaving ' + this.title + ' page');\n if (this.constructor === BasePage) {\n throw new Error(\"Must implement leave() method.\");\n }\n }\n setLocalStoragePage(dataPage) {\n LocalStorage.setLocalStorage(this.hash, dataPage);\n }\n getLocalStoragePage() {\n return LocalStorage.getLocalStorage(this.hash);\n }\n\n toggleShowButtonsSaveCancel(show, buttonContainerSelector = '.' + flagContainer + '.' + flagSave + '.' + flagCancel) { // , buttonSave = null, buttonCancel = null\n let buttonSave = document.querySelector(buttonContainerSelector + ' button.' + flagSave);\n let buttonCancel = document.querySelector(buttonContainerSelector + ' button.' + flagCancel);\n if (show) {\n buttonCancel.classList.remove(flagIsCollapsed);\n buttonSave.classList.remove(flagIsCollapsed);\n Utils.consoleLogIfNotProductionEnvironment('showing buttons');\n } else {\n buttonCancel.classList.add(flagIsCollapsed);\n buttonSave.classList.add(flagIsCollapsed);\n Utils.consoleLogIfNotProductionEnvironment('hiding buttons');\n }\n }\n\n static isDirtyFilter(filter) {\n let isDirty = DOM.updateAndCheckIsElementDirty(filter);\n if (isDirty) document.querySelectorAll(idTableMain + ' tbody tr').remove();\n return isDirty;\n }\n\n}","\n// internal\nimport BasePage from \"../base.js\";\n// external\n\n\nexport default class PageHome extends BasePage {\n static hash = hashPageHome;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n // this.hookupButtonsNav();\n }\n\n leave() {\n super.leave();\n }\n}\n\n","var hi = Object.defineProperty;\nvar Or = (e) => {\n throw TypeError(e);\n};\nvar gi = (e, t, r) => t in e ? hi(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;\nvar ne = (e, t, r) => gi(e, typeof t != \"symbol\" ? t + \"\" : t, r), zr = (e, t, r) => t.has(e) || Or(\"Cannot \" + r);\nvar H = (e, t, r) => (zr(e, t, \"read from private field\"), r ? r.call(e) : t.get(e)), Mt = (e, t, r) => t.has(e) ? Or(\"Cannot add the same private member more than once\") : t instanceof WeakSet ? t.add(e) : t.set(e, r), Ut = (e, t, r, l) => (zr(e, t, \"write to private field\"), l ? l.call(e, r) : t.set(e, r), r);\nconst en = `(function(){\"use strict\";const d=new TextEncoder;function p(e){return[...new Uint8Array(e)].map(t=>t.toString(16).padStart(2,\"0\")).join(\"\")}async function b(e,t,r){if(typeof crypto>\"u\"||!(\"subtle\"in crypto)||!(\"digest\"in crypto.subtle))throw new Error(\"Web Crypto is not available. Secure context is required (https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts).\");return p(await crypto.subtle.digest(r.toUpperCase(),d.encode(e+t)))}function w(e,t,r=\"SHA-256\",n=1e6,s=0){const o=new AbortController,a=Date.now();return{promise:(async()=>{for(let c=s;c<=n;c+=1){if(o.signal.aborted)return null;if(await b(t,c,r)===e)return{number:c,took:Date.now()-a}}return null})(),controller:o}}function h(e){const t=atob(e),r=new Uint8Array(t.length);for(let n=0;n{for(let u=n;u<=r;u+=1){if(o.signal.aborted||!c||!y)return null;try{const f=await crypto.subtle.decrypt({name:s,iv:g(u)},c,y);if(f)return{clearText:new TextDecoder().decode(f),took:Date.now()-a}}catch{}}return null};let c=null,y=null;try{y=h(e);const u=await crypto.subtle.digest(\"SHA-256\",d.encode(t));c=await crypto.subtle.importKey(\"raw\",u,s,!1,[\"decrypt\"])}catch{return{promise:Promise.reject(),controller:o}}return{promise:l(),controller:o}}let i;onmessage=async e=>{const{type:t,payload:r,start:n,max:s}=e.data;let o=null;if(t===\"abort\")i==null||i.abort(),i=void 0;else if(t===\"work\"){if(\"obfuscated\"in r){const{key:a,obfuscated:l}=r||{};o=await m(l,a,s,n)}else{const{algorithm:a,challenge:l,salt:c}=r||{};o=w(l,c,a,s,n)}i=o.controller,o.promise.then(a=>{self.postMessage(a&&{...a,worker:!0})})}}})();\n`, Fr = typeof self < \"u\" && self.Blob && new Blob([en], { type: \"text/javascript;charset=utf-8\" });\nfunction _i(e) {\n let t;\n try {\n if (t = Fr && (self.URL || self.webkitURL).createObjectURL(Fr), !t) throw \"\";\n const r = new Worker(t, {\n name: e == null ? void 0 : e.name\n });\n return r.addEventListener(\"error\", () => {\n (self.URL || self.webkitURL).revokeObjectURL(t);\n }), r;\n } catch {\n return new Worker(\n \"data:text/javascript;charset=utf-8,\" + encodeURIComponent(en),\n {\n name: e == null ? void 0 : e.name\n }\n );\n } finally {\n t && (self.URL || self.webkitURL).revokeObjectURL(t);\n }\n}\nconst mi = \"5\";\nvar Qr;\ntypeof window < \"u\" && ((Qr = window.__svelte ?? (window.__svelte = {})).v ?? (Qr.v = /* @__PURE__ */ new Set())).add(mi);\nconst wi = 1, pi = 4, yi = 8, bi = 16, Ei = 1, xi = 2, Wt = \"[\", tn = \"[!\", rn = \"]\", Je = {}, W = Symbol(), $i = \"http://www.w3.org/1999/xhtml\", Mr = !1, oe = 2, nn = 4, It = 8, Yt = 16, pe = 32, ze = 64, yt = 128, re = 256, bt = 512, K = 1024, ye = 2048, et = 4096, Ke = 8192, St = 16384, ki = 32768, Zt = 65536, Ci = 1 << 19, ln = 1 << 20, ut = Symbol(\"$state\"), an = Symbol(\"legacy props\"), Ai = Symbol(\"\");\nvar on = Array.isArray, Ri = Array.prototype.indexOf, Ii = Array.from, Et = Object.keys, xt = Object.defineProperty, Pe = Object.getOwnPropertyDescriptor, Si = Object.getOwnPropertyDescriptors, Ti = Object.prototype, Ni = Array.prototype, sn = Object.getPrototypeOf;\nfunction fn(e) {\n for (var t = 0; t < e.length; t++)\n e[t]();\n}\nconst Li = typeof requestIdleCallback > \"u\" ? (e) => setTimeout(e, 1) : requestIdleCallback;\nlet dt = [], vt = [];\nfunction un() {\n var e = dt;\n dt = [], fn(e);\n}\nfunction cn() {\n var e = vt;\n vt = [], fn(e);\n}\nfunction Gt(e) {\n dt.length === 0 && queueMicrotask(un), dt.push(e);\n}\nfunction Di(e) {\n vt.length === 0 && Li(cn), vt.push(e);\n}\nfunction Ur() {\n dt.length > 0 && un(), vt.length > 0 && cn();\n}\nfunction dn(e) {\n return e === this.v;\n}\nfunction Pi(e, t) {\n return e != e ? t == t : e !== t || e !== null && typeof e == \"object\" || typeof e == \"function\";\n}\nfunction vn(e) {\n return !Pi(e, this.v);\n}\nfunction Oi(e) {\n throw new Error(\"https://svelte.dev/e/effect_in_teardown\");\n}\nfunction zi() {\n throw new Error(\"https://svelte.dev/e/effect_in_unowned_derived\");\n}\nfunction Fi(e) {\n throw new Error(\"https://svelte.dev/e/effect_orphan\");\n}\nfunction Mi() {\n throw new Error(\"https://svelte.dev/e/effect_update_depth_exceeded\");\n}\nfunction Ui() {\n throw new Error(\"https://svelte.dev/e/hydration_failed\");\n}\nfunction ji(e) {\n throw new Error(\"https://svelte.dev/e/props_invalid_value\");\n}\nfunction Vi() {\n throw new Error(\"https://svelte.dev/e/state_descriptors_fixed\");\n}\nfunction Bi() {\n throw new Error(\"https://svelte.dev/e/state_prototype_fixed\");\n}\nfunction qi() {\n throw new Error(\"https://svelte.dev/e/state_unsafe_local_read\");\n}\nfunction Hi() {\n throw new Error(\"https://svelte.dev/e/state_unsafe_mutation\");\n}\nlet Wi = !1;\nfunction ue(e, t) {\n var r = {\n f: 0,\n // TODO ideally we could skip this altogether, but it causes type errors\n v: e,\n reactions: null,\n equals: dn,\n rv: 0,\n wv: 0\n };\n return r;\n}\nfunction He(e) {\n return /* @__PURE__ */ Yi(ue(e));\n}\n// @__NO_SIDE_EFFECTS__\nfunction hn(e, t = !1) {\n const r = ue(e);\n return t || (r.equals = vn), r;\n}\n// @__NO_SIDE_EFFECTS__\nfunction Yi(e) {\n return k !== null && !ae && (k.f & oe) !== 0 && (ce === null ? Qi([e]) : ce.push(e)), e;\n}\nfunction P(e, t) {\n return k !== null && !ae && Dn() && (k.f & (oe | Yt)) !== 0 && // If the source was created locally within the current derived, then\n // we allow the mutation.\n (ce === null || !ce.includes(e)) && Hi(), Zi(e, t);\n}\nfunction Zi(e, t) {\n return e.equals(t) || (e.v, e.v = t, e.wv = En(), gn(e, ye), A !== null && (A.f & K) !== 0 && (A.f & (pe | ze)) === 0 && (ge === null ? el([e]) : ge.push(e))), t;\n}\nfunction gn(e, t) {\n var r = e.reactions;\n if (r !== null)\n for (var l = r.length, i = 0; i < l; i++) {\n var a = r[i], o = a.f;\n (o & ye) === 0 && (de(a, t), (o & (K | re)) !== 0 && ((o & oe) !== 0 ? gn(\n /** @type {Derived} */\n a,\n et\n ) : Lt(\n /** @type {Effect} */\n a\n )));\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction De(e) {\n var t = oe | ye, r = k !== null && (k.f & oe) !== 0 ? (\n /** @type {Derived} */\n k\n ) : null;\n return A === null || r !== null && (r.f & re) !== 0 ? t |= re : A.f |= ln, {\n ctx: B,\n deps: null,\n effects: null,\n equals: dn,\n f: t,\n fn: e,\n reactions: null,\n rv: 0,\n v: (\n /** @type {V} */\n null\n ),\n wv: 0,\n parent: r ?? A\n };\n}\nfunction _n(e) {\n var t = e.effects;\n if (t !== null) {\n e.effects = null;\n for (var r = 0; r < t.length; r += 1)\n we(\n /** @type {Effect} */\n t[r]\n );\n }\n}\nfunction Gi(e) {\n for (var t = e.parent; t !== null; ) {\n if ((t.f & oe) === 0)\n return (\n /** @type {Effect} */\n t\n );\n t = t.parent;\n }\n return null;\n}\nfunction Ji(e) {\n var t, r = A;\n Se(Gi(e));\n try {\n _n(e), t = $n(e);\n } finally {\n Se(r);\n }\n return t;\n}\nfunction mn(e) {\n var t = Ji(e), r = (Ce || (e.f & re) !== 0) && e.deps !== null ? et : K;\n de(e, r), e.equals(t) || (e.v = t, e.wv = En());\n}\nfunction Tt(e) {\n console.warn(\"https://svelte.dev/e/hydration_mismatch\");\n}\nlet D = !1;\nfunction Ge(e) {\n D = e;\n}\nlet O;\nfunction Re(e) {\n if (e === null)\n throw Tt(), Je;\n return O = e;\n}\nfunction Xe() {\n return Re(\n /** @type {TemplateNode} */\n /* @__PURE__ */ Te(O)\n );\n}\nfunction Z(e) {\n if (D) {\n if (/* @__PURE__ */ Te(O) !== null)\n throw Tt(), Je;\n O = e;\n }\n}\nfunction Ki() {\n for (var e = 0, t = O; ; ) {\n if (t.nodeType === 8) {\n var r = (\n /** @type {Comment} */\n t.data\n );\n if (r === rn) {\n if (e === 0) return t;\n e -= 1;\n } else (r === Wt || r === tn) && (e += 1);\n }\n var l = (\n /** @type {TemplateNode} */\n /* @__PURE__ */ Te(t)\n );\n t.remove(), t = l;\n }\n}\nfunction le(e, t = null, r) {\n if (typeof e != \"object\" || e === null || ut in e)\n return e;\n const l = sn(e);\n if (l !== Ti && l !== Ni)\n return e;\n var i = /* @__PURE__ */ new Map(), a = on(e), o = ue(0);\n a && i.set(\"length\", ue(\n /** @type {any[]} */\n e.length\n ));\n var f;\n return new Proxy(\n /** @type {any} */\n e,\n {\n defineProperty(s, c, v) {\n (!(\"value\" in v) || v.configurable === !1 || v.enumerable === !1 || v.writable === !1) && Vi();\n var h = i.get(c);\n return h === void 0 ? (h = ue(v.value), i.set(c, h)) : P(h, le(v.value, f)), !0;\n },\n deleteProperty(s, c) {\n var v = i.get(c);\n if (v === void 0)\n c in s && i.set(c, ue(W));\n else {\n if (a && typeof c == \"string\") {\n var h = (\n /** @type {Source} */\n i.get(\"length\")\n ), g = Number(c);\n Number.isInteger(g) && g < h.v && P(h, g);\n }\n P(v, W), jr(o);\n }\n return !0;\n },\n get(s, c, v) {\n var w;\n if (c === ut)\n return e;\n var h = i.get(c), g = c in s;\n if (h === void 0 && (!g || (w = Pe(s, c)) != null && w.writable) && (h = ue(le(g ? s[c] : W, f)), i.set(c, h)), h !== void 0) {\n var m = d(h);\n return m === W ? void 0 : m;\n }\n return Reflect.get(s, c, v);\n },\n getOwnPropertyDescriptor(s, c) {\n var v = Reflect.getOwnPropertyDescriptor(s, c);\n if (v && \"value\" in v) {\n var h = i.get(c);\n h && (v.value = d(h));\n } else if (v === void 0) {\n var g = i.get(c), m = g == null ? void 0 : g.v;\n if (g !== void 0 && m !== W)\n return {\n enumerable: !0,\n configurable: !0,\n value: m,\n writable: !0\n };\n }\n return v;\n },\n has(s, c) {\n var m;\n if (c === ut)\n return !0;\n var v = i.get(c), h = v !== void 0 && v.v !== W || Reflect.has(s, c);\n if (v !== void 0 || A !== null && (!h || (m = Pe(s, c)) != null && m.writable)) {\n v === void 0 && (v = ue(h ? le(s[c], f) : W), i.set(c, v));\n var g = d(v);\n if (g === W)\n return !1;\n }\n return h;\n },\n set(s, c, v, h) {\n var F;\n var g = i.get(c), m = c in s;\n if (a && c === \"length\")\n for (var w = v; w < /** @type {Source} */\n g.v; w += 1) {\n var z = i.get(w + \"\");\n z !== void 0 ? P(z, W) : w in s && (z = ue(W), i.set(w + \"\", z));\n }\n g === void 0 ? (!m || (F = Pe(s, c)) != null && F.writable) && (g = ue(void 0), P(g, le(v, f)), i.set(c, g)) : (m = g.v !== W, P(g, le(v, f)));\n var T = Reflect.getOwnPropertyDescriptor(s, c);\n if (T != null && T.set && T.set.call(h, v), !m) {\n if (a && typeof c == \"string\") {\n var Y = (\n /** @type {Source} */\n i.get(\"length\")\n ), M = Number(c);\n Number.isInteger(M) && M >= Y.v && P(Y, M + 1);\n }\n jr(o);\n }\n return !0;\n },\n ownKeys(s) {\n d(o);\n var c = Reflect.ownKeys(s).filter((g) => {\n var m = i.get(g);\n return m === void 0 || m.v !== W;\n });\n for (var [v, h] of i)\n h.v !== W && !(v in s) && c.push(v);\n return c;\n },\n setPrototypeOf() {\n Bi();\n }\n }\n );\n}\nfunction jr(e, t = 1) {\n P(e, e.v + t);\n}\nvar Vr, wn, pn, yn;\nfunction jt() {\n if (Vr === void 0) {\n Vr = window, wn = /Firefox/.test(navigator.userAgent);\n var e = Element.prototype, t = Node.prototype;\n pn = Pe(t, \"firstChild\").get, yn = Pe(t, \"nextSibling\").get, e.__click = void 0, e.__className = void 0, e.__attributes = null, e.__style = void 0, e.__e = void 0, Text.prototype.__t = void 0;\n }\n}\nfunction Jt(e = \"\") {\n return document.createTextNode(e);\n}\n// @__NO_SIDE_EFFECTS__\nfunction me(e) {\n return pn.call(e);\n}\n// @__NO_SIDE_EFFECTS__\nfunction Te(e) {\n return yn.call(e);\n}\nfunction G(e, t) {\n if (!D)\n return /* @__PURE__ */ me(e);\n var r = (\n /** @type {TemplateNode} */\n /* @__PURE__ */ me(O)\n );\n return r === null && (r = O.appendChild(Jt())), Re(r), r;\n}\nfunction Br(e, t) {\n if (!D) {\n var r = (\n /** @type {DocumentFragment} */\n /* @__PURE__ */ me(\n /** @type {Node} */\n e\n )\n );\n return r instanceof Comment && r.data === \"\" ? /* @__PURE__ */ Te(r) : r;\n }\n return O;\n}\nfunction he(e, t = 1, r = !1) {\n let l = D ? O : e;\n for (var i; t--; )\n i = l, l = /** @type {TemplateNode} */\n /* @__PURE__ */ Te(l);\n if (!D)\n return l;\n var a = l == null ? void 0 : l.nodeType;\n if (r && a !== 3) {\n var o = Jt();\n return l === null ? i == null || i.after(o) : l.before(o), Re(o), o;\n }\n return Re(l), /** @type {TemplateNode} */\n l;\n}\nfunction Xi(e) {\n e.textContent = \"\";\n}\nlet wt = !1, $t = !1, kt = null, Oe = !1, Kt = !1;\nfunction qr(e) {\n Kt = e;\n}\nlet ct = [];\nlet k = null, ae = !1;\nfunction Ie(e) {\n k = e;\n}\nlet A = null;\nfunction Se(e) {\n A = e;\n}\nlet ce = null;\nfunction Qi(e) {\n ce = e;\n}\nlet V = null, J = 0, ge = null;\nfunction el(e) {\n ge = e;\n}\nlet bn = 1, Ct = 0, Ce = !1;\nfunction En() {\n return ++bn;\n}\nfunction ht(e) {\n var h;\n var t = e.f;\n if ((t & ye) !== 0)\n return !0;\n if ((t & et) !== 0) {\n var r = e.deps, l = (t & re) !== 0;\n if (r !== null) {\n var i, a, o = (t & bt) !== 0, f = l && A !== null && !Ce, s = r.length;\n if (o || f) {\n var c = (\n /** @type {Derived} */\n e\n ), v = c.parent;\n for (i = 0; i < s; i++)\n a = r[i], (o || !((h = a == null ? void 0 : a.reactions) != null && h.includes(c))) && (a.reactions ?? (a.reactions = [])).push(c);\n o && (c.f ^= bt), f && v !== null && (v.f & re) === 0 && (c.f ^= re);\n }\n for (i = 0; i < s; i++)\n if (a = r[i], ht(\n /** @type {Derived} */\n a\n ) && mn(\n /** @type {Derived} */\n a\n ), a.wv > e.wv)\n return !0;\n }\n (!l || A !== null && !Ce) && de(e, K);\n }\n return !1;\n}\nfunction tl(e, t) {\n for (var r = t; r !== null; ) {\n if ((r.f & yt) !== 0)\n try {\n r.fn(e);\n return;\n } catch {\n r.f ^= yt;\n }\n r = r.parent;\n }\n throw wt = !1, e;\n}\nfunction rl(e) {\n return (e.f & St) === 0 && (e.parent === null || (e.parent.f & yt) === 0);\n}\nfunction Nt(e, t, r, l) {\n if (wt) {\n if (r === null && (wt = !1), rl(t))\n throw e;\n return;\n }\n r !== null && (wt = !0);\n {\n tl(e, t);\n return;\n }\n}\nfunction xn(e, t, r = !0) {\n var l = e.reactions;\n if (l !== null)\n for (var i = 0; i < l.length; i++) {\n var a = l[i];\n (a.f & oe) !== 0 ? xn(\n /** @type {Derived} */\n a,\n t,\n !1\n ) : t === a && (r ? de(a, ye) : (a.f & K) !== 0 && de(a, et), Lt(\n /** @type {Effect} */\n a\n ));\n }\n}\nfunction $n(e) {\n var m;\n var t = V, r = J, l = ge, i = k, a = Ce, o = ce, f = B, s = ae, c = e.f;\n V = /** @type {null | Value[]} */\n null, J = 0, ge = null, Ce = (c & re) !== 0 && (ae || !Oe || k === null), k = (c & (pe | ze)) === 0 ? e : null, ce = null, Wr(e.ctx), ae = !1, Ct++;\n try {\n var v = (\n /** @type {Function} */\n (0, e.fn)()\n ), h = e.deps;\n if (V !== null) {\n var g;\n if (At(e, J), h !== null && J > 0)\n for (h.length = J + V.length, g = 0; g < V.length; g++)\n h[J + g] = V[g];\n else\n e.deps = h = V;\n if (!Ce)\n for (g = J; g < h.length; g++)\n ((m = h[g]).reactions ?? (m.reactions = [])).push(e);\n } else h !== null && J < h.length && (At(e, J), h.length = J);\n if (Dn() && ge !== null && !ae && h !== null && (e.f & (oe | et | ye)) === 0)\n for (g = 0; g < /** @type {Source[]} */\n ge.length; g++)\n xn(\n ge[g],\n /** @type {Effect} */\n e\n );\n return i !== null && Ct++, v;\n } finally {\n V = t, J = r, ge = l, k = i, Ce = a, ce = o, Wr(f), ae = s;\n }\n}\nfunction nl(e, t) {\n let r = t.reactions;\n if (r !== null) {\n var l = Ri.call(r, e);\n if (l !== -1) {\n var i = r.length - 1;\n i === 0 ? r = t.reactions = null : (r[l] = r[i], r.pop());\n }\n }\n r === null && (t.f & oe) !== 0 && // Destroying a child effect while updating a parent effect can cause a dependency to appear\n // to be unused, when in fact it is used by the currently-updating parent. Checking `new_deps`\n // allows us to skip the expensive work of disconnecting and immediately reconnecting it\n (V === null || !V.includes(t)) && (de(t, et), (t.f & (re | bt)) === 0 && (t.f ^= bt), _n(\n /** @type {Derived} **/\n t\n ), At(\n /** @type {Derived} **/\n t,\n 0\n ));\n}\nfunction At(e, t) {\n var r = e.deps;\n if (r !== null)\n for (var l = t; l < r.length; l++)\n nl(e, r[l]);\n}\nfunction Xt(e) {\n var t = e.f;\n if ((t & St) === 0) {\n de(e, K);\n var r = A, l = B, i = Oe;\n A = e, Oe = !0;\n try {\n (t & Yt) !== 0 ? hl(e) : An(e), Cn(e);\n var a = $n(e);\n e.teardown = typeof a == \"function\" ? a : null, e.wv = bn;\n var o = e.deps, f;\n Mr && Wi && e.f & ye;\n } catch (s) {\n Nt(s, e, r, l || e.ctx);\n } finally {\n Oe = i, A = r;\n }\n }\n}\nfunction il() {\n try {\n Mi();\n } catch (e) {\n if (kt !== null)\n Nt(e, kt, null);\n else\n throw e;\n }\n}\nfunction kn() {\n var e = Oe;\n try {\n var t = 0;\n for (Oe = !0; ct.length > 0; ) {\n t++ > 1e3 && il();\n var r = ct, l = r.length;\n ct = [];\n for (var i = 0; i < l; i++) {\n var a = al(r[i]);\n ll(a);\n }\n }\n } finally {\n $t = !1, Oe = e, kt = null;\n }\n}\nfunction ll(e) {\n var t = e.length;\n if (t !== 0)\n for (var r = 0; r < t; r++) {\n var l = e[r];\n if ((l.f & (St | Ke)) === 0)\n try {\n ht(l) && (Xt(l), l.deps === null && l.first === null && l.nodes_start === null && (l.teardown === null ? Rn(l) : l.fn = null));\n } catch (i) {\n Nt(i, l, null, l.ctx);\n }\n }\n}\nfunction Lt(e) {\n $t || ($t = !0, queueMicrotask(kn));\n for (var t = kt = e; t.parent !== null; ) {\n t = t.parent;\n var r = t.f;\n if ((r & (ze | pe)) !== 0) {\n if ((r & K) === 0) return;\n t.f ^= K;\n }\n }\n ct.push(t);\n}\nfunction al(e) {\n for (var t = [], r = e; r !== null; ) {\n var l = r.f, i = (l & (pe | ze)) !== 0, a = i && (l & K) !== 0;\n if (!a && (l & Ke) === 0) {\n if ((l & nn) !== 0)\n t.push(r);\n else if (i)\n r.f ^= K;\n else {\n var o = k;\n try {\n k = r, ht(r) && Xt(r);\n } catch (c) {\n Nt(c, r, null, r.ctx);\n } finally {\n k = o;\n }\n }\n var f = r.first;\n if (f !== null) {\n r = f;\n continue;\n }\n }\n var s = r.parent;\n for (r = r.next; r === null && s !== null; )\n r = s.next, s = s.parent;\n }\n return t;\n}\nfunction $(e) {\n var t;\n for (Ur(); ct.length > 0; )\n $t = !0, kn(), Ur();\n return (\n /** @type {T} */\n t\n );\n}\nasync function ol() {\n await Promise.resolve(), $();\n}\nfunction d(e) {\n var t = e.f, r = (t & oe) !== 0;\n if (k !== null && !ae) {\n ce !== null && ce.includes(e) && qi();\n var l = k.deps;\n e.rv < Ct && (e.rv = Ct, V === null && l !== null && l[J] === e ? J++ : V === null ? V = [e] : (!Ce || !V.includes(e)) && V.push(e));\n } else if (r && /** @type {Derived} */\n e.deps === null && /** @type {Derived} */\n e.effects === null) {\n var i = (\n /** @type {Derived} */\n e\n ), a = i.parent;\n a !== null && (a.f & re) === 0 && (i.f ^= re);\n }\n return r && (i = /** @type {Derived} */\n e, ht(i) && mn(i)), e.v;\n}\nfunction Qe(e) {\n var t = ae;\n try {\n return ae = !0, e();\n } finally {\n ae = t;\n }\n}\nconst sl = -7169;\nfunction de(e, t) {\n e.f = e.f & sl | t;\n}\nfunction fl(e) {\n A === null && k === null && Fi(), k !== null && (k.f & re) !== 0 && A === null && zi(), Kt && Oi();\n}\nfunction ul(e, t) {\n var r = t.last;\n r === null ? t.last = t.first = e : (r.next = e, e.prev = r, t.last = e);\n}\nfunction Fe(e, t, r, l = !0) {\n var i = A, a = {\n ctx: B,\n deps: null,\n nodes_start: null,\n nodes_end: null,\n f: e | ye,\n first: null,\n fn: t,\n last: null,\n next: null,\n parent: i,\n prev: null,\n teardown: null,\n transitions: null,\n wv: 0\n };\n if (r)\n try {\n Xt(a), a.f |= ki;\n } catch (s) {\n throw we(a), s;\n }\n else t !== null && Lt(a);\n var o = r && a.deps === null && a.first === null && a.nodes_start === null && a.teardown === null && (a.f & (ln | yt)) === 0;\n if (!o && l && (i !== null && ul(a, i), k !== null && (k.f & oe) !== 0)) {\n var f = (\n /** @type {Derived} */\n k\n );\n (f.effects ?? (f.effects = [])).push(a);\n }\n return a;\n}\nfunction cl(e) {\n const t = Fe(It, null, !1);\n return de(t, K), t.teardown = e, t;\n}\nfunction Vt(e) {\n fl();\n var t = A !== null && (A.f & pe) !== 0 && B !== null && !B.m;\n if (t) {\n var r = (\n /** @type {ComponentContext} */\n B\n );\n (r.e ?? (r.e = [])).push({\n fn: e,\n effect: A,\n reaction: k\n });\n } else {\n var l = Qt(e);\n return l;\n }\n}\nfunction dl(e) {\n const t = Fe(ze, e, !0);\n return () => {\n we(t);\n };\n}\nfunction vl(e) {\n const t = Fe(ze, e, !0);\n return (r = {}) => new Promise((l) => {\n r.outro ? Bt(t, () => {\n we(t), l(void 0);\n }) : (we(t), l(void 0));\n });\n}\nfunction Qt(e) {\n return Fe(nn, e, !1);\n}\nfunction er(e) {\n return Fe(It, e, !0);\n}\nfunction We(e, t = [], r = De) {\n const l = t.map(r);\n return tr(() => e(...l.map(d)));\n}\nfunction tr(e, t = 0) {\n return Fe(It | Yt | t, e, !0);\n}\nfunction Rt(e, t = !0) {\n return Fe(It | pe, e, !0, t);\n}\nfunction Cn(e) {\n var t = e.teardown;\n if (t !== null) {\n const r = Kt, l = k;\n qr(!0), Ie(null);\n try {\n t.call(null);\n } finally {\n qr(r), Ie(l);\n }\n }\n}\nfunction An(e, t = !1) {\n var r = e.first;\n for (e.first = e.last = null; r !== null; ) {\n var l = r.next;\n (r.f & ze) !== 0 ? r.parent = null : we(r, t), r = l;\n }\n}\nfunction hl(e) {\n for (var t = e.first; t !== null; ) {\n var r = t.next;\n (t.f & pe) === 0 && we(t), t = r;\n }\n}\nfunction we(e, t = !0) {\n var r = !1;\n if ((t || (e.f & Ci) !== 0) && e.nodes_start !== null) {\n for (var l = e.nodes_start, i = e.nodes_end; l !== null; ) {\n var a = l === i ? null : (\n /** @type {TemplateNode} */\n /* @__PURE__ */ Te(l)\n );\n l.remove(), l = a;\n }\n r = !0;\n }\n An(e, t && !r), At(e, 0), de(e, St);\n var o = e.transitions;\n if (o !== null)\n for (const s of o)\n s.stop();\n Cn(e);\n var f = e.parent;\n f !== null && f.first !== null && Rn(e), e.next = e.prev = e.teardown = e.ctx = e.deps = e.fn = e.nodes_start = e.nodes_end = null;\n}\nfunction Rn(e) {\n var t = e.parent, r = e.prev, l = e.next;\n r !== null && (r.next = l), l !== null && (l.prev = r), t !== null && (t.first === e && (t.first = l), t.last === e && (t.last = r));\n}\nfunction Bt(e, t) {\n var r = [];\n In(e, r, !0), gl(r, () => {\n we(e), t && t();\n });\n}\nfunction gl(e, t) {\n var r = e.length;\n if (r > 0) {\n var l = () => --r || t();\n for (var i of e)\n i.out(l);\n } else\n t();\n}\nfunction In(e, t, r) {\n if ((e.f & Ke) === 0) {\n if (e.f ^= Ke, e.transitions !== null)\n for (const o of e.transitions)\n (o.is_global || r) && t.push(o);\n for (var l = e.first; l !== null; ) {\n var i = l.next, a = (l.f & Zt) !== 0 || (l.f & pe) !== 0;\n In(l, t, a ? r : !1), l = i;\n }\n }\n}\nfunction Hr(e) {\n Sn(e, !0);\n}\nfunction Sn(e, t) {\n if ((e.f & Ke) !== 0) {\n e.f ^= Ke, (e.f & K) === 0 && (e.f ^= K), ht(e) && (de(e, ye), Lt(e));\n for (var r = e.first; r !== null; ) {\n var l = r.next, i = (r.f & Zt) !== 0 || (r.f & pe) !== 0;\n Sn(r, i ? t : !1), r = l;\n }\n if (e.transitions !== null)\n for (const a of e.transitions)\n (a.is_global || t) && a.in();\n }\n}\nfunction Tn(e) {\n throw new Error(\"https://svelte.dev/e/lifecycle_outside_component\");\n}\nlet B = null;\nfunction Wr(e) {\n B = e;\n}\nfunction Nn(e, t = !1, r) {\n B = {\n p: B,\n c: null,\n e: null,\n m: !1,\n s: e,\n x: null,\n l: null\n };\n}\nfunction Ln(e) {\n const t = B;\n if (t !== null) {\n e !== void 0 && (t.x = e);\n const o = t.e;\n if (o !== null) {\n var r = A, l = k;\n t.e = null;\n try {\n for (var i = 0; i < o.length; i++) {\n var a = o[i];\n Se(a.effect), Ie(a.reaction), Qt(a.fn);\n }\n } finally {\n Se(r), Ie(l);\n }\n }\n B = t.p, t.m = !0;\n }\n return e || /** @type {T} */\n {};\n}\nfunction Dn() {\n return !0;\n}\nconst _l = [\"touchstart\", \"touchmove\"];\nfunction ml(e) {\n return _l.includes(e);\n}\nlet Yr = !1;\nfunction Pn() {\n Yr || (Yr = !0, document.addEventListener(\n \"reset\",\n (e) => {\n Promise.resolve().then(() => {\n var t;\n if (!e.defaultPrevented)\n for (\n const r of\n /**@type {HTMLFormElement} */\n e.target.elements\n )\n (t = r.__on_r) == null || t.call(r);\n });\n },\n // In the capture phase to guarantee we get noticed of it (no possiblity of stopPropagation)\n { capture: !0 }\n ));\n}\nfunction On(e) {\n var t = k, r = A;\n Ie(null), Se(null);\n try {\n return e();\n } finally {\n Ie(t), Se(r);\n }\n}\nfunction wl(e, t, r, l = r) {\n e.addEventListener(t, () => On(r));\n const i = e.__on_r;\n i ? e.__on_r = () => {\n i(), l(!0);\n } : e.__on_r = () => l(!0), Pn();\n}\nconst zn = /* @__PURE__ */ new Set(), qt = /* @__PURE__ */ new Set();\nfunction pl(e, t, r, l = {}) {\n function i(a) {\n if (l.capture || ft.call(t, a), !a.cancelBubble)\n return On(() => r == null ? void 0 : r.call(this, a));\n }\n return e.startsWith(\"pointer\") || e.startsWith(\"touch\") || e === \"wheel\" ? Gt(() => {\n t.addEventListener(e, i, l);\n }) : t.addEventListener(e, i, l), i;\n}\nfunction yl(e, t, r, l, i) {\n var a = { capture: l, passive: i }, o = pl(e, t, r, a);\n (t === document.body || t === window || t === document) && cl(() => {\n t.removeEventListener(e, o, a);\n });\n}\nfunction bl(e) {\n for (var t = 0; t < e.length; t++)\n zn.add(e[t]);\n for (var r of qt)\n r(e);\n}\nfunction ft(e) {\n var M;\n var t = this, r = (\n /** @type {Node} */\n t.ownerDocument\n ), l = e.type, i = ((M = e.composedPath) == null ? void 0 : M.call(e)) || [], a = (\n /** @type {null | Element} */\n i[0] || e.target\n ), o = 0, f = e.__root;\n if (f) {\n var s = i.indexOf(f);\n if (s !== -1 && (t === document || t === /** @type {any} */\n window)) {\n e.__root = t;\n return;\n }\n var c = i.indexOf(t);\n if (c === -1)\n return;\n s <= c && (o = s);\n }\n if (a = /** @type {Element} */\n i[o] || e.target, a !== t) {\n xt(e, \"currentTarget\", {\n configurable: !0,\n get() {\n return a || r;\n }\n });\n var v = k, h = A;\n Ie(null), Se(null);\n try {\n for (var g, m = []; a !== null; ) {\n var w = a.assignedSlot || a.parentNode || /** @type {any} */\n a.host || null;\n try {\n var z = a[\"__\" + l];\n if (z != null && (!/** @type {any} */\n a.disabled || // DOM could've been updated already by the time this is reached, so we check this as well\n // -> the target could not have been disabled because it emits the event in the first place\n e.target === a))\n if (on(z)) {\n var [T, ...Y] = z;\n T.apply(a, [e, ...Y]);\n } else\n z.call(a, e);\n } catch (F) {\n g ? m.push(F) : g = F;\n }\n if (e.cancelBubble || w === t || w === null)\n break;\n a = w;\n }\n if (g) {\n for (let F of m)\n queueMicrotask(() => {\n throw F;\n });\n throw g;\n }\n } finally {\n e.__root = t, delete e.currentTarget, Ie(v), Se(h);\n }\n }\n}\nfunction rr(e) {\n var t = document.createElement(\"template\");\n return t.innerHTML = e, t.content;\n}\nfunction Ae(e, t) {\n var r = (\n /** @type {Effect} */\n A\n );\n r.nodes_start === null && (r.nodes_start = e, r.nodes_end = t);\n}\n// @__NO_SIDE_EFFECTS__\nfunction ve(e, t) {\n var r = (t & Ei) !== 0, l = (t & xi) !== 0, i, a = !e.startsWith(\"\");\n return () => {\n if (D)\n return Ae(O, null), O;\n i === void 0 && (i = rr(a ? e : \"\" + e), r || (i = /** @type {Node} */\n /* @__PURE__ */ me(i)));\n var o = (\n /** @type {TemplateNode} */\n l || wn ? document.importNode(i, !0) : i.cloneNode(!0)\n );\n if (r) {\n var f = (\n /** @type {TemplateNode} */\n /* @__PURE__ */ me(o)\n ), s = (\n /** @type {TemplateNode} */\n o.lastChild\n );\n Ae(f, s);\n } else\n Ae(o, o);\n return o;\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction El(e, t, r = \"svg\") {\n var l = !e.startsWith(\"\"), i = `<${r}>${l ? e : \"\" + e}`, a;\n return () => {\n if (D)\n return Ae(O, null), O;\n if (!a) {\n var o = (\n /** @type {DocumentFragment} */\n rr(i)\n ), f = (\n /** @type {Element} */\n /* @__PURE__ */ me(o)\n );\n a = /** @type {Element} */\n /* @__PURE__ */ me(f);\n }\n var s = (\n /** @type {TemplateNode} */\n a.cloneNode(!0)\n );\n return Ae(s, s), s;\n };\n}\nfunction ee(e, t) {\n if (D) {\n A.nodes_end = O, Xe();\n return;\n }\n e !== null && e.before(\n /** @type {Node} */\n t\n );\n}\nfunction Fn(e, t) {\n return Mn(e, t);\n}\nfunction xl(e, t) {\n jt(), t.intro = t.intro ?? !1;\n const r = t.target, l = D, i = O;\n try {\n for (var a = (\n /** @type {TemplateNode} */\n /* @__PURE__ */ me(r)\n ); a && (a.nodeType !== 8 || /** @type {Comment} */\n a.data !== Wt); )\n a = /** @type {TemplateNode} */\n /* @__PURE__ */ Te(a);\n if (!a)\n throw Je;\n Ge(!0), Re(\n /** @type {Comment} */\n a\n ), Xe();\n const o = Mn(e, { ...t, anchor: a });\n if (O === null || O.nodeType !== 8 || /** @type {Comment} */\n O.data !== rn)\n throw Tt(), Je;\n return Ge(!1), /** @type {Exports} */\n o;\n } catch (o) {\n if (o === Je)\n return t.recover === !1 && Ui(), jt(), Xi(r), Ge(!1), Fn(e, t);\n throw o;\n } finally {\n Ge(l), Re(i);\n }\n}\nconst Ye = /* @__PURE__ */ new Map();\nfunction Mn(e, { target: t, anchor: r, props: l = {}, events: i, context: a, intro: o = !0 }) {\n jt();\n var f = /* @__PURE__ */ new Set(), s = (h) => {\n for (var g = 0; g < h.length; g++) {\n var m = h[g];\n if (!f.has(m)) {\n f.add(m);\n var w = ml(m);\n t.addEventListener(m, ft, { passive: w });\n var z = Ye.get(m);\n z === void 0 ? (document.addEventListener(m, ft, { passive: w }), Ye.set(m, 1)) : Ye.set(m, z + 1);\n }\n }\n };\n s(Ii(zn)), qt.add(s);\n var c = void 0, v = vl(() => {\n var h = r ?? t.appendChild(Jt());\n return Rt(() => {\n if (a) {\n Nn({});\n var g = (\n /** @type {ComponentContext} */\n B\n );\n g.c = a;\n }\n i && (l.$$events = i), D && Ae(\n /** @type {TemplateNode} */\n h,\n null\n ), c = e(h, l) || {}, D && (A.nodes_end = O), a && Ln();\n }), () => {\n var w;\n for (var g of f) {\n t.removeEventListener(g, ft);\n var m = (\n /** @type {number} */\n Ye.get(g)\n );\n --m === 0 ? (document.removeEventListener(g, ft), Ye.delete(g)) : Ye.set(g, m);\n }\n qt.delete(s), h !== r && ((w = h.parentNode) == null || w.removeChild(h));\n };\n });\n return Ht.set(c, v), c;\n}\nlet Ht = /* @__PURE__ */ new WeakMap();\nfunction $l(e, t) {\n const r = Ht.get(e);\n return r ? (Ht.delete(e), r(t)) : Promise.resolve();\n}\nfunction ke(e, t, [r, l] = [0, 0]) {\n D && r === 0 && Xe();\n var i = e, a = null, o = null, f = W, s = r > 0 ? Zt : 0, c = !1;\n const v = (g, m = !0) => {\n c = !0, h(m, g);\n }, h = (g, m) => {\n if (f === (f = g)) return;\n let w = !1;\n if (D && l !== -1) {\n if (r === 0) {\n const T = (\n /** @type {Comment} */\n i.data\n );\n T === Wt ? l = 0 : T === tn ? l = 1 / 0 : (l = parseInt(T.substring(1)), l !== l && (l = f ? 1 / 0 : -1));\n }\n const z = l > r;\n !!f === z && (i = Ki(), Re(i), Ge(!1), w = !0, l = -1);\n }\n f ? (a ? Hr(a) : m && (a = Rt(() => m(i))), o && Bt(o, () => {\n o = null;\n })) : (o ? Hr(o) : m && (o = Rt(() => m(i, [r + 1, l]))), a && Bt(a, () => {\n a = null;\n })), w && Ge(!0);\n };\n tr(() => {\n c = !1, t(v), c || h(null, null);\n }, s), D && (i = O);\n}\nfunction Ze(e, t, r, l, i) {\n var a = e, o = \"\", f;\n tr(() => {\n if (o === (o = t() ?? \"\")) {\n D && Xe();\n return;\n }\n f !== void 0 && (we(f), f = void 0), o !== \"\" && (f = Rt(() => {\n if (D) {\n O.data;\n for (var s = Xe(), c = s; s !== null && (s.nodeType !== 8 || /** @type {Comment} */\n s.data !== \"\"); )\n c = s, s = /** @type {TemplateNode} */\n /* @__PURE__ */ Te(s);\n if (s === null)\n throw Tt(), Je;\n Ae(O, c), a = Re(s);\n return;\n }\n var v = o + \"\", h = rr(v);\n Ae(\n /** @type {TemplateNode} */\n /* @__PURE__ */ me(h),\n /** @type {TemplateNode} */\n h.lastChild\n ), a.before(h);\n }));\n });\n}\nfunction kl(e, t, r, l, i) {\n var f;\n D && Xe();\n var a = (f = t.$$slots) == null ? void 0 : f[r], o = !1;\n a === !0 && (a = t.children, o = !0), a === void 0 || a(e, o ? () => l : l);\n}\nfunction Cl(e, t) {\n Gt(() => {\n var r = e.getRootNode(), l = (\n /** @type {ShadowRoot} */\n r.host ? (\n /** @type {ShadowRoot} */\n r\n ) : (\n /** @type {Document} */\n r.head ?? /** @type {Document} */\n r.ownerDocument.head\n )\n );\n if (!l.querySelector(\"#\" + t.hash)) {\n const i = document.createElement(\"style\");\n i.id = t.hash, i.textContent = t.code, l.appendChild(i);\n }\n });\n}\nconst Zr = [...` \t\n\\r\\f \\v\\uFEFF`];\nfunction Al(e, t, r) {\n var l = \"\" + e;\n if (r) {\n for (var i in r)\n if (r[i])\n l = l ? l + \" \" + i : i;\n else if (l.length)\n for (var a = i.length, o = 0; (o = l.indexOf(i, o)) >= 0; ) {\n var f = o + a;\n (o === 0 || Zr.includes(l[o - 1])) && (f === l.length || Zr.includes(l[f])) ? l = (o === 0 ? \"\" : l.substring(0, o)) + l.substring(f + 1) : o = f;\n }\n }\n return l === \"\" ? null : l;\n}\nfunction Rl(e, t, r, l, i, a) {\n var o = e.__className;\n if (D || o !== r) {\n var f = Al(r, l, a);\n (!D || f !== e.getAttribute(\"class\")) && (f == null ? e.removeAttribute(\"class\") : e.className = f), e.__className = r;\n } else if (a && i !== a)\n for (var s in a) {\n var c = !!a[s];\n (i == null || c !== !!i[s]) && e.classList.toggle(s, c);\n }\n return a;\n}\nconst Il = Symbol(\"is custom element\"), Sl = Symbol(\"is html\");\nfunction Gr(e) {\n if (D) {\n var t = !1, r = () => {\n if (!t) {\n if (t = !0, e.hasAttribute(\"value\")) {\n var l = e.value;\n ie(e, \"value\", null), e.value = l;\n }\n if (e.hasAttribute(\"checked\")) {\n var i = e.checked;\n ie(e, \"checked\", null), e.checked = i;\n }\n }\n };\n e.__on_r = r, Di(r), Pn();\n }\n}\nfunction Tl(e, t) {\n var r = Un(e);\n r.value === (r.value = // treat null and undefined the same for the initial value\n t ?? void 0) || // @ts-expect-error\n // `progress` elements always need their value set when it's `0`\n e.value === t && (t !== 0 || e.nodeName !== \"PROGRESS\") || (e.value = t ?? \"\");\n}\nfunction ie(e, t, r, l) {\n var i = Un(e);\n D && (i[t] = e.getAttribute(t), t === \"src\" || t === \"srcset\" || t === \"href\" && e.nodeName === \"LINK\") || i[t] !== (i[t] = r) && (t === \"loading\" && (e[Ai] = r), r == null ? e.removeAttribute(t) : typeof r != \"string\" && Nl(e).includes(t) ? e[t] = r : e.setAttribute(t, r));\n}\nfunction Un(e) {\n return (\n /** @type {Record} **/\n // @ts-expect-error\n e.__attributes ?? (e.__attributes = {\n [Il]: e.nodeName.includes(\"-\"),\n [Sl]: e.namespaceURI === $i\n })\n );\n}\nvar Jr = /* @__PURE__ */ new Map();\nfunction Nl(e) {\n var t = Jr.get(e.nodeName);\n if (t) return t;\n Jr.set(e.nodeName, t = []);\n for (var r, l = e, i = Element.prototype; i !== l; ) {\n r = Si(l);\n for (var a in r)\n r[a].set && t.push(a);\n l = sn(l);\n }\n return t;\n}\nfunction Ll(e, t, r = t) {\n wl(e, \"change\", (l) => {\n var i = l ? e.defaultChecked : e.checked;\n r(i);\n }), // If we are hydrating and the value has since changed,\n // then use the update value from the input instead.\n (D && e.defaultChecked !== e.checked || // If defaultChecked is set, then checked == defaultChecked\n Qe(t) == null) && r(e.checked), er(() => {\n var l = t();\n e.checked = !!l;\n });\n}\nfunction Kr(e, t) {\n return e === t || (e == null ? void 0 : e[ut]) === t;\n}\nfunction Xr(e = {}, t, r, l) {\n return Qt(() => {\n var i, a;\n return er(() => {\n i = a, a = [], Qe(() => {\n e !== r(...a) && (t(e, ...a), i && Kr(r(...i), e) && t(null, ...i));\n });\n }), () => {\n Gt(() => {\n a && Kr(r(...a), e) && t(null, ...a);\n });\n };\n }), e;\n}\nfunction jn(e) {\n B === null && Tn(), Vt(() => {\n const t = Qe(e);\n if (typeof t == \"function\") return (\n /** @type {() => void} */\n t\n );\n });\n}\nfunction Dl(e) {\n B === null && Tn(), jn(() => () => Qe(e));\n}\nlet mt = !1;\nfunction Pl(e) {\n var t = mt;\n try {\n return mt = !1, [e(), mt];\n } finally {\n mt = t;\n }\n}\nfunction C(e, t, r, l) {\n var be;\n var i = (r & wi) !== 0, a = !0, o = (r & yi) !== 0, f = (r & bi) !== 0, s = !1, c;\n o ? [c, s] = Pl(() => (\n /** @type {V} */\n e[t]\n )) : c = /** @type {V} */\n e[t];\n var v = ut in e || an in e, h = o && (((be = Pe(e, t)) == null ? void 0 : be.set) ?? (v && t in e && ((N) => e[t] = N))) || void 0, g = (\n /** @type {V} */\n l\n ), m = !0, w = !1, z = () => (w = !0, m && (m = !1, f ? g = Qe(\n /** @type {() => V} */\n l\n ) : g = /** @type {V} */\n l), g);\n c === void 0 && l !== void 0 && (h && a && ji(), c = z(), h && h(c));\n var T;\n if (T = () => {\n var N = (\n /** @type {V} */\n e[t]\n );\n return N === void 0 ? z() : (m = !0, w = !1, N);\n }, (r & pi) === 0)\n return T;\n if (h) {\n var Y = e.$$legacy;\n return function(N, X) {\n return arguments.length > 0 ? ((!X || Y || s) && h(X ? T() : N), N) : T();\n };\n }\n var M = !1, F = /* @__PURE__ */ hn(c), se = /* @__PURE__ */ De(() => {\n var N = T(), X = d(F);\n return M ? (M = !1, X) : F.v = N;\n });\n return i || (se.equals = vn), function(N, X) {\n if (arguments.length > 0) {\n const U = X ? d(se) : o ? le(N) : N;\n return se.equals(U) || (M = !0, P(F, U), w && g !== void 0 && (g = U), Qe(() => d(se))), N;\n }\n return d(se);\n };\n}\nfunction Ol(e) {\n return new zl(e);\n}\nvar _e, te;\nclass zl {\n /**\n * @param {ComponentConstructorOptions & {\n * component: any;\n * }} options\n */\n constructor(t) {\n /** @type {any} */\n Mt(this, _e);\n /** @type {Record} */\n Mt(this, te);\n var a;\n var r = /* @__PURE__ */ new Map(), l = (o, f) => {\n var s = /* @__PURE__ */ hn(f);\n return r.set(o, s), s;\n };\n const i = new Proxy(\n { ...t.props || {}, $$events: {} },\n {\n get(o, f) {\n return d(r.get(f) ?? l(f, Reflect.get(o, f)));\n },\n has(o, f) {\n return f === an ? !0 : (d(r.get(f) ?? l(f, Reflect.get(o, f))), Reflect.has(o, f));\n },\n set(o, f, s) {\n return P(r.get(f) ?? l(f, s), s), Reflect.set(o, f, s);\n }\n }\n );\n Ut(this, te, (t.hydrate ? xl : Fn)(t.component, {\n target: t.target,\n anchor: t.anchor,\n props: i,\n context: t.context,\n intro: t.intro ?? !1,\n recover: t.recover\n })), (!((a = t == null ? void 0 : t.props) != null && a.$$host) || t.sync === !1) && $(), Ut(this, _e, i.$$events);\n for (const o of Object.keys(H(this, te)))\n o === \"$set\" || o === \"$destroy\" || o === \"$on\" || xt(this, o, {\n get() {\n return H(this, te)[o];\n },\n /** @param {any} value */\n set(f) {\n H(this, te)[o] = f;\n },\n enumerable: !0\n });\n H(this, te).$set = /** @param {Record} next */\n (o) => {\n Object.assign(i, o);\n }, H(this, te).$destroy = () => {\n $l(H(this, te));\n };\n }\n /** @param {Record} props */\n $set(t) {\n H(this, te).$set(t);\n }\n /**\n * @param {string} event\n * @param {(...args: any[]) => any} callback\n * @returns {any}\n */\n $on(t, r) {\n H(this, _e)[t] = H(this, _e)[t] || [];\n const l = (...i) => r.call(this, ...i);\n return H(this, _e)[t].push(l), () => {\n H(this, _e)[t] = H(this, _e)[t].filter(\n /** @param {any} fn */\n (i) => i !== l\n );\n };\n }\n $destroy() {\n H(this, te).$destroy();\n }\n}\n_e = new WeakMap(), te = new WeakMap();\nlet Vn;\ntypeof HTMLElement == \"function\" && (Vn = class extends HTMLElement {\n /**\n * @param {*} $$componentCtor\n * @param {*} $$slots\n * @param {*} use_shadow_dom\n */\n constructor(t, r, l) {\n super();\n /** The Svelte component constructor */\n ne(this, \"$$ctor\");\n /** Slots */\n ne(this, \"$$s\");\n /** @type {any} The Svelte component instance */\n ne(this, \"$$c\");\n /** Whether or not the custom element is connected */\n ne(this, \"$$cn\", !1);\n /** @type {Record} Component props data */\n ne(this, \"$$d\", {});\n /** `true` if currently in the process of reflecting component props back to attributes */\n ne(this, \"$$r\", !1);\n /** @type {Record} Props definition (name, reflected, type etc) */\n ne(this, \"$$p_d\", {});\n /** @type {Record} Event listeners */\n ne(this, \"$$l\", {});\n /** @type {Map} Event listener unsubscribe functions */\n ne(this, \"$$l_u\", /* @__PURE__ */ new Map());\n /** @type {any} The managed render effect for reflecting attributes */\n ne(this, \"$$me\");\n this.$$ctor = t, this.$$s = r, l && this.attachShadow({ mode: \"open\" });\n }\n /**\n * @param {string} type\n * @param {EventListenerOrEventListenerObject} listener\n * @param {boolean | AddEventListenerOptions} [options]\n */\n addEventListener(t, r, l) {\n if (this.$$l[t] = this.$$l[t] || [], this.$$l[t].push(r), this.$$c) {\n const i = this.$$c.$on(t, r);\n this.$$l_u.set(r, i);\n }\n super.addEventListener(t, r, l);\n }\n /**\n * @param {string} type\n * @param {EventListenerOrEventListenerObject} listener\n * @param {boolean | AddEventListenerOptions} [options]\n */\n removeEventListener(t, r, l) {\n if (super.removeEventListener(t, r, l), this.$$c) {\n const i = this.$$l_u.get(r);\n i && (i(), this.$$l_u.delete(r));\n }\n }\n async connectedCallback() {\n if (this.$$cn = !0, !this.$$c) {\n let t = function(i) {\n return (a) => {\n const o = document.createElement(\"slot\");\n i !== \"default\" && (o.name = i), ee(a, o);\n };\n };\n if (await Promise.resolve(), !this.$$cn || this.$$c)\n return;\n const r = {}, l = Fl(this);\n for (const i of this.$$s)\n i in l && (i === \"default\" && !this.$$d.children ? (this.$$d.children = t(i), r.default = !0) : r[i] = t(i));\n for (const i of this.attributes) {\n const a = this.$$g_p(i.name);\n a in this.$$d || (this.$$d[a] = pt(a, i.value, this.$$p_d, \"toProp\"));\n }\n for (const i in this.$$p_d)\n !(i in this.$$d) && this[i] !== void 0 && (this.$$d[i] = this[i], delete this[i]);\n this.$$c = Ol({\n component: this.$$ctor,\n target: this.shadowRoot || this,\n props: {\n ...this.$$d,\n $$slots: r,\n $$host: this\n }\n }), this.$$me = dl(() => {\n er(() => {\n var i;\n this.$$r = !0;\n for (const a of Et(this.$$c)) {\n if (!((i = this.$$p_d[a]) != null && i.reflect)) continue;\n this.$$d[a] = this.$$c[a];\n const o = pt(\n a,\n this.$$d[a],\n this.$$p_d,\n \"toAttribute\"\n );\n o == null ? this.removeAttribute(this.$$p_d[a].attribute || a) : this.setAttribute(this.$$p_d[a].attribute || a, o);\n }\n this.$$r = !1;\n });\n });\n for (const i in this.$$l)\n for (const a of this.$$l[i]) {\n const o = this.$$c.$on(i, a);\n this.$$l_u.set(a, o);\n }\n this.$$l = {};\n }\n }\n // We don't need this when working within Svelte code, but for compatibility of people using this outside of Svelte\n // and setting attributes through setAttribute etc, this is helpful\n /**\n * @param {string} attr\n * @param {string} _oldValue\n * @param {string} newValue\n */\n attributeChangedCallback(t, r, l) {\n var i;\n this.$$r || (t = this.$$g_p(t), this.$$d[t] = pt(t, l, this.$$p_d, \"toProp\"), (i = this.$$c) == null || i.$set({ [t]: this.$$d[t] }));\n }\n disconnectedCallback() {\n this.$$cn = !1, Promise.resolve().then(() => {\n !this.$$cn && this.$$c && (this.$$c.$destroy(), this.$$me(), this.$$c = void 0);\n });\n }\n /**\n * @param {string} attribute_name\n */\n $$g_p(t) {\n return Et(this.$$p_d).find(\n (r) => this.$$p_d[r].attribute === t || !this.$$p_d[r].attribute && r.toLowerCase() === t\n ) || t;\n }\n});\nfunction pt(e, t, r, l) {\n var a;\n const i = (a = r[e]) == null ? void 0 : a.type;\n if (t = i === \"Boolean\" && typeof t != \"boolean\" ? t != null : t, !l || !r[e])\n return t;\n if (l === \"toAttribute\")\n switch (i) {\n case \"Object\":\n case \"Array\":\n return t == null ? null : JSON.stringify(t);\n case \"Boolean\":\n return t ? \"\" : null;\n case \"Number\":\n return t ?? null;\n default:\n return t;\n }\n else\n switch (i) {\n case \"Object\":\n case \"Array\":\n return t && JSON.parse(t);\n case \"Boolean\":\n return t;\n // conversion already handled above\n case \"Number\":\n return t != null ? +t : t;\n default:\n return t;\n }\n}\nfunction Fl(e) {\n const t = {};\n return e.childNodes.forEach((r) => {\n t[\n /** @type {Element} node */\n r.slot || \"default\"\n ] = !0;\n }), t;\n}\nfunction Ml(e, t, r, l, i, a) {\n let o = class extends Vn {\n constructor() {\n super(e, r, i), this.$$p_d = t;\n }\n static get observedAttributes() {\n return Et(t).map(\n (f) => (t[f].attribute || f).toLowerCase()\n );\n }\n };\n return Et(t).forEach((f) => {\n xt(o.prototype, f, {\n get() {\n return this.$$c && f in this.$$c ? this.$$c[f] : this.$$d[f];\n },\n set(s) {\n var h;\n s = pt(f, s, t), this.$$d[f] = s;\n var c = this.$$c;\n if (c) {\n var v = (h = Pe(c, f)) == null ? void 0 : h.get;\n v ? c[f] = s : c.$set({ [f]: s });\n }\n }\n });\n }), l.forEach((f) => {\n xt(o.prototype, f, {\n get() {\n var s;\n return (s = this.$$c) == null ? void 0 : s[f];\n }\n });\n }), e.element = /** @type {any} */\n o, o;\n}\nconst Bn = new TextEncoder();\nfunction Ul(e) {\n return [...new Uint8Array(e)].map((t) => t.toString(16).padStart(2, \"0\")).join(\"\");\n}\nasync function jl(e, t = \"SHA-256\", r = 1e5) {\n const l = Date.now().toString(16);\n e || (e = Math.round(Math.random() * r));\n const i = await qn(l, e, t);\n return {\n algorithm: t,\n challenge: i,\n salt: l,\n signature: \"\"\n };\n}\nasync function qn(e, t, r) {\n if (typeof crypto > \"u\" || !(\"subtle\" in crypto) || !(\"digest\" in crypto.subtle))\n throw new Error(\"Web Crypto is not available. Secure context is required (https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts).\");\n return Ul(\n await crypto.subtle.digest(\n r.toUpperCase(),\n Bn.encode(e + t)\n )\n );\n}\nfunction Vl(e, t, r = \"SHA-256\", l = 1e6, i = 0) {\n const a = new AbortController(), o = Date.now();\n return {\n promise: (async () => {\n for (let s = i; s <= l; s += 1) {\n if (a.signal.aborted)\n return null;\n if (await qn(t, s, r) === e)\n return {\n number: s,\n took: Date.now() - o\n };\n }\n return null;\n })(),\n controller: a\n };\n}\nfunction Bl() {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n } catch {\n }\n}\nfunction ql(e) {\n const t = atob(e), r = new Uint8Array(t.length);\n for (let l = 0; l < t.length; l++)\n r[l] = t.charCodeAt(l);\n return r;\n}\nfunction Hl(e, t = 12) {\n const r = new Uint8Array(t);\n for (let l = 0; l < t; l++)\n r[l] = e % 256, e = Math.floor(e / 256);\n return r;\n}\nasync function Wl(e, t = \"\", r = 1e6, l = 0) {\n const i = \"AES-GCM\", a = new AbortController(), o = Date.now(), f = async () => {\n for (let v = l; v <= r; v += 1) {\n if (a.signal.aborted || !s || !c)\n return null;\n try {\n const h = await crypto.subtle.decrypt(\n {\n name: i,\n iv: Hl(v)\n },\n s,\n c\n );\n if (h)\n return {\n clearText: new TextDecoder().decode(h),\n took: Date.now() - o\n };\n } catch {\n }\n }\n return null;\n };\n let s = null, c = null;\n try {\n c = ql(e);\n const v = await crypto.subtle.digest(\n \"SHA-256\",\n Bn.encode(t)\n );\n s = await crypto.subtle.importKey(\n \"raw\",\n v,\n i,\n !1,\n [\"decrypt\"]\n );\n } catch {\n return {\n promise: Promise.reject(),\n controller: a\n };\n }\n return {\n promise: f(),\n controller: a\n };\n}\nvar E = /* @__PURE__ */ ((e) => (e.ERROR = \"error\", e.VERIFIED = \"verified\", e.VERIFYING = \"verifying\", e.UNVERIFIED = \"unverified\", e.EXPIRED = \"expired\", e))(E || {}), Yl = /* @__PURE__ */ El(''), Zl = /* @__PURE__ */ ve(' ', 1), Gl = /* @__PURE__ */ ve(''), Jl = /* @__PURE__ */ ve(''), Kl = /* @__PURE__ */ ve('
'), Xl = /* @__PURE__ */ ve('
'), Ql = /* @__PURE__ */ ve('
'), ea = /* @__PURE__ */ ve('
'), ta = /* @__PURE__ */ ve(''), ra = /* @__PURE__ */ ve('
'), na = /* @__PURE__ */ ve('
', 1);\nconst ia = {\n hash: \"svelte-ddsc3z\",\n code: `.altcha.svelte-ddsc3z {background:var(--altcha-color-base, transparent);border:var(--altcha-border-width, 1px) solid var(--altcha-color-border, #a0a0a0);border-radius:var(--altcha-border-radius, 3px);color:var(--altcha-color-text, currentColor);display:flex;flex-direction:column;max-width:var(--altcha-max-width, 260px);position:relative;text-align:left;}.altcha.svelte-ddsc3z:focus-within {border-color:var(--altcha-color-border-focus, currentColor);}.altcha[data-floating].svelte-ddsc3z {background:var(--altcha-color-base, white);display:none;filter:drop-shadow(3px 3px 6px rgba(0, 0, 0, 0.2));left:-100%;position:fixed;top:-100%;width:var(--altcha-max-width, 260px);z-index:999999;}.altcha[data-floating=top].svelte-ddsc3z .altcha-anchor-arrow:where(.svelte-ddsc3z) {border-bottom-color:transparent;border-top-color:var(--altcha-color-border, #a0a0a0);bottom:-12px;top:auto;}.altcha[data-floating=bottom].svelte-ddsc3z:focus-within::after {border-bottom-color:var(--altcha-color-border-focus, currentColor);}.altcha[data-floating=top].svelte-ddsc3z:focus-within::after {border-top-color:var(--altcha-color-border-focus, currentColor);}.altcha[data-floating].svelte-ddsc3z:not([data-state=unverified]) {display:block;}.altcha-anchor-arrow.svelte-ddsc3z {border:6px solid transparent;border-bottom-color:var(--altcha-color-border, #a0a0a0);content:\"\";height:0;left:12px;position:absolute;top:-12px;width:0;}.altcha-main.svelte-ddsc3z {align-items:center;display:flex;gap:0.4rem;padding:0.7rem;}.altcha-label.svelte-ddsc3z {flex-grow:1;}.altcha-label.svelte-ddsc3z label:where(.svelte-ddsc3z) {cursor:pointer;}.altcha-logo.svelte-ddsc3z {color:currentColor;opacity:0.3;}.altcha-logo.svelte-ddsc3z:hover {opacity:1;}.altcha-error.svelte-ddsc3z {color:var(--altcha-color-error-text, #f23939);display:flex;font-size:0.85rem;gap:0.3rem;padding:0 0.7rem 0.7rem;}.altcha-footer.svelte-ddsc3z {align-items:center;background-color:var(--altcha-color-footer-bg, transparent);display:flex;font-size:0.75rem;opacity:0.4;padding:0.2rem 0.7rem;text-align:right;}.altcha-footer.svelte-ddsc3z:hover {opacity:1;}.altcha-footer.svelte-ddsc3z > :where(.svelte-ddsc3z):first-child {flex-grow:1;}.altcha-footer.svelte-ddsc3z a {color:currentColor;}.altcha-checkbox.svelte-ddsc3z {display:flex;align-items:center;height:24px;width:24px;}.altcha-checkbox.svelte-ddsc3z input:where(.svelte-ddsc3z) {width:18px;height:18px;margin:0;}.altcha-hidden.svelte-ddsc3z {display:none;}.altcha-spinner.svelte-ddsc3z {\n animation: svelte-ddsc3z-altcha-spinner 0.75s infinite linear;transform-origin:center;}\n\n@keyframes svelte-ddsc3z-altcha-spinner {\n 100% {\n transform: rotate(360deg);\n }\n}`\n};\nfunction la(e, t) {\n var Lr, Dr;\n Nn(t, !0), Cl(e, ia);\n let r = C(t, \"auto\", 7, void 0), l = C(t, \"blockspam\", 7, void 0), i = C(t, \"challengeurl\", 7, void 0), a = C(t, \"challengejson\", 7, void 0), o = C(t, \"customfetch\", 7, void 0), f = C(t, \"debug\", 7, !1), s = C(t, \"delay\", 7, 0), c = C(t, \"expire\", 7, void 0), v = C(t, \"floating\", 7, void 0), h = C(t, \"floatinganchor\", 7, void 0), g = C(t, \"floatingoffset\", 7, void 0), m = C(t, \"hidefooter\", 7, !1), w = C(t, \"hidelogo\", 7, !1), z = C(t, \"id\", 7, void 0), T = C(t, \"name\", 7, \"altcha\"), Y = C(t, \"maxnumber\", 7, 1e6), M = C(t, \"mockerror\", 7, !1), F = C(t, \"obfuscated\", 7, void 0), se = C(t, \"plugins\", 7, void 0), be = C(t, \"refetchonexpire\", 7, !0), N = C(t, \"spamfilter\", 7, !1), X = C(t, \"strings\", 7, void 0), U = C(t, \"test\", 7, !1), Ee = C(t, \"verifyurl\", 7, void 0), Me = C(t, \"workers\", 23, () => Math.min(16, navigator.hardwareConcurrency || 8)), tt = C(t, \"workerurl\", 7, void 0);\n const nr = [\"SHA-256\", \"SHA-384\", \"SHA-512\"], ir = \"Visit Altcha.org\", lr = \"https://altcha.org/\", rt = (n, u) => {\n t.$$host.dispatchEvent(new CustomEvent(n, { detail: u }));\n }, ar = (Dr = (Lr = document.documentElement.lang) == null ? void 0 : Lr.split(\"-\")) == null ? void 0 : Dr[0], Dt = /* @__PURE__ */ De(() => {\n var n;\n return i() && new URL(i(), location.origin).host.endsWith(\".altcha.org\") && !!((n = i()) != null && n.includes(\"apiKey=ckey_\"));\n }), Pt = /* @__PURE__ */ De(() => a() ? wr(a()) : void 0), or = /* @__PURE__ */ De(() => X() ? wr(X()) : {}), Q = /* @__PURE__ */ De(() => {\n var n;\n return {\n ariaLinkLabel: ir,\n error: \"Verification failed. Try again later.\",\n expired: \"Verification expired. Try again.\",\n footer: `Protected by ALTCHA`,\n label: \"I'm not a robot\",\n verified: \"Verified\",\n verifying: \"Verifying...\",\n waitAlert: \"Verifying... please wait.\",\n ...d(or)\n };\n }), sr = /* @__PURE__ */ De(() => z() || `${T()}_checkbox`);\n let Ue = He(!1), R = He(le(E.UNVERIFIED)), j = He(void 0), nt = He(null), je = null, y = null, Ve = He(null), fe = null, xe = [], Ne = He(null);\n Vt(() => {\n Xn(d(Ve));\n }), Vt(() => {\n Qn(d(R));\n }), Dl(() => {\n Hn(), y && (y.removeEventListener(\"submit\", hr), y.removeEventListener(\"reset\", gr), y.removeEventListener(\"focusin\", vr), y = null), fe && (clearTimeout(fe), fe = null), document.removeEventListener(\"click\", cr), document.removeEventListener(\"scroll\", dr), window.removeEventListener(\"resize\", mr);\n }), jn(() => {\n var n;\n I(\"mounted\", \"1.3.0\"), I(\"workers\", Me()), Jn(), I(\"plugins\", xe.length ? xe.map((u) => u.constructor.pluginName).join(\", \") : \"none\"), U() && I(\"using test mode\"), c() && Ot(c()), r() !== void 0 && I(\"auto\", r()), v() !== void 0 && pr(v()), y = (n = d(j)) == null ? void 0 : n.closest(\"form\"), y && (y.addEventListener(\"submit\", hr, { capture: !0 }), y.addEventListener(\"reset\", gr), r() === \"onfocus\" && y.addEventListener(\"focusin\", vr)), r() === \"onload\" && (F() ? it() : $e()), d(Dt) && (m() || w()) && I(\"Attributes hidefooter and hidelogo ignored because usage with free API Keys requires attribution.\"), requestAnimationFrame(() => {\n rt(\"load\");\n });\n });\n function fr(n, u) {\n return btoa(JSON.stringify({\n algorithm: n.algorithm,\n challenge: n.challenge,\n number: u.number,\n salt: n.salt,\n signature: n.signature,\n test: U() ? !0 : void 0,\n took: u.took\n }));\n }\n function Hn() {\n for (const n of xe)\n n.destroy();\n }\n function ur() {\n i() && be() && d(R) === E.VERIFIED ? $e() : lt(E.EXPIRED, d(Q).expired);\n }\n async function Wn() {\n var n;\n if (M())\n throw I(\"mocking error\"), new Error(\"Mocked error.\");\n if (d(Pt))\n return I(\"using provided json data\"), d(Pt);\n if (U())\n return I(\"generating test challenge\", { test: U() }), jl(typeof U() != \"boolean\" ? +U() : void 0);\n {\n if (!i() && y) {\n const L = y.getAttribute(\"action\");\n L != null && L.includes(\"/form/\") && i(L + \"/altcha\");\n }\n if (!i())\n throw new Error(\"Attribute challengeurl not set.\");\n I(\"fetching challenge from\", i());\n let u = null, _ = null;\n if (o())\n if (I(\"using customfetch\"), typeof o() == \"string\") {\n if (u = globalThis[o()] || null, !u)\n throw new Error(`Custom fetch function not found: ${o()}`);\n } else\n u = o();\n const b = {\n headers: N() !== !1 ? { \"x-altcha-spam-filter\": \"1\" } : {}\n };\n if (u) {\n if (_ = await u(i(), b), !_ || !(_ instanceof Response))\n throw new Error(\"Custom fetch function did not return a response.\");\n } else\n _ = await fetch(i(), b);\n if (_.status !== 200)\n throw new Error(`Server responded with ${_.status}.`);\n const S = _.headers.get(\"X-Altcha-Config\"), x = await _.json(), p = new URLSearchParams((n = x.salt.split(\"?\")) == null ? void 0 : n[1]), q = p.get(\"expires\") || p.get(\"expire\");\n if (q) {\n const L = new Date(+q * 1e3), qe = isNaN(L.getTime()) ? 0 : L.getTime() - Date.now();\n qe > 0 && Ot(qe);\n }\n if (S)\n try {\n const L = JSON.parse(S);\n L && typeof L == \"object\" && (L.verifyurl && (L.verifyurl = new URL(L.verifyurl, new URL(i())).toString()), Er(L));\n } catch (L) {\n I(\"unable to configure from X-Altcha-Config\", L);\n }\n return x;\n }\n }\n function Yn(n) {\n var _;\n const u = y == null ? void 0 : y.querySelector(typeof n == \"string\" ? `input[name=\"${n}\"]` : 'input[type=\"email\"]:not([data-no-spamfilter])');\n return ((_ = u == null ? void 0 : u.value) == null ? void 0 : _.slice(u.value.indexOf(\"@\"))) || void 0;\n }\n function Zn() {\n return N() === \"ipAddress\" ? {\n blockedCountries: void 0,\n classifier: void 0,\n disableRules: void 0,\n email: !1,\n expectedCountries: void 0,\n expectedLanguages: void 0,\n fields: !1,\n ipAddress: void 0,\n text: void 0,\n timeZone: void 0\n } : typeof N() == \"object\" ? N() : {\n blockedCountries: void 0,\n classifier: void 0,\n disableRules: void 0,\n email: void 0,\n expectedCountries: void 0,\n expectedLanguages: void 0,\n fields: void 0,\n ipAddress: void 0,\n text: void 0,\n timeZone: void 0\n };\n }\n function Gn(n) {\n return [\n ...(y == null ? void 0 : y.querySelectorAll(n != null && n.length ? n.map((_) => `input[name=\"${_}\"]`).join(\", \") : 'input[type=\"text\"]:not([data-no-spamfilter]), textarea:not([data-no-spamfilter])')) || []\n ].reduce(\n (_, b) => {\n const S = b.name, x = b.value;\n return S && x && (_[S] = /\\n/.test(x) ? x.replace(new RegExp(\"(? u instanceof Error)) && console[n[0] instanceof Error ? \"error\" : \"log\"](\"ALTCHA\", `[name=${T()}]`, ...n);\n }\n function Kn() {\n [E.UNVERIFIED, E.ERROR, E.EXPIRED].includes(d(R)) ? N() !== !1 && (y == null ? void 0 : y.reportValidity()) === !1 ? P(Ue, !1) : F() ? it() : $e() : P(Ue, !0);\n }\n function cr(n) {\n const u = n.target;\n v() && u && !d(j).contains(u) && (d(R) === E.VERIFIED || r() === \"off\" && d(R) === E.UNVERIFIED) && (d(j).style.display = \"none\");\n }\n function dr() {\n v() && d(R) !== E.UNVERIFIED && gt();\n }\n function Xn(n) {\n for (const u of xe)\n typeof u.onErrorChange == \"function\" && u.onErrorChange(d(Ve));\n }\n function vr(n) {\n d(R) === E.UNVERIFIED && $e();\n }\n function hr(n) {\n y && r() === \"onsubmit\" ? d(R) === E.UNVERIFIED ? (n.preventDefault(), n.stopPropagation(), $e().then(() => {\n y == null || y.requestSubmit();\n })) : d(R) !== E.VERIFIED && (n.preventDefault(), n.stopPropagation(), d(R) === E.VERIFYING && _r()) : y && v() && r() === \"off\" && d(R) === E.UNVERIFIED && (n.preventDefault(), n.stopPropagation(), d(j).style.display = \"block\", gt());\n }\n function gr() {\n lt();\n }\n function _r() {\n d(R) === E.VERIFYING && d(Q).waitAlert && alert(d(Q).waitAlert);\n }\n function Qn(n) {\n for (const u of xe)\n typeof u.onStateChange == \"function\" && u.onStateChange(d(R));\n v() && d(R) !== E.UNVERIFIED && requestAnimationFrame(() => {\n gt();\n }), P(Ue, d(R) === E.VERIFIED);\n }\n function mr() {\n v() && gt();\n }\n function wr(n) {\n return JSON.parse(n);\n }\n function gt(n = 20) {\n if (d(j))\n if (je || (je = (h() ? document.querySelector(h()) : y == null ? void 0 : y.querySelector('input[type=\"submit\"], button[type=\"submit\"], button:not([type=\"button\"]):not([type=\"reset\"])')) || y), je) {\n const u = parseInt(g(), 10) || 12, _ = je.getBoundingClientRect(), b = d(j).getBoundingClientRect(), S = document.documentElement.clientHeight, x = document.documentElement.clientWidth, p = v() === \"auto\" ? _.bottom + b.height + u + n > S : v() === \"top\", q = Math.max(n, Math.min(x - n - b.width, _.left + _.width / 2 - b.width / 2));\n if (p ? d(j).style.top = `${_.top - (b.height + u)}px` : d(j).style.top = `${_.bottom + u}px`, d(j).style.left = `${q}px`, d(j).setAttribute(\"data-floating\", p ? \"top\" : \"bottom\"), d(nt)) {\n const L = d(nt).getBoundingClientRect();\n d(nt).style.left = _.left - q + _.width / 2 - L.width / 2 + \"px\";\n }\n } else\n I(\"unable to find floating anchor element\");\n }\n async function ei(n) {\n if (!Ee())\n throw new Error(\"Attribute verifyurl not set.\");\n I(\"requesting server verification from\", Ee());\n const u = { payload: n };\n if (N() !== !1) {\n const {\n blockedCountries: S,\n classifier: x,\n disableRules: p,\n email: q,\n expectedLanguages: L,\n expectedCountries: qe,\n fields: ot,\n ipAddress: st,\n text: vi,\n timeZone: Pr\n } = Zn();\n u.blockedCountries = S, u.classifier = x, u.disableRules = p, u.email = q === !1 ? void 0 : Yn(q), u.expectedCountries = qe, u.expectedLanguages = L || (ar ? [ar] : void 0), u.fields = ot === !1 ? void 0 : Gn(ot), u.ipAddress = st === !1 ? void 0 : st || \"auto\", u.text = vi, u.timeZone = Pr === !1 ? void 0 : Pr || Bl();\n }\n const _ = await fetch(Ee(), {\n body: JSON.stringify(u),\n headers: { \"content-type\": \"application/json\" },\n method: \"POST\"\n });\n if (_.status !== 200)\n throw new Error(`Server responded with ${_.status}.`);\n const b = await _.json();\n if (b != null && b.payload && P(Ne, le(b.payload)), rt(\"serververification\", b), l() && b.classification === \"BAD\")\n throw new Error(\"SpamFilter returned negative classification.\");\n }\n function Ot(n) {\n I(\"expire\", n), fe && (clearTimeout(fe), fe = null), n < 1 ? ur() : fe = setTimeout(ur, n);\n }\n function pr(n) {\n I(\"floating\", n), v() !== n && (d(j).style.left = \"\", d(j).style.top = \"\"), v(n === !0 || n === \"\" ? \"auto\" : n === !1 || n === \"false\" ? void 0 : v()), v() ? (r() || r(\"onsubmit\"), document.addEventListener(\"scroll\", dr), document.addEventListener(\"click\", cr), window.addEventListener(\"resize\", mr)) : r() === \"onsubmit\" && r(void 0);\n }\n function yr(n) {\n if (!n.algorithm)\n throw new Error(\"Invalid challenge. Property algorithm is missing.\");\n if (n.signature === void 0)\n throw new Error(\"Invalid challenge. Property signature is missing.\");\n if (!nr.includes(n.algorithm.toUpperCase()))\n throw new Error(`Unknown algorithm value. Allowed values: ${nr.join(\", \")}`);\n if (!n.challenge || n.challenge.length < 40)\n throw new Error(\"Challenge is too short. Min. 40 chars.\");\n if (!n.salt || n.salt.length < 10)\n throw new Error(\"Salt is too short. Min. 10 chars.\");\n }\n async function br(n) {\n let u = null;\n if (\"Worker\" in window) {\n try {\n u = await ti(n, n.maxnumber);\n } catch (_) {\n I(_);\n }\n if ((u == null ? void 0 : u.number) !== void 0 || \"obfuscated\" in n)\n return { data: n, solution: u };\n }\n if (\"obfuscated\" in n) {\n const _ = await Wl(n.obfuscated, n.key, n.maxnumber);\n return { data: n, solution: await _.promise };\n }\n return {\n data: n,\n solution: await Vl(n.challenge, n.salt, n.algorithm, n.maxnumber || Y()).promise\n };\n }\n async function ti(n, u = typeof U() == \"number\" ? U() : Y(), _ = Math.ceil(Me())) {\n const b = [];\n _ = Math.min(16, Math.max(1, _));\n for (let p = 0; p < _; p++)\n b.push(altchaCreateWorker(tt()));\n const S = Math.ceil(u / _), x = await Promise.all(b.map((p, q) => {\n const L = q * S;\n return new Promise((qe) => {\n p.addEventListener(\"message\", (ot) => {\n if (ot.data)\n for (const st of b)\n st !== p && st.postMessage({ type: \"abort\" });\n qe(ot.data);\n }), p.postMessage({\n payload: n,\n max: L + S,\n start: L,\n type: \"work\"\n });\n });\n }));\n for (const p of b)\n p.terminate();\n return x.find((p) => !!p) || null;\n }\n async function it() {\n if (!F()) {\n Le(E.ERROR);\n return;\n }\n const n = xe.find((u) => u.constructor.pluginName === \"obfuscation\");\n if (!n || !(\"clarify\" in n)) {\n Le(E.ERROR), I(\"Plugin `obfuscation` not found. Import `altcha/plugins/obfuscation` to load it.\");\n return;\n }\n if (\"clarify\" in n && typeof n.clarify == \"function\")\n return n.clarify();\n }\n function Er(n) {\n n.obfuscated !== void 0 && F(n.obfuscated), n.auto !== void 0 && (r(n.auto), r() === \"onload\" && (F() ? it() : $e())), n.blockspam !== void 0 && l(!!n.blockspam), n.customfetch !== void 0 && o(n.customfetch), n.floatinganchor !== void 0 && h(n.floatinganchor), n.delay !== void 0 && s(n.delay), n.floatingoffset !== void 0 && g(n.floatingoffset), n.floating !== void 0 && pr(n.floating), n.expire !== void 0 && (Ot(n.expire), c(n.expire)), n.challenge && (a(typeof n.challenge == \"string\" ? n.challenge : JSON.stringify(n.challenge)), yr(d(Pt))), n.challengeurl !== void 0 && i(n.challengeurl), n.debug !== void 0 && f(!!n.debug), n.hidefooter !== void 0 && m(!!n.hidefooter), n.hidelogo !== void 0 && w(!!n.hidelogo), n.maxnumber !== void 0 && Y(+n.maxnumber), n.mockerror !== void 0 && M(!!n.mockerror), n.name !== void 0 && T(n.name), n.refetchonexpire !== void 0 && be(!!n.refetchonexpire), n.spamfilter !== void 0 && N(typeof n.spamfilter == \"object\" ? n.spamfilter : !!n.spamfilter), n.strings && X(typeof n.strings == \"string\" ? n.strings : JSON.stringify(n.strings)), n.test !== void 0 && U(typeof n.test == \"number\" ? n.test : !!n.test), n.verifyurl !== void 0 && Ee(n.verifyurl), n.workers !== void 0 && Me(+n.workers), n.workerurl !== void 0 && tt(n.workerurl);\n }\n function xr() {\n return {\n auto: r(),\n blockspam: l(),\n challengeurl: i(),\n debug: f(),\n delay: s(),\n expire: c(),\n floating: v(),\n floatinganchor: h(),\n floatingoffset: g(),\n hidefooter: m(),\n hidelogo: w(),\n name: T(),\n maxnumber: Y(),\n mockerror: M(),\n obfuscated: F(),\n refetchonexpire: be(),\n spamfilter: N(),\n strings: d(Q),\n test: U(),\n verifyurl: Ee(),\n workers: Me(),\n workerurl: tt()\n };\n }\n function $r() {\n return je;\n }\n function ri(n) {\n return xe.find((u) => u.constructor.pluginName === n);\n }\n function kr() {\n return d(R);\n }\n function lt(n = E.UNVERIFIED, u = null) {\n fe && (clearTimeout(fe), fe = null), P(Ue, !1), P(Ne, null), Le(n, u);\n }\n function Cr(n) {\n je = n;\n }\n function Le(n, u = null) {\n P(R, le(n)), P(Ve, le(u)), rt(\"statechange\", {\n payload: d(Ne),\n state: d(R)\n });\n }\n async function $e() {\n return lt(E.VERIFYING), await new Promise((n) => setTimeout(n, s() || 0)), Wn().then((n) => (yr(n), I(\"challenge\", n), br(n))).then(({ data: n, solution: u }) => {\n if (I(\"solution\", u), \"challenge\" in n && u && !(\"clearText\" in u))\n if ((u == null ? void 0 : u.number) !== void 0) {\n if (Ee())\n return ei(fr(n, u));\n P(Ne, le(fr(n, u))), I(\"payload\", d(Ne));\n } else\n throw I(\"Unable to find a solution. Ensure that the 'maxnumber' attribute is greater than the randomly generated number.\"), new Error(\"Unexpected result returned.\");\n }).then(() => {\n Le(E.VERIFIED), I(\"verified\"), ol().then(() => {\n rt(\"verified\", { payload: d(Ne) });\n });\n }).catch((n) => {\n I(n), Le(E.ERROR, n.message);\n });\n }\n var Ar = na(), Rr = Br(Ar);\n kl(Rr, t, \"default\", {});\n var at = he(Rr, 2), zt = G(at), Ir = G(zt);\n {\n var ni = (n) => {\n var u = Yl();\n ee(n, u);\n };\n ke(Ir, (n) => {\n d(R) === E.VERIFYING && n(ni);\n });\n }\n var _t = he(Ir, 2);\n let Sr;\n var Be = G(_t);\n Gr(Be), Be.__change = Kn, Z(_t);\n var Ft = he(_t, 2), ii = G(Ft);\n {\n var li = (n) => {\n var u = Zl(), _ = Br(u), b = G(_);\n Ze(b, () => d(Q).verified), Z(_);\n var S = he(_, 2);\n Gr(S), We(() => {\n ie(S, \"name\", T()), Tl(S, d(Ne));\n }), ee(n, u);\n }, ai = (n, u) => {\n {\n var _ = (S) => {\n var x = Gl(), p = G(x);\n Ze(p, () => d(Q).verifying), Z(x), ee(S, x);\n }, b = (S) => {\n var x = Jl(), p = G(x);\n Ze(p, () => d(Q).label), Z(x), We(() => ie(x, \"for\", d(sr))), ee(S, x);\n };\n ke(\n n,\n (S) => {\n d(R) === E.VERIFYING ? S(_) : S(b, !1);\n },\n u\n );\n }\n };\n ke(ii, (n) => {\n d(R) === E.VERIFIED ? n(li) : n(ai, !1);\n });\n }\n Z(Ft);\n var oi = he(Ft, 2);\n {\n var si = (n) => {\n var u = Kl(), _ = G(u);\n ie(_, \"href\", lr), Z(u), We(() => ie(_, \"aria-label\", d(Q).ariaLinkLabel)), ee(n, u);\n };\n ke(oi, (n) => {\n (w() !== !0 || d(Dt)) && n(si);\n });\n }\n Z(zt);\n var Tr = he(zt, 2);\n {\n var fi = (n) => {\n var u = ea(), _ = he(G(u), 2);\n {\n var b = (x) => {\n var p = Xl(), q = G(p);\n Ze(q, () => d(Q).expired), Z(p), We(() => ie(p, \"title\", d(Ve))), ee(x, p);\n }, S = (x) => {\n var p = Ql(), q = G(p);\n Ze(q, () => d(Q).error), Z(p), We(() => ie(p, \"title\", d(Ve))), ee(x, p);\n };\n ke(_, (x) => {\n d(R) === E.EXPIRED ? x(b) : x(S, !1);\n });\n }\n Z(u), ee(n, u);\n };\n ke(Tr, (n) => {\n (d(Ve) || d(R) === E.EXPIRED) && n(fi);\n });\n }\n var Nr = he(Tr, 2);\n {\n var ui = (n) => {\n var u = ta(), _ = G(u), b = G(_);\n Ze(b, () => d(Q).footer), Z(_), Z(u), ee(n, u);\n };\n ke(Nr, (n) => {\n d(Q).footer && (m() !== !0 || d(Dt)) && n(ui);\n });\n }\n var ci = he(Nr, 2);\n {\n var di = (n) => {\n var u = ra();\n Xr(u, (_) => P(nt, _), () => d(nt)), ee(n, u);\n };\n ke(ci, (n) => {\n v() && n(di);\n });\n }\n return Z(at), Xr(at, (n) => P(j, n), () => d(j)), We(\n (n) => {\n ie(at, \"data-state\", d(R)), ie(at, \"data-floating\", v()), Sr = Rl(_t, 1, \"altcha-checkbox svelte-ddsc3z\", null, Sr, n), ie(Be, \"id\", d(sr)), Be.required = r() !== \"onsubmit\" && (!v() || r() !== \"off\");\n },\n [\n () => ({\n \"altcha-hidden\": d(R) === E.VERIFYING\n })\n ]\n ), yl(\"invalid\", Be, _r), Ll(Be, () => d(Ue), (n) => P(Ue, n)), ee(e, Ar), Ln({\n clarify: it,\n configure: Er,\n getConfiguration: xr,\n getFloatingAnchor: $r,\n getPlugin: ri,\n getState: kr,\n reset: lt,\n setFloatingAnchor: Cr,\n setState: Le,\n verify: $e,\n get auto() {\n return r();\n },\n set auto(n = void 0) {\n r(n), $();\n },\n get blockspam() {\n return l();\n },\n set blockspam(n = void 0) {\n l(n), $();\n },\n get challengeurl() {\n return i();\n },\n set challengeurl(n = void 0) {\n i(n), $();\n },\n get challengejson() {\n return a();\n },\n set challengejson(n = void 0) {\n a(n), $();\n },\n get customfetch() {\n return o();\n },\n set customfetch(n = void 0) {\n o(n), $();\n },\n get debug() {\n return f();\n },\n set debug(n = !1) {\n f(n), $();\n },\n get delay() {\n return s();\n },\n set delay(n = 0) {\n s(n), $();\n },\n get expire() {\n return c();\n },\n set expire(n = void 0) {\n c(n), $();\n },\n get floating() {\n return v();\n },\n set floating(n = void 0) {\n v(n), $();\n },\n get floatinganchor() {\n return h();\n },\n set floatinganchor(n = void 0) {\n h(n), $();\n },\n get floatingoffset() {\n return g();\n },\n set floatingoffset(n = void 0) {\n g(n), $();\n },\n get hidefooter() {\n return m();\n },\n set hidefooter(n = !1) {\n m(n), $();\n },\n get hidelogo() {\n return w();\n },\n set hidelogo(n = !1) {\n w(n), $();\n },\n get id() {\n return z();\n },\n set id(n = void 0) {\n z(n), $();\n },\n get name() {\n return T();\n },\n set name(n = \"altcha\") {\n T(n), $();\n },\n get maxnumber() {\n return Y();\n },\n set maxnumber(n = 1e6) {\n Y(n), $();\n },\n get mockerror() {\n return M();\n },\n set mockerror(n = !1) {\n M(n), $();\n },\n get obfuscated() {\n return F();\n },\n set obfuscated(n = void 0) {\n F(n), $();\n },\n get plugins() {\n return se();\n },\n set plugins(n = void 0) {\n se(n), $();\n },\n get refetchonexpire() {\n return be();\n },\n set refetchonexpire(n = !0) {\n be(n), $();\n },\n get spamfilter() {\n return N();\n },\n set spamfilter(n = !1) {\n N(n), $();\n },\n get strings() {\n return X();\n },\n set strings(n = void 0) {\n X(n), $();\n },\n get test() {\n return U();\n },\n set test(n = !1) {\n U(n), $();\n },\n get verifyurl() {\n return Ee();\n },\n set verifyurl(n = void 0) {\n Ee(n), $();\n },\n get workers() {\n return Me();\n },\n set workers(n = Math.min(16, navigator.hardwareConcurrency || 8)) {\n Me(n), $();\n },\n get workerurl() {\n return tt();\n },\n set workerurl(n = void 0) {\n tt(n), $();\n }\n });\n}\nbl([\"change\"]);\ncustomElements.define(\"altcha-widget\", Ml(\n la,\n {\n blockspam: { type: \"Boolean\" },\n debug: { type: \"Boolean\" },\n delay: { type: \"Number\" },\n expire: { type: \"Number\" },\n floatingoffset: { type: \"Number\" },\n hidefooter: { type: \"Boolean\" },\n hidelogo: { type: \"Boolean\" },\n maxnumber: { type: \"Number\" },\n mockerror: { type: \"Boolean\" },\n refetchonexpire: { type: \"Boolean\" },\n test: { type: \"Boolean\" },\n workers: { type: \"Number\" },\n auto: {},\n challengeurl: {},\n challengejson: {},\n customfetch: {},\n floating: {},\n floatinganchor: {},\n id: {},\n name: {},\n obfuscated: {},\n plugins: {},\n spamfilter: {},\n strings: {},\n verifyurl: {},\n workerurl: {}\n },\n [\"default\"],\n [\n \"clarify\",\n \"configure\",\n \"getConfiguration\",\n \"getFloatingAnchor\",\n \"getPlugin\",\n \"getState\",\n \"reset\",\n \"setFloatingAnchor\",\n \"setState\",\n \"verify\"\n ],\n !1\n));\nglobalThis.altchaCreateWorker = (e) => e ? new Worker(new URL(e)) : new _i();\nglobalThis.altchaPlugins = globalThis.altchaPlugins || [];\nexport {\n la as Altcha\n};","// internal\nimport BasePage from \"../base.js\";\n// vendor\nimport { Altcha } from \"../../vendor/altcha.js\";\n\nexport default class PageContact extends BasePage {\n static hash = hashPageContact;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n this.hookupButtonSubmitFormContactUs();\n }\n\n hookupButtonSubmitFormContactUs() {\n const button = document.querySelector('form input[type=\"submit\"]');\n button.classList.add(flagButton);\n button.classList.add(flagButtonPrimary);\n }\n}\n","// internal\nimport BasePage from \"../base.js\";\n// vendor\nimport { Altcha } from \"../../vendor/altcha.js\";\n\nexport default class PageContactSuccess extends BasePage {\n static hash = hashPageContactSuccess;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n}\n","\nimport BasePage from \"../base.js\";\n\nexport default class PageDogHome extends BasePage {\n static hash = hashPageDogHome;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n this.hookupDogHome();\n }\n hookupDogHome() {\n \n }\n\n leave() {\n super.leave();\n }\n}\n","\nimport Utils from '../utils.js';\n\nexport default class BusinessObjects {\n static getOptionJsonFromObjectJsonAndKeys(objectJson, keyText, keyValue, valueSelected = null) {\n return {\n text: objectJson[keyText],\n value: objectJson[keyValue],\n selected: (objectJson[keyValue] == valueSelected),\n };\n }\n static getOptionJsonFromObjectJson(objectJson, valueSelected = null) {\n let keyText = objectJson[flagNameAttrOptionText];\n let keyValue = objectJson[flagNameAttrOptionValue];\n // Utils.consoleLogIfNotProductionEnvironment({objectJson, keyText, keyValue});\n return BusinessObjects.getOptionJsonFromObjectJsonAndKeys(objectJson, keyText, keyValue, valueSelected);\n }\n static getObjectText(objectJson) {\n return objectJson == null ? '' : objectJson[objectJson[flagNameAttrOptionText]];\n }\n static getListObjectsFromIdDictAndCsv(idDict, idCsv) {\n let listObjects = [];\n let ids = idCsv.split(',');\n for (let id of ids) {\n listObjects.push(idDict[id]);\n }\n return listObjects;\n }\n}","\nimport Events from \"../../../lib/events.js\";\n\nexport default class OverlayError {\n static hookup() {\n Events.initialiseEventHandler(idOverlayError + ' button.' + flagCancel, flagInitialised, (buttonCancel) => {\n buttonCancel.addEventListener('click', () => {\n let overlay = document.querySelector(idOverlayError);\n overlay.style.visibility = 'hidden';\n });\n });\n }\n static show(msgError) {\n let overlay = document.querySelector(idOverlayError);\n let labelError = overlay.querySelector(idLabelError);\n labelError.innerText = msgError;\n overlay.style.visibility = 'visible';\n }\n}","\nimport BusinessObjects from \"../lib/business_objects/business_objects.js\";\nimport Events from \"../lib/events.js\";\nimport LocalStorage from \"../lib/local_storage.js\";\nimport Validation from \"../lib/validation.js\";\nimport BasePage from \"./base.js\";\nimport API from \"../api.js\";\nimport DOM from \"../dom.js\";\nimport Utils from \"../lib/utils.js\";\n\nimport OverlayConfirm from \"../components/common/temporary/overlay_confirm.js\";\nimport OverlayError from \"../components/common/temporary/overlay_error.js\";\n\nexport default class TableBasePage extends BasePage {\n // static hash\n // static attrIdRowObject\n // callSaveTableContent\n\n constructor(router) {\n super(router);\n this.cursorYInitial = null;\n this.rowInitial = null;\n this.placeholder = null;\n this.dragSrcEl = null;\n this.dragSrcRow = null;\n\n this.hookupTableCellDdls = this.hookupTableCellDdls.bind(this);\n }\n \n initialize(isPopState = false) {\n throw new Error(\"Must implement initialize() method.\");\n }\n sharedInitialize(isPopState = false, isSinglePageApp = false) {\n if (!isPopState) {\n super.sharedInitialize();\n this.hookupFilters();\n this.hookupButtonsSaveCancel();\n this.hookupTableMain();\n OverlayConfirm.hookup(() => {\n if (isSinglePageApp) {\n this.saveRecordsTableDirtySinglePageApp();\n }\n else {\n this.saveRecordsTableDirty();\n }\n });\n } else {\n let dataPage = this.getLocalStoragePage();\n let filters = dataPage[flagFormFilters];\n let formFilters = TableBasePage.getFormFilters();\n let filtersDefault = DOM.convertForm2JSON(formFilters);\n if (!Validation.areEqualDicts(filters, filtersDefault)) {\n this.callFilterTableContent();\n }\n }\n }\n hookupFilters() {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Subclass of TableBasePage must implement method hookupFilters().\");\n }\n }\n sharedHookupFilters() {\n this.hookupButtonApplyFilters();\n this.hookupSearchTextFilter();\n }\n hookupFilterActive() {\n let filterSelector = idFormFilters + ' #' + flagActiveOnly;\n let filterActiveOld = document.querySelector(filterSelector);\n filterActiveOld.removeAttribute('id');\n let parentDiv = filterActiveOld.parentElement;\n let isChecked = (DOM.getElementAttributeValuePrevious(parentDiv) == \"True\");\n let filterActiveNew = document.querySelector(idFormFilters + ' div.' + flagActiveOnly + '.' + flagContainerInput + ' svg.' + flagActiveOnly);\n filterActiveNew.setAttribute('id', flagActiveOnly);\n if (isChecked) filterActiveNew.classList.add(flagIsChecked);\n\n Events.hookupEventHandler(\"click\", filterSelector, (event, filterActive) => {\n Utils.consoleLogIfNotProductionEnvironment({ filterActive });\n Utils.consoleLogIfNotProductionEnvironment({ [filterActive.tagName]: filterActive.tagName });\n let svgElement = (filterActive.tagName.toUpperCase() == 'SVG') ? filterActive : filterActive.parentElement;\n let wasChecked = svgElement.classList.contains(flagIsChecked);\n if (wasChecked) {\n svgElement.classList.remove(flagIsChecked);\n }\n else {\n svgElement.classList.add(flagIsChecked);\n }\n return this.handleChangeFilter(event, filterActive);\n });\n let filter = document.querySelector(filterSelector);\n let filterValuePrevious = DOM.getElementValueCurrent(filter);\n filter.setAttribute(attrValueCurrent, filterValuePrevious);\n filter.setAttribute(attrValuePrevious, filterValuePrevious);\n }\n hookupFilter(filterFlag, handler = (event, filter) => { return this.handleChangeFilter(event, filter); }) {\n let filterSelector = idFormFilters + ' #' + filterFlag;\n Events.hookupEventHandler(\"change\", filterSelector, handler);\n let filter = document.querySelector(filterSelector);\n let filterValuePrevious = DOM.getElementValueCurrent(filter);\n filter.setAttribute(attrValueCurrent, filterValuePrevious);\n filter.setAttribute(attrValuePrevious, filterValuePrevious);\n }\n handleChangeFilter(event, filter) {\n let isDirtyFilter = DOM.updateAndCheckIsElementDirty(filter);\n let formFilters = TableBasePage.getFormFilters();\n let areDirtyFilters = isDirtyFilter || DOM.hasDirtyChildrenContainer(formFilters);\n let tbody = document.querySelector(idTableMain + ' tbody');\n let rows = tbody.querySelectorAll(':scope > tr');\n rows.forEach((row) => {\n if (areDirtyFilters && !row.classList.contains(flagIsCollapsed)) row.classList.add(flagIsCollapsed);\n if (!areDirtyFilters && row.classList.contains(flagIsCollapsed)) {\n row.classList.remove(flagIsCollapsed);\n let dirtyInputs = row.querySelectorAll('input.' + flagDirty);\n dirtyInputs.forEach((dirtyInput) => {\n dirtyInput.value = DOM.getElementAttributeValueCurrent(dirtyInput);\n });\n }\n });\n if (areDirtyFilters) {\n /*\n tbody.querySelectorAll('tr').forEach((tr) => { \n if (!DOM.hasDirtyChildrenContainer(tr)) tr.remove(); \n });\n */\n tbody.innerHTML = '
Press \"Apply Filters\" to refresh the table.
' + tbody.innerHTML;\n if (!tbody.classList.contains(flagIsCollapsed)) tbody.classList.add(flagIsCollapsed);\n }\n else {\n let isDirtyLabel = tbody.querySelector(\":scope > div\");\n if (isDirtyLabel != null) isDirtyLabel.remove();\n if (tbody.classList.contains(flagIsCollapsed)) tbody.classList.remove(flagIsCollapsed);\n let initialisedElements = tbody.querySelectorAll('.' + flagInitialised);\n initialisedElements.forEach((initialisedElement) => {\n initialisedElement.classList.remove(flagInitialised);\n });\n this.hookupTableMain();\n }\n this.updateAndToggleShowButtonsSaveCancel();\n }\n hookupFilterIsNotEmpty() {\n this.hookupFilter(flagIsNotEmpty);\n }\n hookupButtonApplyFilters() {\n Events.hookupEventHandler(\"click\", idButtonApplyFilters, (event, button) => {\n event.stopPropagation();\n this.callFilterTableContent();\n });\n }\n hookupSearchTextFilter() {\n this.hookupFilter(flagSearch);\n }\n hookupFilterDog() {\n this.hookupFilter(attrIdDog); \n }\n hookupFilterCommandCategory() {\n this.hookupFilter(attrIdCommandCategory, (event, filterCommandCategory) => {\n this.handleChangeFilter();\n let isDirtyFilter = filterCommandCategory.classList.contains(flagDirty);\n let idCommandCategory = DOM.getElementValueCurrent(filterCommandCategory);\n console.log(\"filter commands unsorted\");\n console.log(Utils.getListFromDict(filterCommands));\n let commandsInCategory = Utils.getListFromDict(filterCommands).filter(command => command[attrIdCommandCategory] == idCommandCategory);\n let sortedCommands = commandsInCategory.sort((a, b) => a[flagName].localeCompare(b[flagName]));\n let filterCommand = document.querySelector(idFormFilters + ' .' + flagCommand);\n let idCommandPrevious = DOM.getElementAttributeValuePrevious(filterCommand);\n filterCommand.innerHTML = '';\n let optionJson, option;\n option = DOM.createOption(null);\n filterCommand.appendChild(option);\n sortedCommands.forEach((command) => {\n optionJson = BusinessObjects.getOptionJsonFromObjectJson(command, idCommandPrevious);\n option = DOM.createOption(optionJson);\n filterCommand.appendChild(option);\n });\n filterCommand.dispatchEvent(new Event('change'));\n return isDirtyFilter;\n });\n }\n hookupFilterCommand() {\n this.hookupFilter(attrIdCommand);\n }\n hookupFilterLocation() {\n this.hookupFilter(attrIdLocation);\n }\n /*\n getAndLoadFilteredTableContent = () => {\n this.callFilterTableContent()\n .catch(error => console.error('Error:', error));\n }\n */\n static getFormFilters() {\n return document.querySelector(idFormFilters);\n }\n callFilterTableContent() {\n let formFilters = TableBasePage.getFormFilters();\n let filtersJson = DOM.convertForm2JSON(formFilters);\n Utils.consoleLogIfNotProductionEnvironment(\"callFilterTableContent\");\n Utils.consoleLogIfNotProductionEnvironment(\"formFilters\");\n Utils.consoleLogIfNotProductionEnvironment(formFilters);\n Utils.consoleLogIfNotProductionEnvironment(\"filtersJson\");\n Utils.consoleLogIfNotProductionEnvironment(filtersJson);\n this.leave();\n API.goToHash(this.constructor.hash, filtersJson);\n }\n callbackLoadTableContent(response) {\n let table = TableBasePage.getTableMain();\n let bodyTable = table.querySelector('tbody');\n bodyTable.querySelectorAll('tr').forEach(function(row) { row.remove(); });\n let rowsJson = response.data[flagRows];\n if (!Validation.isEmpty(rowsJson) && rowsJson.every(row => row.hasOwnProperty('display_order'))) {\n rowsJson = rowsJson.sort((a, b) => a.display_order - b.display_order);\n }\n rowsJson.forEach(this.loadRowTable.bind(this));\n this.hookupTableMain();\n }\n static getTableMain() {\n return document.querySelector(idTableMain);\n }\n loadRowTable(rowJson) {\n throw new Error(\"Subclass of TableBasePage must implement method loadRowTable().\");\n }\n getAndLoadFilteredTableContentSinglePageApp() {\n this.callFilterTableContent()\n .then(data => {\n Utils.consoleLogIfNotProductionEnvironment('Table data received:', data);\n this.callbackLoadTableContent(data);\n })\n .catch(error => console.error('Error:', error));\n }\n hookupButtonsSaveCancel() {\n this.hookupButtonSave();\n this.hookupButtonCancel();\n this.toggleShowButtonsSaveCancel(false);\n }\n saveRecordsTableDirty() {\n let records = this.getTableRecords(true);\n if (records.length == 0) {\n OverlayError.show('No records to save');\n return;\n }\n let formElement = TableBasePage.getFormFilters();\n let comment = DOM.getElementValueCurrent(document.querySelector(idTextareaConfirm));\n /*\n Utils.consoleLogIfNotProductionEnvironment({ formElement, comment, records });\n Utils.consoleLogIfNotProductionEnvironment('records');\n Utils.consoleLogIfNotProductionEnvironment(records);\n debugger;\n */\n this.callSaveTableContent(records, formElement, comment)\n .then(data => {\n if (data[flagStatus] == flagSuccess) {\n if (_verbose) { \n Utils.consoleLogIfNotProductionEnvironment('Records saved!');\n Utils.consoleLogIfNotProductionEnvironment('Data received:', data);\n }\n this.callFilterTableContent();\n }\n else {\n Utils.consoleLogIfNotProductionEnvironment(\"error: \", data[flagMessage]);\n OverlayError.show(data[flagMessage]);\n }\n })\n .catch(error => console.error('Error:', error));\n }\n getTableRecords(dirtyOnly = false) {\n let records = [];\n let record;\n document.querySelectorAll(idTableMain + ' > tbody > tr').forEach((row) => {\n if (dirtyOnly && !DOM.hasDirtyChildrenContainer(row)) return;\n record = this.getJsonRow(row);\n records.push(record);\n });\n return records;\n }\n getJsonRow(row) {\n throw new Error(\"Subclass of TableBasePage must implement method getJsonRow().\");\n }\n saveRecordsTableDirtySinglePageApp() {\n let records = this.getTableRecords(true);\n if (records.length == 0) {\n OverlayError.show('No records to save');\n return;\n }\n let formElement = TableBasePage.getFormFilters();\n let comment = DOM.getElementValueCurrent(document.querySelector(idTextareaConfirm));\n this.callSaveTableContent(records, formElement, comment)\n .then(data => {\n if (data[flagStatus] == flagSuccess) {\n if (_verbose) { \n Utils.consoleLogIfNotProductionEnvironment('Records saved!');\n Utils.consoleLogIfNotProductionEnvironment('Data received:', data);\n }\n this.callbackLoadTableContent(data);\n }\n else {\n Utils.consoleLogIfNotProductionEnvironment(\"error: \", data[flagMessage]);\n OverlayError.show(data[flagMessage]);\n }\n })\n .catch(error => console.error('Error:', error));\n }\n hookupButtonCancel() {\n Events.initialiseEventHandler(idFormFilters + ' button.' + flagCancel, flagInitialised, (button) => {\n button.addEventListener(\"click\", (event) => {\n event.stopPropagation();\n button = event.target;\n if (button.classList.contains(flagIsCollapsed)) return;\n this.callFilterTableContent();\n });\n button.classList.add(flagIsCollapsed);\n });\n }\n handleClickAddRowTable(event, button) {\n event.stopPropagation();\n _rowBlank.setAttribute(this.constructor.attrIdRowObject, -1 - _rowBlank.getAttribute(this.constructor.attrIdRowObject));\n let tbody = document.querySelector(idTableMain + ' tbody');\n if (tbody.classList.contains(flagIsCollapsed)) return;\n let row = _rowBlank.cloneNode(true);\n row.classList.remove(flagInitialised);\n row.querySelectorAll('.' + flagInitialised).forEach(function(element) {\n element.classList.remove(flagInitialised);\n });\n let countRows = document.querySelectorAll(idTableMain + ' > tbody > tr').length;\n row.setAttribute(this.constructor.attrIdRowObject, -1 - countRows);\n this.initialiseRowNew(tbody, row);\n tbody.prepend(row);\n tbody.scrollTop = 0;\n this.hookupTableMain();\n this.postInitialiseRowNewCallback(tbody);\n }\n initialiseRowNew(tbody, row) {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Subclass of TableBasePage must implement method initialiseRowNew().\");\n }\n // row.classList.remove(flagRowNew);\n }\n hookupTableMain() {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Must implement hookupTableMain() method.\");\n }\n Events.initialiseEventHandler(idTableMain, flagInitialised, (table) => {\n this.cacheRowBlank();\n });\n }\n cacheRowBlank() {\n let selectorRowNew = idTableMain + ' tbody tr.' + flagRowNew;\n let rowBlankTemp = document.querySelector(selectorRowNew);\n Utils.consoleLogIfNotProductionEnvironment(\"row blank temp: \", rowBlankTemp);\n let countRows = document.querySelectorAll(idTableMain + ' > tbody > tr').length;\n _rowBlank = rowBlankTemp.cloneNode(true);\n document.querySelectorAll(selectorRowNew).forEach(function(row) {\n row.remove();\n });\n _rowBlank.setAttribute(this.constructor.attrIdRowObject, -1 - countRows);\n }\n postInitialiseRowNewCallback(tbody) {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Subclass of TableBasePage must implement method postInitialiseRowNewCallback(tbody).\");\n }\n }\n initialiseSliderDisplayOrderRowNew(tbody, row) {\n // let tdSelector = ':scope > tr > td.' + flagDisplayOrder;\n // let tbody = document.querySelector('table' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > tbody');\n let slidersDisplayOrder = tbody.querySelectorAll(':scope > tr > td.' + flagDisplayOrder + ' input.' + flagSlider);\n let maxDisplayOrder = 0;\n slidersDisplayOrder.forEach((slider) => {\n maxDisplayOrder = Math.max(maxDisplayOrder, parseFloat(DOM.getElementValueCurrent(slider)));\n });\n let sliderDisplayOrder = row.querySelector('td.' + flagDisplayOrder + ' .' + flagSlider);\n DOM.setElementValuesCurrentAndPrevious(sliderDisplayOrder, maxDisplayOrder + 1);\n }\n hookupSlidersDisplayOrderTable() {\n let selectorDisplayOrder = idTableMain + ' tbody tr td.' + flagDisplayOrder + ' input.' + flagSlider + '.' + flagDisplayOrder;\n this.hookupChangeHandlerTableCells(selectorDisplayOrder);\n }\n hookupChangeHandlerTableCells(inputSelector, handler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n Events.initialiseEventHandler(inputSelector, flagInitialised, (input) => {\n input.addEventListener(\"change\", (event) => {\n handler(event, input);\n });\n handler(null, input);\n });\n }\n handleChangeNestedElementCellTable(event, element) {\n let wasDirtyParentRows = this.getAllIsDirtyRowsInParentTree(element);\n let wasDirtyElement = element.classList.contains(flagDirty);\n let isDirtyElement = DOM.updateAndCheckIsElementDirty(element);\n // Utils.consoleLogIfNotProductionEnvironment({isDirtyElement, wasDirtyElement, wasDirtyParentRows});\n // let td = DOM.getCellFromElement(element);\n // DOM.setElementAttributeValueCurrent(td, DOM.getElementAttributeValueCurrent(element));\n if (isDirtyElement != wasDirtyElement) {\n // DOM.handleDirtyElement(td, isDirtyElement);\n this.updateAndToggleShowButtonsSaveCancel();\n this.cascadeChangedIsDirtyNestedElementCellTable(element, isDirtyElement, wasDirtyParentRows);\n }\n }\n getAllIsDirtyRowsInParentTree(element) {\n let rows = [];\n let parent = element;\n let isDirty;\n while (parent) {\n if (parent.tagName.toUpperCase() == 'TR') {\n isDirty = parent.classList.contains(flagDirty)\n rows.push(isDirty);\n }\n parent = parent.parentElement;\n }\n return rows;\n }\n cascadeChangedIsDirtyNestedElementCellTable(element, isDirtyElement, wasDirtyParentRows) {\n if (Validation.isEmpty(wasDirtyParentRows)) return;\n let tr = DOM.getRowFromElement(element);\n let isDirtyRow = isDirtyElement || DOM.hasDirtyChildrenContainer(tr);\n let wasDirtyRow = wasDirtyParentRows.shift();\n Utils.consoleLogIfNotProductionEnvironment({isDirtyRow, wasDirtyRow});\n if (isDirtyRow != wasDirtyRow) {\n DOM.handleDirtyElement(tr, isDirtyRow);\n this.updateAndToggleShowButtonsSaveCancel();\n this.cascadeChangedIsDirtyNestedElementCellTable(tr.parentElement, isDirtyRow, wasDirtyParentRows);\n }\n }\n hookupChangeHandlerTableCellsWhenNotCollapsed(inputSelector, handler = (event, element) => {\n if (!element.classList.contains(flagIsCollapsed)) this.handleChangeNestedElementCellTable(event, element);\n }) {\n Events.hookupEventHandler(\"change\", inputSelector, handler);\n }\n hookupFieldsCodeTable() {\n this.hookupChangeHandlerTableCells(idTableMain + ' > tbody > tr > td.' + flagCode + ' > .' + flagCode);\n }\n hookupFieldsNameTable() {\n this.hookupChangeHandlerTableCells(idTableMain + ' > tbody > tr > td.' + flagName + ' > .' + flagName);\n }\n hookupFieldsDescriptionTable() {\n this.hookupChangeHandlerTableCells(idTableMain + ' > tbody > tr > td.' + flagDescription + ' > .' + flagDescription);\n }\n hookupFieldsNotesTable() {\n this.hookupChangeHandlerTableCells(idTableMain + ' > tbody > tr > td.' + flagNotes + ' > .' + flagNotes);\n }\n hookupFieldsActive(flagTable = '', handleClickRowNew = (event, element) => { this.handleClickAddRowTable(event, element); }) {\n let selectorButton = 'table.table-main' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > tbody > tr > td.' + flagActive + ' .' + flagButton + '.' + flagActive;\n let selectorButtonDelete = selectorButton + '.' + flagDelete;\n let selectorButtonUndelete = selectorButton + ':not(.' + flagDelete + ')';\n Utils.consoleLogIfNotProductionEnvironment(\"hookupFieldsActive: \", selectorButtonDelete, selectorButtonUndelete);\n this.hookupButtonsRowDelete(selectorButtonDelete, selectorButtonUndelete);\n this.hookupButtonsRowUndelete(selectorButtonDelete, selectorButtonUndelete);\n Events.hookupEventHandler(\n \"click\"\n , 'table.table-main' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > thead > tr > th.' + flagActive + ' .' + flagButton + '.' + flagActive\n , (event, button) => { handleClickRowNew(event, button); }\n );\n }\n hookupButtonsRowDelete(selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n Events.hookupEventHandler(\"click\", selectorButtonDelete, (event, element) => {\n this.handleClickButtonRowDelete(event, element, selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });\n });\n }\n handleClickButtonRowDelete(event, element, selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n if (element.tagName.toUpperCase() != 'SVG') element = element.parentElement;\n let valuePrevious = DOM.getElementAttributeValuePrevious(element);\n let wasDirty = element.classList.contains(flagDirty);\n let row = DOM.getRowFromElement(element);\n if (row.classList.contains(flagRowNew) && !DOM.hasDirtyChildrenContainer(row)) {\n row.parentNode.removeChild(row);\n }\n else {\n let buttonAddTemplate = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagActive + '.' + flagAdd);\n let buttonAdd = buttonAddTemplate.cloneNode(true);\n DOM.setElementAttributeValuePrevious(buttonAdd, valuePrevious);\n DOM.setElementAttributeValueCurrent(buttonAdd, false);\n if (wasDirty) buttonAdd.classList.add(flagDirty);\n element.replaceWith(buttonAdd);\n changeHandler(null, buttonAdd);\n this.hookupButtonsRowUndelete(selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });\n }\n this.updateAndToggleShowButtonsSaveCancel();\n }\n hookupButtonsRowUndelete(selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n Events.hookupEventHandler(\"click\", selectorButtonUndelete, (event, element) => {\n this.handleClickButtonRowUndelete(event, element, selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });\n });\n }\n handleClickButtonRowUndelete(event, element, selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n if (element.tagName.toUpperCase() != 'SVG') element = element.parentElement;\n let valuePrevious = DOM.getElementAttributeValuePrevious(element);\n let wasDirty = DOM.isElementDirty(element);\n let buttonDeleteTemplate = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagActive + '.' + flagDelete);\n let buttonDelete = buttonDeleteTemplate.cloneNode(true);\n DOM.setElementAttributeValuePrevious(buttonDelete, valuePrevious);\n DOM.setElementAttributeValueCurrent(buttonDelete, true);\n if (wasDirty) buttonDelete.classList.add(flagDirty);\n element.replaceWith(buttonDelete);\n changeHandler(null, buttonDelete);\n this.hookupButtonsRowDelete(selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });\n this.updateAndToggleShowButtonsSaveCancel();\n }\n hookupTdsAccessLevel() {\n this.hookupTableCellDdlPreviews(flagAccessLevel, Utils.getListFromDict(accessLevels));\n }\n hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector = null\n , ddlHookup = (ddlSelector) => { this.hookupTableCellDdls(ddlSelector); }\n , changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }\n ) {\n if (cellSelector == null) cellSelector = idTableMain + ' > tbody > tr > td.' + fieldFlag;\n Events.hookupEventHandler(\"click\", cellSelector + ' div.' + fieldFlag, (event, div) => {\n this.handleClickTableCellDdlPreview(\n event\n , div\n , fieldFlag\n , optionList\n , cellSelector\n , (ddlSelector) => { ddlHookup(\n ddlSelector\n , (event, element) => { changeHandler(event, element); }\n ); }\n );\n });\n ddlHookup(cellSelector + ' select.' + fieldFlag);\n }\n hookupTableCellDdls(ddlSelector, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n this.hookupChangeHandlerTableCells(ddlSelector, (event, element) => { changeHandler(event, element); });\n }\n handleClickTableCellDdlPreview(event, div, fieldFlag, optionObjectList, cellSelector = null, ddlHookup = (cellSelector) => { this.hookupTableCellDdls(cellSelector); }) {\n if (Validation.isEmpty(cellSelector)) cellSelector = idTableMain + ' > tbody > tr > td.' + fieldFlag;\n let idSelected = DOM.getElementAttributeValueCurrent(div);\n let td = DOM.getCellFromElement(div);\n td.innerHTML = '';\n let ddl = document.createElement('select');\n ddl.classList.add(fieldFlag);\n DOM.setElementValuesCurrentAndPrevious(ddl, idSelected);\n let optionJson, option;\n if (_verbose) { \n Utils.consoleLogIfNotProductionEnvironment(\"click table cell ddl preview\");\n Utils.consoleLogIfNotProductionEnvironment({optionObjectList, cellSelector});\n }\n option = DOM.createOption(null);\n ddl.appendChild(option);\n optionObjectList.forEach((optionObjectJson) => {\n optionJson = BusinessObjects.getOptionJsonFromObjectJson(optionObjectJson, idSelected);\n option = DOM.createOption(optionJson);\n ddl.appendChild(option);\n });\n td.appendChild(ddl);\n let ddlSelector = cellSelector + ' select.' + fieldFlag;\n ddlHookup(ddlSelector);\n }\n /*\n hookupTableCellDDlPreviewsWhenNotCollapsed(cellSelector, optionList, ddlHookup = (event, element) => { this.hookupTableCellDdls(event, element); }) {\n Events.hookupEventHandler(\"click\", cellSelector + ' div', (event, div) => {\n this.handleClickTableCellDdlPreview(event, div, optionList, cellSelector, (event, element) => { ddlHookup(event, element); });\n });\n }\n */\n toggleColumnCollapsed(flagColumn, isCollapsed) {\n this.toggleColumnHasClassnameFlag(flagColumn, isCollapsed, flagIsCollapsed);\n }\n toggleColumnHeaderCollapsed(flagColumn, isCollapsed) {\n this.toggleColumnHasClassnameFlag(flagColumn, isCollapsed, flagIsCollapsed);\n }\n\n hookupFieldsCommandCategory(idTable = null) {\n if (idTable == null) idTable = idTableMain;\n this.hookupTableCellDdlPreviews(\n flagCommandCategory\n , Utils.getListFromDict(filterCommandCategories).sort((a, b) => a[flagName].localeCompare(b[flagName]))\n , idTable + ' > tbody > tr > td.' + flagCommandCategory // + ' .' + flagCommandCategory\n , (cellSelector) => { this.hookupCommandCategoryDdls(cellSelector); }\n );\n }\n hookupCommandCategoryDdls(ddlSelector) {\n this.hookupChangeHandlerTableCells(ddlSelector, (event, element) => { this.handleChangeCommandCategoryDdl(event, element); });\n }\n handleChangeCommandCategoryDdl(event, ddlCategory) {\n let row = DOM.getRowFromElement(ddlCategory);\n let idCommandCategoryRowOld = this.getIdCommandCategoryRow(row); // DOM.getElementAttributeValueCurrent(ddlCategory);\n this.handleChangeNestedElementCellTable(event, ddlCategory);\n let idCommandCategoryRowNew = this.getIdCommandCategoryRow(row); // DOM.getElementAttributeValueCurrent(ddlCategory);\n if (\n idCommandCategoryRowOld == idCommandCategoryRowNew\n || idCommandCategoryRowNew == 0\n ) return;\n console.log({ idCommandCategoryRowNew, idCommandCategoryRowOld });\n let idCommandCategoryFilter = this.getIdCommandCategoryFilter();\n let tdCommand = row.querySelector('td.' + flagCommand);\n tdCommand.dispatchEvent(new Event('click'));\n let ddlCommand = row.querySelector('td.' + flagCommand + ' select.' + flagCommand);\n ddlCommand.innerHTML = '';\n ddlCommand.appendChild(DOM.createOption(null));\n let optionJson, option;\n let commandsInCategory = Utils.getListFromDict(filterCommands).filter(command => \n (\n command[attrIdCommandCategory] == idCommandCategoryRowNew\n || idCommandCategoryRowNew == 0\n )\n && (\n command[attrIdCommandCategory] == idCommandCategoryFilter\n || idCommandCategoryFilter == 0\n )\n );\n let sortedCommands = commandsInCategory.sort((a, b) => a[flagName].localeCompare(b[flagName]));\n sortedCommands.forEach((command) => {\n optionJson = BusinessObjects.getOptionJsonFromObjectJson(command);\n option = DOM.createOption(optionJson);\n ddlCommand.appendChild(option);\n });\n this.handleChangeNestedElementCellTable(event, ddlCommand);\n }\n hookupFieldsCommand(idTable = null) {\n if (idTable == null) idTable = idTableMain;\n Events.hookupEventHandler(\"click\", idTable + ' > tbody > tr > td.' + flagCommand + ' div.' + flagCommand, (event, div) => {\n Utils.consoleLogIfNotProductionEnvironment(div);\n let parentTr = DOM.getRowFromElement(div);\n Utils.consoleLogIfNotProductionEnvironment({ div, parentTr });\n let tdCommandCategory = parentTr.querySelector('td.' + flagCommandCategory);\n let idCommandCategoryRow = this.getIdCommandCategoryRow(parentTr); // DOM.getElementAttributeValueCurrent(tdCommandCategory);\n let idCommandCategoryFilter = this.getIdCommandCategoryFilter();\n let filterCommandList = Utils.getListFromDict(filterCommands);\n let commandsInCategory = filterCommandList.filter(command => \n (\n command[attrIdCommandCategory] == idCommandCategoryRow\n || idCommandCategoryRow == 0\n )\n && (\n command[attrIdCommandCategory] == idCommandCategoryFilter\n || idCommandCategoryFilter == 0\n )\n );\n let sortedCommands = commandsInCategory.sort((a, b) => a[flagName].localeCompare(b[flagName]));\n Utils.consoleLogIfNotProductionEnvironment({ tdCommandCategory, idCommandCategoryRow, idCommandCategoryFilter, filterCommandList, commandsInCategory });\n Utils.consoleLogIfNotProductionEnvironment(filterCommandList);\n this.handleClickTableCellDdlPreview(\n event\n , div\n , flagCommand // fieldFlag\n , sortedCommands // optionList\n , idTable + ' > tbody > tr > td.' + flagCommand // cellSelector\n , (cellSelector) => { this.hookupTableCellDdls(\n cellSelector\n , (event, element) => { this.handleChangeCommandDdl(event, element); }\n ); }\n );\n });\n this.hookupTableCellDdls(\n idTable + ' > tbody > tr > td.' + flagCommand + ' select.' + flagCommand\n , (event, element) => { this.handleChangeCommandDdl(event, element); }\n );\n }\n handleChangeCommandDdl(event, ddlCommand) {\n // console.log(\"handle change command ddl\");\n let row = DOM.getRowFromElement(ddlCommand);\n this.handleChangeNestedElementCellTable(event, ddlCommand);\n let idCommandCategoryRowOld = this.getIdCommandCategoryRow(row);\n let idCommandNew = this.getIdCommandRow(row);\n let commandNew = filterCommands[idCommandNew];\n // console.log({ idCommandCategoryRowOld, commandNew });\n if (commandNew == null || idCommandCategoryRowOld == commandNew[attrIdCommandCategory]) return;\n let divCommandCategory = row.querySelector('td.' + flagCommandCategory + ' div');\n if (divCommandCategory) divCommandCategory.dispatchEvent(new Event('click'));\n let ddlCommandCategory = row.querySelector('td.' + flagCommandCategory + ' select.' + flagCommandCategory);\n DOM.setElementValueCurrent(ddlCommandCategory, commandNew[attrIdCommandCategory]);\n // console.log({ ddlCommandCategory, commandNew });\n this.handleChangeNestedElementCellTable(event, ddlCommandCategory);\n }\n getIdCommandCategoryRow(tr) {\n let elementCommandCategory = tr.querySelector('td.' + flagCommandCategory + ' .' + flagCommandCategory);\n return DOM.getElementAttributeValueCurrent(elementCommandCategory);\n }\n getIdCommandCategoryFilter() {\n let formFilters = TableBasePage.getFormFilters();\n let idCommandCategory = 0;\n if (formFilters == null) return idCommandCategory;\n let commandCategoryFilter = formFilters.querySelector('#' + attrIdCommandCategory);\n let commandFilter = formFilters.querySelector('#' + attrIdCommand);\n let valueCurrentCommandCategoryFilter = DOM.getElementAttributeValueCurrent(commandCategoryFilter);\n Utils.consoleLogIfNotProductionEnvironment({ valueCurrentCommandCategoryFilter });\n if (valueCurrentCommandCategoryFilter == \"\") {\n let valueCurrentCommandFilter = DOM.getElementAttributeValueCurrent(commandFilter);\n Utils.consoleLogIfNotProductionEnvironment({ valueCurrentCommandFilter });\n if (valueCurrentCommandFilter != \"\") {\n let command = filterCommands[valueCurrentCommandFilter];\n idCommandCategory = command[attrIdCommandCategory];\n }\n } else {\n idCommandCategory = Number(valueCurrentCommandCategoryFilter);\n }\n return idCommandCategory;\n }\n getHasCommandCategoryFilter() {\n let idCommandCategoryFilter = this.getIdCommandCategoryFilter();\n return !(Validation.isEmpty(idCommandCategoryFilter) || idCommandCategoryFilter == 0);\n }\n getIdCommandRow(tr) {\n let elementCommand = tr.querySelector('td.' + flagCommand + ' .' + flagCommand);\n return DOM.getElementAttributeValueCurrent(elementCommand);\n }\n getIdCommandFilter() {\n let formFilters = TableBasePage.getFormFilters();\n let commandFilter = formFilters.querySelector('#' + attrIdCommand);\n let valueCurrentCommandFilter = DOM.getElementAttributeValueCurrent(commandFilter);\n let idCommand = Number(valueCurrentCommandFilter);\n return idCommand;\n }\n getHasCommandFilter() {\n let idCommandFilter = this.getIdCommandFilter();\n return !(Validation.isEmpty(idCommandFilter) || idCommandFilter == 0);\n }\n hookupFieldsDog() {\n this.hookupTableCellDdlPreviews(flagDog, Utils.getListFromDict(filterDogs));\n }\n getIdDogRow(tr) {\n let elementDog = tr.querySelector('td.' + flagDog + ' .' + flagDog);\n return DOM.getElementAttributeValueCurrent(elementDog);\n }\n /*\n createTdActive(isActive) {\n let tdActive = document.createElement(\"td\");\n tdActive.classList.add(flagActive);\n let buttonActive = document.createElement(\"button\");\n buttonActive.classList.add(flagActive);\n buttonActive.classList.add(isActive ? flagDelete : flagAdd);\n buttonActive.textContent = isActive ? 'x' : '+';\n DOM.setElementAttributesValuesCurrentAndPrevious(buttonActive, isActive);\n tdActive.appendChild(buttonActive);\n return tdActive;\n }\n */\n leave() {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Must implement leave() method.\");\n }\n super.leave();\n let formFilters = TableBasePage.getFormFilters();\n let dataPage = {};\n dataPage[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n this.setLocalStoragePage(dataPage);\n }\n\n toggleColumnHasClassnameFlag(columnFlag, isRequiredFlag, classnameFlag) {\n let table = TableBasePage.getTableMain();\n let columnTh = table.querySelector('th.' + columnFlag);\n let columnThHasFlag = columnTh.classList.contains(classnameFlag);\n if (isRequiredFlag == columnThHasFlag) return;\n DOM.toggleElementHasClassnameFlag(columnTh, isRequiredFlag, classnameFlag);\n }\n toggleColumnHeaderHasClassnameFlag(columnFlag, isRequiredFlag, classnameFlag) {\n let table = TableBasePage.getTableMain();\n let columnTh = table.querySelector('th.' + columnFlag);\n DOM.toggleElementHasClassnameFlag(columnTh, isRequiredFlag, classnameFlag);\n }\n\n updateAndToggleShowButtonsSaveCancel() {\n let records = this.getTableRecords(true);\n let isDirtyMainTable = records.length > 0;\n\n let formFilters = TableBasePage.getFormFilters();\n let areDirtyFilters = DOM.hasDirtyChildrenContainer(formFilters);\n\n this.toggleShowButtonsSaveCancel(isDirtyMainTable && !areDirtyFilters);\n }\n}\n","\nimport Events from \"../../lib/events.js\";\nimport LocalStorage from \"../../lib/local_storage.js\";\nimport Validation from \"../../lib/validation.js\";\n// import BasePage from \"../base.js\";\nimport DOM from \"../../dom.js\";\nimport { isEmpty } from \"../../lib/utils.js\";\nimport TableBasePage from \"../base_table.js\";\n\nexport default class DogMixinPage {\n constructor(pageCurrent) {\n this.page = pageCurrent;\n }\n\n initialize() {\n Utils.consoleLogIfNotProductionEnvironment('hookup dog start for ', this.page.hash);\n this.hookupFilters();\n this.hookupLocalStorageDog();\n }\n hookupFilters() {\n }\n hookupLocalStorageDog() {\n \n }\n\n /*\n hookupDogCardsProduct() {\n \n let d; // , lsShared;\n let selectorCardProduct = '.card.subcard';\n Events.initialiseEventHandler(selectorCardProduct, flagInitialised, function(cardProduct) {\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"initialising product card: \", cardProduct); }\n cardProduct.addEventListener(\"click\", function(event) {\n // d = { keyIdProduct: product.getAttribute(attrIdProduct) }\n var elemClicked = event.target;\n if (elemClicked.id != 'submit') { // disable for submit buttons\n if (_verbose) { \n Utils.consoleLogIfNotProductionEnvironment(\"product click: \" + cardProduct.getAttribute(attrIdProduct));\n Utils.consoleLogIfNotProductionEnvironment(\"permutation click: \" + cardProduct.getAttribute(attrIdPermutation));\n }\n var d = {}\n d[keyIdProduct] = cardProduct.getAttribute(attrIdProduct)\n d[keyIdPermutation] = cardProduct.getAttribute(attrIdPermutation)\n // send quantity requested\n goToPage(hashPageDogProduct, d);\n }\n });\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"click method added for product ID: \" + cardProduct.getAttribute(attrIdProduct) + ', permutation ID: ', cardProduct.getAttribute(attrIdPermutation)); }\n });\n }\n */\n \n leave() {}\n}\n","\nimport Events from \"../../lib/events.js\";\nimport LocalStorage from \"../../lib/local_storage.js\";\nimport Validation from \"../../lib/validation.js\";\n// import BasePage from \"../base.js\";\nimport DOM from \"../../dom.js\";\nimport { isEmpty } from \"../../lib/utils.js\";\nimport DogMixinPage from \"./mixin.js\";\nimport Utils from \"../../lib/utils.js\";\n\nexport default class DogTableMixinPage extends DogMixinPage {\n constructor(pageCurrent) {\n super(pageCurrent);\n }\n initialize() {\n super.initialize();\n this.hookupFilters();\n this.hookupTable();\n }\n hookupFilters() {\n // Implement filter-specific functionality here\n }\n hookupTable() {\n // Implement table-specific functionality here\n }\n hookupFieldsLocation() {\n this.page.hookupTableCellDdlPreviews(\n flagLocation\n , Utils.getListFromDict(filterLocations) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n}","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogCommandCategories extends TableBasePage {\n static hash = hashPageDogCommandCategories;\n static attrIdRowObject = attrIdCommandCategory;\n callSaveTableContent = API.saveCommandCategories;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterActive();\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n Utils.consoleLogIfNotProductionEnvironment({ row });\n if (row == null) return;\n let inputCode = row.querySelector('td.' + flagCode + ' .' + flagCode);\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n \n console.log(\"inputCode\");\n console.log(inputCode);\n\n let jsonRow = {};\n jsonRow[attrIdCommandCategory] = row.getAttribute(attrIdCommandCategory);\n jsonRow[flagCode] = DOM.getElementAttributeValueCurrent(inputCode);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n // let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsCodeTable();\n this.hookupFieldsNameTable();\n this.hookupFieldsActive();\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogCommands extends TableBasePage {\n static hash = hashPageDogCommands;\n static attrIdRowObject = attrIdCommand;\n callSaveTableContent = API.saveCommands;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterCommandCategory();\n this.hookupFilterActive();\n }\n hookupFilterCommandCategory() {\n this.hookupFilter(attrIdCommandCategory);\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let inputHandSignalDefaultDescription = row.querySelector('td.' + flagHandSignalDefaultDescription + ' .' + flagHandSignalDefaultDescription);\n let inputCanHaveButton = row.querySelector('td.' + flagCanHaveButton + ' .' + flagCanHaveButton);\n let inputNotes = row.querySelector('td.' + flagNotes + ' .' + flagNotes);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n /*\n Utils.consoleLogIfNotProductionEnvironment({ inputName, inputHandSignalDefaultDescription, inputCanHaveButton, inputNotes, buttonActive });\n debugger;\n */\n\n let jsonRow = {};\n jsonRow[attrIdCommand] = row.getAttribute(attrIdCommand);\n jsonRow[attrIdCommandCategory] = this.getIdCommandCategoryRow(row);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagHandSignalDefaultDescription] = DOM.getElementAttributeValueCurrent(inputHandSignalDefaultDescription);\n jsonRow[flagCanHaveButton] = (DOM.getElementAttributeValueCurrent(inputCanHaveButton) == \"true\");\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDog + ' div.' + flagDog\n , ',td.' + flagCommandCategory + ' div.' + flagCommandCategory\n , ',td.' + flagCommand + ' div.' + flagCommand\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsCommandCategory();\n this.hookupFieldsNameTable();\n this.hookupTextareasHandSignalDefaultDescription();\n this.hookupFieldsCanHaveButton();\n this.hookupFieldsNotesTable();\n this.hookupFieldsActive();\n }\n hookupFieldsCommandCategory() {\n this.hookupTableCellDdlPreviews(\n flagCommandCategory\n , Utils.getListFromDict(filterCommandCategories)\n );\n }\n hookupTextareasHandSignalDefaultDescription() {\n this.hookupChangeHandlerTableCells(idTableMain + ' td.' + flagHandSignalDefaultDescription + ' .' + flagHandSignalDefaultDescription);\n }\n hookupFieldsCanHaveButton() {\n this.hookupChangeHandlerTableCells(idTableMain + ' td.' + flagCanHaveButton + ' .' + flagCanHaveButton);\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogDogCommandLinks extends TableBasePage {\n static hash = hashPageDogDogCommandLinks;\n static attrIdRowObject = attrIdDogCommandLink;\n callSaveTableContent = API.saveDogCommandLinks;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterDog();\n this.hookupFilterCommandCategory();\n this.hookupFilterCommand();\n this.hookupFilterActive();\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputHandSignalDescription = row.querySelector('td.' + flagHandSignalDescription + ' textarea');\n let inputNotes = row.querySelector('td.' + flagNotes + ' textarea');\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdDogCommandLink] = row.getAttribute(attrIdDogCommandLink);\n jsonRow[attrIdDog] = this.getIdDogRow(row);\n jsonRow[attrIdCommand] = this.getIdCommandRow(row);\n jsonRow[flagHandSignalDescription] = DOM.getElementAttributeValueCurrent(inputHandSignalDescription);\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDog + ' div.' + flagDog\n , ',td.' + flagCommandCategory + ' div.' + flagCommandCategory\n , ',td.' + flagCommand + ' div.' + flagCommand\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsDog();\n this.hookupFieldsCommandCategory();\n this.hookupFieldsCommand();\n this.hookupTextareasHandSignalDescription();\n this.hookupFieldsNotesTable();\n this.hookupFieldsActive();\n }\n hookupTextareasHandSignalDescription() {\n this.hookupChangeHandlerTableCells(idTableMain + ' td.' + flagHandSignalDescription + ' .' + flagHandSignalDescription);\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogLocations extends TableBasePage {\n static hash = hashPageDogLocations;\n static attrIdRowObject = attrIdLocation;\n callSaveTableContent = API.saveLocations;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterActive();\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdLocation] = row.getAttribute(attrIdLocation);\n jsonRow[flagLocationParent] = this.getIdLocationParentRow(row);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n\n console.log(\"jsonRow\");\n console.log(jsonRow);\n\n return jsonRow;\n }\n getIdLocationParentRow(row) {\n let elementLocationParent = row.querySelector('td.' + flagLocationParent + ' .' + flagLocationParent);\n return DOM.getElementAttributeValueCurrent(elementLocationParent);\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagLocationParent + ' div.' + flagLocationParent\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsLocationParent();\n this.hookupFieldsNameTable();\n this.hookupFieldsActive();\n }\n hookupFieldsLocationParent() {\n /*\n this.hookupTableCellDdlPreviews(\n flagLocationParent\n , Utils.getListFromDict(locations).filter(location => \n (\n location[attrIdLocation] == idLocationRow\n || idLocationRow < 1\n )\n ) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n , null // cellSelector\n , (cellSelector) => { this.hookupLocationParentDdls(cellSelector); }\n ,\n );\n\n fieldFlag\n , optionList\n , cellSelector = null\n , ddlHookup = (ddlSelector) => { this.hookupTableCellDdls(ddlSelector); }\n , changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }\n ) {\n\n */\n let cellSelector = idTableMain + ' > tbody > tr > td.' + flagLocationParent;\n Events.hookupEventHandler(\"click\", cellSelector + ' div.' + flagLocationParent, (event, div) => {\n let row = DOM.getRowFromElement(div);\n let idLocationRow = Number(row.getAttribute(attrIdLocation));\n Utils.consoleLogIfNotProductionEnvironment({ idLocationRow });\n this.handleClickTableCellDdlPreview(\n event\n , div\n , flagLocationParent\n , Utils.getListFromDict(locations).filter(location => \n (\n location[attrIdLocation] != idLocationRow\n || idLocationRow < 1\n )\n ) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n , cellSelector\n , (ddlSelector) => { this.hookupTableCellDdls(\n ddlSelector\n , (event, element) => { this.handleChangeNestedElementCellTable(event, element); }\n ); }\n );\n });\n this.hookupTableCellDdls(\n cellSelector + ' select.' + flagLocationParent\n , (event, element) => { this.handleChangeNestedElementCellTable(event, element); }\n );\n }\n /*\n hookupLocationParentDdls(ddlSelector) {\n this.hookupChangeHandlerTableCells(ddlSelector, (event, element) => { this.handleChangeNestedElementCellTable(event, element); });\n }\n */\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogButtonIcons extends TableBasePage {\n static hash = hashPageDogButtonIcons;\n static attrIdRowObject = attrIdButtonIcon;\n callSaveTableContent = API.saveButtonIcons;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterActive();\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdButtonIcon] = row.getAttribute(attrIdButtonIcon);\n jsonRow[flagImage] = this.getIdImageRow(row);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n\n console.log(\"jsonRow\");\n console.log(jsonRow);\n\n return jsonRow;\n }\n getIdImageRow(row) {\n let elementImage = row.querySelector('td.' + flagImage + ' .' + flagImage);\n return DOM.getElementAttributeValueCurrent(elementImage);\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagImage + ' div.' + flagImage\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsImage();\n this.hookupFieldsNameTable();\n this.hookupFieldsActive();\n }\n hookupFieldsImage() {\n this.hookupTableCellDdlPreviews(\n flagImage\n , Utils.getListFromDict(buttonicons) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogCommandButtonLinks extends TableBasePage {\n static hash = hashPageDogCommandButtonLinks;\n static attrIdRowObject = attrIdCommandButtonLink;\n callSaveTableContent = API.saveCommandButtonLinks;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterCommandCategory();\n this.hookupFilterCommand();\n this.hookupFilterButtonShape();\n this.hookupFilterColour();\n this.hookupFilterButtonIcon();\n this.hookupFilterLocation();\n this.hookupFilterActive();\n }\n hookupFilterButtonShape() {\n this.hookupFilter(attrIdButtonShape);\n }\n hookupFilterColour() {\n this.hookupFilter(attrIdColour);\n }\n hookupFilterButtonIcon() {\n this.hookupFilter(attrIdButtonIcon);\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputHandSignalDescription = row.querySelector('td.' + flagHandSignalDescription + ' textarea');\n let inputNotes = row.querySelector('td.' + flagNotes + ' textarea');\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdCommandButtonLink] = row.getAttribute(attrIdCommandButtonLink);\n jsonRow[attrIdDog] = this.getIdDogRow(row);\n jsonRow[attrIdCommand] = this.getIdCommandRow(row);\n jsonRow[flagHandSignalDescription] = DOM.getElementAttributeValueCurrent(inputHandSignalDescription);\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDog + ' div.' + flagDog\n , ',td.' + flagCommandCategory + ' div.' + flagCommandCategory\n , ',td.' + flagCommand + ' div.' + flagCommand\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsCommandCategory();\n this.hookupFieldsCommand();\n this.hookupFieldsButtonShape();\n this.hookupFieldsColour();\n this.hookupFieldsButtonIcon();\n this.dogMixin.hookupFieldsLocation();\n this.hookupFieldsActive();\n }\n hookupFieldsButtonShape() {\n this.hookupTableCellDdlPreviews(\n flagButtonShape\n , Utils.getListFromDict(filterButtonShapes) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n hookupFieldsColour() {\n this.hookupTableCellDdlPreviews(\n flagColour\n , Utils.getListFromDict(filterColours) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n hookupFieldsButtonIcon() {\n this.hookupTableCellDdlPreviews(\n flagButtonIcon\n , Utils.getListFromDict(filterButtonIcons) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nvar _rowBlankDistraction;\nvar _rowBlankAssessmentCommandModalityLink;\n\nexport default class PageDogAssessment extends TableBasePage {\n static hash = hashPageDogAssessment;\n static attrIdRowObject = attrIdAssessment;\n callSaveTableContent = API.saveAssessments;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n /*\n let inputTemperatureCelcius = row.querySelector('td.' + flagTemperatureCelcius + ' input');\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n */\n let jsonRow = {};\n jsonRow[attrIdAssessment] = row.getAttribute(attrIdAssessment);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagWeather + ' div.' + flagWeather\n , ',td.' + flagLightingLevel + ' div.' + flagLightingLevel\n , ',td.' + flagLocation + ' div.' + flagLocation\n , ',td.' + flagUserHandler + ' div.' + flagUserHandler\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupTableAssessmentHeader();\n this.hookupTableDistractions();\n this.hookupTableAssessmentCommandModalityLinks();\n }\n hookupTableAssessmentHeader() {\n this.hookupTableAssessmentFieldWeather();\n this.hookupTableAssessmentFieldLightingLevel();\n this.hookupTableAssessmentFieldTemperature();\n this.hookupTableAssessmentFieldLocation();\n this.hookupTableAssessmentFieldUserHandler();\n this.hookupTableAssessmentFieldNotes();\n }\n hookupTableAssessmentFieldWeather() {\n let fieldFlag = flagWeather;\n let optionList = Utils.getListFromDict(filterWeathers); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessment + ' td.' + flagWeather;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentFieldLightingLevel() {\n let fieldFlag = flagLightingLevel;\n let optionList = Utils.getListFromDict(filterLightingLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessment + ' td.' + flagLightingLevel;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentFieldTemperature() {\n this.hookupChangeHandlerTableCells(idTableAssessment + ' td.' + flagTemperatureCelcius + ' .' + flagTemperatureCelcius);\n }\n hookupTableAssessmentFieldLocation() {\n let fieldFlag = flagLocation;\n let optionList = Utils.getListFromDict(filterLocations); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessment + ' td.' + flagLocation;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentFieldUserHandler() {\n let fieldFlag = flagUserHandler;\n let optionList = Utils.getListFromDict(filterUserHandlers); // .sort((a, b) => a[flagName].localeCompare(b[flagName]));\n let cellSelector = idTableAssessment + ' td.' + flagUserHandler;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentFieldNotes() {\n this.hookupChangeHandlerTableCells(idTableAssessment + ' td.' + flagNotes + ' .' + flagNotes);\n }\n hookupTableDistractions() {\n Events.initialiseEventHandler(idTableDistractions, flagInitialised, (table) => {\n let selectorRowNew = idTableDistractions + ' tbody tr.' + flagRowNew;\n let rowBlankTemp = document.querySelector(selectorRowNew);\n Utils.consoleLogIfNotProductionEnvironment(\"row blank temp: \", rowBlankTemp);\n let countRows = document.querySelectorAll(idTableDistractions + ' > tbody > tr').length;\n _rowBlankDistraction = rowBlankTemp.cloneNode(true);\n document.querySelectorAll(selectorRowNew).forEach(function(row) {\n row.remove();\n });\n _rowBlankDistraction.setAttribute(attrIdDistraction, -1 - countRows);\n });\n\n this.hookupTableDistractionsFieldsDistractionType();\n this.hookupTableDistractionsFieldsIntensityLevelEmotional();\n this.hookupTableDistractionsFieldsIntensityLevelScent();\n this.hookupTableDistractionsFieldsIntensityLevelSight();\n this.hookupTableDistractionsFieldsIntensityLevelSound();\n this.hookupTableDistractionsFieldsIntensityLevelTouch();\n this.hookupTableDistractionsFieldsQuantity();\n this.hookupTableDistractionsFieldsProximityMetres();\n this.hookupTableDistractionsFieldsNotes();\n this.hookupTableDistractionsFieldsActive();\n }\n hookupTableDistractionsFieldsDistractionType() {\n let fieldFlag = flagDistractionType;\n let optionList = Utils.getListFromDict(filterDistractionTypes); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionType;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelEmotional() {\n let fieldFlag = flagDistractionIntensityLevelEmotional;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelEmotional;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelScent() {\n let fieldFlag = flagDistractionIntensityLevelScent;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelScent;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelSight() {\n let fieldFlag = flagDistractionIntensityLevelSight;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelSight;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelSound() {\n let fieldFlag = flagDistractionIntensityLevelSound;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelSound;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelTouch() {\n let fieldFlag = flagDistractionIntensityLevelTouch;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelTouch;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsQuantity() {\n this.hookupChangeHandlerTableCells(idTableDistractions + ' td.' + flagQuantity + ' .' + flagQuantity);\n }\n hookupTableDistractionsFieldsProximityMetres() {\n this.hookupChangeHandlerTableCells(idTableDistractions + ' td.' + flagProximityMetres + ' .' + flagProximityMetres);\n }\n hookupTableDistractionsFieldsNotes() {\n this.hookupChangeHandlerTableCells(idTableDistractions + ' td.' + flagNotes + ' .' + flagNotes);\n }\n hookupTableDistractionsFieldsActive() {\n this.hookupFieldsActive(flagDistraction, (event, element) => { this.handleClickAddRowTableDistractions(event, element); });\n }\n handleClickAddRowTableDistractions(event, button) {\n event.stopPropagation();\n _rowBlankDistraction.setAttribute(attrIdDistraction, -1 - _rowBlankDistraction.getAttribute(attrIdDistraction));\n let tbody = document.querySelector(idTableDistractions + ' tbody');\n if (tbody.classList.contains(flagIsCollapsed)) return;\n let row = _rowBlankDistraction.cloneNode(true);\n row.classList.remove(flagInitialised);\n row.querySelectorAll('.' + flagInitialised).forEach(function(element) {\n element.classList.remove(flagInitialised);\n });\n let countRows = document.querySelectorAll(idTableDistractions + ' > tbody > tr').length;\n row.setAttribute(attrIdDistraction, -1 - countRows);\n tbody.prepend(row);\n tbody.scrollTop = 0;\n this.hookupTableDistractions();\n this.postInitialiseDistractionRowNewCallback(tbody);\n }\n postInitialiseDistractionRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDistractionType + ' div.' + flagDistractionType\n , ',td.' + flagDistractionIntensityLevelEmotional + ' div.' + flagDistractionIntensityLevelEmotional\n , ',td.' + flagDistractionIntensityLevelScent + ' div.' + flagDistractionIntensityLevelScent\n , ',td.' + flagDistractionIntensityLevelSight + ' div.' + flagDistractionIntensityLevelSight\n , ',td.' + flagDistractionIntensityLevelSound + ' div.' + flagDistractionIntensityLevelSound\n , ',td.' + flagDistractionIntensityLevelTouch + ' div.' + flagDistractionIntensityLevelTouch\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n hookupTableAssessmentCommandModalityLinks() {\n Events.initialiseEventHandler(idTableAssessmentCommandModalityLinks, flagInitialised, (table) => {\n let selectorRowNew = idTableAssessmentCommandModalityLinks + ' tbody tr.' + flagRowNew;\n let rowBlankTemp = document.querySelector(selectorRowNew);\n Utils.consoleLogIfNotProductionEnvironment(\"row blank temp: \", rowBlankTemp);\n let countRows = document.querySelectorAll(idTableAssessmentCommandModalityLinks + ' > tbody > tr').length;\n _rowBlankAssessmentCommandModalityLink = rowBlankTemp.cloneNode(true);\n document.querySelectorAll(selectorRowNew).forEach(function(row) {\n row.remove();\n });\n _rowBlankAssessmentCommandModalityLink.setAttribute(attrIdAssessmentCommandModalityLink, -1 - countRows);\n });\n\n this.hookupTableAssessmentCommandModalityLinksFieldsCommandCategory();\n this.hookupTableAssessmentCommandModalityLinksFieldsCommand();\n this.hookupTableAssessmentCommandModalityLinksFieldsCommandModality();\n this.hookupTableAssessmentCommandModalityLinksFieldsBribe();\n this.hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandler();\n this.hookupTableAssessmentCommandModalityLinksFieldsIsInHearingRangeOfHandler();\n this.hookupTableAssessmentCommandModalityLinksFieldsIsInScentRangeOfHandler();\n this.hookupTableAssessmentCommandModalityLinksFieldsIsInSightOfHandler();\n this.hookupTableAssessmentCommandModalityLinksFieldsIsOnLead();\n this.hookupTableAssessmentCommandModalityLinksFieldsTrialCount();\n this.hookupTableAssessmentCommandModalityLinksFieldsNotes();\n this.hookupTableAssessmentCommandModalityLinksFieldsResponses();\n this.hookupTableAssessmentCommandModalityLinksFieldsActive();\n }\n hookupTableAssessmentCommandModalityLinksFieldsCommandCategory() {\n this.hookupFieldsCommandCategory(idTableAssessmentCommandModalityLinks);\n /*\n let fieldFlag = flagCommandCategory;\n let optionList = Utils.getListFromDict(filterCommandCategories).sort((a, b) => a[flagName].localeCompare(b[flagName]));\n let cellSelector = idTableAssessmentCommandModalityLinks + ' td.' + flagCommandCategory;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n , (tdSelector) => { this.hookupTableAssessmentCommandModalityLinksDdlsCommandCategory(tdSelector); }\n , (event, element) => { this.handleChangeTableAssessmentCommandModalityLinksDdlCommandCategory(event, element); }\n );\n */\n }\n /*\n hookupTableAssessmentCommandModalityLinksDdlsCommandCategory(ddlSelector) {\n this.hookupChangeHandlerTableCells(ddlSelector, (event, element) => { this.handleChangeTableAssessmentCommandModalityLinksDdlCommandCategory(event, element); });\n }\n handleChangeTableAssessmentCommandModalityLinksDdlCommandCategory(event, ddlCategory) {\n let row = DOM.getRowFromElement(ddlCategory);\n let idCommandCategoryRowOld = this.getIdCommandCategoryRow(row); // DOM.getElementAttributeValueCurrent(ddlCategory);\n this.handleChangeNestedElementCellTable(event, ddlCategory);\n let idCommandCategoryRowNew = this.getIdCommandCategoryRow(row); // DOM.getElementAttributeValueCurrent(ddlCategory);\n if (idCommandCategoryRowOld == idCommandCategoryRowNew) return;\n let divCommand = row.querySelector('td.' + flagCommand + ' div');\n if (divCommand) divCommand.dispatchEvent(new Event('click'));\n let ddlCommand = row.querySelector('td.' + flagCommand + ' select.' + flagCommand);\n ddlCommand.innerHTML = '';\n ddlCommand.appendChild(DOM.createOption(null));\n let optionJson, option;\n let commandsInCategory = Utils.getListFromDict(filterCommands).filter(command => \n (\n command[attrIdCommandCategory] == idCommandCategoryRowNew\n || idCommandCategoryRowNew == 0\n )\n );\n let sortedCommands = commandsInCategory.sort((a, b) => a[flagName].localeCompare(b[flagName]));\n sortedCommands.forEach((command) => {\n optionJson = BusinessObjects.getOptionJsonFromObjectJson(command);\n option = DOM.createOption(optionJson);\n ddlCommand.appendChild(option);\n });\n this.handleChangeNestedElementCellTable(event, ddlCommand);\n }\n */\n hookupTableAssessmentCommandModalityLinksFieldsCommand() {\n this.hookupFieldsCommand(idTableAssessmentCommandModalityLinks);\n }\n hookupTableAssessmentCommandModalityLinksFieldsCommandModality() {\n let fieldFlag = flagCommandModality;\n let optionList = Utils.getListFromDict(filterCommandModalities); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessmentCommandModalityLinks + ' td.' + flagCommandModality;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentCommandModalityLinksFieldsBribe() {\n let fieldFlag = flagBribe;\n let optionList = Utils.getListFromDict(filterBribes); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessmentCommandModalityLinks + ' td.' + flagBribe;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandler() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagDistanceFromHandler + ' .' + flagDistanceFromHandler);\n }\n hookupTableAssessmentCommandModalityLinksFieldsIsInHearingRangeOfHandler() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagIsInHearingRangeOfHandler + ' .' + flagIsInHearingRangeOfHandler);\n }\n hookupTableAssessmentCommandModalityLinksFieldsIsInScentRangeOfHandler() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagIsInScentRangeOfHandler + ' .' + flagIsInScentRangeOfHandler);\n }\n hookupTableAssessmentCommandModalityLinksFieldsIsInSightOfHandler() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagIsInSightOfHandler + ' .' + flagIsInSightOfHandler);\n }\n hookupTableAssessmentCommandModalityLinksFieldsIsOnLead() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagIsOnLead + ' .' + flagIsOnLead);\n }\n hookupTableAssessmentCommandModalityLinksFieldsTrialCount() {\n // this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagTrialCount + ' .' + flagTrialCount);\n }\n hookupTableAssessmentCommandModalityLinksFieldsNotes() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' > tbody > tr > td.' + flagNotes + ' .' + flagNotes);\n }\n hookupTableAssessmentCommandModalityLinksFieldsResponses() {\n let eventType = \"click\";\n let selector = idTableAssessmentCommandModalityLinks + ' td.' + flagAssessmentResponse + ' div.' + flagAssessmentResponse;\n let handler = (event, element) => {\n let parentTd = DOM.getCellFromElement(element);\n let responsesTable = document.createElement(\"table\");\n responsesTable.id = idTableAssessmentResponses.replace(\"#\", \"\");\n responsesTable.classList.add(flagTableMain, flagAssessmentResponse);\n\n let head = document.createElement(\"thead\");\n let headRow = document.createElement(\"tr\");\n let thResponseQualityMetric = document.createElement(\"th\");\n thResponseQualityMetric.classList.add(flagResponseQualityMetric);\n thResponseQualityMetric.innerText = 'Response Quality Metric';\n headRow.appendChild(thResponseQualityMetric);\n let thObedienceLevel = document.createElement(\"th\");\n thObedienceLevel.classList.add(flagObedienceLevel);\n thObedienceLevel.innerText = 'Obedience Level';\n headRow.appendChild(thObedienceLevel);\n let thValueMeasured = document.createElement(\"th\");\n thValueMeasured.classList.add(flagValueMeasured);\n thValueMeasured.innerText = 'Value Measured';\n headRow.appendChild(thValueMeasured);\n let thNotes = document.createElement(\"th\");\n thNotes.classList.add(flagNotes);\n thNotes.innerText = 'Notes';\n headRow.appendChild(thNotes);\n let thActive = document.createElement(\"th\");\n thActive.classList.add(flagActive);\n let templateAddIcon = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagAdd);\n thActive.appendChild(templateAddIcon.cloneNode(true));\n headRow.appendChild(thActive);\n head.appendChild(headRow);\n responsesTable.appendChild(head);\n\n let body = document.createElement(\"tbody\");\n \n let assessmentCommandModalityLink = assessment[flagAssessmentCommandModalityLink];\n let responses = (assessmentCommandModalityLink == null) ? null : assessmentCommandModalityLink[flagAssessmentResponse];\n \n if (responses != null && responses.length > 0) {\n for (let response in responses) {\n let row = PageDogAssessment.createNewRowTableAssessmentResponses(response);\n body.appendChild(row);\n }\n }\n responsesTable.appendChild(body);\n\n parentTd.innerHTML = responsesTable.outerHTML;\n\n this.hookupTablesAssessmentResponses();\n };\n Events.hookupEventHandler(\n eventType\n , selector\n , handler\n );\n this.hookupTablesAssessmentResponses();\n }\n static createNewRowTableAssessmentResponses(response) {\n if (response == null) response = {\n [attrIdAssessmentResponse]: null\n , [flagResponseQualityMetric]: 0\n , [flagObedienceLevel]: 0\n , [flagValueMeasured]: ''\n , [flagNotes]: ''\n , [flagActive]: true\n };\n let isNew = (response[attrIdAssessmentResponse] == null || response[attrIdAssessmentResponse] < 1);\n let row = document.createElement(\"tr\");\n row.classList.add(flagAssessmentResponse);\n if (isNew) row.classList.add(flagRowNew);\n row.setAttribute(attrIdAssessmentResponse, response[attrIdAssessmentResponse]);\n\n let tdResponseQualityMetric = document.createElement(\"td\");\n tdResponseQualityMetric.classList.add(flagResponseQualityMetric, flagDdlPreview);\n let divResponseQualityMetric = document.createElement(\"div\");\n divResponseQualityMetric.classList.add(flagResponseQualityMetric);\n DOM.setElementAttributesValuesCurrentAndPrevious(divResponseQualityMetric, response[flagResponseQualityMetric]);\n divResponseQualityMetric.innerText = response[flagResponseQualityMetric];\n tdResponseQualityMetric.appendChild(divResponseQualityMetric);\n row.appendChild(tdResponseQualityMetric);\n\n let tdObedienceLevel = document.createElement(\"td\");\n tdObedienceLevel.classList.add(flagObedienceLevel, flagDdlPreview);\n let divObedienceLevel = document.createElement(\"div\");\n divObedienceLevel.classList.add(flagObedienceLevel);\n DOM.setElementAttributesValuesCurrentAndPrevious(divObedienceLevel, response[flagObedienceLevel]);\n divObedienceLevel.innerText = response[flagObedienceLevel];\n tdObedienceLevel.appendChild(divObedienceLevel);\n row.appendChild(tdObedienceLevel);\n\n let tdValueMeasured = document.createElement(\"td\");\n tdValueMeasured.classList.add(flagValueMeasured, flagDdlPreview);\n let inputValueMeasured = document.createElement(\"input\");\n inputValueMeasured.type = \"number\";\n inputValueMeasured.classList.add(flagValueMeasured);\n DOM.setElementAttributesValuesCurrentAndPrevious(inputValueMeasured, response[flagValueMeasured]);\n inputValueMeasured.value = response[flagValueMeasured];\n tdValueMeasured.appendChild(inputValueMeasured);\n row.appendChild(tdValueMeasured);\n\n let tdNotes = document.createElement(\"td\");\n tdNotes.classList.add(flagNotes, flagDdlPreview);\n let inputNotes = document.createElement(\"textarea\");\n inputNotes.classList.add(flagNotes);\n DOM.setElementAttributesValuesCurrentAndPrevious(inputNotes, response[flagNotes]);\n inputNotes.value = response[flagNotes];\n tdNotes.appendChild(inputNotes);\n row.appendChild(tdNotes);\n\n let tdActive = document.createElement(\"td\");\n tdActive.classList.add(flagActive, flagDdlPreview);\n let templateAddIcon = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagAdd);\n let templateDeleteIcon = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagDelete);\n let buttonActive = (response[flagActive]) ? templateDeleteIcon.cloneNode(true) : templateAddIcon.cloneNode(true);\n tdActive.appendChild(buttonActive);\n row.appendChild(tdActive);\n\n return row;\n }\n hookupTablesAssessmentResponses() {\n this.hookupTableAssessmentResponsesFieldsResponseQualityMetric();\n this.hookupTableAssessmentResponsesFieldsObedienceLevel();\n this.hookupTableAssessmentResponsesFieldsValueMeasured();\n this.hookupTableAssessmentResponsesFieldsNotes();\n this.hookupTableAssessmentResponsesFieldsActive();\n }\n hookupTableAssessmentResponsesFieldsResponseQualityMetric() {\n let fieldFlag = flagResponseQualityMetric;\n let optionList = Utils.getListFromDict(filterResponseQualityMetrics); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessmentResponses + ' td.' + flagResponseQualityMetric;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentResponsesFieldsObedienceLevel() {\n let fieldFlag = flagObedienceLevel;\n let optionList = Utils.getListFromDict(filterObedienceLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessmentResponses + ' td.' + flagObedienceLevel;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentResponsesFieldsValueMeasured() {\n this.hookupChangeHandlerTableCells(idTableAssessmentResponses + ' td.' + flagValueMeasured + ' .' + flagValueMeasured);\n }\n hookupTableAssessmentResponsesFieldsNotes() {\n this.hookupChangeHandlerTableCells(idTableAssessmentResponses + ' td.' + flagNotes + ' .' + flagNotes);\n }\n hookupTableAssessmentResponsesFieldsActive() {\n this.hookupFieldsActive(flagAssessmentResponse, (event, element) => { this.handleClickAddRowTableAssessmentResponses(event, element); });\n }\n handleClickAddRowTableAssessmentResponses(event, button) {\n event.stopPropagation();\n let tableResponses = DOM.getClosestParent(button, \"table\");\n let tbody = tableResponses.querySelector(\":scope > tbody\");\n let row = PageDogAssessment.createNewRowTableAssessmentResponses(null);\n if (tbody.classList.contains(flagIsCollapsed)) return;\n row.classList.remove(flagInitialised);\n row.querySelectorAll('.' + flagInitialised).forEach(function(element) {\n element.classList.remove(flagInitialised);\n });\n let countRows = document.querySelectorAll(attrIdAssessmentResponse + ' > tbody > tr').length;\n row.setAttribute(attrIdAssessmentResponse, -1 - countRows);\n tbody.prepend(row);\n tbody.scrollTop = 0;\n this.hookupTablesAssessmentResponses();\n this.postInitialiseAssessmentResponseRowNewCallback(tbody);\n }\n postInitialiseAssessmentResponseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagResponseQualityMetric + ' div.' + flagResponseQualityMetric\n , ',td.' + flagObedienceLevel + ' div.' + flagObedienceLevel\n , ',td.' + flagValueMeasured + ' div.' + flagValueMeasured\n , ',td.' + flagNotes + ' div.' + flagNotes\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n let countActiveRows = tbody.querySelectorAll('td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagDelete).length;\n /*\n newRows.filter(row => {\n let activeButton = row.querySelector('td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive);\n return activeButton.classList.contains(flagDelete);\n }).length;\n */\n let rowAssessmentCommandModalityLink = DOM.getRowFromElement(tbody);\n let divTrialCount = rowAssessmentCommandModalityLink.querySelector('td.' + flagTrialCount + ' div.' + flagTrialCount);\n divTrialCount.innerText = countActiveRows;\n }\n\n hookupTableAssessmentCommandModalityLinksFieldsActive() {\n this.hookupFieldsActive(flagAssessmentCommandModalityLink, (event, element) => { this.handleClickAddRowTableAssessmentCommandModalityLinks(event, element); });\n }\n handleClickAddRowTableAssessmentCommandModalityLinks(event, button) {\n event.stopPropagation();\n _rowBlankAssessmentCommandModalityLink.setAttribute(attrIdAssessmentCommandModalityLink, -1 - _rowBlankAssessmentCommandModalityLink.getAttribute(attrIdAssessmentCommandModalityLink));\n let tbody = document.querySelector(idTableAssessmentCommandModalityLinks + ' tbody');\n if (tbody.classList.contains(flagIsCollapsed)) return;\n let row = _rowBlankAssessmentCommandModalityLink.cloneNode(true);\n row.classList.remove(flagInitialised);\n row.querySelectorAll('.' + flagInitialised).forEach(function(element) {\n element.classList.remove(flagInitialised);\n });\n let countRows = document.querySelectorAll(idTableAssessmentCommandModalityLinks + ' > tbody > tr').length;\n row.setAttribute(attrIdAssessmentCommandModalityLink, -1 - countRows);\n tbody.prepend(row);\n tbody.scrollTop = 0;\n this.hookupTableAssessmentCommandModalityLinks();\n this.postInitialiseAssessmentCommandModalityLinkRowNewCallback(tbody);\n }\n postInitialiseAssessmentCommandModalityLinkRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagCommandCategory + ' div.' + flagCommandCategory\n , ',td.' + flagCommand + ' div.' + flagCommand\n , ',td.' + flagCommandModality + ' div.' + flagCommandModality\n , ',td.' + flagBribe + ' div.' + flagBribe\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogAssessments extends TableBasePage {\n static hash = hashPageDogAssessments;\n static attrIdRowObject = attrIdAssessment;\n callSaveTableContent = API.saveAssessments;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterWeather();\n this.hookupFilterLightingLevel();\n this.hookupFilterLocation();\n this.hookupFilterHandler();\n this.hookupFilterActive();\n }\n hookupFilterWeather() {\n this.hookupFilter(attrIdWeather);\n }\n hookupFilterLightingLevel() {\n this.hookupFilter(attrIdLightingLevel);\n }\n hookupFilterHandler() {\n this.hookupFilter(flagUserHandler);\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputTemperatureCelcius = row.querySelector('td.' + flagTemperatureCelcius + ' input');\n let inputNotes = row.querySelector('td.' + flagNotes + ' textarea');\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdAssessment] = row.getAttribute(attrIdAssessment);\n jsonRow[attrIdWeather] = this.getIdWeatherRow(row);\n jsonRow[attrIdLightingLevel] = this.getIdLightingLevelRow(row);\n jsonRow[flagTemperatureCelcius] = DOM.getElementAttributeValueCurrent(inputTemperatureCelcius);\n jsonRow[attrIdLocation] = this.getIdLocationRow(row);\n jsonRow[flagUserHandler] = this.getIdUserHandlerRow(row);\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n getIdWeatherRow(tr) {\n let elementWeather = tr.querySelector('td.' + flagWeather + ' .' + flagWeather);\n return DOM.getElementAttributeValueCurrent(elementWeather);\n }\n getIdLightingLevelRow(tr) {\n let elementLightingLevel = tr.querySelector('td.' + flagLightingLevel + ' .' + flagLightingLevel);\n return DOM.getElementAttributeValueCurrent(elementLightingLevel);\n }\n getIdLocationRow(tr) {\n let elementLocation = tr.querySelector('td.' + flagLocation + ' .' + flagLocation);\n return DOM.getElementAttributeValueCurrent(elementLocation);\n }\n getIdUserHandlerRow(tr) {\n let elementUserHandler = tr.querySelector('td.' + flagUserHandler + ' .' + flagUserHandler);\n return DOM.getElementAttributeValueCurrent(elementUserHandler);\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagWeather + ' div.' + flagWeather\n , ',td.' + flagLightingLevel + ' div.' + flagLightingLevel\n , ',td.' + flagLocation + ' div.' + flagLocation\n , ',td.' + flagUserHandler + ' div.' + flagUserHandler\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsDetail();\n this.hookupFieldsWeather();\n this.hookupFieldsLightingLevel();\n this.hookupFieldsTemperature();\n this.dogMixin.hookupFieldsLocation();\n this.hookupFieldsHandler();\n this.hookupFieldsNotesTable();\n this.hookupFieldsActive();\n }\n hookupFieldsDetail() {\n Events.hookupEventHandler(\n \"click\" // eventType\n , idTableMain + ' td.' + flagDetail + ' button.' + flagDetail // selector\n , (event, element) => {\n let parentTr = DOM.getRowFromElement(element);\n let idAssessment = parentTr.getAttribute(attrIdAssessment);\n /*\n console.log(\"click detail\");\n console.log({ element, parentTr, idAssessment });\n const data = {};\n const params = {\n [attrIdAssessment]: idAssessment\n };\n API.request(\n hashPageDogAssessment // hashEndpoint\n , 'GET' // method\n , data\n , params\n );\n */\n\n let formFilters = TableBasePage.getFormFilters();\n let filtersJson = DOM.convertForm2JSON(formFilters);\n filtersJson[attrIdAssessment] = idAssessment;\n Utils.consoleLogIfNotProductionEnvironment(\"hookupFieldsDetail\");\n Utils.consoleLogIfNotProductionEnvironment(\"formFilters\");\n Utils.consoleLogIfNotProductionEnvironment(formFilters);\n Utils.consoleLogIfNotProductionEnvironment(\"filtersJson\");\n Utils.consoleLogIfNotProductionEnvironment(filtersJson);\n this.leave();\n API.goToHash(hashPageDogAssessment, filtersJson);\n }\n );\n }\n hookupFieldsWeather() {\n this.hookupTableCellDdlPreviews(\n flagWeather\n , Utils.getListFromDict(filterWeathers) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n hookupFieldsLightingLevel() {\n this.hookupTableCellDdlPreviews(\n flagLightingLevel\n , Utils.getListFromDict(filterLightingLevels) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n hookupFieldsTemperature() {\n this.hookupChangeHandlerTableCells(idTableMain + ' td.' + flagTemperatureCelcius + ' input.' + flagTemperatureCelcius);\n }\n hookupFieldsHandler() {\n this.hookupTableCellDdlPreviews(\n flagUserHandler\n , Utils.getListFromDict(filterUserHandlers) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n\n leave() {\n super.leave();\n }\n}\n\n","import BasePage from \"../base.js\";\n\nexport default class PageAccessibilityReport extends BasePage {\n static hash = hashPageAccessibilityReport;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}\n","import BasePage from \"../base.js\";\n\nexport default class PageAccessibilityStatement extends BasePage {\n static hash = hashPageAccessibilityStatement;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}\n","\nimport BasePage from \"../base.js\";\n\nexport default class PageLicense extends BasePage {\n static hash = hashPageLicense;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}","\nimport BasePage from \"../base.js\";\n\nexport default class PagePrivacyPolicy extends BasePage {\n static hash = hashPagePrivacyPolicy;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}","import BasePage from \"../base.js\";\n\nexport default class PageRetentionSchedule extends BasePage {\n static hash = hashPageDataRetentionSchedule;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}\n","\n// Pages\n// Core\nimport PageHome from './pages/core/home.js';\nimport PageContact from './pages/core/contact.js';\nimport PageContactSuccess from './pages/core/contact-success.js';\n// Dog\nimport PageDogHome from './pages/dog/home.js';\nimport PageDogCommandCategories from './pages/dog/command_categories.js';\nimport PageDogCommands from './pages/dog/commands.js';\nimport PageDogDogCommandLinks from './pages/dog/dog_command_links.js';\n// import PageDogDogs from './pages/dog/dogs.js';\nimport PageDogLocations from './pages/dog/locations.js';\nimport PageDogButtonIcons from './pages/dog/button_icons.js';\nimport PageDogCommandButtonLinks from './pages/dog/command_button_links.js';\nimport PageDogAssessment from './pages/dog/assessment.js';\nimport PageDogAssessments from './pages/dog/assessments.js';\n// Legal\nimport PageAccessibilityReport from './pages/legal/accessibility_report.js';\nimport PageAccessibilityStatement from './pages/legal/accessibility_statement.js';\nimport PageLicense from './pages/legal/license.js';\nimport PagePrivacyPolicy from './pages/legal/privacy_policy.js';\nimport PageRetentionSchedule from './pages/legal/retention_schedule.js';\n// User\n// import PageUserLogin from './pages/user/login.js';\n// import PageUserLogout from './pages/user/logout.js';\n// import PageUserAccount from './pages/user/account.js';\n\nimport API from './api.js';\nimport DOM from './dom.js';\nimport Utils from './lib/utils.js';\n\n\nexport default class Router {\n constructor() {\n // Pages\n this.pages = {};\n // Core\n this.pages[hashPageHome] = { name: 'PageHome', module: PageHome };\n this.pages[hashPageContact] = { name: 'PageContact', module: PageContact };\n this.pages[hashPageContactSuccess] = { name: 'PageContactSuccess', module: PageContactSuccess };\n // Dog\n this.pages[hashPageDogHome] = { name: 'PageDogHome', module: PageDogHome };\n this.pages[hashPageDogCommandCategories] = { name: 'PageDogCommands', module: PageDogCommandCategories };\n this.pages[hashPageDogCommands] = { name: 'PageDogCommands', module: PageDogCommands };\n this.pages[hashPageDogDogCommandLinks] = { name: 'PageDogDogCommandLinks', module: PageDogDogCommandLinks };\n // this.pages[hashPageDogDogs] = { name: 'PageDogDogs', module: PageDogDogs };\n this.pages[hashPageDogLocations] = { name: 'PageDogLocations', module: PageDogLocations };\n this.pages[hashPageDogButtonIcons] = { name: 'PageDogButtonIcons', module: PageDogButtonIcons };\n this.pages[hashPageDogCommandButtonLinks] = { name: 'PageDogCommandButtonLinks', module: PageDogCommandButtonLinks };\n this.pages[hashPageDogAssessment] = { name: 'PageDogAssessment', module: PageDogAssessment };\n this.pages[hashPageDogAssessments] = { name: 'PageDogAssessments', module: PageDogAssessments };\n // Legal\n this.pages[hashPageAccessibilityStatement] = { name: 'PageAccessibilityStatement', module: PageAccessibilityStatement };\n this.pages[hashPageDataRetentionSchedule] = { name: 'PageDataRetentionSchedule', module: PageRetentionSchedule };\n this.pages[hashPageLicense] = { name: 'PageLicense', module: PageLicense };\n this.pages[hashPagePrivacyPolicy] = { name: 'PagePrivacyPolicy', module: PagePrivacyPolicy };\n // User\n // this.pages[hashPageUserLogin] = { name: 'PageUserLogin', module: PageUserLogin }; // pathModule: './pages/user/login.js' };\n // this.pages[hashPageUserLogout] = { name: 'PageUserLogout', module: PageUserLogout }; // pathModule: './pages/user/logout.js' };\n // this.pages[hashPageUserAccount] = { name: 'PageUserAccount', module: PageUserAccount }; // pathModule: './pages/user/account.js' };\n // Routes\n this.routes = {};\n // Core\n this.routes[hashPageHome] = (isPopState = false) => this.navigateToHash(hashPageHome, isPopState);\n this.routes[hashPageContact] = (isPopState = false) => this.navigateToHash(hashPageContact, isPopState);\n this.routes[hashPageContactSuccess] = (isPopState = false) => this.navigateToHash(hashPageContactSuccess, isPopState);\n // Dog\n this.routes[hashPageDogHome] = (isPopState = false) => this.navigateToHash(hashPageDogHome, isPopState);\n this.routes[hashPageDogCommandCategories] = (isPopState = false) => this.navigateToHash(hashPageDogCommandCategories, isPopState);\n this.routes[hashPageDogCommands] = (isPopState = false) => this.navigateToHash(hashPageDogCommands, isPopState);\n this.routes[hashPageDogDogCommandLinks] = (isPopState = false) => this.navigateToHash(hashPageDogDogCommandLinks, isPopState);\n // this.routes[hashPageDogDogs] = (isPopState = false) => this.navigateToHash(hashPageDogDogs, isPopState);\n this.routes[hashPageDogLocations] = (isPopState = false) => this.navigateToHash(hashPageDogLocations, isPopState);\n this.routes[hashPageDogButtonIcons] = (isPopState = false) => this.navigateToHash(hashPageDogButtonIcons, isPopState);\n this.routes[hashPageDogCommandButtonLinks] = (isPopState = false) => this.navigateToHash(hashPageDogCommandButtonLinks, isPopState);\n this.routes[hashPageDogAssessment] = (isPopState = false) => this.navigateToHash(hashPageDogAssessment, isPopState);\n this.routes[hashPageDogAssessments] = (isPopState = false) => this.navigateToHash(hashPageDogAssessments, isPopState);\n // Legal\n this.routes[hashPageAccessibilityStatement] = (isPopState = false) => this.navigateToHash(hashPageAccessibilityStatement, isPopState);\n this.routes[hashPageDataRetentionSchedule] = (isPopState = false) => this.navigateToHash(hashPageDataRetentionSchedule, isPopState);\n this.routes[hashPageLicense] = (isPopState = false) => this.navigateToHash(hashPageLicense, isPopState);\n this.routes[hashPagePrivacyPolicy] = (isPopState = false) => this.navigateToHash(hashPagePrivacyPolicy, isPopState);\n // User\n // this.routes[hashPageUserLogin] = (isPopState = false) => this.navigateToHash(hashPageUserLogin, isPopState);\n // this.routes[hashPageUserLogout] = (isPopState = false) => this.navigateToHash(hashPageUserLogout, isPopState);\n // this.routes[hashPageUserAccount] = (isPopState = false) => this.navigateToHash(hashPageUserAccount, isPopState);\n this.initialize();\n }\n loadPage(hashPage, isPopState = false) {\n const PageClass = this.getClassPageFromHash(hashPage);\n this.currentPage = new PageClass(this);\n this.currentPage.initialize(isPopState);\n window.addEventListener('beforeunload', () => this.currentPage.leave());\n }\n getClassPageFromHash(hashPage) {\n \n let pageJson = this.pages[hashPage];\n try {\n const module = pageJson.module;\n return module; \n }\n catch (error) {\n Utils.consoleLogIfNotProductionEnvironment(\"this.pages: \", this.pages);\n console.error('Page not found:', hashPage);\n throw error;\n }\n }\n initialize() {\n window.addEventListener('popstate', this.handlePopState.bind(this));\n }\n handlePopState(event) {\n this.loadPageCurrent();\n }\n loadPageCurrent() {\n const hashPageCurrent = DOM.getHashPageCurrent();\n this.loadPage(hashPageCurrent);\n }\n navigateToHash(hash, data = null, params = null, isPopState = false) {\n let url = API.getUrlFromHash(hash, params);\n history.pushState({data: data, params: params}, '', hash);\n API.goToUrl(url, data);\n }\n \n navigateToUrl(url, data = null, appendHistory = true) {\n // this.beforeLeave();\n if (appendHistory) history.pushState(data, '', url);\n url = API.parameteriseUrl(url, data);\n API.goToUrl(url);\n }\n\n static loadPageBodyFromResponse(response) {\n DOM.loadPageBody(response.data);\n }\n}\n\nexport const router = new Router();\n","\n'use strict';\n\nimport DOM from './dom.js';\nimport Router from './router.js';\n\n\nclass App {\n constructor() {\n this.dom = new DOM();\n this.router = new Router();\n }\n\n initialize() {\n this.setupEventListeners();\n this.start();\n }\n\n setupEventListeners() {\n // document.addEventListener('click', this.handleGlobalClick.bind(this));\n }\n\n handleGlobalClick(event) {\n }\n\n start() {\n this.initPageCurrent();\n }\n\n initPageCurrent() {\n this.router.loadPageCurrent();\n }\n \n}\n\nconst app = new App();\n\nfunction domReady(fn) {\n if (document.readyState !== 'loading') {\n fn();\n } else {\n document.addEventListener('DOMContentLoaded', fn);\n }\n}\n\ndomReady(() => {\n app.initialize();\n});\n\nwindow.app = app;\n\nexport default app;","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};"],"names":["Validation","_classCallCheck","_createClass","key","value","isEmpty","object","undefined","length","isString","trim","i","isValidNumber","positiveOnly","isNaN","parseFloat","getDataContentType","params","data","contentType","JSON","stringify","Data","ContentType","arrayContainsItem","array","itemValue","hasItem","isJQueryElementArray","jQuery","document","querySelectorAll","is","isDate","Date","getTime","dictHasKey","d","k","areEqualDicts","dict1","dict2","keys1","Object","keys","keys2","_i3","_keys","imageExists","url","callback","img","Image","onload","onerror","src","toFixedOrDefault","decimalPlaces","defaultValue","arguments","toFixed","default","Utils","DOM","setElementAttributesValuesCurrentAndPrevious","element","setElementAttributeValueCurrent","setElementAttributeValuePrevious","setAttribute","attrValueCurrent","attrValuePrevious","setElementValuesCurrentAndPrevious","setElementValueCurrent","tagName","toUpperCase","type","checked","textContent","setElementValueCurrentIfEmpty","getElementValueCurrent","getCellFromElement","closest","getRowFromElement","flagRow","selector","getClosestParent","parentSelector","parent","parentElement","matches","convertForm2JSON","elementForm","dataForm","containersFilter","flagContainerInput","flagFilter","containerFilter","labelFilter","keyFilter","filter","indexFilter","querySelector","getAttribute","concat","loadPageBody","contentNew","pageBody","idPageBody","innerHTML","getHashPageCurrent","hashPageCurrent","body","dataset","page","updateAndCheckIsElementDirty","isElementDirty","isDirty","handleDirtyElement","toggleElementHasClassnameFlag","flagDirty","elementHasFlag","flag","elementAlreadyHasFlag","classList","contains","add","remove","hasDirtyChildrenContainer","container","hasDirtyChildrenNotDeletedContainer","flagDelete","returnVal","flagButton","flagActive","getElementAttributeValueCurrent","flagCheckbox","flagIsChecked","getElementAttributeValuePrevious","scrollToElement","scrollTop","offset","top","isElementInContainer","containerBounds","getBoundingClientRect","elementBounds","left","height","width","alertError","errorType","errorText","alert","createOptionUnselectedProductVariation","_defineProperty","flagProductVariationType","flagNameAttrOptionText","flagName","flagNameAttrOptionValue","attrIdProductVariationType","flagProductVariation","attrIdProductVariation","createOption","optionJson","text","option","createElement","selected","escapeHtml","div","unescapeHtml","html","innerText","Events","initialiseEventHandler","selectorElement","classInitialised","eventHandler","forEach","hookupEventHandler","eventType","flagInitialised","addEventListener","event","stopPropagation","LocalStorage","getLocalStorage","parse","localStorage","getItem","setLocalStorage","newLS","setItem","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","apply","_objectSpread","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_defineProperties","_toPrimitive","toPrimitive","String","Number","API","getCsrfToken","idCSRFToken","_request","_callee","hashEndpoint","csrfToken","options","response","_args","_callee$","_context","getUrlFromHash","headers","flagCsrfToken","fetch","ok","status","json","t0","console","error","request","_x","hash","hashPageHome","parameteriseUrl","_pathHost","URLSearchParams","toString","goToUrl","window","location","href","goToHash","_loginUser","_callee2","_callee2$","_context2","flagCallback","hashPageUserLogin","loginUser","_saveCommandCategories","_callee3","commandCategories","formFilters","comment","dataRequest","_callee3$","_context3","flagFormFilters","flagCommandCategory","flagComment","hashSaveDogCommandCategory","saveCommandCategories","_x2","_x3","_x4","_saveCommands","_callee4","commands","_callee4$","_context4","flagCommand","hashSaveDogCommand","saveCommands","_x5","_x6","_x7","_saveDogCommandLinks","_callee5","dogCommandLinks","_callee5$","_context5","flagDogCommandLink","hashSaveDogDogCommandLink","saveDogCommandLinks","_x8","_x9","_x10","_saveLocations","_callee6","locations","_callee6$","_context6","flagLocation","hashSaveDogLocation","saveLocations","_x11","_x12","_x13","_saveButtonIcons","_callee7","buttonIcons","_callee7$","_context7","flagButtonIcon","hashSaveDogButtonIcon","saveButtonIcons","_x14","_x15","_x16","_saveCommandButtonLinks","_callee8","links","_callee8$","_context8","flagCommandButtonLink","hashSaveDogCommandButtonLink","saveCommandButtonLinks","_x17","_x18","_x19","getListFromDict","dict","list","consoleLogIfNotProductionEnvironment","message","environment","is_production","log","OverlayConfirm","hookup","callbackSuccess","idOverlayConfirm","flagCancel","buttonCancel","overlay","style","visibility","flagSubmit","buttonConfirm","textarea","show","flagIsCollapsed","BusinessObjects","OverlayError","BasePage","router","title","titlePageCurrent","initialize","sharedInitialize","logInitialisation","hookupCommonElements","hookupLogos","hookupNavigation","hookupOverlays","idButtonHamburger","overlayHamburger","idOverlayHamburger","flagExpanded","hookupButtonsNavHome","hookupButtonsNavContact","hookupButtonsNavUserAccount","hookupButtonsNavUserLogout","hookupButtonsNavUserLogin","hookupButtonsNavDogHome","hookupButtonsNavDogCommandCategories","hookupButtonsNavDogCommands","hookupButtonsNavDogDogCommandLinks","hookupButtonsNavDogDogs","hookupButtonsNavDogLocations","hookupButtonsNavDogButtonIcons","hookupButtonsNavDogCommandButtonLinks","hookupButtonsNavDogAssessments","hookupButtonsNav","flagNavHome","buttonSelector","hashPageNav","_this","button","navigateToHash","flagNavContact","hashPageContact","flagNavUserAccount","hashPageUserAccount","flagNavUserLogout","hashPageUserLogout","_this2","flagNavUserLogin","navigator","leave","Success","Message","flagNavDogHome","hashPageDogHome","flagNavDogCommandCategories","hashPageDogCommandCategories","flagNavDogCommands","hashPageDogCommands","flagNavDogDogCommandLinks","hashPageDogDogCommandLinks","flagNavDogDogs","hashPageDogDogs","flagNavDogLocations","hashPageDogLocations","flagNavDogButtonIcons","hashPageDogButtonIcons","flagNavDogCommandButtonLinks","hashPageDogCommandButtonLinks","flagNavDogAssessments","hashPageDogAssessments","_this3","flagImageLogo","flagLogo","hookupOverlayFromId","idOverlayError","idOverlay","display","hookupButtonSave","_this4","flagSave","target","setLocalStoragePage","dataPage","getLocalStoragePage","toggleShowButtonsSaveCancel","buttonContainerSelector","flagContainer","buttonSave","isDirtyFilter","idTableMain","PageHome","_BasePage","_callSuper","_inherits","_superPropGet","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","_get","get","bind","_superPropBase","_setPrototypeOf","_wrapNativeSuper","Map","_isNativeFunction","has","set","Wrapper","_construct","Boolean","valueOf","Function","indexOf","_toArray","_arrayWithHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","_nonIterableSpread","Array","from","isArray","_arrayLikeToArray","_slicedToArray","_iterableToArrayLimit","_createForOfIteratorHelper","_n2","F","test","hi","Or","gi","ne","zr","H","Mt","WeakSet","Ut","en","Fr","self","Blob","_i","URL","webkitURL","createObjectURL","Worker","revokeObjectURL","_unused","encodeURIComponent","mi","Qr","_Qr$v","_window$__svelte","__svelte","Set","wi","pi","yi","bi","Ei","xi","Wt","tn","rn","Je","W","$i","Mr","oe","nn","It","Yt","pe","ze","yt","re","bt","K","ye","et","Ke","St","ki","Zt","Ci","ln","ut","an","Ai","on","Ri","Ii","Et","xt","Pe","Si","Ti","Ni","sn","fn","Li","requestIdleCallback","setTimeout","dt","vt","un","cn","Gt","queueMicrotask","Di","Ur","dn","Pi","vn","Oi","zi","Fi","Mi","Ui","ji","Vi","Bi","qi","Hi","Wi","ue","reactions","equals","rv","wv","He","Yi","hn","ae","ce","Qi","P","Dn","includes","Zi","En","gn","A","ge","el","de","Lt","De","ctx","B","deps","effects","_n","we","Gi","Ji","Se","$n","mn","Ce","Tt","warn","D","Ge","O","Re","Xe","Te","Z","Ki","nodeType","le","Proxy","deleteProperty","isInteger","jr","w","m","z","T","Y","M","_iterator","_step","_step$value","err","Vr","wn","pn","yn","jt","userAgent","Element","Node","__click","__className","__attributes","__style","__e","Text","__t","Jt","createTextNode","me","G","appendChild","Br","Comment","he","after","before","Xi","wt","$t","kt","Oe","Kt","qr","ct","Ie","V","J","bn","Ct","ht","_a$reactions","tl","_unused2","rl","Nt","xn","Wr","At","_m$reactions","nl","Xt","hl","An","Cn","teardown","il","kn","al","ll","first","nodes_start","Rn","$","ol","_ol","_callee9","_callee9$","_context9","Qe","sl","fl","ul","last","Fe","nodes_end","transitions","_f$effects","cl","Vt","_r$e","effect","reaction","Qt","dl","vl","outro","Bt","er","We","map","tr","Rt","_iterator2","_step2","In","gl","_iterator3","_step3","out","_iterator4","_step4","is_global","Hr","Sn","_iterator5","_step5","Tn","Nn","x","Ln","_l","ml","Yr","Pn","defaultPrevented","_iterator6","elements","_step6","__on_r","capture","On","wl","zn","qt","pl","ft","cancelBubble","startsWith","yl","passive","removeEventListener","bl","_iterator7","_step7","ownerDocument","composedPath","__root","assignedSlot","parentNode","host","disabled","_z","_z2","_iterator8","_step8","_loop","currentTarget","rr","content","Ae","ve","importNode","cloneNode","lastChild","El","ee","Fn","Mn","xl","_t$intro","intro","anchor","recover","Ye","_ref","_ref$props","props","events","context","_ref$intro","$$events","_iterator9","_step9","removeChild","Ht","WeakMap","$l","ke","_ref2","_ref3","parseInt","substring","Ze","_t2","kl","$$slots","children","Cl","_r$head","getRootNode","head","id","code","Zr","Al","Rl","removeAttribute","className","toggle","Il","Sl","Gr","hasAttribute","ie","Tl","Un","nodeName","Nl","_e$__attributes","namespaceURI","Jr","Ll","defaultChecked","Kr","Xr","jn","Dl","mt","Pl","C","_Pl","_Pl2","_ref4","be","N","$$legacy","X","se","U","Ol","zl","_e","te","_t$intro2","_r$get","_r$get2","_r$get3","hydrate","component","$$host","sync","_loop2","_Object$keys","_i2","$set","assign","$destroy","$on","_len","_key","Vn","HTMLElement","_HTMLElement","$$ctor","$$s","attachShadow","mode","$$l","$$c","$$l_u","_connectedCallback","_this5","_iterator10","_step10","_i4","_iterator11","_step11","_i5","_a","_iterator13","_step13","$$cn","Fl","$$d","attributes","$$g_p","pt","$$p_d","shadowRoot","$$me","$$r","_iterator12","_step12","reflect","attribute","connectedCallback","attributeChangedCallback","disconnectedCallback","_this6","_this7","find","toLowerCase","childNodes","slot","Ml","_Vn","_this8","Bn","TextEncoder","Ul","Uint8Array","padStart","join","jl","_jl","_callee10","_args10","_callee10$","_context10","now","Math","round","random","qn","algorithm","challenge","salt","signature","_qn","_callee11","_callee11$","_context11","crypto","subtle","digest","encode","t1","Vl","AbortController","promise","signal","aborted","number","took","controller","Bl","Intl","DateTimeFormat","resolvedOptions","timeZone","_unused3","ql","atob","charCodeAt","Hl","floor","Wl","_Wl","_callee13","_args13","_callee13$","_context13","_ref7","_callee12","_callee12$","_context12","decrypt","iv","clearText","TextDecoder","decode","importKey","reject","E","ERROR","VERIFIED","VERIFYING","UNVERIFIED","EXPIRED","Yl","Zl","Gl","Jl","Kl","Xl","Ql","ea","ta","ra","na","ia","la","Lr","Dr","Ee","Me","min","hardwareConcurrency","tt","nr","ir","lr","rt","dispatchEvent","CustomEvent","detail","ar","documentElement","lang","split","Dt","origin","endsWith","Pt","wr","or","Q","ariaLinkLabel","expired","footer","label","verified","verifying","waitAlert","sr","Ue","R","j","nt","je","Ve","fe","xe","Ne","Xn","Qn","Hn","hr","gr","vr","clearTimeout","cr","dr","mr","I","Jn","pluginName","Ot","pr","it","$e","requestAnimationFrame","fr","btoa","_i6","_xe","destroy","ur","lt","Wn","_Wn","L","_","b","S","q","_L","qe","_L2","globalThis","Response","verifyurl","Er","Yn","Zn","blockedCountries","classifier","disableRules","email","expectedCountries","expectedLanguages","fields","ipAddress","Gn","reduce","replace","RegExp","_iterator14","altchaPlugins","_step14","clarify","dispatch","getConfiguration","xr","getFloatingAnchor","$r","getState","kr","solve","br","setState","Le","setFloatingAnchor","Cr","verify","_console","_len2","_key2","some","Kn","reportValidity","gt","_i7","_xe2","onErrorChange","preventDefault","requestSubmit","_r","_i8","_xe3","onStateChange","clientHeight","clientWidth","bottom","max","ei","_ei","_Zn","ot","st","vi","Pr","payload","classification","yr","_br","ti","maxnumber","solution","obfuscated","t2","t3","t4","_ti","_i10","_b2","_p","_args6","ceil","altchaCreateWorker","all","_i9","_b","postMessage","start","terminate","_it","auto","blockspam","customfetch","floatinganchor","delay","floatingoffset","floating","expire","challengeurl","debug","hidefooter","hidelogo","mockerror","refetchonexpire","spamfilter","strings","workers","workerurl","ri","state","_$e","_ref6","Ar","Rr","at","zt","Ir","ni","_t","Sr","Be","__change","Ft","ii","li","ai","oi","si","Tr","fi","Nr","ui","ci","di","required","configure","getPlugin","challengejson","plugins","customElements","Altcha","PageContact","hookupButtonSubmitFormContactUs","flagButtonPrimary","PageContactSuccess","hashPageContactSuccess","PageDogHome","hookupDogHome","getOptionJsonFromObjectJsonAndKeys","objectJson","keyText","keyValue","valueSelected","getOptionJsonFromObjectJson","getObjectText","getListObjectsFromIdDictAndCsv","idDict","idCsv","listObjects","ids","msgError","labelError","idLabelError","TableBasePage","cursorYInitial","rowInitial","placeholder","dragSrcEl","dragSrcRow","hookupTableCellDdls","isPopState","isSinglePageApp","hookupFilters","hookupButtonsSaveCancel","hookupTableMain","saveRecordsTableDirtySinglePageApp","saveRecordsTableDirty","filters","getFormFilters","filtersDefault","callFilterTableContent","sharedHookupFilters","hookupButtonApplyFilters","hookupSearchTextFilter","hookupFilterActive","filterSelector","idFormFilters","flagActiveOnly","filterActiveOld","parentDiv","isChecked","filterActiveNew","filterActive","svgElement","wasChecked","handleChangeFilter","filterValuePrevious","hookupFilter","filterFlag","handler","areDirtyFilters","tbody","rows","row","dirtyInputs","dirtyInput","isDirtyLabel","initialisedElements","initialisedElement","updateAndToggleShowButtonsSaveCancel","hookupFilterIsNotEmpty","flagIsNotEmpty","idButtonApplyFilters","flagSearch","hookupFilterDog","attrIdDog","hookupFilterCommandCategory","attrIdCommandCategory","filterCommandCategory","idCommandCategory","filterCommands","commandsInCategory","command","sortedCommands","sort","localeCompare","filterCommand","idCommandPrevious","Event","hookupFilterCommand","attrIdCommand","hookupFilterLocation","attrIdLocation","filtersJson","callbackLoadTableContent","table","getTableMain","bodyTable","rowsJson","flagRows","every","display_order","loadRowTable","rowJson","getAndLoadFilteredTableContentSinglePageApp","hookupButtonCancel","records","getTableRecords","formElement","idTextareaConfirm","callSaveTableContent","flagStatus","flagSuccess","_verbose","flagMessage","_this9","dirtyOnly","record","getJsonRow","_this10","_this11","handleClickAddRowTable","_rowBlank","attrIdRowObject","countRows","initialiseRowNew","prepend","postInitialiseRowNewCallback","_this12","cacheRowBlank","selectorRowNew","flagRowNew","rowBlankTemp","initialiseSliderDisplayOrderRowNew","slidersDisplayOrder","flagDisplayOrder","flagSlider","maxDisplayOrder","slider","sliderDisplayOrder","hookupSlidersDisplayOrderTable","selectorDisplayOrder","hookupChangeHandlerTableCells","inputSelector","_this13","handleChangeNestedElementCellTable","input","wasDirtyParentRows","getAllIsDirtyRowsInParentTree","wasDirtyElement","isDirtyElement","cascadeChangedIsDirtyNestedElementCellTable","isDirtyRow","wasDirtyRow","shift","hookupChangeHandlerTableCellsWhenNotCollapsed","_this14","hookupFieldsCodeTable","flagCode","hookupFieldsNameTable","hookupFieldsDescriptionTable","flagDescription","hookupFieldsNotesTable","flagNotes","hookupFieldsActive","_this15","flagTable","handleClickRowNew","selectorButton","selectorButtonDelete","selectorButtonUndelete","hookupButtonsRowDelete","hookupButtonsRowUndelete","_this16","changeHandler","handleClickButtonRowDelete","changeEvent","changeElement","_this17","valuePrevious","wasDirty","buttonAddTemplate","idContainerTemplateElements","flagAdd","buttonAdd","replaceWith","_this18","handleClickButtonRowUndelete","_this19","buttonDeleteTemplate","buttonDelete","hookupTdsAccessLevel","hookupTableCellDdlPreviews","flagAccessLevel","accessLevels","fieldFlag","optionList","_this20","cellSelector","ddlHookup","ddlSelector","handleClickTableCellDdlPreview","_this21","optionObjectList","_this22","idSelected","td","ddl","optionObjectJson","toggleColumnCollapsed","flagColumn","isCollapsed","toggleColumnHasClassnameFlag","toggleColumnHeaderCollapsed","hookupFieldsCommandCategory","_this23","idTable","filterCommandCategories","hookupCommandCategoryDdls","_this24","handleChangeCommandCategoryDdl","ddlCategory","idCommandCategoryRowOld","getIdCommandCategoryRow","idCommandCategoryRowNew","idCommandCategoryFilter","getIdCommandCategoryFilter","tdCommand","ddlCommand","hookupFieldsCommand","_this25","parentTr","tdCommandCategory","idCommandCategoryRow","filterCommandList","handleChangeCommandDdl","idCommandNew","getIdCommandRow","commandNew","divCommandCategory","ddlCommandCategory","elementCommandCategory","commandCategoryFilter","commandFilter","valueCurrentCommandCategoryFilter","valueCurrentCommandFilter","getHasCommandCategoryFilter","elementCommand","getIdCommandFilter","idCommand","getHasCommandFilter","idCommandFilter","hookupFieldsDog","flagDog","filterDogs","getIdDogRow","elementDog","columnFlag","isRequiredFlag","classnameFlag","columnTh","columnThHasFlag","toggleColumnHeaderHasClassnameFlag","isDirtyMainTable","DogMixinPage","pageCurrent","hookupLocalStorageDog","DogTableMixinPage","_DogMixinPage","hookupTable","hookupFieldsLocation","filterLocations","PageDogCommandCategories","_TableBasePage","dogMixin","inputCode","inputName","buttonActive","jsonRow","PageDogCommands","inputHandSignalDefaultDescription","flagHandSignalDefaultDescription","inputCanHaveButton","flagCanHaveButton","inputNotes","newRows","newestRow","clickableElementsSelector","clickableElement","click","hookupTextareasHandSignalDefaultDescription","hookupFieldsCanHaveButton","PageDogDogCommandLinks","inputHandSignalDescription","flagHandSignalDescription","attrIdDogCommandLink","hookupTextareasHandSignalDescription","PageDogLocations","flagLocationParent","getIdLocationParentRow","elementLocationParent","hookupFieldsLocationParent","idLocationRow","PageDogButtonIcons","attrIdButtonIcon","flagImage","getIdImageRow","elementImage","hookupFieldsImage","buttonicons","PageDogCommandButtonLinks","hookupFilterButtonShape","hookupFilterColour","hookupFilterButtonIcon","attrIdButtonShape","attrIdColour","attrIdCommandButtonLink","hookupFieldsButtonShape","hookupFieldsColour","hookupFieldsButtonIcon","flagButtonShape","filterButtonShapes","flagColour","filterColours","filterButtonIcons","_rowBlankDistraction","_rowBlankAssessmentCommandModalityLink","PageDogAssessment","saveAssessments","attrIdAssessment","flagWeather","flagLightingLevel","flagUserHandler","hookupTableAssessmentHeader","hookupTableDistractions","hookupTableAssessmentCommandModalityLinks","hookupTableAssessmentFieldWeather","hookupTableAssessmentFieldLightingLevel","hookupTableAssessmentFieldTemperature","hookupTableAssessmentFieldLocation","hookupTableAssessmentFieldUserHandler","hookupTableAssessmentFieldNotes","filterWeathers","idTableAssessment","filterLightingLevels","flagTemperatureCelcius","filterUserHandlers","idTableDistractions","attrIdDistraction","hookupTableDistractionsFieldsDistractionType","hookupTableDistractionsFieldsIntensityLevelEmotional","hookupTableDistractionsFieldsIntensityLevelScent","hookupTableDistractionsFieldsIntensityLevelSight","hookupTableDistractionsFieldsIntensityLevelSound","hookupTableDistractionsFieldsIntensityLevelTouch","hookupTableDistractionsFieldsQuantity","hookupTableDistractionsFieldsProximityMetres","hookupTableDistractionsFieldsNotes","hookupTableDistractionsFieldsActive","flagDistractionType","filterDistractionTypes","flagDistractionIntensityLevelEmotional","filterDistractionIntensityLevels","flagDistractionIntensityLevelScent","flagDistractionIntensityLevelSight","flagDistractionIntensityLevelSound","flagDistractionIntensityLevelTouch","flagQuantity","flagProximityMetres","flagDistraction","handleClickAddRowTableDistractions","postInitialiseDistractionRowNewCallback","idTableAssessmentCommandModalityLinks","attrIdAssessmentCommandModalityLink","hookupTableAssessmentCommandModalityLinksFieldsCommandCategory","hookupTableAssessmentCommandModalityLinksFieldsCommand","hookupTableAssessmentCommandModalityLinksFieldsCommandModality","hookupTableAssessmentCommandModalityLinksFieldsBribe","hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandler","hookupTableAssessmentCommandModalityLinksFieldsIsInHearingRangeOfHandler","hookupTableAssessmentCommandModalityLinksFieldsIsInScentRangeOfHandler","hookupTableAssessmentCommandModalityLinksFieldsIsInSightOfHandler","hookupTableAssessmentCommandModalityLinksFieldsIsOnLead","hookupTableAssessmentCommandModalityLinksFieldsTrialCount","hookupTableAssessmentCommandModalityLinksFieldsNotes","hookupTableAssessmentCommandModalityLinksFieldsResponses","hookupTableAssessmentCommandModalityLinksFieldsActive","flagCommandModality","filterCommandModalities","flagBribe","filterBribes","flagDistanceFromHandler","flagIsInHearingRangeOfHandler","flagIsInScentRangeOfHandler","flagIsInSightOfHandler","flagIsOnLead","flagAssessmentResponse","parentTd","responsesTable","idTableAssessmentResponses","flagTableMain","headRow","thResponseQualityMetric","flagResponseQualityMetric","thObedienceLevel","flagObedienceLevel","thValueMeasured","flagValueMeasured","thNotes","thActive","templateAddIcon","flagIcon","assessmentCommandModalityLink","assessment","flagAssessmentCommandModalityLink","responses","createNewRowTableAssessmentResponses","outerHTML","hookupTablesAssessmentResponses","hookupTableAssessmentResponsesFieldsResponseQualityMetric","hookupTableAssessmentResponsesFieldsObedienceLevel","hookupTableAssessmentResponsesFieldsValueMeasured","hookupTableAssessmentResponsesFieldsNotes","hookupTableAssessmentResponsesFieldsActive","filterResponseQualityMetrics","filterObedienceLevels","handleClickAddRowTableAssessmentResponses","tableResponses","attrIdAssessmentResponse","postInitialiseAssessmentResponseRowNewCallback","countActiveRows","rowAssessmentCommandModalityLink","divTrialCount","flagTrialCount","handleClickAddRowTableAssessmentCommandModalityLinks","postInitialiseAssessmentCommandModalityLinkRowNewCallback","isNew","tdResponseQualityMetric","flagDdlPreview","divResponseQualityMetric","tdObedienceLevel","divObedienceLevel","tdValueMeasured","inputValueMeasured","tdNotes","tdActive","templateDeleteIcon","hashPageDogAssessment","PageDogAssessments","hookupFilterWeather","hookupFilterLightingLevel","hookupFilterHandler","attrIdWeather","attrIdLightingLevel","inputTemperatureCelcius","getIdWeatherRow","getIdLightingLevelRow","getIdLocationRow","getIdUserHandlerRow","elementWeather","elementLightingLevel","elementLocation","elementUserHandler","hookupFieldsDetail","hookupFieldsWeather","hookupFieldsLightingLevel","hookupFieldsTemperature","hookupFieldsHandler","flagDetail","idAssessment","PageAccessibilityReport","hashPageAccessibilityReport","PageAccessibilityStatement","hashPageAccessibilityStatement","PageLicense","hashPageLicense","PagePrivacyPolicy","hashPagePrivacyPolicy","PageRetentionSchedule","hashPageDataRetentionSchedule","Router","pages","module","routes","loadPage","hashPage","PageClass","getClassPageFromHash","currentPage","pageJson","handlePopState","loadPageCurrent","history","pushState","navigateToUrl","appendHistory","loadPageBodyFromResponse","App","dom","setupEventListeners","handleGlobalClick","initPageCurrent","app","domReady","readyState"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/main.bundle.js","mappings":"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","sources":["webpack://app/./static/js/lib/validation.js","webpack://app/./static/js/dom.js","webpack://app/./static/js/lib/events.js","webpack://app/./static/js/lib/local_storage.js","webpack://app/./static/js/api.js","webpack://app/./static/js/lib/utils.js","webpack://app/./static/js/components/common/temporary/overlay_confirm.js","webpack://app/./static/js/pages/base.js","webpack://app/./static/js/pages/core/home.js","webpack://app/./static/js/vendor/altcha.js","webpack://app/./static/js/pages/core/contact.js","webpack://app/./static/js/pages/core/contact-success.js","webpack://app/./static/js/pages/dog/home.js","webpack://app/./static/js/lib/business_objects/business_objects.js","webpack://app/./static/js/components/common/temporary/overlay_error.js","webpack://app/./static/js/pages/base_table.js","webpack://app/./static/js/pages/dog/mixin.js","webpack://app/./static/js/pages/dog/mixin_table.js","webpack://app/./static/js/pages/dog/command_categories.js","webpack://app/./static/js/pages/dog/commands.js","webpack://app/./static/js/pages/dog/dog_command_links.js","webpack://app/./static/js/pages/dog/locations.js","webpack://app/./static/js/pages/dog/button_icons.js","webpack://app/./static/js/pages/dog/command_button_links.js","webpack://app/./static/js/pages/dog/assessment.js","webpack://app/./static/js/pages/dog/assessments.js","webpack://app/./static/js/pages/legal/accessibility_report.js","webpack://app/./static/js/pages/legal/accessibility_statement.js","webpack://app/./static/js/pages/legal/license.js","webpack://app/./static/js/pages/legal/privacy_policy.js","webpack://app/./static/js/pages/legal/retention_schedule.js","webpack://app/./static/js/router.js","webpack://app/./static/js/app.js","webpack://app/./static/css/main.css?0a91","webpack://app/./static/css/components/button.css?0e0b","webpack://app/./static/css/components/card.css","webpack://app/./static/css/components/dialog.css","webpack://app/./static/css/components/form.css?94e1","webpack://app/./static/css/components/image.css?9f9c","webpack://app/./static/css/components/label.css?b78f","webpack://app/./static/css/components/modal.css","webpack://app/./static/css/components/navigation.css","webpack://app/./static/css/components/overlay.css?6dfd","webpack://app/./static/css/components/table.css?e553","webpack://app/./static/css/layouts/header.css?da75","webpack://app/./static/css/layouts/footer.css?65e3","webpack://app/./static/css/layouts/table-main.css?8c15","webpack://app/./static/css/lib/reset.css","webpack://app/./static/css/lib/typography.css","webpack://app/./static/css/lib/utils.css?0479","webpack://app/./static/css/lib/variables.css","webpack://app/./static/css/themes/light.css?855e"],"sourcesContent":["\nexport default class Validation {\n /*\n isNullOrWhitespace(v) {\n let txt = JSON.stringify(v).replace('/\\s\\g', '');\n return (txt == '' || 'null');\n }\n */\n\n static isEmpty(object) {\n\n let isEmpty = true;\n\n if (object !== null && object !== \"null\" && object !== undefined && object !== \"undefined\") {\n\n if (object.length == undefined) {\n isEmpty = false; // object exists but isn't a collection\n }\n else if (typeof object === \"function\") {\n isEmpty = false; // object is reference\n }\n else { // string or collection\n\n let isString = (typeof object == \"string\");\n\n if (isString) object = object.trim();\n\n if (object.length > 0) {\n\n if (isString) {\n isEmpty = false; // String greater than length 0\n }\n else {\n\n if (typeof object[0] != \"string\") {\n isEmpty = false;\n }\n else {\n for(let i = 0; i < object.length; i++) {\n if (object[i] != \"\") {\n isEmpty = false;\n break\n }\n }\n }\n }\n }\n }\n }\n\n return isEmpty;\n }\n\n static isValidNumber(value, positiveOnly) {\n return !Validation.isEmpty(value) && !isNaN(value) && (!positiveOnly || parseFloat(value) > 0);\n }\n\n static getDataContentType(params) {\n\n var data = null;\n var contentType = '';\n\n if (!Validation.isEmpty(params)) {\n\n if (typeof params === \"string\") {\n data = params;\n contentType = \"application/x-www-form-urlencoded; charset=UTF-8\";\n }\n else {\n data = JSON.stringify(params);\n contentType = \"application/json; charset=UTF-8\";\n }\n }\n\n return { Data: data, ContentType: contentType };\n }\n\n static arrayContainsItem(array, itemValue) {\n\n var hasItem = false;\n\n if (!Validation.isEmpty(array) && !Validation.isEmpty(itemValue)) {\n\n var isJQueryElementArray = array[0] instanceof jQuery;\n\n if (isJQueryElementArray) {\n\n for (let i = 0; i < array.length; i++) {\n\n if (document.querySelectorAll(array[i]).is(itemValue)) {\n hasItem = true;\n break;\n }\n }\n }\n else {\n\n var isDate = array[0] instanceof Date;\n\n if (isDate) {\n \n for (let i = 0; i < array.length; i++) {\n\n if (array[i].getTime() === itemValue.getTime()) {\n hasItem = true;\n break;\n }\n }\n }\n else {\n\n for (let i = 0; i < array.length; i++) {\n\n if (array[i] == itemValue) {\n hasItem = true;\n break;\n }\n }\n }\n }\n }\n\n return hasItem;\n }\n\n static dictHasKey(d, k) {\n return (k in d);\n }\n static areEqualDicts(dict1, dict2) {\n const keys1 = Object.keys(dict1);\n const keys2 = Object.keys(dict2);\n \n if (keys1.length !== keys2.length) {\n return false;\n }\n \n for (let key of keys1) {\n if (dict1[key] !== dict2[key]) {\n return false;\n }\n }\n \n return true;\n }\n\n static imageExists(url, callback) {\n\n var img = new Image();\n\n img.onload = function() { callback(true); };\n img.onerror = function() { callback(false); };\n img.src = url;\n }\n\n static toFixedOrDefault(value, decimalPlaces, defaultValue = null) {\n return Validation.isValidNumber(value) ? parseFloat(value).toFixed(decimalPlaces) : defaultValue;\n }\n}\n","\nimport Utils from \"./lib/utils.js\";\nimport Validation from \"./lib/validation.js\";\n\nexport default class DOM {\n static setElementAttributesValuesCurrentAndPrevious(element, data) {\n DOM.setElementAttributeValueCurrent(element, data);\n DOM.setElementAttributeValuePrevious(element, data);\n }\n static setElementAttributeValueCurrent(element, data) {\n element.setAttribute(attrValueCurrent, data);\n }\n static setElementAttributeValuePrevious(element, data) {\n element.setAttribute(attrValuePrevious, data);\n }\n static setElementValuesCurrentAndPrevious(element, data) {\n DOM.setElementValueCurrent(element, data);\n DOM.setElementAttributeValuePrevious(element, data);\n }\n static setElementValueCurrent(element, data) {\n DOM.setElementAttributeValueCurrent(element, data);\n let tagName = element.tagName.toUpperCase();\n if (element.type === \"checkbox\") {\n element.checked = data;\n }\n else if (tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT') {\n element.value = data;\n }\n else {\n element.textContent = data;\n }\n }\n static setElementValueCurrentIfEmpty(element, data) {\n if (Validation.isEmpty(DOM.getElementValueCurrent(element))) {\n DOM.setElementValueCurrent(element, data);\n }\n }\n static getCellFromElement(element) {\n return element.closest('td');\n }\n static getRowFromElement(element, flagRow) {\n let selector = Validation.isEmpty(flagRow) ? 'tr' : 'tr.' + flagRow;\n return element.closest(selector);\n }\n static getClosestParent(element, parentSelector) {\n let parent = element.parentElement;\n while (parent) {\n if (parent.matches(parentSelector)) {\n return parent;\n }\n parent = parent.parentElement;\n }\n return null;\n }\n static convertForm2JSON(elementForm) {\n let dataForm = {};\n if (Validation.isEmpty(elementForm)) {\n return dataForm;\n }\n let containersFilter = elementForm.querySelectorAll('.' + flagContainerInput + '.' + flagFilter);\n let containerFilter, labelFilter, keyFilter, filter;\n for (let indexFilter = 0; indexFilter < containersFilter.length; indexFilter++) {\n containerFilter = containersFilter[indexFilter];\n labelFilter = containerFilter.querySelector('label');\n keyFilter = labelFilter.getAttribute('for');\n filter = containerFilter.querySelector(`#${keyFilter}`);\n dataForm[keyFilter] = DOM.getElementValueCurrent(filter);\n }\n return dataForm;\n }\n static loadPageBody(contentNew) {\n let pageBody = document.querySelector(idPageBody);\n pageBody.innerHTML = contentNew;\n }\n static getHashPageCurrent() {\n const hashPageCurrent = document.body.dataset.page;\n return hashPageCurrent;\n }\n static updateAndCheckIsElementDirty(element) {\n element.setAttribute(attrValueCurrent, DOM.getElementValueCurrent(element));\n return DOM.isElementDirty(element);\n }\n static isElementDirty(element) {\n let isDirty = element.getAttribute(attrValuePrevious) != element.getAttribute(attrValueCurrent);\n DOM.handleDirtyElement(element, isDirty);\n return isDirty;\n }\n static handleDirtyElement(element, isDirty) {\n DOM.toggleElementHasClassnameFlag(element, isDirty, flagDirty);\n }\n static toggleElementHasClassnameFlag(element, elementHasFlag, flag) {\n let elementAlreadyHasFlag = element.classList.contains(flag);\n if (elementHasFlag == elementAlreadyHasFlag) return;\n if (elementHasFlag) {\n element.classList.add(flag);\n } else {\n element.classList.remove(flag);\n }\n }\n static hasDirtyChildrenContainer(container) {\n if (container == null) return false;\n return container.querySelector('.' + flagDirty) != null;\n }\n static hasDirtyChildrenNotDeletedContainer(container) {\n if (container == null || container.classList.contains(flagDelete)) return false;\n return container.querySelector('.' + flagDirty + ':not(.' + flagDelete + ', .' + flagDelete + ' *)') != null;\n }\n static getElementValueCurrent(element) {\n let returnVal = '';\n \n if (!Validation.isEmpty(element)) {\n \n let tagName = element.tagName.toUpperCase();\n if (element.type === \"checkbox\") {\n returnVal = element.checked;\n }\n /*\n else if (element.classList.contains(flagIsDatePicker)) {\n returnVal = getDatePickerDate(element, adjust4DayLightSavings);\n }\n */\n else if (tagName === 'INPUT' || tagName === 'TEXTAREA' || tagName === 'SELECT') {\n returnVal = element.value;\n }\n else if (element.classList.contains(flagButton) && element.classList.contains(flagActive)) { // tagName === 'BUTTON'\n returnVal = element.classList.contains(flagDelete);\n }\n else if (tagName === 'TD') {\n returnVal = DOM.getElementAttributeValueCurrent(element);\n }\n else if (tagName == 'SVG' && element.classList.contains(flagCheckbox)) {\n returnVal = (element.classList.contains(flagIsChecked))\n }\n else {\n returnVal = element.textContent;\n }\n }\n \n if (Validation.isEmpty(returnVal)) returnVal = '';\n \n return returnVal;\n }\n static getElementAttributeValueCurrent(element) {\n // debugger;\n if (Validation.isEmpty(element)) return null;\n return element.getAttribute(attrValueCurrent);\n }\n static getElementAttributeValuePrevious(element) {\n if (Validation.isEmpty(element)) return null;\n return element.getAttribute(attrValuePrevious);\n }\n /* base_table.handleChangeElementCellTable\n static updateAndCheckIsTableElementDirty(element) {\n let wasDirty = DOM.isElementDirty(element);\n let row = DOM.getRowFromElement(element);\n let wasDirtyRow = DOM.hasDirtyChildrenNotDeletedContainer(row);\n let isDirty = DOM.updateAndCheckIsElementDirty(element);\n let cell = DOM.getCellFromElement(element);\n Utils.consoleLogIfNotProductionEnvironment({element, row, cell, isDirty, wasDirty});\n if (isDirty != wasDirty) {\n DOM.handleDirtyElement(cell, isDirty);\n let isDirtyRow = DOM.hasDirtyChildrenNotDeletedContainer(row);\n Utils.consoleLogIfNotProductionEnvironment({isDirtyRow, wasDirtyRow});\n if (isDirtyRow != wasDirtyRow) {\n DOM.handleDirtyElement(row, isDirtyRow);\n }\n }\n }\n */\n static scrollToElement(parent, element) {\n // REQUIRED: parent has scroll-bar\n parent.scrollTop(parent.scrollTop() + (element.offset().top - parent.offset().top));\n }\n static isElementInContainer(container, element) {\n\n if (typeof jQuery === 'function') {\n if (container instanceof jQuery) container = container[0];\n if (element instanceof jQuery) element = element[0];\n }\n\n var containerBounds = container.getBoundingClientRect();\n var elementBounds = element.getBoundingClientRect();\n\n return (\n containerBounds.top <= elementBounds.top &&\n containerBounds.left <= elementBounds.left &&\n ((elementBounds.top + elementBounds.height) <= (containerBounds.top + containerBounds.height)) &&\n ((elementBounds.left + elementBounds.width) <= (containerBounds.left + containerBounds.width))\n );\n }\n static alertError(errorType, errorText) {\n alert(errorType + '\\n' + errorText);\n }\n static createOptionUnselectedProductVariation() {\n return {\n [flagProductVariationType]: {\n [flagNameAttrOptionText]: [flagName],\n [flagNameAttrOptionValue]: [attrIdProductVariationType],\n [flagName]: 'Select Variation Type',\n [attrIdProductVariationType]: 0,\n },\n [flagProductVariation]: {\n [flagNameAttrOptionText]: [flagName],\n [flagNameAttrOptionValue]: [attrIdProductVariation],\n [flagName]: 'Select Variation',\n [attrIdProductVariation]: 0,\n },\n };\n }\n static createOption(optionJson) {\n if (Validation.isEmpty(optionJson)) optionJson = {\n text: 'Select',\n value: 0,\n };\n let option = document.createElement('option');\n option.value = optionJson.value;\n option.textContent = optionJson.text;\n option.selected = optionJson.selected;\n return option;\n }\n\n static escapeHtml(text) {\n const div = document.createElement('div');\n div.textContent = text;\n return div.innerHTML;\n }\n static unescapeHtml(html) {\n const div = document.createElement('div');\n div.innerHTML = html;\n return div.textContent || div.innerText || '';\n }\n}\n","\nexport default class Events {\n static initialiseEventHandler(selectorElement, classInitialised, eventHandler) {\n document.querySelectorAll(selectorElement).forEach(function(element) {\n if (element.classList.contains(classInitialised)) return;\n eventHandler(element);\n element.classList.add(classInitialised);\n });\n }\n static hookupEventHandler(eventType, selector, callback) {\n Events.initialiseEventHandler(selector, flagInitialised, (element) => {\n element.addEventListener(eventType, (event) => {\n event.stopPropagation();\n callback(event, element);\n });\n });\n }\n}","\nimport Validation from \"./validation.js\";\n\nexport default class LocalStorage {\n/*\nfunction getPageLocalStorage(pageHash) {\n\n let ls;\n try {\n ls = JSON.parse(localStorage.getItem(pageHash));\n } catch {\n\n }\n\n if (Validation.isEmpty(ls)) return {}\n\n return ls;\n}\nfunction getPageLocalStorageCurrent() {\n\n return JSON.parse(localStorage.getItem(hashPageCurrent));\n}\n\nfunction setPageLocalStorage(pageHash, newLS) {\n\n localStorage.setItem(pageHash, JSON.stringify(newLS));\n}\n\nfunction clearPageLocalStorage(pageHash) {\n localStorage.removeItem(pageHash);\n}\n\nfunction setupPageLocalStorage(pageHash) {\n\n let ls = getPageLocalStorage(pageHash);\n\n if (Validation.isEmpty(ls)) ls = {};\n\n setPageLocalStorage(pageHash, ls);\n}\n*/\n\n static getLocalStorage(key) {\n return JSON.parse(localStorage.getItem(key));\n }\n\n static setLocalStorage(key, newLS) {\n localStorage.setItem(key, JSON.stringify(newLS));\n }\n\n/*\nfunction setupPageLocalStorageNext(pageHashNext) {\n let lsOld = getPageLocalStorage(hashPageCurrent);\n hashPageCurrent = pageHashNext;\n clearPageLocalStorage(hashPageCurrent);\n setupPageLocalStorage(hashPageCurrent);\n let lsNew = getPageLocalStorage(hashPageCurrent);\n lsNew[keyBasket] = (keyBasket in lsOld) ? lsOld[keyBasket] : {'items': []};\n setPageLocalStorage(hashPageCurrent, lsNew);\n}\n*/\n}","import DOM from './dom.js';\n\nexport default class API {\n \n static getCsrfToken() {\n return document.querySelector(idCSRFToken).getAttribute('content');\n }\n \n static async request(hashEndpoint, method = 'GET', data = null, params = null) {\n const url = API.getUrlFromHash(hashEndpoint, params);\n const csrfToken = API.getCsrfToken();\n const options = {\n method,\n headers: {\n 'Content-Type': 'application/json',\n [flagCsrfToken]: csrfToken,\n }\n };\n\n if (data && (method === 'POST' || method === 'PUT' || method === 'PATCH')) {\n data = { \n ...data, \n [flagCsrfToken]: csrfToken,\n };\n options.body = JSON.stringify(data);\n }\n\n try {\n const response = await fetch(url, options);\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n return await response.json();\n } catch (error) {\n console.error('API request failed:', error);\n throw error;\n }\n }\n \n static getUrlFromHash(hash, params = null) {\n if (hash == null) hash = hashPageHome;\n let url = API.parameteriseUrl(_pathHost + hash, params);\n return url;\n }\n static parameteriseUrl(url, params) {\n if (params) {\n url += '?' + new URLSearchParams(params).toString();\n }\n return url;\n }\n static goToUrl(url) {\n window.location.href = url;\n }\n static goToHash(hash, params = null) {\n const url = API.getUrlFromHash(hash, params);\n API.goToUrl(url);\n }\n\n // specific api calls\n /* Example:\n getUsers: () => request('/users'),\n getUserById: (id) => request(`/users/${id}`),\n createUser: (userData) => request('/users', 'POST', userData),\n updateUser: (id, userData) => request(`/users/${id}`, 'PUT', userData),\n deleteUser: (id) => request(`/users/${id}`, 'DELETE'),\n */\n static async loginUser() {\n let callback = {};\n callback[flagCallback] = DOM.getHashPageCurrent();\n return await API.request(hashPageUserLogin, 'POST', callback);\n }\n\n // dog\n // Command categories\n static async saveCommandCategories(commandCategories, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagCommandCategory] = commandCategories;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogCommandCategory, 'POST', dataRequest);\n }\n \n // Commands\n static async saveCommands(commands, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagCommand] = commands;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogCommand, 'POST', dataRequest);\n }\n \n // Dog Command Links\n static async saveDogCommandLinks(dogCommandLinks, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagDogCommandLink] = dogCommandLinks;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogDogCommandLink, 'POST', dataRequest);\n }\n \n // Locations\n static async saveLocations(locations, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagLocation] = locations;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogLocation, 'POST', dataRequest);\n }\n \n // Button Icons\n static async saveButtonIcons(buttonIcons, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagButtonIcon] = buttonIcons;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogButtonIcon, 'POST', dataRequest);\n }\n \n // Command Button Links\n static async saveCommandButtonLinks(links, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagCommandButtonLink] = links;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogCommandButtonLink, 'POST', dataRequest);\n }\n \n // Assessments\n static async saveAssessments(assessments, formFilters, comment) {\n let dataRequest = {};\n dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n dataRequest[flagAssessment] = assessments;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogAssessment, 'POST', dataRequest);\n }\n \n // Assessments\n static async saveAssessmentsDistractionsAndResponses(assessments, formFilters, comment) {\n let filtersJson = DOM.convertForm2JSON(formFilters);\n filtersJson[attrIdAssessment] = null;\n let dataRequest = {};\n dataRequest[flagFormFilters] = filtersJson;\n dataRequest[flagAssessment] = assessments;\n dataRequest[flagComment] = comment;\n return await API.request(hashSaveDogAssessmentDistractionAndResponse, 'POST', dataRequest);\n }\n \n}\n","// Utility functions\n/*\nfunction $(selector) {\n return document.querySelector(selector);\n}\n\nfunction $$(selector) {\n return document.querySelectorAll(selector);\n}\n*/\nexport default class Utils {\n static getListFromDict(dict) {\n let list = [];\n for (let key in dict) {\n list.push(dict[key]);\n }\n return list;\n }\n static consoleLogIfNotProductionEnvironment(message) {\n if (environment.is_production != \"true\") {\n console.log(message);\n }\n }\n}","\nimport Events from \"../../../lib/events.js\";\n\nexport default class OverlayConfirm {\n static hookup(callbackSuccess) {\n Events.initialiseEventHandler(idOverlayConfirm + ' button.' + flagCancel, flagInitialised, (buttonCancel) => {\n buttonCancel.addEventListener('click', () => {\n let overlay = document.querySelector(idOverlayConfirm);\n overlay.style.visibility = 'hidden';\n });\n });\n Events.initialiseEventHandler(idOverlayConfirm + ' button.' + flagSubmit, flagInitialised, (buttonConfirm) => {\n buttonConfirm.addEventListener('click', () => {\n let overlay = document.querySelector(idOverlayConfirm);\n let textarea = overlay.querySelector('textarea');\n overlay.style.visibility = 'hidden';\n callbackSuccess(textarea.value);\n });\n });\n }\n static show() {\n let overlay = document.querySelector(idOverlayConfirm);\n overlay.classList.remove(flagIsCollapsed);\n overlay.style.visibility = 'visible';\n }\n}","\nimport BusinessObjects from \"../lib/business_objects/business_objects.js\";\nimport Events from \"../lib/events.js\";\nimport LocalStorage from \"../lib/local_storage.js\";\nimport API from \"../api.js\";\nimport DOM from \"../dom.js\";\nimport Utils from \"../lib/utils.js\";\n\nimport OverlayConfirm from \"../components/common/temporary/overlay_confirm.js\";\nimport OverlayError from \"../components/common/temporary/overlay_error.js\";\nimport Validation from \"../lib/validation.js\";\n\nexport default class BasePage {\n constructor(router) {\n if (!router) {\n throw new Error(\"Router is required\");\n }\n else {\n Utils.consoleLogIfNotProductionEnvironment(\"initialising with router: \", router);\n }\n this.router = router;\n this.title = titlePageCurrent;\n if (this.constructor === BasePage) {\n throw new Error(\"Cannot instantiate abstract class\");\n }\n \n if (!this.constructor.hash) {\n throw new Error(`Class ${this.constructor.name} must have a static hash attribute.`);\n }\n }\n\n initialize() {\n throw new Error(\"Method 'initialize()' must be implemented.\");\n }\n\n sharedInitialize() {\n this.logInitialisation();\n this.hookupCommonElements();\n }\n\n logInitialisation() {\n Utils.consoleLogIfNotProductionEnvironment('Initializing ' + this.title + ' page');\n }\n \n hookupCommonElements() {\n // hookupVideos();\n this.hookupLogos();\n this.hookupNavigation();\n this.hookupOverlays();\n }\n \n hookupNavigation() {\n Events.hookupEventHandler(\"click\", idButtonHamburger, (event, element) => {\n let overlayHamburger = document.querySelector(idOverlayHamburger);\n if (overlayHamburger.classList.contains(flagIsCollapsed)) {\n overlayHamburger.classList.remove(flagIsCollapsed);\n overlayHamburger.classList.add(flagExpanded);\n } else {\n overlayHamburger.classList.remove(flagExpanded);\n overlayHamburger.classList.add(flagIsCollapsed);\n }\n });\n\n this.hookupButtonsNavHome();\n this.hookupButtonsNavContact();\n // this.hookupButtonsNavAdminHome();\n this.hookupButtonsNavUserAccount();\n this.hookupButtonsNavUserLogout();\n this.hookupButtonsNavUserLogin();\n\n // this.hookupButtonsNavStoreHome();\n // this.hookupButtonsNavStoreManufacturingPurchaseOrders();\n this.hookupButtonsNavDogHome();\n this.hookupButtonsNavDogCommandCategories();\n this.hookupButtonsNavDogCommands();\n this.hookupButtonsNavDogDogCommandLinks();\n this.hookupButtonsNavDogDogs();\n this.hookupButtonsNavDogLocations();\n this.hookupButtonsNavDogButtonIcons();\n this.hookupButtonsNavDogCommandButtonLinks();\n this.hookupButtonsNavDogAssessments();\n }\n hookupEventHandler(eventType, selector, callback) {\n Events.initialiseEventHandler(selector, flagInitialised, (element) => {\n element.addEventListener(eventType, (event) => {\n event.stopPropagation();\n callback(event, element);\n });\n });\n }\n hookupButtonsNavHome() {\n this.hookupButtonsNav('.' + flagNavHome, hashPageHome);\n }\n hookupButtonsNav(buttonSelector, hashPageNav) {\n Events.hookupEventHandler(\"click\", buttonSelector, (event, button) => { \n this.router.navigateToHash(hashPageNav); \n });\n }\n hookupButtonsNavContact() {\n this.hookupButtonsNav('.' + flagNavContact, hashPageContact);\n }\n /*\n hookupButtonsNavAdminHome() {\n this.hookupButtonsNav('.' + flagNavAdminHome, hashPageAdminHome);\n }\n hookupButtonsNavServices() {\n this.hookupButtonsNav('.' + flagNavServices, hashPageServices);\n }\n */\n hookupButtonsNavUserAccount() {\n this.hookupButtonsNav('.' + flagNavUserAccount, hashPageUserAccount);\n }\n hookupButtonsNavUserLogout() {\n this.hookupButtonsNav('.' + flagNavUserLogout, hashPageUserLogout);\n }\n hookupButtonsNavUserLogin() {\n Events.hookupEventHandler(\"click\", '.' + flagNavUserLogin, (event, navigator) => { \n event.stopPropagation();\n this.leave();\n API.loginUser()\n .then((response) => {\n if (response.Success) {\n window.location.href = response[flagCallback];\n } else {\n DOM.alertError(\"Error\", response.Message);\n }\n });\n });\n }\n hookupButtonsNavDogHome() {\n this.hookupButtonsNav('.' + flagNavDogHome, hashPageDogHome);\n }\n hookupButtonsNavDogCommandCategories() {\n this.hookupButtonsNav('.' + flagNavDogCommandCategories, hashPageDogCommandCategories);\n }\n hookupButtonsNavDogCommands() {\n this.hookupButtonsNav('.' + flagNavDogCommands, hashPageDogCommands);\n }\n hookupButtonsNavDogDogCommandLinks() {\n this.hookupButtonsNav('.' + flagNavDogDogCommandLinks, hashPageDogDogCommandLinks);\n }\n hookupButtonsNavDogDogs() {\n this.hookupButtonsNav('.' + flagNavDogDogs, hashPageDogDogs);\n }\n hookupButtonsNavDogLocations() {\n this.hookupButtonsNav('.' + flagNavDogLocations, hashPageDogLocations);\n }\n hookupButtonsNavDogButtonIcons() {\n this.hookupButtonsNav('.' + flagNavDogButtonIcons, hashPageDogButtonIcons);\n }\n hookupButtonsNavDogCommandButtonLinks() {\n this.hookupButtonsNav('.' + flagNavDogCommandButtonLinks, hashPageDogCommandButtonLinks);\n }\n hookupButtonsNavDogAssessments() {\n this.hookupButtonsNav('.' + flagNavDogAssessments, hashPageDogAssessments);\n }\n\n hookupLogos() {\n Events.hookupEventHandler(\"click\", \".\" + flagImageLogo + \",\" + \".\" + flagLogo, (event, element) => {\n Utils.consoleLogIfNotProductionEnvironment('clicking logo');\n this.router.navigateToHash(hashPageHome);\n });\n }\n\n hookupOverlays() {\n this.hookupOverlayFromId(idOverlayConfirm);\n this.hookupOverlayFromId(idOverlayError);\n }\n\n hookupOverlayFromId(idOverlay) {\n Events.initialiseEventHandler(idOverlay, flagInitialised, (overlay) => {\n overlay.querySelector('button.' + flagCancel).addEventListener(\"click\", (event) => {\n event.stopPropagation();\n overlay.style.display = 'none';\n });\n });\n }\n\n hookupButtonSave() {\n Events.initialiseEventHandler('.' + flagContainer + '.' + flagSave + '.' + flagCancel + ' button.' + flagSave, flagInitialised, (button) => {\n button.addEventListener(\"click\", (event) => {\n event.stopPropagation();\n button = event.target;\n if (button.classList.contains(flagIsCollapsed)) return;\n Utils.consoleLogIfNotProductionEnvironment('saving page: ', this.title);\n OverlayConfirm.show();\n });\n });\n }\n\n leave() {\n Utils.consoleLogIfNotProductionEnvironment('Leaving ' + this.title + ' page');\n if (this.constructor === BasePage) {\n throw new Error(\"Must implement leave() method.\");\n }\n }\n setLocalStoragePage(dataPage) {\n LocalStorage.setLocalStorage(this.hash, dataPage);\n }\n getLocalStoragePage() {\n return LocalStorage.getLocalStorage(this.hash);\n }\n\n toggleShowButtonsSaveCancel(show, buttonContainerSelector = null) { // , buttonSave = null, buttonCancel = null\n if (Validation.isEmpty(buttonContainerSelector)) buttonContainerSelector = '.' + flagContainer + '.' + flagSave + '.' + flagCancel;\n let buttonSave = document.querySelector(buttonContainerSelector + ' ' + idButtonSave);\n let buttonCancel = document.querySelector(buttonContainerSelector + ' ' + idButtonCancel);\n Utils.consoleLogIfNotProductionEnvironment({ show, buttonContainerSelector, buttonCancel, buttonSave });\n if (show) {\n buttonCancel.classList.remove(flagIsCollapsed);\n buttonSave.classList.remove(flagIsCollapsed);\n Utils.consoleLogIfNotProductionEnvironment('showing buttons');\n } else {\n buttonCancel.classList.add(flagIsCollapsed);\n buttonSave.classList.add(flagIsCollapsed);\n Utils.consoleLogIfNotProductionEnvironment('hiding buttons');\n }\n }\n\n static isDirtyFilter(filter) {\n let isDirty = DOM.updateAndCheckIsElementDirty(filter);\n if (isDirty) document.querySelectorAll(idTableMain + ' tbody tr').remove();\n return isDirty;\n }\n\n}","\n// internal\nimport BasePage from \"../base.js\";\n// external\n\n\nexport default class PageHome extends BasePage {\n static hash = hashPageHome;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n // this.hookupButtonsNav();\n }\n\n leave() {\n super.leave();\n }\n}\n\n","var hi = Object.defineProperty;\nvar Or = (e) => {\n throw TypeError(e);\n};\nvar gi = (e, t, r) => t in e ? hi(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;\nvar ne = (e, t, r) => gi(e, typeof t != \"symbol\" ? t + \"\" : t, r), zr = (e, t, r) => t.has(e) || Or(\"Cannot \" + r);\nvar H = (e, t, r) => (zr(e, t, \"read from private field\"), r ? r.call(e) : t.get(e)), Mt = (e, t, r) => t.has(e) ? Or(\"Cannot add the same private member more than once\") : t instanceof WeakSet ? t.add(e) : t.set(e, r), Ut = (e, t, r, l) => (zr(e, t, \"write to private field\"), l ? l.call(e, r) : t.set(e, r), r);\nconst en = `(function(){\"use strict\";const d=new TextEncoder;function p(e){return[...new Uint8Array(e)].map(t=>t.toString(16).padStart(2,\"0\")).join(\"\")}async function b(e,t,r){if(typeof crypto>\"u\"||!(\"subtle\"in crypto)||!(\"digest\"in crypto.subtle))throw new Error(\"Web Crypto is not available. Secure context is required (https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts).\");return p(await crypto.subtle.digest(r.toUpperCase(),d.encode(e+t)))}function w(e,t,r=\"SHA-256\",n=1e6,s=0){const o=new AbortController,a=Date.now();return{promise:(async()=>{for(let c=s;c<=n;c+=1){if(o.signal.aborted)return null;if(await b(t,c,r)===e)return{number:c,took:Date.now()-a}}return null})(),controller:o}}function h(e){const t=atob(e),r=new Uint8Array(t.length);for(let n=0;n{for(let u=n;u<=r;u+=1){if(o.signal.aborted||!c||!y)return null;try{const f=await crypto.subtle.decrypt({name:s,iv:g(u)},c,y);if(f)return{clearText:new TextDecoder().decode(f),took:Date.now()-a}}catch{}}return null};let c=null,y=null;try{y=h(e);const u=await crypto.subtle.digest(\"SHA-256\",d.encode(t));c=await crypto.subtle.importKey(\"raw\",u,s,!1,[\"decrypt\"])}catch{return{promise:Promise.reject(),controller:o}}return{promise:l(),controller:o}}let i;onmessage=async e=>{const{type:t,payload:r,start:n,max:s}=e.data;let o=null;if(t===\"abort\")i==null||i.abort(),i=void 0;else if(t===\"work\"){if(\"obfuscated\"in r){const{key:a,obfuscated:l}=r||{};o=await m(l,a,s,n)}else{const{algorithm:a,challenge:l,salt:c}=r||{};o=w(l,c,a,s,n)}i=o.controller,o.promise.then(a=>{self.postMessage(a&&{...a,worker:!0})})}}})();\n`, Fr = typeof self < \"u\" && self.Blob && new Blob([en], { type: \"text/javascript;charset=utf-8\" });\nfunction _i(e) {\n let t;\n try {\n if (t = Fr && (self.URL || self.webkitURL).createObjectURL(Fr), !t) throw \"\";\n const r = new Worker(t, {\n name: e == null ? void 0 : e.name\n });\n return r.addEventListener(\"error\", () => {\n (self.URL || self.webkitURL).revokeObjectURL(t);\n }), r;\n } catch {\n return new Worker(\n \"data:text/javascript;charset=utf-8,\" + encodeURIComponent(en),\n {\n name: e == null ? void 0 : e.name\n }\n );\n } finally {\n t && (self.URL || self.webkitURL).revokeObjectURL(t);\n }\n}\nconst mi = \"5\";\nvar Qr;\ntypeof window < \"u\" && ((Qr = window.__svelte ?? (window.__svelte = {})).v ?? (Qr.v = /* @__PURE__ */ new Set())).add(mi);\nconst wi = 1, pi = 4, yi = 8, bi = 16, Ei = 1, xi = 2, Wt = \"[\", tn = \"[!\", rn = \"]\", Je = {}, W = Symbol(), $i = \"http://www.w3.org/1999/xhtml\", Mr = !1, oe = 2, nn = 4, It = 8, Yt = 16, pe = 32, ze = 64, yt = 128, re = 256, bt = 512, K = 1024, ye = 2048, et = 4096, Ke = 8192, St = 16384, ki = 32768, Zt = 65536, Ci = 1 << 19, ln = 1 << 20, ut = Symbol(\"$state\"), an = Symbol(\"legacy props\"), Ai = Symbol(\"\");\nvar on = Array.isArray, Ri = Array.prototype.indexOf, Ii = Array.from, Et = Object.keys, xt = Object.defineProperty, Pe = Object.getOwnPropertyDescriptor, Si = Object.getOwnPropertyDescriptors, Ti = Object.prototype, Ni = Array.prototype, sn = Object.getPrototypeOf;\nfunction fn(e) {\n for (var t = 0; t < e.length; t++)\n e[t]();\n}\nconst Li = typeof requestIdleCallback > \"u\" ? (e) => setTimeout(e, 1) : requestIdleCallback;\nlet dt = [], vt = [];\nfunction un() {\n var e = dt;\n dt = [], fn(e);\n}\nfunction cn() {\n var e = vt;\n vt = [], fn(e);\n}\nfunction Gt(e) {\n dt.length === 0 && queueMicrotask(un), dt.push(e);\n}\nfunction Di(e) {\n vt.length === 0 && Li(cn), vt.push(e);\n}\nfunction Ur() {\n dt.length > 0 && un(), vt.length > 0 && cn();\n}\nfunction dn(e) {\n return e === this.v;\n}\nfunction Pi(e, t) {\n return e != e ? t == t : e !== t || e !== null && typeof e == \"object\" || typeof e == \"function\";\n}\nfunction vn(e) {\n return !Pi(e, this.v);\n}\nfunction Oi(e) {\n throw new Error(\"https://svelte.dev/e/effect_in_teardown\");\n}\nfunction zi() {\n throw new Error(\"https://svelte.dev/e/effect_in_unowned_derived\");\n}\nfunction Fi(e) {\n throw new Error(\"https://svelte.dev/e/effect_orphan\");\n}\nfunction Mi() {\n throw new Error(\"https://svelte.dev/e/effect_update_depth_exceeded\");\n}\nfunction Ui() {\n throw new Error(\"https://svelte.dev/e/hydration_failed\");\n}\nfunction ji(e) {\n throw new Error(\"https://svelte.dev/e/props_invalid_value\");\n}\nfunction Vi() {\n throw new Error(\"https://svelte.dev/e/state_descriptors_fixed\");\n}\nfunction Bi() {\n throw new Error(\"https://svelte.dev/e/state_prototype_fixed\");\n}\nfunction qi() {\n throw new Error(\"https://svelte.dev/e/state_unsafe_local_read\");\n}\nfunction Hi() {\n throw new Error(\"https://svelte.dev/e/state_unsafe_mutation\");\n}\nlet Wi = !1;\nfunction ue(e, t) {\n var r = {\n f: 0,\n // TODO ideally we could skip this altogether, but it causes type errors\n v: e,\n reactions: null,\n equals: dn,\n rv: 0,\n wv: 0\n };\n return r;\n}\nfunction He(e) {\n return /* @__PURE__ */ Yi(ue(e));\n}\n// @__NO_SIDE_EFFECTS__\nfunction hn(e, t = !1) {\n const r = ue(e);\n return t || (r.equals = vn), r;\n}\n// @__NO_SIDE_EFFECTS__\nfunction Yi(e) {\n return k !== null && !ae && (k.f & oe) !== 0 && (ce === null ? Qi([e]) : ce.push(e)), e;\n}\nfunction P(e, t) {\n return k !== null && !ae && Dn() && (k.f & (oe | Yt)) !== 0 && // If the source was created locally within the current derived, then\n // we allow the mutation.\n (ce === null || !ce.includes(e)) && Hi(), Zi(e, t);\n}\nfunction Zi(e, t) {\n return e.equals(t) || (e.v, e.v = t, e.wv = En(), gn(e, ye), A !== null && (A.f & K) !== 0 && (A.f & (pe | ze)) === 0 && (ge === null ? el([e]) : ge.push(e))), t;\n}\nfunction gn(e, t) {\n var r = e.reactions;\n if (r !== null)\n for (var l = r.length, i = 0; i < l; i++) {\n var a = r[i], o = a.f;\n (o & ye) === 0 && (de(a, t), (o & (K | re)) !== 0 && ((o & oe) !== 0 ? gn(\n /** @type {Derived} */\n a,\n et\n ) : Lt(\n /** @type {Effect} */\n a\n )));\n }\n}\n// @__NO_SIDE_EFFECTS__\nfunction De(e) {\n var t = oe | ye, r = k !== null && (k.f & oe) !== 0 ? (\n /** @type {Derived} */\n k\n ) : null;\n return A === null || r !== null && (r.f & re) !== 0 ? t |= re : A.f |= ln, {\n ctx: B,\n deps: null,\n effects: null,\n equals: dn,\n f: t,\n fn: e,\n reactions: null,\n rv: 0,\n v: (\n /** @type {V} */\n null\n ),\n wv: 0,\n parent: r ?? A\n };\n}\nfunction _n(e) {\n var t = e.effects;\n if (t !== null) {\n e.effects = null;\n for (var r = 0; r < t.length; r += 1)\n we(\n /** @type {Effect} */\n t[r]\n );\n }\n}\nfunction Gi(e) {\n for (var t = e.parent; t !== null; ) {\n if ((t.f & oe) === 0)\n return (\n /** @type {Effect} */\n t\n );\n t = t.parent;\n }\n return null;\n}\nfunction Ji(e) {\n var t, r = A;\n Se(Gi(e));\n try {\n _n(e), t = $n(e);\n } finally {\n Se(r);\n }\n return t;\n}\nfunction mn(e) {\n var t = Ji(e), r = (Ce || (e.f & re) !== 0) && e.deps !== null ? et : K;\n de(e, r), e.equals(t) || (e.v = t, e.wv = En());\n}\nfunction Tt(e) {\n console.warn(\"https://svelte.dev/e/hydration_mismatch\");\n}\nlet D = !1;\nfunction Ge(e) {\n D = e;\n}\nlet O;\nfunction Re(e) {\n if (e === null)\n throw Tt(), Je;\n return O = e;\n}\nfunction Xe() {\n return Re(\n /** @type {TemplateNode} */\n /* @__PURE__ */ Te(O)\n );\n}\nfunction Z(e) {\n if (D) {\n if (/* @__PURE__ */ Te(O) !== null)\n throw Tt(), Je;\n O = e;\n }\n}\nfunction Ki() {\n for (var e = 0, t = O; ; ) {\n if (t.nodeType === 8) {\n var r = (\n /** @type {Comment} */\n t.data\n );\n if (r === rn) {\n if (e === 0) return t;\n e -= 1;\n } else (r === Wt || r === tn) && (e += 1);\n }\n var l = (\n /** @type {TemplateNode} */\n /* @__PURE__ */ Te(t)\n );\n t.remove(), t = l;\n }\n}\nfunction le(e, t = null, r) {\n if (typeof e != \"object\" || e === null || ut in e)\n return e;\n const l = sn(e);\n if (l !== Ti && l !== Ni)\n return e;\n var i = /* @__PURE__ */ new Map(), a = on(e), o = ue(0);\n a && i.set(\"length\", ue(\n /** @type {any[]} */\n e.length\n ));\n var f;\n return new Proxy(\n /** @type {any} */\n e,\n {\n defineProperty(s, c, v) {\n (!(\"value\" in v) || v.configurable === !1 || v.enumerable === !1 || v.writable === !1) && Vi();\n var h = i.get(c);\n return h === void 0 ? (h = ue(v.value), i.set(c, h)) : P(h, le(v.value, f)), !0;\n },\n deleteProperty(s, c) {\n var v = i.get(c);\n if (v === void 0)\n c in s && i.set(c, ue(W));\n else {\n if (a && typeof c == \"string\") {\n var h = (\n /** @type {Source} */\n i.get(\"length\")\n ), g = Number(c);\n Number.isInteger(g) && g < h.v && P(h, g);\n }\n P(v, W), jr(o);\n }\n return !0;\n },\n get(s, c, v) {\n var w;\n if (c === ut)\n return e;\n var h = i.get(c), g = c in s;\n if (h === void 0 && (!g || (w = Pe(s, c)) != null && w.writable) && (h = ue(le(g ? s[c] : W, f)), i.set(c, h)), h !== void 0) {\n var m = d(h);\n return m === W ? void 0 : m;\n }\n return Reflect.get(s, c, v);\n },\n getOwnPropertyDescriptor(s, c) {\n var v = Reflect.getOwnPropertyDescriptor(s, c);\n if (v && \"value\" in v) {\n var h = i.get(c);\n h && (v.value = d(h));\n } else if (v === void 0) {\n var g = i.get(c), m = g == null ? void 0 : g.v;\n if (g !== void 0 && m !== W)\n return {\n enumerable: !0,\n configurable: !0,\n value: m,\n writable: !0\n };\n }\n return v;\n },\n has(s, c) {\n var m;\n if (c === ut)\n return !0;\n var v = i.get(c), h = v !== void 0 && v.v !== W || Reflect.has(s, c);\n if (v !== void 0 || A !== null && (!h || (m = Pe(s, c)) != null && m.writable)) {\n v === void 0 && (v = ue(h ? le(s[c], f) : W), i.set(c, v));\n var g = d(v);\n if (g === W)\n return !1;\n }\n return h;\n },\n set(s, c, v, h) {\n var F;\n var g = i.get(c), m = c in s;\n if (a && c === \"length\")\n for (var w = v; w < /** @type {Source} */\n g.v; w += 1) {\n var z = i.get(w + \"\");\n z !== void 0 ? P(z, W) : w in s && (z = ue(W), i.set(w + \"\", z));\n }\n g === void 0 ? (!m || (F = Pe(s, c)) != null && F.writable) && (g = ue(void 0), P(g, le(v, f)), i.set(c, g)) : (m = g.v !== W, P(g, le(v, f)));\n var T = Reflect.getOwnPropertyDescriptor(s, c);\n if (T != null && T.set && T.set.call(h, v), !m) {\n if (a && typeof c == \"string\") {\n var Y = (\n /** @type {Source} */\n i.get(\"length\")\n ), M = Number(c);\n Number.isInteger(M) && M >= Y.v && P(Y, M + 1);\n }\n jr(o);\n }\n return !0;\n },\n ownKeys(s) {\n d(o);\n var c = Reflect.ownKeys(s).filter((g) => {\n var m = i.get(g);\n return m === void 0 || m.v !== W;\n });\n for (var [v, h] of i)\n h.v !== W && !(v in s) && c.push(v);\n return c;\n },\n setPrototypeOf() {\n Bi();\n }\n }\n );\n}\nfunction jr(e, t = 1) {\n P(e, e.v + t);\n}\nvar Vr, wn, pn, yn;\nfunction jt() {\n if (Vr === void 0) {\n Vr = window, wn = /Firefox/.test(navigator.userAgent);\n var e = Element.prototype, t = Node.prototype;\n pn = Pe(t, \"firstChild\").get, yn = Pe(t, \"nextSibling\").get, e.__click = void 0, e.__className = void 0, e.__attributes = null, e.__style = void 0, e.__e = void 0, Text.prototype.__t = void 0;\n }\n}\nfunction Jt(e = \"\") {\n return document.createTextNode(e);\n}\n// @__NO_SIDE_EFFECTS__\nfunction me(e) {\n return pn.call(e);\n}\n// @__NO_SIDE_EFFECTS__\nfunction Te(e) {\n return yn.call(e);\n}\nfunction G(e, t) {\n if (!D)\n return /* @__PURE__ */ me(e);\n var r = (\n /** @type {TemplateNode} */\n /* @__PURE__ */ me(O)\n );\n return r === null && (r = O.appendChild(Jt())), Re(r), r;\n}\nfunction Br(e, t) {\n if (!D) {\n var r = (\n /** @type {DocumentFragment} */\n /* @__PURE__ */ me(\n /** @type {Node} */\n e\n )\n );\n return r instanceof Comment && r.data === \"\" ? /* @__PURE__ */ Te(r) : r;\n }\n return O;\n}\nfunction he(e, t = 1, r = !1) {\n let l = D ? O : e;\n for (var i; t--; )\n i = l, l = /** @type {TemplateNode} */\n /* @__PURE__ */ Te(l);\n if (!D)\n return l;\n var a = l == null ? void 0 : l.nodeType;\n if (r && a !== 3) {\n var o = Jt();\n return l === null ? i == null || i.after(o) : l.before(o), Re(o), o;\n }\n return Re(l), /** @type {TemplateNode} */\n l;\n}\nfunction Xi(e) {\n e.textContent = \"\";\n}\nlet wt = !1, $t = !1, kt = null, Oe = !1, Kt = !1;\nfunction qr(e) {\n Kt = e;\n}\nlet ct = [];\nlet k = null, ae = !1;\nfunction Ie(e) {\n k = e;\n}\nlet A = null;\nfunction Se(e) {\n A = e;\n}\nlet ce = null;\nfunction Qi(e) {\n ce = e;\n}\nlet V = null, J = 0, ge = null;\nfunction el(e) {\n ge = e;\n}\nlet bn = 1, Ct = 0, Ce = !1;\nfunction En() {\n return ++bn;\n}\nfunction ht(e) {\n var h;\n var t = e.f;\n if ((t & ye) !== 0)\n return !0;\n if ((t & et) !== 0) {\n var r = e.deps, l = (t & re) !== 0;\n if (r !== null) {\n var i, a, o = (t & bt) !== 0, f = l && A !== null && !Ce, s = r.length;\n if (o || f) {\n var c = (\n /** @type {Derived} */\n e\n ), v = c.parent;\n for (i = 0; i < s; i++)\n a = r[i], (o || !((h = a == null ? void 0 : a.reactions) != null && h.includes(c))) && (a.reactions ?? (a.reactions = [])).push(c);\n o && (c.f ^= bt), f && v !== null && (v.f & re) === 0 && (c.f ^= re);\n }\n for (i = 0; i < s; i++)\n if (a = r[i], ht(\n /** @type {Derived} */\n a\n ) && mn(\n /** @type {Derived} */\n a\n ), a.wv > e.wv)\n return !0;\n }\n (!l || A !== null && !Ce) && de(e, K);\n }\n return !1;\n}\nfunction tl(e, t) {\n for (var r = t; r !== null; ) {\n if ((r.f & yt) !== 0)\n try {\n r.fn(e);\n return;\n } catch {\n r.f ^= yt;\n }\n r = r.parent;\n }\n throw wt = !1, e;\n}\nfunction rl(e) {\n return (e.f & St) === 0 && (e.parent === null || (e.parent.f & yt) === 0);\n}\nfunction Nt(e, t, r, l) {\n if (wt) {\n if (r === null && (wt = !1), rl(t))\n throw e;\n return;\n }\n r !== null && (wt = !0);\n {\n tl(e, t);\n return;\n }\n}\nfunction xn(e, t, r = !0) {\n var l = e.reactions;\n if (l !== null)\n for (var i = 0; i < l.length; i++) {\n var a = l[i];\n (a.f & oe) !== 0 ? xn(\n /** @type {Derived} */\n a,\n t,\n !1\n ) : t === a && (r ? de(a, ye) : (a.f & K) !== 0 && de(a, et), Lt(\n /** @type {Effect} */\n a\n ));\n }\n}\nfunction $n(e) {\n var m;\n var t = V, r = J, l = ge, i = k, a = Ce, o = ce, f = B, s = ae, c = e.f;\n V = /** @type {null | Value[]} */\n null, J = 0, ge = null, Ce = (c & re) !== 0 && (ae || !Oe || k === null), k = (c & (pe | ze)) === 0 ? e : null, ce = null, Wr(e.ctx), ae = !1, Ct++;\n try {\n var v = (\n /** @type {Function} */\n (0, e.fn)()\n ), h = e.deps;\n if (V !== null) {\n var g;\n if (At(e, J), h !== null && J > 0)\n for (h.length = J + V.length, g = 0; g < V.length; g++)\n h[J + g] = V[g];\n else\n e.deps = h = V;\n if (!Ce)\n for (g = J; g < h.length; g++)\n ((m = h[g]).reactions ?? (m.reactions = [])).push(e);\n } else h !== null && J < h.length && (At(e, J), h.length = J);\n if (Dn() && ge !== null && !ae && h !== null && (e.f & (oe | et | ye)) === 0)\n for (g = 0; g < /** @type {Source[]} */\n ge.length; g++)\n xn(\n ge[g],\n /** @type {Effect} */\n e\n );\n return i !== null && Ct++, v;\n } finally {\n V = t, J = r, ge = l, k = i, Ce = a, ce = o, Wr(f), ae = s;\n }\n}\nfunction nl(e, t) {\n let r = t.reactions;\n if (r !== null) {\n var l = Ri.call(r, e);\n if (l !== -1) {\n var i = r.length - 1;\n i === 0 ? r = t.reactions = null : (r[l] = r[i], r.pop());\n }\n }\n r === null && (t.f & oe) !== 0 && // Destroying a child effect while updating a parent effect can cause a dependency to appear\n // to be unused, when in fact it is used by the currently-updating parent. Checking `new_deps`\n // allows us to skip the expensive work of disconnecting and immediately reconnecting it\n (V === null || !V.includes(t)) && (de(t, et), (t.f & (re | bt)) === 0 && (t.f ^= bt), _n(\n /** @type {Derived} **/\n t\n ), At(\n /** @type {Derived} **/\n t,\n 0\n ));\n}\nfunction At(e, t) {\n var r = e.deps;\n if (r !== null)\n for (var l = t; l < r.length; l++)\n nl(e, r[l]);\n}\nfunction Xt(e) {\n var t = e.f;\n if ((t & St) === 0) {\n de(e, K);\n var r = A, l = B, i = Oe;\n A = e, Oe = !0;\n try {\n (t & Yt) !== 0 ? hl(e) : An(e), Cn(e);\n var a = $n(e);\n e.teardown = typeof a == \"function\" ? a : null, e.wv = bn;\n var o = e.deps, f;\n Mr && Wi && e.f & ye;\n } catch (s) {\n Nt(s, e, r, l || e.ctx);\n } finally {\n Oe = i, A = r;\n }\n }\n}\nfunction il() {\n try {\n Mi();\n } catch (e) {\n if (kt !== null)\n Nt(e, kt, null);\n else\n throw e;\n }\n}\nfunction kn() {\n var e = Oe;\n try {\n var t = 0;\n for (Oe = !0; ct.length > 0; ) {\n t++ > 1e3 && il();\n var r = ct, l = r.length;\n ct = [];\n for (var i = 0; i < l; i++) {\n var a = al(r[i]);\n ll(a);\n }\n }\n } finally {\n $t = !1, Oe = e, kt = null;\n }\n}\nfunction ll(e) {\n var t = e.length;\n if (t !== 0)\n for (var r = 0; r < t; r++) {\n var l = e[r];\n if ((l.f & (St | Ke)) === 0)\n try {\n ht(l) && (Xt(l), l.deps === null && l.first === null && l.nodes_start === null && (l.teardown === null ? Rn(l) : l.fn = null));\n } catch (i) {\n Nt(i, l, null, l.ctx);\n }\n }\n}\nfunction Lt(e) {\n $t || ($t = !0, queueMicrotask(kn));\n for (var t = kt = e; t.parent !== null; ) {\n t = t.parent;\n var r = t.f;\n if ((r & (ze | pe)) !== 0) {\n if ((r & K) === 0) return;\n t.f ^= K;\n }\n }\n ct.push(t);\n}\nfunction al(e) {\n for (var t = [], r = e; r !== null; ) {\n var l = r.f, i = (l & (pe | ze)) !== 0, a = i && (l & K) !== 0;\n if (!a && (l & Ke) === 0) {\n if ((l & nn) !== 0)\n t.push(r);\n else if (i)\n r.f ^= K;\n else {\n var o = k;\n try {\n k = r, ht(r) && Xt(r);\n } catch (c) {\n Nt(c, r, null, r.ctx);\n } finally {\n k = o;\n }\n }\n var f = r.first;\n if (f !== null) {\n r = f;\n continue;\n }\n }\n var s = r.parent;\n for (r = r.next; r === null && s !== null; )\n r = s.next, s = s.parent;\n }\n return t;\n}\nfunction $(e) {\n var t;\n for (Ur(); ct.length > 0; )\n $t = !0, kn(), Ur();\n return (\n /** @type {T} */\n t\n );\n}\nasync function ol() {\n await Promise.resolve(), $();\n}\nfunction d(e) {\n var t = e.f, r = (t & oe) !== 0;\n if (k !== null && !ae) {\n ce !== null && ce.includes(e) && qi();\n var l = k.deps;\n e.rv < Ct && (e.rv = Ct, V === null && l !== null && l[J] === e ? J++ : V === null ? V = [e] : (!Ce || !V.includes(e)) && V.push(e));\n } else if (r && /** @type {Derived} */\n e.deps === null && /** @type {Derived} */\n e.effects === null) {\n var i = (\n /** @type {Derived} */\n e\n ), a = i.parent;\n a !== null && (a.f & re) === 0 && (i.f ^= re);\n }\n return r && (i = /** @type {Derived} */\n e, ht(i) && mn(i)), e.v;\n}\nfunction Qe(e) {\n var t = ae;\n try {\n return ae = !0, e();\n } finally {\n ae = t;\n }\n}\nconst sl = -7169;\nfunction de(e, t) {\n e.f = e.f & sl | t;\n}\nfunction fl(e) {\n A === null && k === null && Fi(), k !== null && (k.f & re) !== 0 && A === null && zi(), Kt && Oi();\n}\nfunction ul(e, t) {\n var r = t.last;\n r === null ? t.last = t.first = e : (r.next = e, e.prev = r, t.last = e);\n}\nfunction Fe(e, t, r, l = !0) {\n var i = A, a = {\n ctx: B,\n deps: null,\n nodes_start: null,\n nodes_end: null,\n f: e | ye,\n first: null,\n fn: t,\n last: null,\n next: null,\n parent: i,\n prev: null,\n teardown: null,\n transitions: null,\n wv: 0\n };\n if (r)\n try {\n Xt(a), a.f |= ki;\n } catch (s) {\n throw we(a), s;\n }\n else t !== null && Lt(a);\n var o = r && a.deps === null && a.first === null && a.nodes_start === null && a.teardown === null && (a.f & (ln | yt)) === 0;\n if (!o && l && (i !== null && ul(a, i), k !== null && (k.f & oe) !== 0)) {\n var f = (\n /** @type {Derived} */\n k\n );\n (f.effects ?? (f.effects = [])).push(a);\n }\n return a;\n}\nfunction cl(e) {\n const t = Fe(It, null, !1);\n return de(t, K), t.teardown = e, t;\n}\nfunction Vt(e) {\n fl();\n var t = A !== null && (A.f & pe) !== 0 && B !== null && !B.m;\n if (t) {\n var r = (\n /** @type {ComponentContext} */\n B\n );\n (r.e ?? (r.e = [])).push({\n fn: e,\n effect: A,\n reaction: k\n });\n } else {\n var l = Qt(e);\n return l;\n }\n}\nfunction dl(e) {\n const t = Fe(ze, e, !0);\n return () => {\n we(t);\n };\n}\nfunction vl(e) {\n const t = Fe(ze, e, !0);\n return (r = {}) => new Promise((l) => {\n r.outro ? Bt(t, () => {\n we(t), l(void 0);\n }) : (we(t), l(void 0));\n });\n}\nfunction Qt(e) {\n return Fe(nn, e, !1);\n}\nfunction er(e) {\n return Fe(It, e, !0);\n}\nfunction We(e, t = [], r = De) {\n const l = t.map(r);\n return tr(() => e(...l.map(d)));\n}\nfunction tr(e, t = 0) {\n return Fe(It | Yt | t, e, !0);\n}\nfunction Rt(e, t = !0) {\n return Fe(It | pe, e, !0, t);\n}\nfunction Cn(e) {\n var t = e.teardown;\n if (t !== null) {\n const r = Kt, l = k;\n qr(!0), Ie(null);\n try {\n t.call(null);\n } finally {\n qr(r), Ie(l);\n }\n }\n}\nfunction An(e, t = !1) {\n var r = e.first;\n for (e.first = e.last = null; r !== null; ) {\n var l = r.next;\n (r.f & ze) !== 0 ? r.parent = null : we(r, t), r = l;\n }\n}\nfunction hl(e) {\n for (var t = e.first; t !== null; ) {\n var r = t.next;\n (t.f & pe) === 0 && we(t), t = r;\n }\n}\nfunction we(e, t = !0) {\n var r = !1;\n if ((t || (e.f & Ci) !== 0) && e.nodes_start !== null) {\n for (var l = e.nodes_start, i = e.nodes_end; l !== null; ) {\n var a = l === i ? null : (\n /** @type {TemplateNode} */\n /* @__PURE__ */ Te(l)\n );\n l.remove(), l = a;\n }\n r = !0;\n }\n An(e, t && !r), At(e, 0), de(e, St);\n var o = e.transitions;\n if (o !== null)\n for (const s of o)\n s.stop();\n Cn(e);\n var f = e.parent;\n f !== null && f.first !== null && Rn(e), e.next = e.prev = e.teardown = e.ctx = e.deps = e.fn = e.nodes_start = e.nodes_end = null;\n}\nfunction Rn(e) {\n var t = e.parent, r = e.prev, l = e.next;\n r !== null && (r.next = l), l !== null && (l.prev = r), t !== null && (t.first === e && (t.first = l), t.last === e && (t.last = r));\n}\nfunction Bt(e, t) {\n var r = [];\n In(e, r, !0), gl(r, () => {\n we(e), t && t();\n });\n}\nfunction gl(e, t) {\n var r = e.length;\n if (r > 0) {\n var l = () => --r || t();\n for (var i of e)\n i.out(l);\n } else\n t();\n}\nfunction In(e, t, r) {\n if ((e.f & Ke) === 0) {\n if (e.f ^= Ke, e.transitions !== null)\n for (const o of e.transitions)\n (o.is_global || r) && t.push(o);\n for (var l = e.first; l !== null; ) {\n var i = l.next, a = (l.f & Zt) !== 0 || (l.f & pe) !== 0;\n In(l, t, a ? r : !1), l = i;\n }\n }\n}\nfunction Hr(e) {\n Sn(e, !0);\n}\nfunction Sn(e, t) {\n if ((e.f & Ke) !== 0) {\n e.f ^= Ke, (e.f & K) === 0 && (e.f ^= K), ht(e) && (de(e, ye), Lt(e));\n for (var r = e.first; r !== null; ) {\n var l = r.next, i = (r.f & Zt) !== 0 || (r.f & pe) !== 0;\n Sn(r, i ? t : !1), r = l;\n }\n if (e.transitions !== null)\n for (const a of e.transitions)\n (a.is_global || t) && a.in();\n }\n}\nfunction Tn(e) {\n throw new Error(\"https://svelte.dev/e/lifecycle_outside_component\");\n}\nlet B = null;\nfunction Wr(e) {\n B = e;\n}\nfunction Nn(e, t = !1, r) {\n B = {\n p: B,\n c: null,\n e: null,\n m: !1,\n s: e,\n x: null,\n l: null\n };\n}\nfunction Ln(e) {\n const t = B;\n if (t !== null) {\n e !== void 0 && (t.x = e);\n const o = t.e;\n if (o !== null) {\n var r = A, l = k;\n t.e = null;\n try {\n for (var i = 0; i < o.length; i++) {\n var a = o[i];\n Se(a.effect), Ie(a.reaction), Qt(a.fn);\n }\n } finally {\n Se(r), Ie(l);\n }\n }\n B = t.p, t.m = !0;\n }\n return e || /** @type {T} */\n {};\n}\nfunction Dn() {\n return !0;\n}\nconst _l = [\"touchstart\", \"touchmove\"];\nfunction ml(e) {\n return _l.includes(e);\n}\nlet Yr = !1;\nfunction Pn() {\n Yr || (Yr = !0, document.addEventListener(\n \"reset\",\n (e) => {\n Promise.resolve().then(() => {\n var t;\n if (!e.defaultPrevented)\n for (\n const r of\n /**@type {HTMLFormElement} */\n e.target.elements\n )\n (t = r.__on_r) == null || t.call(r);\n });\n },\n // In the capture phase to guarantee we get noticed of it (no possiblity of stopPropagation)\n { capture: !0 }\n ));\n}\nfunction On(e) {\n var t = k, r = A;\n Ie(null), Se(null);\n try {\n return e();\n } finally {\n Ie(t), Se(r);\n }\n}\nfunction wl(e, t, r, l = r) {\n e.addEventListener(t, () => On(r));\n const i = e.__on_r;\n i ? e.__on_r = () => {\n i(), l(!0);\n } : e.__on_r = () => l(!0), Pn();\n}\nconst zn = /* @__PURE__ */ new Set(), qt = /* @__PURE__ */ new Set();\nfunction pl(e, t, r, l = {}) {\n function i(a) {\n if (l.capture || ft.call(t, a), !a.cancelBubble)\n return On(() => r == null ? void 0 : r.call(this, a));\n }\n return e.startsWith(\"pointer\") || e.startsWith(\"touch\") || e === \"wheel\" ? Gt(() => {\n t.addEventListener(e, i, l);\n }) : t.addEventListener(e, i, l), i;\n}\nfunction yl(e, t, r, l, i) {\n var a = { capture: l, passive: i }, o = pl(e, t, r, a);\n (t === document.body || t === window || t === document) && cl(() => {\n t.removeEventListener(e, o, a);\n });\n}\nfunction bl(e) {\n for (var t = 0; t < e.length; t++)\n zn.add(e[t]);\n for (var r of qt)\n r(e);\n}\nfunction ft(e) {\n var M;\n var t = this, r = (\n /** @type {Node} */\n t.ownerDocument\n ), l = e.type, i = ((M = e.composedPath) == null ? void 0 : M.call(e)) || [], a = (\n /** @type {null | Element} */\n i[0] || e.target\n ), o = 0, f = e.__root;\n if (f) {\n var s = i.indexOf(f);\n if (s !== -1 && (t === document || t === /** @type {any} */\n window)) {\n e.__root = t;\n return;\n }\n var c = i.indexOf(t);\n if (c === -1)\n return;\n s <= c && (o = s);\n }\n if (a = /** @type {Element} */\n i[o] || e.target, a !== t) {\n xt(e, \"currentTarget\", {\n configurable: !0,\n get() {\n return a || r;\n }\n });\n var v = k, h = A;\n Ie(null), Se(null);\n try {\n for (var g, m = []; a !== null; ) {\n var w = a.assignedSlot || a.parentNode || /** @type {any} */\n a.host || null;\n try {\n var z = a[\"__\" + l];\n if (z != null && (!/** @type {any} */\n a.disabled || // DOM could've been updated already by the time this is reached, so we check this as well\n // -> the target could not have been disabled because it emits the event in the first place\n e.target === a))\n if (on(z)) {\n var [T, ...Y] = z;\n T.apply(a, [e, ...Y]);\n } else\n z.call(a, e);\n } catch (F) {\n g ? m.push(F) : g = F;\n }\n if (e.cancelBubble || w === t || w === null)\n break;\n a = w;\n }\n if (g) {\n for (let F of m)\n queueMicrotask(() => {\n throw F;\n });\n throw g;\n }\n } finally {\n e.__root = t, delete e.currentTarget, Ie(v), Se(h);\n }\n }\n}\nfunction rr(e) {\n var t = document.createElement(\"template\");\n return t.innerHTML = e, t.content;\n}\nfunction Ae(e, t) {\n var r = (\n /** @type {Effect} */\n A\n );\n r.nodes_start === null && (r.nodes_start = e, r.nodes_end = t);\n}\n// @__NO_SIDE_EFFECTS__\nfunction ve(e, t) {\n var r = (t & Ei) !== 0, l = (t & xi) !== 0, i, a = !e.startsWith(\"\");\n return () => {\n if (D)\n return Ae(O, null), O;\n i === void 0 && (i = rr(a ? e : \"\" + e), r || (i = /** @type {Node} */\n /* @__PURE__ */ me(i)));\n var o = (\n /** @type {TemplateNode} */\n l || wn ? document.importNode(i, !0) : i.cloneNode(!0)\n );\n if (r) {\n var f = (\n /** @type {TemplateNode} */\n /* @__PURE__ */ me(o)\n ), s = (\n /** @type {TemplateNode} */\n o.lastChild\n );\n Ae(f, s);\n } else\n Ae(o, o);\n return o;\n };\n}\n// @__NO_SIDE_EFFECTS__\nfunction El(e, t, r = \"svg\") {\n var l = !e.startsWith(\"\"), i = `<${r}>${l ? e : \"\" + e}`, a;\n return () => {\n if (D)\n return Ae(O, null), O;\n if (!a) {\n var o = (\n /** @type {DocumentFragment} */\n rr(i)\n ), f = (\n /** @type {Element} */\n /* @__PURE__ */ me(o)\n );\n a = /** @type {Element} */\n /* @__PURE__ */ me(f);\n }\n var s = (\n /** @type {TemplateNode} */\n a.cloneNode(!0)\n );\n return Ae(s, s), s;\n };\n}\nfunction ee(e, t) {\n if (D) {\n A.nodes_end = O, Xe();\n return;\n }\n e !== null && e.before(\n /** @type {Node} */\n t\n );\n}\nfunction Fn(e, t) {\n return Mn(e, t);\n}\nfunction xl(e, t) {\n jt(), t.intro = t.intro ?? !1;\n const r = t.target, l = D, i = O;\n try {\n for (var a = (\n /** @type {TemplateNode} */\n /* @__PURE__ */ me(r)\n ); a && (a.nodeType !== 8 || /** @type {Comment} */\n a.data !== Wt); )\n a = /** @type {TemplateNode} */\n /* @__PURE__ */ Te(a);\n if (!a)\n throw Je;\n Ge(!0), Re(\n /** @type {Comment} */\n a\n ), Xe();\n const o = Mn(e, { ...t, anchor: a });\n if (O === null || O.nodeType !== 8 || /** @type {Comment} */\n O.data !== rn)\n throw Tt(), Je;\n return Ge(!1), /** @type {Exports} */\n o;\n } catch (o) {\n if (o === Je)\n return t.recover === !1 && Ui(), jt(), Xi(r), Ge(!1), Fn(e, t);\n throw o;\n } finally {\n Ge(l), Re(i);\n }\n}\nconst Ye = /* @__PURE__ */ new Map();\nfunction Mn(e, { target: t, anchor: r, props: l = {}, events: i, context: a, intro: o = !0 }) {\n jt();\n var f = /* @__PURE__ */ new Set(), s = (h) => {\n for (var g = 0; g < h.length; g++) {\n var m = h[g];\n if (!f.has(m)) {\n f.add(m);\n var w = ml(m);\n t.addEventListener(m, ft, { passive: w });\n var z = Ye.get(m);\n z === void 0 ? (document.addEventListener(m, ft, { passive: w }), Ye.set(m, 1)) : Ye.set(m, z + 1);\n }\n }\n };\n s(Ii(zn)), qt.add(s);\n var c = void 0, v = vl(() => {\n var h = r ?? t.appendChild(Jt());\n return Rt(() => {\n if (a) {\n Nn({});\n var g = (\n /** @type {ComponentContext} */\n B\n );\n g.c = a;\n }\n i && (l.$$events = i), D && Ae(\n /** @type {TemplateNode} */\n h,\n null\n ), c = e(h, l) || {}, D && (A.nodes_end = O), a && Ln();\n }), () => {\n var w;\n for (var g of f) {\n t.removeEventListener(g, ft);\n var m = (\n /** @type {number} */\n Ye.get(g)\n );\n --m === 0 ? (document.removeEventListener(g, ft), Ye.delete(g)) : Ye.set(g, m);\n }\n qt.delete(s), h !== r && ((w = h.parentNode) == null || w.removeChild(h));\n };\n });\n return Ht.set(c, v), c;\n}\nlet Ht = /* @__PURE__ */ new WeakMap();\nfunction $l(e, t) {\n const r = Ht.get(e);\n return r ? (Ht.delete(e), r(t)) : Promise.resolve();\n}\nfunction ke(e, t, [r, l] = [0, 0]) {\n D && r === 0 && Xe();\n var i = e, a = null, o = null, f = W, s = r > 0 ? Zt : 0, c = !1;\n const v = (g, m = !0) => {\n c = !0, h(m, g);\n }, h = (g, m) => {\n if (f === (f = g)) return;\n let w = !1;\n if (D && l !== -1) {\n if (r === 0) {\n const T = (\n /** @type {Comment} */\n i.data\n );\n T === Wt ? l = 0 : T === tn ? l = 1 / 0 : (l = parseInt(T.substring(1)), l !== l && (l = f ? 1 / 0 : -1));\n }\n const z = l > r;\n !!f === z && (i = Ki(), Re(i), Ge(!1), w = !0, l = -1);\n }\n f ? (a ? Hr(a) : m && (a = Rt(() => m(i))), o && Bt(o, () => {\n o = null;\n })) : (o ? Hr(o) : m && (o = Rt(() => m(i, [r + 1, l]))), a && Bt(a, () => {\n a = null;\n })), w && Ge(!0);\n };\n tr(() => {\n c = !1, t(v), c || h(null, null);\n }, s), D && (i = O);\n}\nfunction Ze(e, t, r, l, i) {\n var a = e, o = \"\", f;\n tr(() => {\n if (o === (o = t() ?? \"\")) {\n D && Xe();\n return;\n }\n f !== void 0 && (we(f), f = void 0), o !== \"\" && (f = Rt(() => {\n if (D) {\n O.data;\n for (var s = Xe(), c = s; s !== null && (s.nodeType !== 8 || /** @type {Comment} */\n s.data !== \"\"); )\n c = s, s = /** @type {TemplateNode} */\n /* @__PURE__ */ Te(s);\n if (s === null)\n throw Tt(), Je;\n Ae(O, c), a = Re(s);\n return;\n }\n var v = o + \"\", h = rr(v);\n Ae(\n /** @type {TemplateNode} */\n /* @__PURE__ */ me(h),\n /** @type {TemplateNode} */\n h.lastChild\n ), a.before(h);\n }));\n });\n}\nfunction kl(e, t, r, l, i) {\n var f;\n D && Xe();\n var a = (f = t.$$slots) == null ? void 0 : f[r], o = !1;\n a === !0 && (a = t.children, o = !0), a === void 0 || a(e, o ? () => l : l);\n}\nfunction Cl(e, t) {\n Gt(() => {\n var r = e.getRootNode(), l = (\n /** @type {ShadowRoot} */\n r.host ? (\n /** @type {ShadowRoot} */\n r\n ) : (\n /** @type {Document} */\n r.head ?? /** @type {Document} */\n r.ownerDocument.head\n )\n );\n if (!l.querySelector(\"#\" + t.hash)) {\n const i = document.createElement(\"style\");\n i.id = t.hash, i.textContent = t.code, l.appendChild(i);\n }\n });\n}\nconst Zr = [...` \t\n\\r\\f \\v\\uFEFF`];\nfunction Al(e, t, r) {\n var l = \"\" + e;\n if (r) {\n for (var i in r)\n if (r[i])\n l = l ? l + \" \" + i : i;\n else if (l.length)\n for (var a = i.length, o = 0; (o = l.indexOf(i, o)) >= 0; ) {\n var f = o + a;\n (o === 0 || Zr.includes(l[o - 1])) && (f === l.length || Zr.includes(l[f])) ? l = (o === 0 ? \"\" : l.substring(0, o)) + l.substring(f + 1) : o = f;\n }\n }\n return l === \"\" ? null : l;\n}\nfunction Rl(e, t, r, l, i, a) {\n var o = e.__className;\n if (D || o !== r) {\n var f = Al(r, l, a);\n (!D || f !== e.getAttribute(\"class\")) && (f == null ? e.removeAttribute(\"class\") : e.className = f), e.__className = r;\n } else if (a && i !== a)\n for (var s in a) {\n var c = !!a[s];\n (i == null || c !== !!i[s]) && e.classList.toggle(s, c);\n }\n return a;\n}\nconst Il = Symbol(\"is custom element\"), Sl = Symbol(\"is html\");\nfunction Gr(e) {\n if (D) {\n var t = !1, r = () => {\n if (!t) {\n if (t = !0, e.hasAttribute(\"value\")) {\n var l = e.value;\n ie(e, \"value\", null), e.value = l;\n }\n if (e.hasAttribute(\"checked\")) {\n var i = e.checked;\n ie(e, \"checked\", null), e.checked = i;\n }\n }\n };\n e.__on_r = r, Di(r), Pn();\n }\n}\nfunction Tl(e, t) {\n var r = Un(e);\n r.value === (r.value = // treat null and undefined the same for the initial value\n t ?? void 0) || // @ts-expect-error\n // `progress` elements always need their value set when it's `0`\n e.value === t && (t !== 0 || e.nodeName !== \"PROGRESS\") || (e.value = t ?? \"\");\n}\nfunction ie(e, t, r, l) {\n var i = Un(e);\n D && (i[t] = e.getAttribute(t), t === \"src\" || t === \"srcset\" || t === \"href\" && e.nodeName === \"LINK\") || i[t] !== (i[t] = r) && (t === \"loading\" && (e[Ai] = r), r == null ? e.removeAttribute(t) : typeof r != \"string\" && Nl(e).includes(t) ? e[t] = r : e.setAttribute(t, r));\n}\nfunction Un(e) {\n return (\n /** @type {Record} **/\n // @ts-expect-error\n e.__attributes ?? (e.__attributes = {\n [Il]: e.nodeName.includes(\"-\"),\n [Sl]: e.namespaceURI === $i\n })\n );\n}\nvar Jr = /* @__PURE__ */ new Map();\nfunction Nl(e) {\n var t = Jr.get(e.nodeName);\n if (t) return t;\n Jr.set(e.nodeName, t = []);\n for (var r, l = e, i = Element.prototype; i !== l; ) {\n r = Si(l);\n for (var a in r)\n r[a].set && t.push(a);\n l = sn(l);\n }\n return t;\n}\nfunction Ll(e, t, r = t) {\n wl(e, \"change\", (l) => {\n var i = l ? e.defaultChecked : e.checked;\n r(i);\n }), // If we are hydrating and the value has since changed,\n // then use the update value from the input instead.\n (D && e.defaultChecked !== e.checked || // If defaultChecked is set, then checked == defaultChecked\n Qe(t) == null) && r(e.checked), er(() => {\n var l = t();\n e.checked = !!l;\n });\n}\nfunction Kr(e, t) {\n return e === t || (e == null ? void 0 : e[ut]) === t;\n}\nfunction Xr(e = {}, t, r, l) {\n return Qt(() => {\n var i, a;\n return er(() => {\n i = a, a = [], Qe(() => {\n e !== r(...a) && (t(e, ...a), i && Kr(r(...i), e) && t(null, ...i));\n });\n }), () => {\n Gt(() => {\n a && Kr(r(...a), e) && t(null, ...a);\n });\n };\n }), e;\n}\nfunction jn(e) {\n B === null && Tn(), Vt(() => {\n const t = Qe(e);\n if (typeof t == \"function\") return (\n /** @type {() => void} */\n t\n );\n });\n}\nfunction Dl(e) {\n B === null && Tn(), jn(() => () => Qe(e));\n}\nlet mt = !1;\nfunction Pl(e) {\n var t = mt;\n try {\n return mt = !1, [e(), mt];\n } finally {\n mt = t;\n }\n}\nfunction C(e, t, r, l) {\n var be;\n var i = (r & wi) !== 0, a = !0, o = (r & yi) !== 0, f = (r & bi) !== 0, s = !1, c;\n o ? [c, s] = Pl(() => (\n /** @type {V} */\n e[t]\n )) : c = /** @type {V} */\n e[t];\n var v = ut in e || an in e, h = o && (((be = Pe(e, t)) == null ? void 0 : be.set) ?? (v && t in e && ((N) => e[t] = N))) || void 0, g = (\n /** @type {V} */\n l\n ), m = !0, w = !1, z = () => (w = !0, m && (m = !1, f ? g = Qe(\n /** @type {() => V} */\n l\n ) : g = /** @type {V} */\n l), g);\n c === void 0 && l !== void 0 && (h && a && ji(), c = z(), h && h(c));\n var T;\n if (T = () => {\n var N = (\n /** @type {V} */\n e[t]\n );\n return N === void 0 ? z() : (m = !0, w = !1, N);\n }, (r & pi) === 0)\n return T;\n if (h) {\n var Y = e.$$legacy;\n return function(N, X) {\n return arguments.length > 0 ? ((!X || Y || s) && h(X ? T() : N), N) : T();\n };\n }\n var M = !1, F = /* @__PURE__ */ hn(c), se = /* @__PURE__ */ De(() => {\n var N = T(), X = d(F);\n return M ? (M = !1, X) : F.v = N;\n });\n return i || (se.equals = vn), function(N, X) {\n if (arguments.length > 0) {\n const U = X ? d(se) : o ? le(N) : N;\n return se.equals(U) || (M = !0, P(F, U), w && g !== void 0 && (g = U), Qe(() => d(se))), N;\n }\n return d(se);\n };\n}\nfunction Ol(e) {\n return new zl(e);\n}\nvar _e, te;\nclass zl {\n /**\n * @param {ComponentConstructorOptions & {\n * component: any;\n * }} options\n */\n constructor(t) {\n /** @type {any} */\n Mt(this, _e);\n /** @type {Record} */\n Mt(this, te);\n var a;\n var r = /* @__PURE__ */ new Map(), l = (o, f) => {\n var s = /* @__PURE__ */ hn(f);\n return r.set(o, s), s;\n };\n const i = new Proxy(\n { ...t.props || {}, $$events: {} },\n {\n get(o, f) {\n return d(r.get(f) ?? l(f, Reflect.get(o, f)));\n },\n has(o, f) {\n return f === an ? !0 : (d(r.get(f) ?? l(f, Reflect.get(o, f))), Reflect.has(o, f));\n },\n set(o, f, s) {\n return P(r.get(f) ?? l(f, s), s), Reflect.set(o, f, s);\n }\n }\n );\n Ut(this, te, (t.hydrate ? xl : Fn)(t.component, {\n target: t.target,\n anchor: t.anchor,\n props: i,\n context: t.context,\n intro: t.intro ?? !1,\n recover: t.recover\n })), (!((a = t == null ? void 0 : t.props) != null && a.$$host) || t.sync === !1) && $(), Ut(this, _e, i.$$events);\n for (const o of Object.keys(H(this, te)))\n o === \"$set\" || o === \"$destroy\" || o === \"$on\" || xt(this, o, {\n get() {\n return H(this, te)[o];\n },\n /** @param {any} value */\n set(f) {\n H(this, te)[o] = f;\n },\n enumerable: !0\n });\n H(this, te).$set = /** @param {Record} next */\n (o) => {\n Object.assign(i, o);\n }, H(this, te).$destroy = () => {\n $l(H(this, te));\n };\n }\n /** @param {Record} props */\n $set(t) {\n H(this, te).$set(t);\n }\n /**\n * @param {string} event\n * @param {(...args: any[]) => any} callback\n * @returns {any}\n */\n $on(t, r) {\n H(this, _e)[t] = H(this, _e)[t] || [];\n const l = (...i) => r.call(this, ...i);\n return H(this, _e)[t].push(l), () => {\n H(this, _e)[t] = H(this, _e)[t].filter(\n /** @param {any} fn */\n (i) => i !== l\n );\n };\n }\n $destroy() {\n H(this, te).$destroy();\n }\n}\n_e = new WeakMap(), te = new WeakMap();\nlet Vn;\ntypeof HTMLElement == \"function\" && (Vn = class extends HTMLElement {\n /**\n * @param {*} $$componentCtor\n * @param {*} $$slots\n * @param {*} use_shadow_dom\n */\n constructor(t, r, l) {\n super();\n /** The Svelte component constructor */\n ne(this, \"$$ctor\");\n /** Slots */\n ne(this, \"$$s\");\n /** @type {any} The Svelte component instance */\n ne(this, \"$$c\");\n /** Whether or not the custom element is connected */\n ne(this, \"$$cn\", !1);\n /** @type {Record} Component props data */\n ne(this, \"$$d\", {});\n /** `true` if currently in the process of reflecting component props back to attributes */\n ne(this, \"$$r\", !1);\n /** @type {Record} Props definition (name, reflected, type etc) */\n ne(this, \"$$p_d\", {});\n /** @type {Record} Event listeners */\n ne(this, \"$$l\", {});\n /** @type {Map} Event listener unsubscribe functions */\n ne(this, \"$$l_u\", /* @__PURE__ */ new Map());\n /** @type {any} The managed render effect for reflecting attributes */\n ne(this, \"$$me\");\n this.$$ctor = t, this.$$s = r, l && this.attachShadow({ mode: \"open\" });\n }\n /**\n * @param {string} type\n * @param {EventListenerOrEventListenerObject} listener\n * @param {boolean | AddEventListenerOptions} [options]\n */\n addEventListener(t, r, l) {\n if (this.$$l[t] = this.$$l[t] || [], this.$$l[t].push(r), this.$$c) {\n const i = this.$$c.$on(t, r);\n this.$$l_u.set(r, i);\n }\n super.addEventListener(t, r, l);\n }\n /**\n * @param {string} type\n * @param {EventListenerOrEventListenerObject} listener\n * @param {boolean | AddEventListenerOptions} [options]\n */\n removeEventListener(t, r, l) {\n if (super.removeEventListener(t, r, l), this.$$c) {\n const i = this.$$l_u.get(r);\n i && (i(), this.$$l_u.delete(r));\n }\n }\n async connectedCallback() {\n if (this.$$cn = !0, !this.$$c) {\n let t = function(i) {\n return (a) => {\n const o = document.createElement(\"slot\");\n i !== \"default\" && (o.name = i), ee(a, o);\n };\n };\n if (await Promise.resolve(), !this.$$cn || this.$$c)\n return;\n const r = {}, l = Fl(this);\n for (const i of this.$$s)\n i in l && (i === \"default\" && !this.$$d.children ? (this.$$d.children = t(i), r.default = !0) : r[i] = t(i));\n for (const i of this.attributes) {\n const a = this.$$g_p(i.name);\n a in this.$$d || (this.$$d[a] = pt(a, i.value, this.$$p_d, \"toProp\"));\n }\n for (const i in this.$$p_d)\n !(i in this.$$d) && this[i] !== void 0 && (this.$$d[i] = this[i], delete this[i]);\n this.$$c = Ol({\n component: this.$$ctor,\n target: this.shadowRoot || this,\n props: {\n ...this.$$d,\n $$slots: r,\n $$host: this\n }\n }), this.$$me = dl(() => {\n er(() => {\n var i;\n this.$$r = !0;\n for (const a of Et(this.$$c)) {\n if (!((i = this.$$p_d[a]) != null && i.reflect)) continue;\n this.$$d[a] = this.$$c[a];\n const o = pt(\n a,\n this.$$d[a],\n this.$$p_d,\n \"toAttribute\"\n );\n o == null ? this.removeAttribute(this.$$p_d[a].attribute || a) : this.setAttribute(this.$$p_d[a].attribute || a, o);\n }\n this.$$r = !1;\n });\n });\n for (const i in this.$$l)\n for (const a of this.$$l[i]) {\n const o = this.$$c.$on(i, a);\n this.$$l_u.set(a, o);\n }\n this.$$l = {};\n }\n }\n // We don't need this when working within Svelte code, but for compatibility of people using this outside of Svelte\n // and setting attributes through setAttribute etc, this is helpful\n /**\n * @param {string} attr\n * @param {string} _oldValue\n * @param {string} newValue\n */\n attributeChangedCallback(t, r, l) {\n var i;\n this.$$r || (t = this.$$g_p(t), this.$$d[t] = pt(t, l, this.$$p_d, \"toProp\"), (i = this.$$c) == null || i.$set({ [t]: this.$$d[t] }));\n }\n disconnectedCallback() {\n this.$$cn = !1, Promise.resolve().then(() => {\n !this.$$cn && this.$$c && (this.$$c.$destroy(), this.$$me(), this.$$c = void 0);\n });\n }\n /**\n * @param {string} attribute_name\n */\n $$g_p(t) {\n return Et(this.$$p_d).find(\n (r) => this.$$p_d[r].attribute === t || !this.$$p_d[r].attribute && r.toLowerCase() === t\n ) || t;\n }\n});\nfunction pt(e, t, r, l) {\n var a;\n const i = (a = r[e]) == null ? void 0 : a.type;\n if (t = i === \"Boolean\" && typeof t != \"boolean\" ? t != null : t, !l || !r[e])\n return t;\n if (l === \"toAttribute\")\n switch (i) {\n case \"Object\":\n case \"Array\":\n return t == null ? null : JSON.stringify(t);\n case \"Boolean\":\n return t ? \"\" : null;\n case \"Number\":\n return t ?? null;\n default:\n return t;\n }\n else\n switch (i) {\n case \"Object\":\n case \"Array\":\n return t && JSON.parse(t);\n case \"Boolean\":\n return t;\n // conversion already handled above\n case \"Number\":\n return t != null ? +t : t;\n default:\n return t;\n }\n}\nfunction Fl(e) {\n const t = {};\n return e.childNodes.forEach((r) => {\n t[\n /** @type {Element} node */\n r.slot || \"default\"\n ] = !0;\n }), t;\n}\nfunction Ml(e, t, r, l, i, a) {\n let o = class extends Vn {\n constructor() {\n super(e, r, i), this.$$p_d = t;\n }\n static get observedAttributes() {\n return Et(t).map(\n (f) => (t[f].attribute || f).toLowerCase()\n );\n }\n };\n return Et(t).forEach((f) => {\n xt(o.prototype, f, {\n get() {\n return this.$$c && f in this.$$c ? this.$$c[f] : this.$$d[f];\n },\n set(s) {\n var h;\n s = pt(f, s, t), this.$$d[f] = s;\n var c = this.$$c;\n if (c) {\n var v = (h = Pe(c, f)) == null ? void 0 : h.get;\n v ? c[f] = s : c.$set({ [f]: s });\n }\n }\n });\n }), l.forEach((f) => {\n xt(o.prototype, f, {\n get() {\n var s;\n return (s = this.$$c) == null ? void 0 : s[f];\n }\n });\n }), e.element = /** @type {any} */\n o, o;\n}\nconst Bn = new TextEncoder();\nfunction Ul(e) {\n return [...new Uint8Array(e)].map((t) => t.toString(16).padStart(2, \"0\")).join(\"\");\n}\nasync function jl(e, t = \"SHA-256\", r = 1e5) {\n const l = Date.now().toString(16);\n e || (e = Math.round(Math.random() * r));\n const i = await qn(l, e, t);\n return {\n algorithm: t,\n challenge: i,\n salt: l,\n signature: \"\"\n };\n}\nasync function qn(e, t, r) {\n if (typeof crypto > \"u\" || !(\"subtle\" in crypto) || !(\"digest\" in crypto.subtle))\n throw new Error(\"Web Crypto is not available. Secure context is required (https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts).\");\n return Ul(\n await crypto.subtle.digest(\n r.toUpperCase(),\n Bn.encode(e + t)\n )\n );\n}\nfunction Vl(e, t, r = \"SHA-256\", l = 1e6, i = 0) {\n const a = new AbortController(), o = Date.now();\n return {\n promise: (async () => {\n for (let s = i; s <= l; s += 1) {\n if (a.signal.aborted)\n return null;\n if (await qn(t, s, r) === e)\n return {\n number: s,\n took: Date.now() - o\n };\n }\n return null;\n })(),\n controller: a\n };\n}\nfunction Bl() {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone;\n } catch {\n }\n}\nfunction ql(e) {\n const t = atob(e), r = new Uint8Array(t.length);\n for (let l = 0; l < t.length; l++)\n r[l] = t.charCodeAt(l);\n return r;\n}\nfunction Hl(e, t = 12) {\n const r = new Uint8Array(t);\n for (let l = 0; l < t; l++)\n r[l] = e % 256, e = Math.floor(e / 256);\n return r;\n}\nasync function Wl(e, t = \"\", r = 1e6, l = 0) {\n const i = \"AES-GCM\", a = new AbortController(), o = Date.now(), f = async () => {\n for (let v = l; v <= r; v += 1) {\n if (a.signal.aborted || !s || !c)\n return null;\n try {\n const h = await crypto.subtle.decrypt(\n {\n name: i,\n iv: Hl(v)\n },\n s,\n c\n );\n if (h)\n return {\n clearText: new TextDecoder().decode(h),\n took: Date.now() - o\n };\n } catch {\n }\n }\n return null;\n };\n let s = null, c = null;\n try {\n c = ql(e);\n const v = await crypto.subtle.digest(\n \"SHA-256\",\n Bn.encode(t)\n );\n s = await crypto.subtle.importKey(\n \"raw\",\n v,\n i,\n !1,\n [\"decrypt\"]\n );\n } catch {\n return {\n promise: Promise.reject(),\n controller: a\n };\n }\n return {\n promise: f(),\n controller: a\n };\n}\nvar E = /* @__PURE__ */ ((e) => (e.ERROR = \"error\", e.VERIFIED = \"verified\", e.VERIFYING = \"verifying\", e.UNVERIFIED = \"unverified\", e.EXPIRED = \"expired\", e))(E || {}), Yl = /* @__PURE__ */ El(''), Zl = /* @__PURE__ */ ve(' ', 1), Gl = /* @__PURE__ */ ve(''), Jl = /* @__PURE__ */ ve(''), Kl = /* @__PURE__ */ ve('
'), Xl = /* @__PURE__ */ ve('
'), Ql = /* @__PURE__ */ ve('
'), ea = /* @__PURE__ */ ve('
'), ta = /* @__PURE__ */ ve(''), ra = /* @__PURE__ */ ve('
'), na = /* @__PURE__ */ ve('
', 1);\nconst ia = {\n hash: \"svelte-ddsc3z\",\n code: `.altcha.svelte-ddsc3z {background:var(--altcha-color-base, transparent);border:var(--altcha-border-width, 1px) solid var(--altcha-color-border, #a0a0a0);border-radius:var(--altcha-border-radius, 3px);color:var(--altcha-color-text, currentColor);display:flex;flex-direction:column;max-width:var(--altcha-max-width, 260px);position:relative;text-align:left;}.altcha.svelte-ddsc3z:focus-within {border-color:var(--altcha-color-border-focus, currentColor);}.altcha[data-floating].svelte-ddsc3z {background:var(--altcha-color-base, white);display:none;filter:drop-shadow(3px 3px 6px rgba(0, 0, 0, 0.2));left:-100%;position:fixed;top:-100%;width:var(--altcha-max-width, 260px);z-index:999999;}.altcha[data-floating=top].svelte-ddsc3z .altcha-anchor-arrow:where(.svelte-ddsc3z) {border-bottom-color:transparent;border-top-color:var(--altcha-color-border, #a0a0a0);bottom:-12px;top:auto;}.altcha[data-floating=bottom].svelte-ddsc3z:focus-within::after {border-bottom-color:var(--altcha-color-border-focus, currentColor);}.altcha[data-floating=top].svelte-ddsc3z:focus-within::after {border-top-color:var(--altcha-color-border-focus, currentColor);}.altcha[data-floating].svelte-ddsc3z:not([data-state=unverified]) {display:block;}.altcha-anchor-arrow.svelte-ddsc3z {border:6px solid transparent;border-bottom-color:var(--altcha-color-border, #a0a0a0);content:\"\";height:0;left:12px;position:absolute;top:-12px;width:0;}.altcha-main.svelte-ddsc3z {align-items:center;display:flex;gap:0.4rem;padding:0.7rem;}.altcha-label.svelte-ddsc3z {flex-grow:1;}.altcha-label.svelte-ddsc3z label:where(.svelte-ddsc3z) {cursor:pointer;}.altcha-logo.svelte-ddsc3z {color:currentColor;opacity:0.3;}.altcha-logo.svelte-ddsc3z:hover {opacity:1;}.altcha-error.svelte-ddsc3z {color:var(--altcha-color-error-text, #f23939);display:flex;font-size:0.85rem;gap:0.3rem;padding:0 0.7rem 0.7rem;}.altcha-footer.svelte-ddsc3z {align-items:center;background-color:var(--altcha-color-footer-bg, transparent);display:flex;font-size:0.75rem;opacity:0.4;padding:0.2rem 0.7rem;text-align:right;}.altcha-footer.svelte-ddsc3z:hover {opacity:1;}.altcha-footer.svelte-ddsc3z > :where(.svelte-ddsc3z):first-child {flex-grow:1;}.altcha-footer.svelte-ddsc3z a {color:currentColor;}.altcha-checkbox.svelte-ddsc3z {display:flex;align-items:center;height:24px;width:24px;}.altcha-checkbox.svelte-ddsc3z input:where(.svelte-ddsc3z) {width:18px;height:18px;margin:0;}.altcha-hidden.svelte-ddsc3z {display:none;}.altcha-spinner.svelte-ddsc3z {\n animation: svelte-ddsc3z-altcha-spinner 0.75s infinite linear;transform-origin:center;}\n\n@keyframes svelte-ddsc3z-altcha-spinner {\n 100% {\n transform: rotate(360deg);\n }\n}`\n};\nfunction la(e, t) {\n var Lr, Dr;\n Nn(t, !0), Cl(e, ia);\n let r = C(t, \"auto\", 7, void 0), l = C(t, \"blockspam\", 7, void 0), i = C(t, \"challengeurl\", 7, void 0), a = C(t, \"challengejson\", 7, void 0), o = C(t, \"customfetch\", 7, void 0), f = C(t, \"debug\", 7, !1), s = C(t, \"delay\", 7, 0), c = C(t, \"expire\", 7, void 0), v = C(t, \"floating\", 7, void 0), h = C(t, \"floatinganchor\", 7, void 0), g = C(t, \"floatingoffset\", 7, void 0), m = C(t, \"hidefooter\", 7, !1), w = C(t, \"hidelogo\", 7, !1), z = C(t, \"id\", 7, void 0), T = C(t, \"name\", 7, \"altcha\"), Y = C(t, \"maxnumber\", 7, 1e6), M = C(t, \"mockerror\", 7, !1), F = C(t, \"obfuscated\", 7, void 0), se = C(t, \"plugins\", 7, void 0), be = C(t, \"refetchonexpire\", 7, !0), N = C(t, \"spamfilter\", 7, !1), X = C(t, \"strings\", 7, void 0), U = C(t, \"test\", 7, !1), Ee = C(t, \"verifyurl\", 7, void 0), Me = C(t, \"workers\", 23, () => Math.min(16, navigator.hardwareConcurrency || 8)), tt = C(t, \"workerurl\", 7, void 0);\n const nr = [\"SHA-256\", \"SHA-384\", \"SHA-512\"], ir = \"Visit Altcha.org\", lr = \"https://altcha.org/\", rt = (n, u) => {\n t.$$host.dispatchEvent(new CustomEvent(n, { detail: u }));\n }, ar = (Dr = (Lr = document.documentElement.lang) == null ? void 0 : Lr.split(\"-\")) == null ? void 0 : Dr[0], Dt = /* @__PURE__ */ De(() => {\n var n;\n return i() && new URL(i(), location.origin).host.endsWith(\".altcha.org\") && !!((n = i()) != null && n.includes(\"apiKey=ckey_\"));\n }), Pt = /* @__PURE__ */ De(() => a() ? wr(a()) : void 0), or = /* @__PURE__ */ De(() => X() ? wr(X()) : {}), Q = /* @__PURE__ */ De(() => {\n var n;\n return {\n ariaLinkLabel: ir,\n error: \"Verification failed. Try again later.\",\n expired: \"Verification expired. Try again.\",\n footer: `Protected by ALTCHA`,\n label: \"I'm not a robot\",\n verified: \"Verified\",\n verifying: \"Verifying...\",\n waitAlert: \"Verifying... please wait.\",\n ...d(or)\n };\n }), sr = /* @__PURE__ */ De(() => z() || `${T()}_checkbox`);\n let Ue = He(!1), R = He(le(E.UNVERIFIED)), j = He(void 0), nt = He(null), je = null, y = null, Ve = He(null), fe = null, xe = [], Ne = He(null);\n Vt(() => {\n Xn(d(Ve));\n }), Vt(() => {\n Qn(d(R));\n }), Dl(() => {\n Hn(), y && (y.removeEventListener(\"submit\", hr), y.removeEventListener(\"reset\", gr), y.removeEventListener(\"focusin\", vr), y = null), fe && (clearTimeout(fe), fe = null), document.removeEventListener(\"click\", cr), document.removeEventListener(\"scroll\", dr), window.removeEventListener(\"resize\", mr);\n }), jn(() => {\n var n;\n I(\"mounted\", \"1.3.0\"), I(\"workers\", Me()), Jn(), I(\"plugins\", xe.length ? xe.map((u) => u.constructor.pluginName).join(\", \") : \"none\"), U() && I(\"using test mode\"), c() && Ot(c()), r() !== void 0 && I(\"auto\", r()), v() !== void 0 && pr(v()), y = (n = d(j)) == null ? void 0 : n.closest(\"form\"), y && (y.addEventListener(\"submit\", hr, { capture: !0 }), y.addEventListener(\"reset\", gr), r() === \"onfocus\" && y.addEventListener(\"focusin\", vr)), r() === \"onload\" && (F() ? it() : $e()), d(Dt) && (m() || w()) && I(\"Attributes hidefooter and hidelogo ignored because usage with free API Keys requires attribution.\"), requestAnimationFrame(() => {\n rt(\"load\");\n });\n });\n function fr(n, u) {\n return btoa(JSON.stringify({\n algorithm: n.algorithm,\n challenge: n.challenge,\n number: u.number,\n salt: n.salt,\n signature: n.signature,\n test: U() ? !0 : void 0,\n took: u.took\n }));\n }\n function Hn() {\n for (const n of xe)\n n.destroy();\n }\n function ur() {\n i() && be() && d(R) === E.VERIFIED ? $e() : lt(E.EXPIRED, d(Q).expired);\n }\n async function Wn() {\n var n;\n if (M())\n throw I(\"mocking error\"), new Error(\"Mocked error.\");\n if (d(Pt))\n return I(\"using provided json data\"), d(Pt);\n if (U())\n return I(\"generating test challenge\", { test: U() }), jl(typeof U() != \"boolean\" ? +U() : void 0);\n {\n if (!i() && y) {\n const L = y.getAttribute(\"action\");\n L != null && L.includes(\"/form/\") && i(L + \"/altcha\");\n }\n if (!i())\n throw new Error(\"Attribute challengeurl not set.\");\n I(\"fetching challenge from\", i());\n let u = null, _ = null;\n if (o())\n if (I(\"using customfetch\"), typeof o() == \"string\") {\n if (u = globalThis[o()] || null, !u)\n throw new Error(`Custom fetch function not found: ${o()}`);\n } else\n u = o();\n const b = {\n headers: N() !== !1 ? { \"x-altcha-spam-filter\": \"1\" } : {}\n };\n if (u) {\n if (_ = await u(i(), b), !_ || !(_ instanceof Response))\n throw new Error(\"Custom fetch function did not return a response.\");\n } else\n _ = await fetch(i(), b);\n if (_.status !== 200)\n throw new Error(`Server responded with ${_.status}.`);\n const S = _.headers.get(\"X-Altcha-Config\"), x = await _.json(), p = new URLSearchParams((n = x.salt.split(\"?\")) == null ? void 0 : n[1]), q = p.get(\"expires\") || p.get(\"expire\");\n if (q) {\n const L = new Date(+q * 1e3), qe = isNaN(L.getTime()) ? 0 : L.getTime() - Date.now();\n qe > 0 && Ot(qe);\n }\n if (S)\n try {\n const L = JSON.parse(S);\n L && typeof L == \"object\" && (L.verifyurl && (L.verifyurl = new URL(L.verifyurl, new URL(i())).toString()), Er(L));\n } catch (L) {\n I(\"unable to configure from X-Altcha-Config\", L);\n }\n return x;\n }\n }\n function Yn(n) {\n var _;\n const u = y == null ? void 0 : y.querySelector(typeof n == \"string\" ? `input[name=\"${n}\"]` : 'input[type=\"email\"]:not([data-no-spamfilter])');\n return ((_ = u == null ? void 0 : u.value) == null ? void 0 : _.slice(u.value.indexOf(\"@\"))) || void 0;\n }\n function Zn() {\n return N() === \"ipAddress\" ? {\n blockedCountries: void 0,\n classifier: void 0,\n disableRules: void 0,\n email: !1,\n expectedCountries: void 0,\n expectedLanguages: void 0,\n fields: !1,\n ipAddress: void 0,\n text: void 0,\n timeZone: void 0\n } : typeof N() == \"object\" ? N() : {\n blockedCountries: void 0,\n classifier: void 0,\n disableRules: void 0,\n email: void 0,\n expectedCountries: void 0,\n expectedLanguages: void 0,\n fields: void 0,\n ipAddress: void 0,\n text: void 0,\n timeZone: void 0\n };\n }\n function Gn(n) {\n return [\n ...(y == null ? void 0 : y.querySelectorAll(n != null && n.length ? n.map((_) => `input[name=\"${_}\"]`).join(\", \") : 'input[type=\"text\"]:not([data-no-spamfilter]), textarea:not([data-no-spamfilter])')) || []\n ].reduce(\n (_, b) => {\n const S = b.name, x = b.value;\n return S && x && (_[S] = /\\n/.test(x) ? x.replace(new RegExp(\"(? u instanceof Error)) && console[n[0] instanceof Error ? \"error\" : \"log\"](\"ALTCHA\", `[name=${T()}]`, ...n);\n }\n function Kn() {\n [E.UNVERIFIED, E.ERROR, E.EXPIRED].includes(d(R)) ? N() !== !1 && (y == null ? void 0 : y.reportValidity()) === !1 ? P(Ue, !1) : F() ? it() : $e() : P(Ue, !0);\n }\n function cr(n) {\n const u = n.target;\n v() && u && !d(j).contains(u) && (d(R) === E.VERIFIED || r() === \"off\" && d(R) === E.UNVERIFIED) && (d(j).style.display = \"none\");\n }\n function dr() {\n v() && d(R) !== E.UNVERIFIED && gt();\n }\n function Xn(n) {\n for (const u of xe)\n typeof u.onErrorChange == \"function\" && u.onErrorChange(d(Ve));\n }\n function vr(n) {\n d(R) === E.UNVERIFIED && $e();\n }\n function hr(n) {\n y && r() === \"onsubmit\" ? d(R) === E.UNVERIFIED ? (n.preventDefault(), n.stopPropagation(), $e().then(() => {\n y == null || y.requestSubmit();\n })) : d(R) !== E.VERIFIED && (n.preventDefault(), n.stopPropagation(), d(R) === E.VERIFYING && _r()) : y && v() && r() === \"off\" && d(R) === E.UNVERIFIED && (n.preventDefault(), n.stopPropagation(), d(j).style.display = \"block\", gt());\n }\n function gr() {\n lt();\n }\n function _r() {\n d(R) === E.VERIFYING && d(Q).waitAlert && alert(d(Q).waitAlert);\n }\n function Qn(n) {\n for (const u of xe)\n typeof u.onStateChange == \"function\" && u.onStateChange(d(R));\n v() && d(R) !== E.UNVERIFIED && requestAnimationFrame(() => {\n gt();\n }), P(Ue, d(R) === E.VERIFIED);\n }\n function mr() {\n v() && gt();\n }\n function wr(n) {\n return JSON.parse(n);\n }\n function gt(n = 20) {\n if (d(j))\n if (je || (je = (h() ? document.querySelector(h()) : y == null ? void 0 : y.querySelector('input[type=\"submit\"], button[type=\"submit\"], button:not([type=\"button\"]):not([type=\"reset\"])')) || y), je) {\n const u = parseInt(g(), 10) || 12, _ = je.getBoundingClientRect(), b = d(j).getBoundingClientRect(), S = document.documentElement.clientHeight, x = document.documentElement.clientWidth, p = v() === \"auto\" ? _.bottom + b.height + u + n > S : v() === \"top\", q = Math.max(n, Math.min(x - n - b.width, _.left + _.width / 2 - b.width / 2));\n if (p ? d(j).style.top = `${_.top - (b.height + u)}px` : d(j).style.top = `${_.bottom + u}px`, d(j).style.left = `${q}px`, d(j).setAttribute(\"data-floating\", p ? \"top\" : \"bottom\"), d(nt)) {\n const L = d(nt).getBoundingClientRect();\n d(nt).style.left = _.left - q + _.width / 2 - L.width / 2 + \"px\";\n }\n } else\n I(\"unable to find floating anchor element\");\n }\n async function ei(n) {\n if (!Ee())\n throw new Error(\"Attribute verifyurl not set.\");\n I(\"requesting server verification from\", Ee());\n const u = { payload: n };\n if (N() !== !1) {\n const {\n blockedCountries: S,\n classifier: x,\n disableRules: p,\n email: q,\n expectedLanguages: L,\n expectedCountries: qe,\n fields: ot,\n ipAddress: st,\n text: vi,\n timeZone: Pr\n } = Zn();\n u.blockedCountries = S, u.classifier = x, u.disableRules = p, u.email = q === !1 ? void 0 : Yn(q), u.expectedCountries = qe, u.expectedLanguages = L || (ar ? [ar] : void 0), u.fields = ot === !1 ? void 0 : Gn(ot), u.ipAddress = st === !1 ? void 0 : st || \"auto\", u.text = vi, u.timeZone = Pr === !1 ? void 0 : Pr || Bl();\n }\n const _ = await fetch(Ee(), {\n body: JSON.stringify(u),\n headers: { \"content-type\": \"application/json\" },\n method: \"POST\"\n });\n if (_.status !== 200)\n throw new Error(`Server responded with ${_.status}.`);\n const b = await _.json();\n if (b != null && b.payload && P(Ne, le(b.payload)), rt(\"serververification\", b), l() && b.classification === \"BAD\")\n throw new Error(\"SpamFilter returned negative classification.\");\n }\n function Ot(n) {\n I(\"expire\", n), fe && (clearTimeout(fe), fe = null), n < 1 ? ur() : fe = setTimeout(ur, n);\n }\n function pr(n) {\n I(\"floating\", n), v() !== n && (d(j).style.left = \"\", d(j).style.top = \"\"), v(n === !0 || n === \"\" ? \"auto\" : n === !1 || n === \"false\" ? void 0 : v()), v() ? (r() || r(\"onsubmit\"), document.addEventListener(\"scroll\", dr), document.addEventListener(\"click\", cr), window.addEventListener(\"resize\", mr)) : r() === \"onsubmit\" && r(void 0);\n }\n function yr(n) {\n if (!n.algorithm)\n throw new Error(\"Invalid challenge. Property algorithm is missing.\");\n if (n.signature === void 0)\n throw new Error(\"Invalid challenge. Property signature is missing.\");\n if (!nr.includes(n.algorithm.toUpperCase()))\n throw new Error(`Unknown algorithm value. Allowed values: ${nr.join(\", \")}`);\n if (!n.challenge || n.challenge.length < 40)\n throw new Error(\"Challenge is too short. Min. 40 chars.\");\n if (!n.salt || n.salt.length < 10)\n throw new Error(\"Salt is too short. Min. 10 chars.\");\n }\n async function br(n) {\n let u = null;\n if (\"Worker\" in window) {\n try {\n u = await ti(n, n.maxnumber);\n } catch (_) {\n I(_);\n }\n if ((u == null ? void 0 : u.number) !== void 0 || \"obfuscated\" in n)\n return { data: n, solution: u };\n }\n if (\"obfuscated\" in n) {\n const _ = await Wl(n.obfuscated, n.key, n.maxnumber);\n return { data: n, solution: await _.promise };\n }\n return {\n data: n,\n solution: await Vl(n.challenge, n.salt, n.algorithm, n.maxnumber || Y()).promise\n };\n }\n async function ti(n, u = typeof U() == \"number\" ? U() : Y(), _ = Math.ceil(Me())) {\n const b = [];\n _ = Math.min(16, Math.max(1, _));\n for (let p = 0; p < _; p++)\n b.push(altchaCreateWorker(tt()));\n const S = Math.ceil(u / _), x = await Promise.all(b.map((p, q) => {\n const L = q * S;\n return new Promise((qe) => {\n p.addEventListener(\"message\", (ot) => {\n if (ot.data)\n for (const st of b)\n st !== p && st.postMessage({ type: \"abort\" });\n qe(ot.data);\n }), p.postMessage({\n payload: n,\n max: L + S,\n start: L,\n type: \"work\"\n });\n });\n }));\n for (const p of b)\n p.terminate();\n return x.find((p) => !!p) || null;\n }\n async function it() {\n if (!F()) {\n Le(E.ERROR);\n return;\n }\n const n = xe.find((u) => u.constructor.pluginName === \"obfuscation\");\n if (!n || !(\"clarify\" in n)) {\n Le(E.ERROR), I(\"Plugin `obfuscation` not found. Import `altcha/plugins/obfuscation` to load it.\");\n return;\n }\n if (\"clarify\" in n && typeof n.clarify == \"function\")\n return n.clarify();\n }\n function Er(n) {\n n.obfuscated !== void 0 && F(n.obfuscated), n.auto !== void 0 && (r(n.auto), r() === \"onload\" && (F() ? it() : $e())), n.blockspam !== void 0 && l(!!n.blockspam), n.customfetch !== void 0 && o(n.customfetch), n.floatinganchor !== void 0 && h(n.floatinganchor), n.delay !== void 0 && s(n.delay), n.floatingoffset !== void 0 && g(n.floatingoffset), n.floating !== void 0 && pr(n.floating), n.expire !== void 0 && (Ot(n.expire), c(n.expire)), n.challenge && (a(typeof n.challenge == \"string\" ? n.challenge : JSON.stringify(n.challenge)), yr(d(Pt))), n.challengeurl !== void 0 && i(n.challengeurl), n.debug !== void 0 && f(!!n.debug), n.hidefooter !== void 0 && m(!!n.hidefooter), n.hidelogo !== void 0 && w(!!n.hidelogo), n.maxnumber !== void 0 && Y(+n.maxnumber), n.mockerror !== void 0 && M(!!n.mockerror), n.name !== void 0 && T(n.name), n.refetchonexpire !== void 0 && be(!!n.refetchonexpire), n.spamfilter !== void 0 && N(typeof n.spamfilter == \"object\" ? n.spamfilter : !!n.spamfilter), n.strings && X(typeof n.strings == \"string\" ? n.strings : JSON.stringify(n.strings)), n.test !== void 0 && U(typeof n.test == \"number\" ? n.test : !!n.test), n.verifyurl !== void 0 && Ee(n.verifyurl), n.workers !== void 0 && Me(+n.workers), n.workerurl !== void 0 && tt(n.workerurl);\n }\n function xr() {\n return {\n auto: r(),\n blockspam: l(),\n challengeurl: i(),\n debug: f(),\n delay: s(),\n expire: c(),\n floating: v(),\n floatinganchor: h(),\n floatingoffset: g(),\n hidefooter: m(),\n hidelogo: w(),\n name: T(),\n maxnumber: Y(),\n mockerror: M(),\n obfuscated: F(),\n refetchonexpire: be(),\n spamfilter: N(),\n strings: d(Q),\n test: U(),\n verifyurl: Ee(),\n workers: Me(),\n workerurl: tt()\n };\n }\n function $r() {\n return je;\n }\n function ri(n) {\n return xe.find((u) => u.constructor.pluginName === n);\n }\n function kr() {\n return d(R);\n }\n function lt(n = E.UNVERIFIED, u = null) {\n fe && (clearTimeout(fe), fe = null), P(Ue, !1), P(Ne, null), Le(n, u);\n }\n function Cr(n) {\n je = n;\n }\n function Le(n, u = null) {\n P(R, le(n)), P(Ve, le(u)), rt(\"statechange\", {\n payload: d(Ne),\n state: d(R)\n });\n }\n async function $e() {\n return lt(E.VERIFYING), await new Promise((n) => setTimeout(n, s() || 0)), Wn().then((n) => (yr(n), I(\"challenge\", n), br(n))).then(({ data: n, solution: u }) => {\n if (I(\"solution\", u), \"challenge\" in n && u && !(\"clearText\" in u))\n if ((u == null ? void 0 : u.number) !== void 0) {\n if (Ee())\n return ei(fr(n, u));\n P(Ne, le(fr(n, u))), I(\"payload\", d(Ne));\n } else\n throw I(\"Unable to find a solution. Ensure that the 'maxnumber' attribute is greater than the randomly generated number.\"), new Error(\"Unexpected result returned.\");\n }).then(() => {\n Le(E.VERIFIED), I(\"verified\"), ol().then(() => {\n rt(\"verified\", { payload: d(Ne) });\n });\n }).catch((n) => {\n I(n), Le(E.ERROR, n.message);\n });\n }\n var Ar = na(), Rr = Br(Ar);\n kl(Rr, t, \"default\", {});\n var at = he(Rr, 2), zt = G(at), Ir = G(zt);\n {\n var ni = (n) => {\n var u = Yl();\n ee(n, u);\n };\n ke(Ir, (n) => {\n d(R) === E.VERIFYING && n(ni);\n });\n }\n var _t = he(Ir, 2);\n let Sr;\n var Be = G(_t);\n Gr(Be), Be.__change = Kn, Z(_t);\n var Ft = he(_t, 2), ii = G(Ft);\n {\n var li = (n) => {\n var u = Zl(), _ = Br(u), b = G(_);\n Ze(b, () => d(Q).verified), Z(_);\n var S = he(_, 2);\n Gr(S), We(() => {\n ie(S, \"name\", T()), Tl(S, d(Ne));\n }), ee(n, u);\n }, ai = (n, u) => {\n {\n var _ = (S) => {\n var x = Gl(), p = G(x);\n Ze(p, () => d(Q).verifying), Z(x), ee(S, x);\n }, b = (S) => {\n var x = Jl(), p = G(x);\n Ze(p, () => d(Q).label), Z(x), We(() => ie(x, \"for\", d(sr))), ee(S, x);\n };\n ke(\n n,\n (S) => {\n d(R) === E.VERIFYING ? S(_) : S(b, !1);\n },\n u\n );\n }\n };\n ke(ii, (n) => {\n d(R) === E.VERIFIED ? n(li) : n(ai, !1);\n });\n }\n Z(Ft);\n var oi = he(Ft, 2);\n {\n var si = (n) => {\n var u = Kl(), _ = G(u);\n ie(_, \"href\", lr), Z(u), We(() => ie(_, \"aria-label\", d(Q).ariaLinkLabel)), ee(n, u);\n };\n ke(oi, (n) => {\n (w() !== !0 || d(Dt)) && n(si);\n });\n }\n Z(zt);\n var Tr = he(zt, 2);\n {\n var fi = (n) => {\n var u = ea(), _ = he(G(u), 2);\n {\n var b = (x) => {\n var p = Xl(), q = G(p);\n Ze(q, () => d(Q).expired), Z(p), We(() => ie(p, \"title\", d(Ve))), ee(x, p);\n }, S = (x) => {\n var p = Ql(), q = G(p);\n Ze(q, () => d(Q).error), Z(p), We(() => ie(p, \"title\", d(Ve))), ee(x, p);\n };\n ke(_, (x) => {\n d(R) === E.EXPIRED ? x(b) : x(S, !1);\n });\n }\n Z(u), ee(n, u);\n };\n ke(Tr, (n) => {\n (d(Ve) || d(R) === E.EXPIRED) && n(fi);\n });\n }\n var Nr = he(Tr, 2);\n {\n var ui = (n) => {\n var u = ta(), _ = G(u), b = G(_);\n Ze(b, () => d(Q).footer), Z(_), Z(u), ee(n, u);\n };\n ke(Nr, (n) => {\n d(Q).footer && (m() !== !0 || d(Dt)) && n(ui);\n });\n }\n var ci = he(Nr, 2);\n {\n var di = (n) => {\n var u = ra();\n Xr(u, (_) => P(nt, _), () => d(nt)), ee(n, u);\n };\n ke(ci, (n) => {\n v() && n(di);\n });\n }\n return Z(at), Xr(at, (n) => P(j, n), () => d(j)), We(\n (n) => {\n ie(at, \"data-state\", d(R)), ie(at, \"data-floating\", v()), Sr = Rl(_t, 1, \"altcha-checkbox svelte-ddsc3z\", null, Sr, n), ie(Be, \"id\", d(sr)), Be.required = r() !== \"onsubmit\" && (!v() || r() !== \"off\");\n },\n [\n () => ({\n \"altcha-hidden\": d(R) === E.VERIFYING\n })\n ]\n ), yl(\"invalid\", Be, _r), Ll(Be, () => d(Ue), (n) => P(Ue, n)), ee(e, Ar), Ln({\n clarify: it,\n configure: Er,\n getConfiguration: xr,\n getFloatingAnchor: $r,\n getPlugin: ri,\n getState: kr,\n reset: lt,\n setFloatingAnchor: Cr,\n setState: Le,\n verify: $e,\n get auto() {\n return r();\n },\n set auto(n = void 0) {\n r(n), $();\n },\n get blockspam() {\n return l();\n },\n set blockspam(n = void 0) {\n l(n), $();\n },\n get challengeurl() {\n return i();\n },\n set challengeurl(n = void 0) {\n i(n), $();\n },\n get challengejson() {\n return a();\n },\n set challengejson(n = void 0) {\n a(n), $();\n },\n get customfetch() {\n return o();\n },\n set customfetch(n = void 0) {\n o(n), $();\n },\n get debug() {\n return f();\n },\n set debug(n = !1) {\n f(n), $();\n },\n get delay() {\n return s();\n },\n set delay(n = 0) {\n s(n), $();\n },\n get expire() {\n return c();\n },\n set expire(n = void 0) {\n c(n), $();\n },\n get floating() {\n return v();\n },\n set floating(n = void 0) {\n v(n), $();\n },\n get floatinganchor() {\n return h();\n },\n set floatinganchor(n = void 0) {\n h(n), $();\n },\n get floatingoffset() {\n return g();\n },\n set floatingoffset(n = void 0) {\n g(n), $();\n },\n get hidefooter() {\n return m();\n },\n set hidefooter(n = !1) {\n m(n), $();\n },\n get hidelogo() {\n return w();\n },\n set hidelogo(n = !1) {\n w(n), $();\n },\n get id() {\n return z();\n },\n set id(n = void 0) {\n z(n), $();\n },\n get name() {\n return T();\n },\n set name(n = \"altcha\") {\n T(n), $();\n },\n get maxnumber() {\n return Y();\n },\n set maxnumber(n = 1e6) {\n Y(n), $();\n },\n get mockerror() {\n return M();\n },\n set mockerror(n = !1) {\n M(n), $();\n },\n get obfuscated() {\n return F();\n },\n set obfuscated(n = void 0) {\n F(n), $();\n },\n get plugins() {\n return se();\n },\n set plugins(n = void 0) {\n se(n), $();\n },\n get refetchonexpire() {\n return be();\n },\n set refetchonexpire(n = !0) {\n be(n), $();\n },\n get spamfilter() {\n return N();\n },\n set spamfilter(n = !1) {\n N(n), $();\n },\n get strings() {\n return X();\n },\n set strings(n = void 0) {\n X(n), $();\n },\n get test() {\n return U();\n },\n set test(n = !1) {\n U(n), $();\n },\n get verifyurl() {\n return Ee();\n },\n set verifyurl(n = void 0) {\n Ee(n), $();\n },\n get workers() {\n return Me();\n },\n set workers(n = Math.min(16, navigator.hardwareConcurrency || 8)) {\n Me(n), $();\n },\n get workerurl() {\n return tt();\n },\n set workerurl(n = void 0) {\n tt(n), $();\n }\n });\n}\nbl([\"change\"]);\ncustomElements.define(\"altcha-widget\", Ml(\n la,\n {\n blockspam: { type: \"Boolean\" },\n debug: { type: \"Boolean\" },\n delay: { type: \"Number\" },\n expire: { type: \"Number\" },\n floatingoffset: { type: \"Number\" },\n hidefooter: { type: \"Boolean\" },\n hidelogo: { type: \"Boolean\" },\n maxnumber: { type: \"Number\" },\n mockerror: { type: \"Boolean\" },\n refetchonexpire: { type: \"Boolean\" },\n test: { type: \"Boolean\" },\n workers: { type: \"Number\" },\n auto: {},\n challengeurl: {},\n challengejson: {},\n customfetch: {},\n floating: {},\n floatinganchor: {},\n id: {},\n name: {},\n obfuscated: {},\n plugins: {},\n spamfilter: {},\n strings: {},\n verifyurl: {},\n workerurl: {}\n },\n [\"default\"],\n [\n \"clarify\",\n \"configure\",\n \"getConfiguration\",\n \"getFloatingAnchor\",\n \"getPlugin\",\n \"getState\",\n \"reset\",\n \"setFloatingAnchor\",\n \"setState\",\n \"verify\"\n ],\n !1\n));\nglobalThis.altchaCreateWorker = (e) => e ? new Worker(new URL(e)) : new _i();\nglobalThis.altchaPlugins = globalThis.altchaPlugins || [];\nexport {\n la as Altcha\n};","// internal\nimport BasePage from \"../base.js\";\n// vendor\nimport { Altcha } from \"../../vendor/altcha.js\";\n\nexport default class PageContact extends BasePage {\n static hash = hashPageContact;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n this.hookupButtonSubmitFormContactUs();\n }\n\n hookupButtonSubmitFormContactUs() {\n const button = document.querySelector('form input[type=\"submit\"]');\n button.classList.add(flagButton);\n button.classList.add(flagButtonPrimary);\n }\n}\n","// internal\nimport BasePage from \"../base.js\";\n// vendor\nimport { Altcha } from \"../../vendor/altcha.js\";\n\nexport default class PageContactSuccess extends BasePage {\n static hash = hashPageContactSuccess;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n}\n","\nimport BasePage from \"../base.js\";\n\nexport default class PageDogHome extends BasePage {\n static hash = hashPageDogHome;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n this.hookupDogHome();\n }\n hookupDogHome() {\n \n }\n\n leave() {\n super.leave();\n }\n}\n","\nimport Utils from '../utils.js';\n\nexport default class BusinessObjects {\n static getOptionJsonFromObjectJsonAndKeys(objectJson, keyText, keyValue, valueSelected = null) {\n return {\n text: objectJson[keyText],\n value: objectJson[keyValue],\n selected: (objectJson[keyValue] == valueSelected),\n };\n }\n static getOptionJsonFromObjectJson(objectJson, valueSelected = null) {\n let keyText = objectJson[flagNameAttrOptionText];\n let keyValue = objectJson[flagNameAttrOptionValue];\n // Utils.consoleLogIfNotProductionEnvironment({objectJson, keyText, keyValue});\n return BusinessObjects.getOptionJsonFromObjectJsonAndKeys(objectJson, keyText, keyValue, valueSelected);\n }\n static getObjectText(objectJson) {\n return objectJson == null ? '' : objectJson[objectJson[flagNameAttrOptionText]];\n }\n static getListObjectsFromIdDictAndCsv(idDict, idCsv) {\n let listObjects = [];\n let ids = idCsv.split(',');\n for (let id of ids) {\n listObjects.push(idDict[id]);\n }\n return listObjects;\n }\n}","\nimport Events from \"../../../lib/events.js\";\n\nexport default class OverlayError {\n static hookup() {\n Events.initialiseEventHandler(idOverlayError + ' button.' + flagCancel, flagInitialised, (buttonCancel) => {\n buttonCancel.addEventListener('click', () => {\n let overlay = document.querySelector(idOverlayError);\n overlay.style.visibility = 'hidden';\n });\n });\n }\n static show(msgError) {\n let overlay = document.querySelector(idOverlayError);\n let labelError = overlay.querySelector(idLabelError);\n labelError.innerText = msgError;\n overlay.style.visibility = 'visible';\n }\n}","\nimport BusinessObjects from \"../lib/business_objects/business_objects.js\";\nimport Events from \"../lib/events.js\";\nimport LocalStorage from \"../lib/local_storage.js\";\nimport Validation from \"../lib/validation.js\";\nimport BasePage from \"./base.js\";\nimport API from \"../api.js\";\nimport DOM from \"../dom.js\";\nimport Utils from \"../lib/utils.js\";\n\nimport OverlayConfirm from \"../components/common/temporary/overlay_confirm.js\";\nimport OverlayError from \"../components/common/temporary/overlay_error.js\";\n\nexport default class TableBasePage extends BasePage {\n // static hash\n // static attrIdRowObject\n // callSaveTableContent\n\n constructor(router) {\n super(router);\n this.cursorYInitial = null;\n this.rowInitial = null;\n this.placeholder = null;\n this.dragSrcEl = null;\n this.dragSrcRow = null;\n\n this.hookupTableCellDdls = this.hookupTableCellDdls.bind(this);\n }\n \n initialize(isPopState = false) {\n throw new Error(\"Must implement initialize() method.\");\n }\n sharedInitialize(isPopState = false, isSinglePageApp = false) {\n if (!isPopState) {\n super.sharedInitialize();\n this.hookupFilters();\n this.hookupButtonsSaveCancel();\n this.hookupTableMain();\n OverlayConfirm.hookup(() => {\n if (isSinglePageApp) {\n this.saveRecordsTableDirtySinglePageApp();\n }\n else {\n this.saveRecordsTableDirty();\n }\n });\n } else {\n let dataPage = this.getLocalStoragePage();\n let filters = dataPage[flagFormFilters];\n let formFilters = TableBasePage.getFormFilters();\n let filtersDefault = DOM.convertForm2JSON(formFilters);\n if (!Validation.areEqualDicts(filters, filtersDefault)) {\n this.callFilterTableContent();\n }\n }\n }\n hookupFilters() {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Subclass of TableBasePage must implement method hookupFilters().\");\n }\n }\n sharedHookupFilters() {\n this.hookupButtonApplyFilters();\n this.hookupSearchTextFilter();\n }\n hookupFilterActive() {\n let filterSelector = idFormFilters + ' #' + flagActiveOnly;\n let filterActiveOld = document.querySelector(filterSelector);\n filterActiveOld.removeAttribute('id');\n let parentDiv = filterActiveOld.parentElement;\n let isChecked = (DOM.getElementAttributeValuePrevious(parentDiv) == \"True\");\n let filterActiveNew = document.querySelector(idFormFilters + ' div.' + flagActiveOnly + '.' + flagContainerInput + ' svg.' + flagActiveOnly);\n filterActiveNew.setAttribute('id', flagActiveOnly);\n if (isChecked) filterActiveNew.classList.add(flagIsChecked);\n\n Events.hookupEventHandler(\"click\", filterSelector, (event, filterActive) => {\n Utils.consoleLogIfNotProductionEnvironment({ filterActive });\n Utils.consoleLogIfNotProductionEnvironment({ [filterActive.tagName]: filterActive.tagName });\n let svgElement = (filterActive.tagName.toUpperCase() == 'SVG') ? filterActive : filterActive.parentElement;\n let wasChecked = svgElement.classList.contains(flagIsChecked);\n if (wasChecked) {\n svgElement.classList.remove(flagIsChecked);\n }\n else {\n svgElement.classList.add(flagIsChecked);\n }\n return this.handleChangeFilter(event, filterActive);\n });\n let filter = document.querySelector(filterSelector);\n let filterValuePrevious = DOM.getElementValueCurrent(filter);\n filter.setAttribute(attrValueCurrent, filterValuePrevious);\n filter.setAttribute(attrValuePrevious, filterValuePrevious);\n }\n hookupFilter(filterFlag, handler = (event, filter) => { return this.handleChangeFilter(event, filter); }) {\n let filterSelector = idFormFilters + ' #' + filterFlag;\n Events.hookupEventHandler(\"change\", filterSelector, handler);\n let filter = document.querySelector(filterSelector);\n let filterValuePrevious = DOM.getElementValueCurrent(filter);\n filter.setAttribute(attrValueCurrent, filterValuePrevious);\n filter.setAttribute(attrValuePrevious, filterValuePrevious);\n }\n handleChangeFilter(event, filter) {\n let isDirtyFilter = DOM.updateAndCheckIsElementDirty(filter);\n let formFilters = TableBasePage.getFormFilters();\n let areDirtyFilters = isDirtyFilter || DOM.hasDirtyChildrenContainer(formFilters);\n let tbody = document.querySelector(idTableMain + ' tbody');\n let rows = tbody.querySelectorAll(':scope > tr');\n rows.forEach((row) => {\n if (areDirtyFilters && !row.classList.contains(flagIsCollapsed)) row.classList.add(flagIsCollapsed);\n if (!areDirtyFilters && row.classList.contains(flagIsCollapsed)) {\n row.classList.remove(flagIsCollapsed);\n let dirtyInputs = row.querySelectorAll('input.' + flagDirty);\n dirtyInputs.forEach((dirtyInput) => {\n dirtyInput.value = DOM.getElementAttributeValueCurrent(dirtyInput);\n });\n }\n });\n if (areDirtyFilters) {\n /*\n tbody.querySelectorAll('tr').forEach((tr) => { \n if (!DOM.hasDirtyChildrenContainer(tr)) tr.remove(); \n });\n */\n tbody.innerHTML = '
Press \"Apply Filters\" to refresh the table.
' + tbody.innerHTML;\n if (!tbody.classList.contains(flagIsCollapsed)) tbody.classList.add(flagIsCollapsed);\n }\n else {\n let isDirtyLabel = tbody.querySelector(\":scope > div\");\n if (isDirtyLabel != null) isDirtyLabel.remove();\n if (tbody.classList.contains(flagIsCollapsed)) tbody.classList.remove(flagIsCollapsed);\n let initialisedElements = tbody.querySelectorAll('.' + flagInitialised);\n initialisedElements.forEach((initialisedElement) => {\n initialisedElement.classList.remove(flagInitialised);\n });\n this.hookupTableMain();\n }\n this.updateAndToggleShowButtonsSaveCancel();\n }\n hookupFilterIsNotEmpty() {\n this.hookupFilter(flagIsNotEmpty);\n }\n hookupButtonApplyFilters() {\n Events.hookupEventHandler(\"click\", idButtonApplyFilters, (event, button) => {\n event.stopPropagation();\n this.callFilterTableContent();\n });\n }\n hookupSearchTextFilter() {\n this.hookupFilter(flagSearch);\n }\n hookupFilterDog() {\n this.hookupFilter(attrIdDog); \n }\n hookupFilterCommandCategory() {\n this.hookupFilter(attrIdCommandCategory, (event, filterCommandCategory) => {\n this.handleChangeFilter();\n let isDirtyFilter = filterCommandCategory.classList.contains(flagDirty);\n let idCommandCategory = DOM.getElementValueCurrent(filterCommandCategory);\n console.log(\"filter commands unsorted\");\n console.log(Utils.getListFromDict(filterCommands));\n let commandsInCategory = Utils.getListFromDict(filterCommands).filter(command => command[attrIdCommandCategory] == idCommandCategory);\n let sortedCommands = commandsInCategory.sort((a, b) => a[flagName].localeCompare(b[flagName]));\n let filterCommand = document.querySelector(idFormFilters + ' .' + flagCommand);\n let idCommandPrevious = DOM.getElementAttributeValuePrevious(filterCommand);\n filterCommand.innerHTML = '';\n let optionJson, option;\n option = DOM.createOption(null);\n filterCommand.appendChild(option);\n sortedCommands.forEach((command) => {\n optionJson = BusinessObjects.getOptionJsonFromObjectJson(command, idCommandPrevious);\n option = DOM.createOption(optionJson);\n filterCommand.appendChild(option);\n });\n filterCommand.dispatchEvent(new Event('change'));\n return isDirtyFilter;\n });\n }\n hookupFilterCommand() {\n this.hookupFilter(attrIdCommand);\n }\n hookupFilterLocation() {\n this.hookupFilter(attrIdLocation);\n }\n /*\n getAndLoadFilteredTableContent = () => {\n this.callFilterTableContent()\n .catch(error => console.error('Error:', error));\n }\n */\n static getFormFilters() {\n return document.querySelector(idFormFilters);\n }\n callFilterTableContent() {\n let formFilters = TableBasePage.getFormFilters();\n let filtersJson = DOM.convertForm2JSON(formFilters);\n Utils.consoleLogIfNotProductionEnvironment(\"callFilterTableContent\");\n Utils.consoleLogIfNotProductionEnvironment(\"formFilters\");\n Utils.consoleLogIfNotProductionEnvironment(formFilters);\n Utils.consoleLogIfNotProductionEnvironment(\"filtersJson\");\n Utils.consoleLogIfNotProductionEnvironment(filtersJson);\n this.leave();\n API.goToHash(this.constructor.hash, filtersJson);\n }\n callbackLoadTableContent(response) {\n let table = TableBasePage.getTableMain();\n let bodyTable = table.querySelector('tbody');\n bodyTable.querySelectorAll('tr').forEach(function(row) { row.remove(); });\n let rowsJson = response.data[flagRows];\n if (!Validation.isEmpty(rowsJson) && rowsJson.every(row => row.hasOwnProperty('display_order'))) {\n rowsJson = rowsJson.sort((a, b) => a.display_order - b.display_order);\n }\n rowsJson.forEach(this.loadRowTable.bind(this));\n this.hookupTableMain();\n }\n static getTableMain() {\n return document.querySelector(idTableMain);\n }\n loadRowTable(rowJson) {\n throw new Error(\"Subclass of TableBasePage must implement method loadRowTable().\");\n }\n getAndLoadFilteredTableContentSinglePageApp() {\n this.callFilterTableContent()\n .then(data => {\n Utils.consoleLogIfNotProductionEnvironment('Table data received:', data);\n this.callbackLoadTableContent(data);\n })\n .catch(error => console.error('Error:', error));\n }\n hookupButtonsSaveCancel() {\n this.hookupButtonSave();\n this.hookupButtonCancel();\n this.toggleShowButtonsSaveCancel(false);\n }\n saveRecordsTableDirty() {\n let records = this.getTableRecords(true);\n if (records.length == 0) {\n OverlayError.show('No records to save');\n return;\n }\n let formElement = TableBasePage.getFormFilters();\n let comment = DOM.getElementValueCurrent(document.querySelector(idTextareaConfirm));\n /*\n Utils.consoleLogIfNotProductionEnvironment({ formElement, comment, records });\n Utils.consoleLogIfNotProductionEnvironment('records');\n Utils.consoleLogIfNotProductionEnvironment(records);\n debugger;\n */\n this.callSaveTableContent(records, formElement, comment)\n .then(data => {\n if (data[flagStatus] == flagSuccess) {\n if (_verbose) { \n Utils.consoleLogIfNotProductionEnvironment('Records saved!');\n Utils.consoleLogIfNotProductionEnvironment('Data received:', data);\n }\n this.callFilterTableContent();\n }\n else {\n Utils.consoleLogIfNotProductionEnvironment(\"error: \", data[flagMessage]);\n OverlayError.show(data[flagMessage]);\n }\n })\n .catch(error => console.error('Error:', error));\n }\n getTableRecords(dirtyOnly = false) {\n let records = [];\n let record;\n document.querySelectorAll(idTableMain + ' > tbody > tr').forEach((row) => {\n if (dirtyOnly && !DOM.hasDirtyChildrenContainer(row)) return;\n record = this.getJsonRow(row);\n records.push(record);\n });\n return records;\n }\n getJsonRow(row) {\n throw new Error(\"Subclass of TableBasePage must implement method getJsonRow().\");\n }\n saveRecordsTableDirtySinglePageApp() {\n let records = this.getTableRecords(true);\n if (records.length == 0) {\n OverlayError.show('No records to save');\n return;\n }\n let formElement = TableBasePage.getFormFilters();\n let comment = DOM.getElementValueCurrent(document.querySelector(idTextareaConfirm));\n this.callSaveTableContent(records, formElement, comment)\n .then(data => {\n if (data[flagStatus] == flagSuccess) {\n if (_verbose) { \n Utils.consoleLogIfNotProductionEnvironment('Records saved!');\n Utils.consoleLogIfNotProductionEnvironment('Data received:', data);\n }\n this.callbackLoadTableContent(data);\n }\n else {\n Utils.consoleLogIfNotProductionEnvironment(\"error: \", data[flagMessage]);\n OverlayError.show(data[flagMessage]);\n }\n })\n .catch(error => console.error('Error:', error));\n }\n hookupButtonCancel() {\n Events.initialiseEventHandler('.' + flagContainer + '.' + flagSave + '.' + flagCancel + ' button.' + flagCancel, flagInitialised, (button) => {\n button.addEventListener(\"click\", (event) => {\n event.stopPropagation();\n button = event.target;\n if (button.classList.contains(flagIsCollapsed)) return;\n this.callFilterTableContent();\n });\n button.classList.add(flagIsCollapsed);\n });\n }\n handleClickAddRowTable(event, button) {\n event.stopPropagation();\n _rowBlank.setAttribute(this.constructor.attrIdRowObject, -1 - _rowBlank.getAttribute(this.constructor.attrIdRowObject));\n let tbody = document.querySelector(idTableMain + ' tbody');\n if (tbody.classList.contains(flagIsCollapsed)) return;\n let row = _rowBlank.cloneNode(true);\n row.classList.remove(flagInitialised);\n row.querySelectorAll('.' + flagInitialised).forEach(function(element) {\n element.classList.remove(flagInitialised);\n });\n let countRows = document.querySelectorAll(idTableMain + ' > tbody > tr').length;\n row.setAttribute(this.constructor.attrIdRowObject, -1 - countRows);\n this.initialiseRowNew(tbody, row);\n tbody.prepend(row);\n tbody.scrollTop = 0;\n this.hookupTableMain();\n this.postInitialiseRowNewCallback(tbody);\n }\n initialiseRowNew(tbody, row) {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Subclass of TableBasePage must implement method initialiseRowNew().\");\n }\n // row.classList.remove(flagRowNew);\n }\n hookupTableMain() {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Must implement hookupTableMain() method.\");\n }\n Events.initialiseEventHandler(idTableMain, flagInitialised, (table) => {\n this.cacheRowBlank();\n });\n }\n cacheRowBlank() {\n let selectorRowNew = idTableMain + ' tbody tr.' + flagRowNew;\n let rowBlankTemp = document.querySelector(selectorRowNew);\n Utils.consoleLogIfNotProductionEnvironment(\"row blank temp: \", rowBlankTemp);\n let countRows = document.querySelectorAll(idTableMain + ' > tbody > tr').length;\n _rowBlank = rowBlankTemp.cloneNode(true);\n document.querySelectorAll(selectorRowNew).forEach(function(row) {\n row.remove();\n });\n _rowBlank.setAttribute(this.constructor.attrIdRowObject, -1 - countRows);\n }\n postInitialiseRowNewCallback(tbody) {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Subclass of TableBasePage must implement method postInitialiseRowNewCallback(tbody).\");\n }\n }\n initialiseSliderDisplayOrderRowNew(tbody, row) {\n // let tdSelector = ':scope > tr > td.' + flagDisplayOrder;\n // let tbody = document.querySelector('table' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > tbody');\n let slidersDisplayOrder = tbody.querySelectorAll(':scope > tr > td.' + flagDisplayOrder + ' input.' + flagSlider);\n let maxDisplayOrder = 0;\n slidersDisplayOrder.forEach((slider) => {\n maxDisplayOrder = Math.max(maxDisplayOrder, parseFloat(DOM.getElementValueCurrent(slider)));\n });\n let sliderDisplayOrder = row.querySelector('td.' + flagDisplayOrder + ' .' + flagSlider);\n DOM.setElementValuesCurrentAndPrevious(sliderDisplayOrder, maxDisplayOrder + 1);\n }\n hookupSlidersDisplayOrderTable() {\n let selectorDisplayOrder = idTableMain + ' tbody tr td.' + flagDisplayOrder + ' input.' + flagSlider + '.' + flagDisplayOrder;\n this.hookupChangeHandlerTableCells(selectorDisplayOrder);\n }\n hookupChangeHandlerTableCells(inputSelector, handler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n Events.initialiseEventHandler(inputSelector, flagInitialised, (input) => {\n input.addEventListener(\"change\", (event) => {\n handler(event, input);\n });\n handler(null, input);\n });\n }\n handleChangeNestedElementCellTable(event, element) {\n let wasDirtyParentRows = this.getAllIsDirtyRowsInParentTree(element);\n let wasDirtyElement = element.classList.contains(flagDirty);\n let isDirtyElement = DOM.updateAndCheckIsElementDirty(element);\n // Utils.consoleLogIfNotProductionEnvironment({isDirtyElement, wasDirtyElement, wasDirtyParentRows});\n // let td = DOM.getCellFromElement(element);\n // DOM.setElementAttributeValueCurrent(td, DOM.getElementAttributeValueCurrent(element));\n if (isDirtyElement != wasDirtyElement) {\n // DOM.handleDirtyElement(td, isDirtyElement);\n this.updateAndToggleShowButtonsSaveCancel();\n this.cascadeChangedIsDirtyNestedElementCellTable(element, isDirtyElement, wasDirtyParentRows);\n }\n }\n getAllIsDirtyRowsInParentTree(element) {\n let rows = [];\n let parent = element;\n let isDirty;\n while (parent) {\n if (parent.tagName.toUpperCase() == 'TR') {\n isDirty = parent.classList.contains(flagDirty)\n rows.push(isDirty);\n }\n parent = parent.parentElement;\n }\n return rows;\n }\n cascadeChangedIsDirtyNestedElementCellTable(element, isDirtyElement, wasDirtyParentRows) {\n if (Validation.isEmpty(wasDirtyParentRows)) return;\n let tr = DOM.getRowFromElement(element);\n let isDirtyRow = isDirtyElement || DOM.hasDirtyChildrenContainer(tr);\n let wasDirtyRow = wasDirtyParentRows.shift();\n Utils.consoleLogIfNotProductionEnvironment({isDirtyRow, wasDirtyRow});\n if (isDirtyRow != wasDirtyRow) {\n DOM.handleDirtyElement(tr, isDirtyRow);\n this.updateAndToggleShowButtonsSaveCancel();\n this.cascadeChangedIsDirtyNestedElementCellTable(tr.parentElement, isDirtyRow, wasDirtyParentRows);\n }\n }\n hookupChangeHandlerTableCellsWhenNotCollapsed(inputSelector, handler = (event, element) => {\n if (!element.classList.contains(flagIsCollapsed)) this.handleChangeNestedElementCellTable(event, element);\n }) {\n Events.hookupEventHandler(\"change\", inputSelector, handler);\n }\n hookupFieldsCodeTable() {\n this.hookupChangeHandlerTableCells(idTableMain + ' > tbody > tr > td.' + flagCode + ' > .' + flagCode);\n }\n hookupFieldsNameTable() {\n this.hookupChangeHandlerTableCells(idTableMain + ' > tbody > tr > td.' + flagName + ' > .' + flagName);\n }\n hookupFieldsDescriptionTable() {\n this.hookupChangeHandlerTableCells(idTableMain + ' > tbody > tr > td.' + flagDescription + ' > .' + flagDescription);\n }\n hookupFieldsNotesTable() {\n this.hookupChangeHandlerTableCells(idTableMain + ' > tbody > tr > td.' + flagNotes + ' > .' + flagNotes);\n }\n hookupFieldsActive(flagTable = '', handleClickRowNew = (event, element) => { this.handleClickAddRowTable(event, element); }) {\n let selectorButton = 'table.table-main' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > tbody > tr > td.' + flagActive + ' .' + flagButton + '.' + flagActive;\n let selectorButtonDelete = selectorButton + '.' + flagDelete;\n let selectorButtonUndelete = selectorButton + ':not(.' + flagDelete + ')';\n Utils.consoleLogIfNotProductionEnvironment(\"hookupFieldsActive: \", selectorButtonDelete, selectorButtonUndelete);\n this.hookupButtonsRowDelete(selectorButtonDelete, selectorButtonUndelete);\n this.hookupButtonsRowUndelete(selectorButtonDelete, selectorButtonUndelete);\n Events.hookupEventHandler(\n \"click\"\n , 'table.table-main' + (Validation.isEmpty(flagTable) ? '' : '.' + flagTable) + ' > thead > tr > th.' + flagActive + ' .' + flagButton + '.' + flagActive\n , (event, button) => { handleClickRowNew(event, button); }\n );\n }\n hookupButtonsRowDelete(selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n Events.hookupEventHandler(\"click\", selectorButtonDelete, (event, element) => {\n this.handleClickButtonRowDelete(event, element, selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });\n });\n }\n handleClickButtonRowDelete(event, element, selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n if (element.tagName.toUpperCase() != 'SVG') element = element.parentElement;\n let valuePrevious = DOM.getElementAttributeValuePrevious(element);\n let wasDirty = element.classList.contains(flagDirty);\n let row = DOM.getRowFromElement(element);\n if (row.classList.contains(flagRowNew) && !DOM.hasDirtyChildrenContainer(row)) {\n row.parentNode.removeChild(row);\n }\n else {\n let buttonAddTemplate = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagActive + '.' + flagAdd);\n let buttonAdd = buttonAddTemplate.cloneNode(true);\n DOM.setElementAttributeValuePrevious(buttonAdd, valuePrevious);\n DOM.setElementAttributeValueCurrent(buttonAdd, false);\n if (wasDirty) buttonAdd.classList.add(flagDirty);\n element.replaceWith(buttonAdd);\n changeHandler(null, buttonAdd);\n this.hookupButtonsRowUndelete(selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });\n }\n this.updateAndToggleShowButtonsSaveCancel();\n }\n hookupButtonsRowUndelete(selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n Events.hookupEventHandler(\"click\", selectorButtonUndelete, (event, element) => {\n this.handleClickButtonRowUndelete(event, element, selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });\n });\n }\n handleClickButtonRowUndelete(event, element, selectorButtonDelete, selectorButtonUndelete, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n if (element.tagName.toUpperCase() != 'SVG') element = element.parentElement;\n let valuePrevious = DOM.getElementAttributeValuePrevious(element);\n let wasDirty = DOM.isElementDirty(element);\n let buttonDeleteTemplate = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagActive + '.' + flagDelete);\n let buttonDelete = buttonDeleteTemplate.cloneNode(true);\n DOM.setElementAttributeValuePrevious(buttonDelete, valuePrevious);\n DOM.setElementAttributeValueCurrent(buttonDelete, true);\n if (wasDirty) buttonDelete.classList.add(flagDirty);\n element.replaceWith(buttonDelete);\n changeHandler(null, buttonDelete);\n this.hookupButtonsRowDelete(selectorButtonDelete, selectorButtonUndelete, (changeEvent, changeElement) => { changeHandler(changeEvent, changeElement); });\n this.updateAndToggleShowButtonsSaveCancel();\n }\n hookupTdsAccessLevel() {\n this.hookupTableCellDdlPreviews(flagAccessLevel, Utils.getListFromDict(accessLevels));\n }\n hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector = null\n , ddlHookup = (ddlSelector) => { this.hookupTableCellDdls(ddlSelector); }\n , changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }\n ) {\n if (cellSelector == null) cellSelector = idTableMain + ' > tbody > tr > td.' + fieldFlag;\n Events.hookupEventHandler(\"click\", cellSelector + ' div.' + fieldFlag, (event, div) => {\n this.handleClickTableCellDdlPreview(\n event\n , div\n , fieldFlag\n , optionList\n , cellSelector\n , (ddlSelector) => { ddlHookup(\n ddlSelector\n , (event, element) => { changeHandler(event, element); }\n ); }\n );\n });\n ddlHookup(cellSelector + ' select.' + fieldFlag);\n }\n hookupTableCellDdls(ddlSelector, changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }) {\n this.hookupChangeHandlerTableCells(ddlSelector, (event, element) => { changeHandler(event, element); });\n }\n handleClickTableCellDdlPreview(event, div, fieldFlag, optionObjectList, cellSelector = null, ddlHookup = (cellSelector) => { this.hookupTableCellDdls(cellSelector); }) {\n if (Validation.isEmpty(cellSelector)) cellSelector = idTableMain + ' > tbody > tr > td.' + fieldFlag;\n let idSelected = DOM.getElementAttributeValueCurrent(div);\n let td = DOM.getCellFromElement(div);\n td.innerHTML = '';\n let ddl = document.createElement('select');\n ddl.classList.add(fieldFlag);\n DOM.setElementValuesCurrentAndPrevious(ddl, idSelected);\n let optionJson, option;\n if (_verbose) { \n Utils.consoleLogIfNotProductionEnvironment(\"click table cell ddl preview\");\n Utils.consoleLogIfNotProductionEnvironment({optionObjectList, cellSelector});\n }\n option = DOM.createOption(null);\n ddl.appendChild(option);\n optionObjectList.forEach((optionObjectJson) => {\n optionJson = BusinessObjects.getOptionJsonFromObjectJson(optionObjectJson, idSelected);\n option = DOM.createOption(optionJson);\n ddl.appendChild(option);\n });\n td.appendChild(ddl);\n let ddlSelector = cellSelector + ' select.' + fieldFlag;\n ddlHookup(ddlSelector);\n }\n /*\n hookupTableCellDDlPreviewsWhenNotCollapsed(cellSelector, optionList, ddlHookup = (event, element) => { this.hookupTableCellDdls(event, element); }) {\n Events.hookupEventHandler(\"click\", cellSelector + ' div', (event, div) => {\n this.handleClickTableCellDdlPreview(event, div, optionList, cellSelector, (event, element) => { ddlHookup(event, element); });\n });\n }\n */\n toggleColumnCollapsed(flagColumn, isCollapsed) {\n this.toggleColumnHasClassnameFlag(flagColumn, isCollapsed, flagIsCollapsed);\n }\n toggleColumnHeaderCollapsed(flagColumn, isCollapsed) {\n this.toggleColumnHasClassnameFlag(flagColumn, isCollapsed, flagIsCollapsed);\n }\n\n hookupFieldsCommandCategory(idTable = null) {\n if (idTable == null) idTable = idTableMain;\n this.hookupTableCellDdlPreviews(\n flagCommandCategory\n , Utils.getListFromDict(filterCommandCategories).sort((a, b) => a[flagName].localeCompare(b[flagName]))\n , idTable + ' > tbody > tr > td.' + flagCommandCategory // + ' .' + flagCommandCategory\n , (cellSelector) => { this.hookupCommandCategoryDdls(cellSelector); }\n );\n }\n hookupCommandCategoryDdls(ddlSelector) {\n this.hookupChangeHandlerTableCells(ddlSelector, (event, element) => { this.handleChangeCommandCategoryDdl(event, element); });\n }\n handleChangeCommandCategoryDdl(event, ddlCategory) {\n let row = DOM.getRowFromElement(ddlCategory);\n let idCommandCategoryRowOld = this.getIdCommandCategoryRow(row); // DOM.getElementAttributeValueCurrent(ddlCategory);\n this.handleChangeNestedElementCellTable(event, ddlCategory);\n let idCommandCategoryRowNew = this.getIdCommandCategoryRow(row); // DOM.getElementAttributeValueCurrent(ddlCategory);\n if (\n idCommandCategoryRowOld == idCommandCategoryRowNew\n || idCommandCategoryRowNew == 0\n ) return;\n console.log({ idCommandCategoryRowNew, idCommandCategoryRowOld });\n let idCommandCategoryFilter = this.getIdCommandCategoryFilter();\n let tdCommand = row.querySelector('td.' + flagCommand);\n tdCommand.dispatchEvent(new Event('click'));\n let ddlCommand = row.querySelector('td.' + flagCommand + ' select.' + flagCommand);\n ddlCommand.innerHTML = '';\n ddlCommand.appendChild(DOM.createOption(null));\n let optionJson, option;\n let commandsInCategory = Utils.getListFromDict(filterCommands).filter(command => \n (\n command[attrIdCommandCategory] == idCommandCategoryRowNew\n || idCommandCategoryRowNew == 0\n )\n && (\n command[attrIdCommandCategory] == idCommandCategoryFilter\n || idCommandCategoryFilter == 0\n )\n );\n let sortedCommands = commandsInCategory.sort((a, b) => a[flagName].localeCompare(b[flagName]));\n sortedCommands.forEach((command) => {\n optionJson = BusinessObjects.getOptionJsonFromObjectJson(command);\n option = DOM.createOption(optionJson);\n ddlCommand.appendChild(option);\n });\n this.handleChangeNestedElementCellTable(event, ddlCommand);\n }\n hookupFieldsCommand(idTable = null) {\n if (idTable == null) idTable = idTableMain;\n Events.hookupEventHandler(\"click\", idTable + ' > tbody > tr > td.' + flagCommand + ' div.' + flagCommand, (event, div) => {\n Utils.consoleLogIfNotProductionEnvironment(div);\n let parentTr = DOM.getRowFromElement(div);\n Utils.consoleLogIfNotProductionEnvironment({ div, parentTr });\n let tdCommandCategory = parentTr.querySelector('td.' + flagCommandCategory);\n let idCommandCategoryRow = this.getIdCommandCategoryRow(parentTr); // DOM.getElementAttributeValueCurrent(tdCommandCategory);\n let idCommandCategoryFilter = this.getIdCommandCategoryFilter();\n let filterCommandList = Utils.getListFromDict(filterCommands);\n let commandsInCategory = filterCommandList.filter(command => \n (\n command[attrIdCommandCategory] == idCommandCategoryRow\n || idCommandCategoryRow == 0\n )\n && (\n command[attrIdCommandCategory] == idCommandCategoryFilter\n || idCommandCategoryFilter == 0\n )\n );\n let sortedCommands = commandsInCategory.sort((a, b) => a[flagName].localeCompare(b[flagName]));\n Utils.consoleLogIfNotProductionEnvironment({ tdCommandCategory, idCommandCategoryRow, idCommandCategoryFilter, filterCommandList, commandsInCategory });\n Utils.consoleLogIfNotProductionEnvironment(filterCommandList);\n this.handleClickTableCellDdlPreview(\n event\n , div\n , flagCommand // fieldFlag\n , sortedCommands // optionList\n , idTable + ' > tbody > tr > td.' + flagCommand // cellSelector\n , (cellSelector) => { this.hookupTableCellDdls(\n cellSelector\n , (event, element) => { this.handleChangeCommandDdl(event, element); }\n ); }\n );\n });\n this.hookupTableCellDdls(\n idTable + ' > tbody > tr > td.' + flagCommand + ' select.' + flagCommand\n , (event, element) => { this.handleChangeCommandDdl(event, element); }\n );\n }\n handleChangeCommandDdl(event, ddlCommand) {\n // console.log(\"handle change command ddl\");\n let row = DOM.getRowFromElement(ddlCommand);\n this.handleChangeNestedElementCellTable(event, ddlCommand);\n let idCommandCategoryRowOld = this.getIdCommandCategoryRow(row);\n let idCommandNew = this.getIdCommandRow(row);\n let commandNew = filterCommands[idCommandNew];\n // console.log({ idCommandCategoryRowOld, commandNew });\n if (commandNew == null || idCommandCategoryRowOld == commandNew[attrIdCommandCategory]) return;\n let divCommandCategory = row.querySelector('td.' + flagCommandCategory + ' div');\n if (divCommandCategory) divCommandCategory.dispatchEvent(new Event('click'));\n let ddlCommandCategory = row.querySelector('td.' + flagCommandCategory + ' select.' + flagCommandCategory);\n DOM.setElementValueCurrent(ddlCommandCategory, commandNew[attrIdCommandCategory]);\n // console.log({ ddlCommandCategory, commandNew });\n this.handleChangeNestedElementCellTable(event, ddlCommandCategory);\n }\n getIdCommandCategoryRow(tr) {\n let elementCommandCategory = tr.querySelector('td.' + flagCommandCategory + ' .' + flagCommandCategory);\n return DOM.getElementAttributeValueCurrent(elementCommandCategory);\n }\n getIdCommandCategoryFilter() {\n let formFilters = TableBasePage.getFormFilters();\n let idCommandCategory = 0;\n if (formFilters == null) return idCommandCategory;\n let commandCategoryFilter = formFilters.querySelector('#' + attrIdCommandCategory);\n let commandFilter = formFilters.querySelector('#' + attrIdCommand);\n let valueCurrentCommandCategoryFilter = DOM.getElementAttributeValueCurrent(commandCategoryFilter);\n Utils.consoleLogIfNotProductionEnvironment({ valueCurrentCommandCategoryFilter });\n if (valueCurrentCommandCategoryFilter == \"\") {\n let valueCurrentCommandFilter = DOM.getElementAttributeValueCurrent(commandFilter);\n Utils.consoleLogIfNotProductionEnvironment({ valueCurrentCommandFilter });\n if (valueCurrentCommandFilter != \"\") {\n let command = filterCommands[valueCurrentCommandFilter];\n idCommandCategory = command[attrIdCommandCategory];\n }\n } else {\n idCommandCategory = Number(valueCurrentCommandCategoryFilter);\n }\n return idCommandCategory;\n }\n getHasCommandCategoryFilter() {\n let idCommandCategoryFilter = this.getIdCommandCategoryFilter();\n return !(Validation.isEmpty(idCommandCategoryFilter) || idCommandCategoryFilter == 0);\n }\n getIdCommandRow(tr) {\n let elementCommand = tr.querySelector('td.' + flagCommand + ' .' + flagCommand);\n return DOM.getElementAttributeValueCurrent(elementCommand);\n }\n getIdCommandFilter() {\n let formFilters = TableBasePage.getFormFilters();\n let commandFilter = formFilters.querySelector('#' + attrIdCommand);\n let valueCurrentCommandFilter = DOM.getElementAttributeValueCurrent(commandFilter);\n let idCommand = Number(valueCurrentCommandFilter);\n return idCommand;\n }\n getHasCommandFilter() {\n let idCommandFilter = this.getIdCommandFilter();\n return !(Validation.isEmpty(idCommandFilter) || idCommandFilter == 0);\n }\n hookupFieldsDog() {\n this.hookupTableCellDdlPreviews(flagDog, Utils.getListFromDict(filterDogs));\n }\n getIdDogRow(tr) {\n let elementDog = tr.querySelector('td.' + flagDog + ' .' + flagDog);\n return DOM.getElementAttributeValueCurrent(elementDog);\n }\n /*\n createTdActive(isActive) {\n let tdActive = document.createElement(\"td\");\n tdActive.classList.add(flagActive);\n let buttonActive = document.createElement(\"button\");\n buttonActive.classList.add(flagActive);\n buttonActive.classList.add(isActive ? flagDelete : flagAdd);\n buttonActive.textContent = isActive ? 'x' : '+';\n DOM.setElementAttributesValuesCurrentAndPrevious(buttonActive, isActive);\n tdActive.appendChild(buttonActive);\n return tdActive;\n }\n */\n leave() {\n if (this.constructor === TableBasePage) {\n throw new Error(\"Must implement leave() method.\");\n }\n super.leave();\n let formFilters = TableBasePage.getFormFilters();\n let dataPage = {};\n dataPage[flagFormFilters] = DOM.convertForm2JSON(formFilters);\n this.setLocalStoragePage(dataPage);\n }\n\n toggleColumnHasClassnameFlag(columnFlag, isRequiredFlag, classnameFlag) {\n let table = TableBasePage.getTableMain();\n let columnTh = table.querySelector('th.' + columnFlag);\n let columnThHasFlag = columnTh.classList.contains(classnameFlag);\n if (isRequiredFlag == columnThHasFlag) return;\n DOM.toggleElementHasClassnameFlag(columnTh, isRequiredFlag, classnameFlag);\n }\n toggleColumnHeaderHasClassnameFlag(columnFlag, isRequiredFlag, classnameFlag) {\n let table = TableBasePage.getTableMain();\n let columnTh = table.querySelector('th.' + columnFlag);\n DOM.toggleElementHasClassnameFlag(columnTh, isRequiredFlag, classnameFlag);\n }\n\n updateAndToggleShowButtonsSaveCancel() {\n let records = this.getTableRecords(true);\n let isDirtyMainTable = records.length > 0;\n\n let formFilters = TableBasePage.getFormFilters();\n let areDirtyFilters = DOM.hasDirtyChildrenContainer(formFilters);\n\n console.log({ records, isDirtyMainTable, formFilters, areDirtyFilters });\n\n this.toggleShowButtonsSaveCancel(isDirtyMainTable && !areDirtyFilters);\n }\n}\n","\nimport Events from \"../../lib/events.js\";\nimport LocalStorage from \"../../lib/local_storage.js\";\nimport Validation from \"../../lib/validation.js\";\n// import BasePage from \"../base.js\";\nimport DOM from \"../../dom.js\";\nimport { isEmpty } from \"../../lib/utils.js\";\nimport TableBasePage from \"../base_table.js\";\n\nexport default class DogMixinPage {\n constructor(pageCurrent) {\n this.page = pageCurrent;\n }\n\n initialize() {\n Utils.consoleLogIfNotProductionEnvironment('hookup dog start for ', this.page.hash);\n this.hookupFilters();\n this.hookupLocalStorageDog();\n }\n hookupFilters() {\n }\n hookupLocalStorageDog() {\n \n }\n\n /*\n hookupDogCardsProduct() {\n \n let d; // , lsShared;\n let selectorCardProduct = '.card.subcard';\n Events.initialiseEventHandler(selectorCardProduct, flagInitialised, function(cardProduct) {\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"initialising product card: \", cardProduct); }\n cardProduct.addEventListener(\"click\", function(event) {\n // d = { keyIdProduct: product.getAttribute(attrIdProduct) }\n var elemClicked = event.target;\n if (elemClicked.id != 'submit') { // disable for submit buttons\n if (_verbose) { \n Utils.consoleLogIfNotProductionEnvironment(\"product click: \" + cardProduct.getAttribute(attrIdProduct));\n Utils.consoleLogIfNotProductionEnvironment(\"permutation click: \" + cardProduct.getAttribute(attrIdPermutation));\n }\n var d = {}\n d[keyIdProduct] = cardProduct.getAttribute(attrIdProduct)\n d[keyIdPermutation] = cardProduct.getAttribute(attrIdPermutation)\n // send quantity requested\n goToPage(hashPageDogProduct, d);\n }\n });\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"click method added for product ID: \" + cardProduct.getAttribute(attrIdProduct) + ', permutation ID: ', cardProduct.getAttribute(attrIdPermutation)); }\n });\n }\n */\n \n leave() {}\n}\n","\nimport Events from \"../../lib/events.js\";\nimport LocalStorage from \"../../lib/local_storage.js\";\nimport Validation from \"../../lib/validation.js\";\n// import BasePage from \"../base.js\";\nimport DOM from \"../../dom.js\";\nimport { isEmpty } from \"../../lib/utils.js\";\nimport DogMixinPage from \"./mixin.js\";\nimport Utils from \"../../lib/utils.js\";\n\nexport default class DogTableMixinPage extends DogMixinPage {\n constructor(pageCurrent) {\n super(pageCurrent);\n }\n initialize() {\n super.initialize();\n this.hookupFilters();\n this.hookupTable();\n }\n hookupFilters() {\n // Implement filter-specific functionality here\n }\n hookupTable() {\n // Implement table-specific functionality here\n }\n hookupFieldsLocation() {\n this.page.hookupTableCellDdlPreviews(\n flagLocation\n , Utils.getListFromDict(filterLocations) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n}","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogCommandCategories extends TableBasePage {\n static hash = hashPageDogCommandCategories;\n static attrIdRowObject = attrIdCommandCategory;\n callSaveTableContent = API.saveCommandCategories;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterActive();\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n Utils.consoleLogIfNotProductionEnvironment({ row });\n if (row == null) return;\n let inputCode = row.querySelector('td.' + flagCode + ' .' + flagCode);\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n \n console.log(\"inputCode\");\n console.log(inputCode);\n\n let jsonRow = {};\n jsonRow[attrIdCommandCategory] = row.getAttribute(attrIdCommandCategory);\n jsonRow[flagCode] = DOM.getElementAttributeValueCurrent(inputCode);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n // let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsCodeTable();\n this.hookupFieldsNameTable();\n this.hookupFieldsActive();\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogCommands extends TableBasePage {\n static hash = hashPageDogCommands;\n static attrIdRowObject = attrIdCommand;\n callSaveTableContent = API.saveCommands;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterCommandCategory();\n this.hookupFilterActive();\n }\n hookupFilterCommandCategory() {\n this.hookupFilter(attrIdCommandCategory);\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let inputHandSignalDefaultDescription = row.querySelector('td.' + flagHandSignalDefaultDescription + ' .' + flagHandSignalDefaultDescription);\n let inputCanHaveButton = row.querySelector('td.' + flagCanHaveButton + ' .' + flagCanHaveButton);\n let inputNotes = row.querySelector('td.' + flagNotes + ' .' + flagNotes);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n /*\n Utils.consoleLogIfNotProductionEnvironment({ inputName, inputHandSignalDefaultDescription, inputCanHaveButton, inputNotes, buttonActive });\n debugger;\n */\n\n let jsonRow = {};\n jsonRow[attrIdCommand] = row.getAttribute(attrIdCommand);\n jsonRow[attrIdCommandCategory] = this.getIdCommandCategoryRow(row);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagHandSignalDefaultDescription] = DOM.getElementAttributeValueCurrent(inputHandSignalDefaultDescription);\n jsonRow[flagCanHaveButton] = (DOM.getElementAttributeValueCurrent(inputCanHaveButton) == \"true\");\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDog + ' div.' + flagDog\n , ',td.' + flagCommandCategory + ' div.' + flagCommandCategory\n , ',td.' + flagCommand + ' div.' + flagCommand\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsCommandCategory();\n this.hookupFieldsNameTable();\n this.hookupTextareasHandSignalDefaultDescription();\n this.hookupFieldsCanHaveButton();\n this.hookupFieldsNotesTable();\n this.hookupFieldsActive();\n }\n hookupFieldsCommandCategory() {\n this.hookupTableCellDdlPreviews(\n flagCommandCategory\n , Utils.getListFromDict(filterCommandCategories)\n );\n }\n hookupTextareasHandSignalDefaultDescription() {\n this.hookupChangeHandlerTableCells(idTableMain + ' td.' + flagHandSignalDefaultDescription + ' .' + flagHandSignalDefaultDescription);\n }\n hookupFieldsCanHaveButton() {\n this.hookupChangeHandlerTableCells(idTableMain + ' td.' + flagCanHaveButton + ' .' + flagCanHaveButton);\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogDogCommandLinks extends TableBasePage {\n static hash = hashPageDogDogCommandLinks;\n static attrIdRowObject = attrIdDogCommandLink;\n callSaveTableContent = API.saveDogCommandLinks;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterDog();\n this.hookupFilterCommandCategory();\n this.hookupFilterCommand();\n this.hookupFilterActive();\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputHandSignalDescription = row.querySelector('td.' + flagHandSignalDescription + ' textarea');\n let inputNotes = row.querySelector('td.' + flagNotes + ' textarea');\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdDogCommandLink] = row.getAttribute(attrIdDogCommandLink);\n jsonRow[attrIdDog] = this.getIdDogRow(row);\n jsonRow[attrIdCommand] = this.getIdCommandRow(row);\n jsonRow[flagHandSignalDescription] = DOM.getElementAttributeValueCurrent(inputHandSignalDescription);\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDog + ' div.' + flagDog\n , ',td.' + flagCommandCategory + ' div.' + flagCommandCategory\n , ',td.' + flagCommand + ' div.' + flagCommand\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsDog();\n this.hookupFieldsCommandCategory();\n this.hookupFieldsCommand();\n this.hookupTextareasHandSignalDescription();\n this.hookupFieldsNotesTable();\n this.hookupFieldsActive();\n }\n hookupTextareasHandSignalDescription() {\n this.hookupChangeHandlerTableCells(idTableMain + ' td.' + flagHandSignalDescription + ' .' + flagHandSignalDescription);\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogLocations extends TableBasePage {\n static hash = hashPageDogLocations;\n static attrIdRowObject = attrIdLocation;\n callSaveTableContent = API.saveLocations;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterActive();\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdLocation] = row.getAttribute(attrIdLocation);\n jsonRow[flagLocationParent] = this.getIdLocationParentRow(row);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n\n console.log(\"jsonRow\");\n console.log(jsonRow);\n\n return jsonRow;\n }\n getIdLocationParentRow(row) {\n let elementLocationParent = row.querySelector('td.' + flagLocationParent + ' .' + flagLocationParent);\n return DOM.getElementAttributeValueCurrent(elementLocationParent);\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagLocationParent + ' div.' + flagLocationParent\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsLocationParent();\n this.hookupFieldsNameTable();\n this.hookupFieldsActive();\n }\n hookupFieldsLocationParent() {\n /*\n this.hookupTableCellDdlPreviews(\n flagLocationParent\n , Utils.getListFromDict(locations).filter(location => \n (\n location[attrIdLocation] == idLocationRow\n || idLocationRow < 1\n )\n ) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n , null // cellSelector\n , (cellSelector) => { this.hookupLocationParentDdls(cellSelector); }\n ,\n );\n\n fieldFlag\n , optionList\n , cellSelector = null\n , ddlHookup = (ddlSelector) => { this.hookupTableCellDdls(ddlSelector); }\n , changeHandler = (event, element) => { this.handleChangeNestedElementCellTable(event, element); }\n ) {\n\n */\n let cellSelector = idTableMain + ' > tbody > tr > td.' + flagLocationParent;\n Events.hookupEventHandler(\"click\", cellSelector + ' div.' + flagLocationParent, (event, div) => {\n let row = DOM.getRowFromElement(div);\n let idLocationRow = Number(row.getAttribute(attrIdLocation));\n Utils.consoleLogIfNotProductionEnvironment({ idLocationRow });\n this.handleClickTableCellDdlPreview(\n event\n , div\n , flagLocationParent\n , Utils.getListFromDict(locations).filter(location => \n (\n location[attrIdLocation] != idLocationRow\n || idLocationRow < 1\n )\n ) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n , cellSelector\n , (ddlSelector) => { this.hookupTableCellDdls(\n ddlSelector\n , (event, element) => { this.handleChangeNestedElementCellTable(event, element); }\n ); }\n );\n });\n this.hookupTableCellDdls(\n cellSelector + ' select.' + flagLocationParent\n , (event, element) => { this.handleChangeNestedElementCellTable(event, element); }\n );\n }\n /*\n hookupLocationParentDdls(ddlSelector) {\n this.hookupChangeHandlerTableCells(ddlSelector, (event, element) => { this.handleChangeNestedElementCellTable(event, element); });\n }\n */\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogButtonIcons extends TableBasePage {\n static hash = hashPageDogButtonIcons;\n static attrIdRowObject = attrIdButtonIcon;\n callSaveTableContent = API.saveButtonIcons;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterActive();\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputName = row.querySelector('td.' + flagName + ' .' + flagName);\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdButtonIcon] = row.getAttribute(attrIdButtonIcon);\n jsonRow[flagImage] = this.getIdImageRow(row);\n jsonRow[flagName] = DOM.getElementAttributeValueCurrent(inputName);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n\n console.log(\"jsonRow\");\n console.log(jsonRow);\n\n return jsonRow;\n }\n getIdImageRow(row) {\n let elementImage = row.querySelector('td.' + flagImage + ' .' + flagImage);\n return DOM.getElementAttributeValueCurrent(elementImage);\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagImage + ' div.' + flagImage\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsImage();\n this.hookupFieldsNameTable();\n this.hookupFieldsActive();\n }\n hookupFieldsImage() {\n this.hookupTableCellDdlPreviews(\n flagImage\n , Utils.getListFromDict(buttonicons) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogCommandButtonLinks extends TableBasePage {\n static hash = hashPageDogCommandButtonLinks;\n static attrIdRowObject = attrIdCommandButtonLink;\n callSaveTableContent = API.saveCommandButtonLinks;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterCommandCategory();\n this.hookupFilterCommand();\n this.hookupFilterButtonShape();\n this.hookupFilterColour();\n this.hookupFilterButtonIcon();\n this.hookupFilterLocation();\n this.hookupFilterActive();\n }\n hookupFilterButtonShape() {\n this.hookupFilter(attrIdButtonShape);\n }\n hookupFilterColour() {\n this.hookupFilter(attrIdColour);\n }\n hookupFilterButtonIcon() {\n this.hookupFilter(attrIdButtonIcon);\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputHandSignalDescription = row.querySelector('td.' + flagHandSignalDescription + ' textarea');\n let inputNotes = row.querySelector('td.' + flagNotes + ' textarea');\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdCommandButtonLink] = row.getAttribute(attrIdCommandButtonLink);\n jsonRow[attrIdDog] = this.getIdDogRow(row);\n jsonRow[attrIdCommand] = this.getIdCommandRow(row);\n jsonRow[flagHandSignalDescription] = DOM.getElementAttributeValueCurrent(inputHandSignalDescription);\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDog + ' div.' + flagDog\n , ',td.' + flagCommandCategory + ' div.' + flagCommandCategory\n , ',td.' + flagCommand + ' div.' + flagCommand\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsCommandCategory();\n this.hookupFieldsCommand();\n this.hookupFieldsButtonShape();\n this.hookupFieldsColour();\n this.hookupFieldsButtonIcon();\n this.dogMixin.hookupFieldsLocation();\n this.hookupFieldsActive();\n }\n hookupFieldsButtonShape() {\n this.hookupTableCellDdlPreviews(\n flagButtonShape\n , Utils.getListFromDict(filterButtonShapes) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n hookupFieldsColour() {\n this.hookupTableCellDdlPreviews(\n flagColour\n , Utils.getListFromDict(filterColours) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n hookupFieldsButtonIcon() {\n this.hookupTableCellDdlPreviews(\n flagButtonIcon\n , Utils.getListFromDict(filterButtonIcons) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nvar _rowBlankDistraction;\nvar _rowBlankAssessmentCommandModalityLink;\n\nexport default class PageDogAssessment extends TableBasePage {\n static hash = hashPageDogAssessment;\n static attrIdRowObject = attrIdAssessment;\n callSaveTableContent = API.saveAssessmentsDistractionsAndResponses;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getTableRecords(dirtyOnly = false) {\n dirtyOnly = true;\n let row = document.querySelector(idTableAssessment + ' tbody tr.' + flagAssessment);\n return [this.getJsonRow(row)];\n }\n getJsonRow(row) {\n console.log(\"getJsonRow: \", row);\n if (row == null) return;\n let inputWeather = row.querySelector(idTableAssessment + ' td.' + flagWeather + ' .' + flagWeather);\n let inputLightingLevel = row.querySelector(idTableAssessment + ' td.' + flagLightingLevel + ' .' + flagLightingLevel);\n let inputTemeratureCelcius = row.querySelector(idTableAssessment + ' td.' + flagTemperatureCelcius + ' .' + flagTemperatureCelcius);\n let inputLocation = row.querySelector(idTableAssessment + ' td.' + flagLocation + ' .' + flagLocation);\n let inputUserHandler = row.querySelector(idTableAssessment + ' td.' + flagUserHandler + ' .' + flagUserHandler);\n let inputNotes = row.querySelector(idTableAssessment + ' td.' + flagNotes + ' .' + flagNotes);\n // let buttonActive = row.querySelector(idTableAssessment + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive);\n let idAssessment = row.getAttribute(attrIdAssessment);\n let jsonRow = {};\n jsonRow[attrIdAssessment] = idAssessment;\n jsonRow[attrIdWeather] = DOM.getElementAttributeValueCurrent(inputWeather);\n jsonRow[attrIdLightingLevel] = DOM.getElementAttributeValueCurrent(inputLightingLevel);\n jsonRow[flagTemperatureCelcius] = DOM.getElementAttributeValueCurrent(inputTemeratureCelcius);\n jsonRow[attrIdLocation] = DOM.getElementAttributeValueCurrent(inputLocation);\n jsonRow[flagUserHandler] = DOM.getElementAttributeValueCurrent(inputUserHandler);\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = true; // buttonActive.classList.contains(flagDelete);\n jsonRow[flagDistraction] = this.getDirtyDistractions(idAssessment);\n jsonRow[flagAssessmentCommandModalityLink] = this.getDirtyAssessmentCommandModalityLinks(idAssessment);\n console.log({ jsonRow });\n return jsonRow;\n }\n getDirtyDistractions(idAssessment) {\n let dirtyRows = document.querySelectorAll(idTableDistractions + ' tbody tr.' + flagDistraction + '.' + flagDirty);\n if (dirtyRows == null || dirtyRows.length == 0) return [];\n // dirtyRows = Array.from(dirtyRows);\n let dirtyRow,\n inputDistractionType, distractionType,\n inputIntensityLevelEmotional, intensityLevelEmotional,\n inputIntensityLevelScent, intensityLevelScent,\n inputIntensityLevelSight, intensityLevelSight,\n inputIntensityLevelSound, intensityLevelSound,\n inputIntensityLevelTouch, intensityLevelTouch,\n inputQuantity, quantity,\n inputProximityMetres, proximityMetres,\n inputNotes, notes,\n buttonActive, active;\n console.log('getDirtyDistractions');\n console.log({ dirtyRows });\n let dirtyDistractions = [];\n for(let indexRow = 0; indexRow < dirtyRows.length; indexRow++) {\n dirtyRow = dirtyRows[indexRow];\n inputDistractionType = dirtyRow.querySelector('td.' + flagDistractionType + ' .' + flagDistractionType);\n distractionType = DOM.getElementAttributeValueCurrent(inputDistractionType);\n inputIntensityLevelEmotional = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelEmotional + ' .' + flagDistractionIntensityLevelEmotional);\n intensityLevelEmotional = DOM.getElementAttributeValueCurrent(inputIntensityLevelEmotional);\n inputIntensityLevelScent = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelScent + ' .' + flagDistractionIntensityLevelScent);\n intensityLevelScent = DOM.getElementAttributeValueCurrent(inputIntensityLevelScent);\n inputIntensityLevelSight = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelSight + ' .' + flagDistractionIntensityLevelSight);\n intensityLevelSight = DOM.getElementAttributeValueCurrent(inputIntensityLevelSight);\n inputIntensityLevelSound = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelSound + ' .' + flagDistractionIntensityLevelSound);\n intensityLevelSound = DOM.getElementAttributeValueCurrent(inputIntensityLevelSound);\n inputIntensityLevelTouch = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelTouch + ' .' + flagDistractionIntensityLevelTouch);\n intensityLevelTouch = DOM.getElementAttributeValueCurrent(inputIntensityLevelTouch);\n inputQuantity = dirtyRow.querySelector('td.' + flagQuantity + ' .' + flagQuantity);\n quantity = DOM.getElementAttributeValueCurrent(inputQuantity);\n inputProximityMetres = dirtyRow.querySelector('td.' + flagProximityMetres + ' .' + flagProximityMetres);\n proximityMetres = DOM.getElementAttributeValueCurrent(inputProximityMetres);\n inputNotes = dirtyRow.querySelector('td.' + flagNotes + ' .' + flagNotes);\n notes = DOM.getElementAttributeValueCurrent(inputNotes);\n buttonActive = dirtyRow.querySelector(idTableDistractions + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive);\n active = buttonActive.classList.contains(flagDelete);\n dirtyDistractions.push({\n [attrIdDistraction]: dirtyRow.getAttribute(attrIdDistraction)\n , [attrIdAssessment]: idAssessment\n , [attrIdDistractionType]: distractionType\n , [flagDistractionIntensityLevelEmotional]: intensityLevelEmotional\n , [flagDistractionIntensityLevelScent]: intensityLevelScent\n , [flagDistractionIntensityLevelSight]: intensityLevelSight\n , [flagDistractionIntensityLevelSound]: intensityLevelSound\n , [flagDistractionIntensityLevelTouch]: intensityLevelTouch\n , [flagQuantity]: quantity\n , [flagProximityMetres]: proximityMetres\n , [flagNotes]: notes\n , [flagActive]: active\n });\n };\n return dirtyDistractions;\n }\n getDirtyAssessmentCommandModalityLinks(idAssessment) {\n let dirtyRows = document.querySelectorAll(idTableAssessmentCommandModalityLinks + ' > tbody > tr.' + flagAssessmentCommandModalityLink + '.' + flagDirty);\n if (dirtyRows == null || dirtyRows.length == 0) return [];\n dirtyRows = Array.from(dirtyRows);\n let dirtyRow, idAssessmentCommandModalityLink,\n inputCommand, command,\n inputCommandModality, commandModality,\n inputBribe, bribe,\n inputDistanceFromHandler, distanceFromhandler,\n inputIsInHearingRangeOfHandler, isInHearingRangeOfHandler,\n inputIsInScentRangeOfHandler, isInScentRangeOfHandler,\n inputIsInSightOfHandler, isInSightOfHandler,\n inputIsOnLead, isOnLead,\n inputNotes, notes,\n buttonActive, active;\n console.log('getDirtyAssessmentCommandModalityLinks');\n console.log({ dirtyRows });\n let dirtyLinks = [];\n for(let indexRow = 0; indexRow < dirtyRows.length; indexRow++) {\n dirtyRow = dirtyRows[indexRow];\n idAssessmentCommandModalityLink = dirtyRow.getAttribute(attrIdAssessmentCommandModalityLink);\n inputCommand = dirtyRow.querySelector('td.' + flagCommand + ' .' + flagCommand);\n command = DOM.getElementAttributeValueCurrent(inputCommand);\n inputCommandModality = dirtyRow.querySelector('td.' + flagCommandModality + ' .' + flagCommandModality);\n commandModality = DOM.getElementAttributeValueCurrent(inputCommandModality);\n inputBribe = dirtyRow.querySelector('td.' + flagBribe + ' .' + flagBribe);\n bribe = DOM.getElementAttributeValueCurrent(inputBribe);\n inputDistanceFromHandler = dirtyRow.querySelector('td.' + flagDistanceFromHandlerMetres + ' .' + flagDistanceFromHandlerMetres);\n distanceFromhandler = DOM.getElementAttributeValueCurrent(inputDistanceFromHandler);\n inputIsInHearingRangeOfHandler = dirtyRow.querySelector('td.' + flagIsInHearingRangeOfHandler + ' .' + flagIsInHearingRangeOfHandler);\n isInHearingRangeOfHandler = DOM.getElementAttributeValueCurrent(inputIsInHearingRangeOfHandler);\n inputIsInScentRangeOfHandler = dirtyRow.querySelector('td.' + flagIsInScentRangeOfHandler + ' .' + flagIsInScentRangeOfHandler);\n isInScentRangeOfHandler = DOM.getElementAttributeValueCurrent(inputIsInScentRangeOfHandler);\n inputIsInSightOfHandler = dirtyRow.querySelector('td.' + flagIsInSightOfHandler + ' .' + flagIsInSightOfHandler);\n isInSightOfHandler = DOM.getElementAttributeValueCurrent(inputIsInSightOfHandler);\n inputIsOnLead = dirtyRow.querySelector('td.' + flagIsOnLead + ' .' + flagIsOnLead);\n isOnLead = DOM.getElementAttributeValueCurrent(inputIsOnLead);\n inputNotes = dirtyRow.querySelector('td.' + flagNotes + ' .' + flagNotes);\n notes = DOM.getElementAttributeValueCurrent(inputNotes);\n buttonActive = dirtyRow.querySelector(idTableAssessmentCommandModalityLinks + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive);\n active = buttonActive.classList.contains(flagDelete);\n dirtyLinks.push({\n [attrIdAssessmentCommandModalityLink]: idAssessmentCommandModalityLink\n , [attrIdAssessment]: idAssessment\n , [attrIdCommand]: command\n , [attrIdCommandModality]: commandModality\n , [attrIdBribe]: bribe\n , [flagDistanceFromHandlerMetres]: distanceFromhandler\n , [flagIsInHearingRangeOfHandler]: isInHearingRangeOfHandler\n , [flagIsInScentRangeOfHandler]: isInScentRangeOfHandler\n , [flagIsInSightOfHandler]: isInSightOfHandler\n , [flagIsOnLead]: isOnLead\n , [flagNotes]: notes\n , [flagActive]: active\n , [flagAssessmentResponse]: this.getDirtyAssessmentResponses(dirtyRow, idAssessmentCommandModalityLink)\n });\n }\n return dirtyLinks;\n }\n getDirtyAssessmentResponses(rowAssessmentCommandModalityLink, idAssessmentCommandModalityLink) {\n let dirtyRows = rowAssessmentCommandModalityLink.querySelectorAll(idTableAssessmentResponses + ' tbody tr.' + flagAssessmentResponse + '.' + flagDirty);\n if (dirtyRows == null || dirtyRows.length == 0) return [];\n dirtyRows = Array.from(dirtyRows);\n let dirtyRow,\n inputResponseQualityMetric, responseQualityMetric,\n inputObedienceLevel, obedienceLevel,\n inputValueMeasured, valueMeasured,\n inputNotes, notes,\n buttonActive, active;\n console.log('getDirtyAssessmentResponses');\n console.log({ dirtyRows });\n let dirtyResponses = [];\n for(let indexRow = 0; indexRow < dirtyRows.length; indexRow++) {\n dirtyRow = dirtyRows[indexRow];\n inputResponseQualityMetric = dirtyRow.querySelector('td.' + flagResponseQualityMetric + ' .' + flagResponseQualityMetric);\n responseQualityMetric = DOM.getElementAttributeValueCurrent(inputResponseQualityMetric);\n inputObedienceLevel = dirtyRow.querySelector('td.' + flagObedienceLevel + ' .' + flagObedienceLevel);\n obedienceLevel = DOM.getElementAttributeValueCurrent(inputObedienceLevel);\n inputValueMeasured = dirtyRow.querySelector('td.' + flagValueMeasured + ' .' + flagValueMeasured);\n valueMeasured = DOM.getElementAttributeValueCurrent(inputValueMeasured);\n inputNotes = dirtyRow.querySelector('td.' + flagNotes + ' .' + flagNotes);\n notes = DOM.getElementAttributeValueCurrent(inputNotes);\n buttonActive = dirtyRow.querySelector(idTableAssessmentResponses + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive);\n active = buttonActive.classList.contains(flagDelete);\n dirtyResponses.push({\n [attrIdAssessmentResponse]: dirtyRow.getAttribute(attrIdAssessmentResponse)\n , [attrIdAssessmentCommandModalityLink]: idAssessmentCommandModalityLink\n , [attrIdResponseQualityMetric]: responseQualityMetric\n , [attrIdObedienceLevel]: obedienceLevel\n , [flagValueMeasured]: valueMeasured\n , [flagNotes]: notes\n , [flagActive]: active\n });\n }\n return dirtyResponses;\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagWeather + ' div.' + flagWeather\n , ',td.' + flagLightingLevel + ' div.' + flagLightingLevel\n , ',td.' + flagLocation + ' div.' + flagLocation\n , ',td.' + flagUserHandler + ' div.' + flagUserHandler\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n callFilterTableContent() {\n if (assessment[attrIdAssessment] < 1) {\n let formFilters = TableBasePage.getFormFilters();\n let filterAssessment = formFilters.querySelector('#' + attrIdAssessment);\n DOM.setElementValueCurrent(filterAssessment, '');\n }\n super.callFilterTableContent();\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupTableAssessmentHeader();\n this.hookupTableDistractions();\n this.hookupTableAssessmentCommandModalityLinks();\n }\n hookupTableAssessmentHeader() {\n this.hookupTableAssessmentFieldWeather();\n this.hookupTableAssessmentFieldLightingLevel();\n this.hookupTableAssessmentFieldTemperature();\n this.hookupTableAssessmentFieldLocation();\n this.hookupTableAssessmentFieldUserHandler();\n this.hookupTableAssessmentFieldNotes();\n if (assessment[attrIdAssessment] < 1) {\n let tbody = document.querySelector(idTableAssessment + ' tbody');\n let row = tbody.querySelector('tr');\n row.classList.add(flagRowNew);\n this.postInitialiseRowNewCallback(tbody);\n }\n }\n hookupTableAssessmentFieldWeather() {\n let fieldFlag = flagWeather;\n let optionList = Utils.getListFromDict(filterWeathers); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessment + ' td.' + flagWeather;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentFieldLightingLevel() {\n let fieldFlag = flagLightingLevel;\n let optionList = Utils.getListFromDict(filterLightingLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessment + ' td.' + flagLightingLevel;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentFieldTemperature() {\n this.hookupChangeHandlerTableCells(idTableAssessment + ' td.' + flagTemperatureCelcius + ' .' + flagTemperatureCelcius);\n }\n hookupTableAssessmentFieldLocation() {\n let fieldFlag = flagLocation;\n let optionList = Utils.getListFromDict(filterLocations); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessment + ' td.' + flagLocation;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentFieldUserHandler() {\n let fieldFlag = flagUserHandler;\n let optionList = Utils.getListFromDict(filterUserHandlers); // .sort((a, b) => a[flagName].localeCompare(b[flagName]));\n let cellSelector = idTableAssessment + ' td.' + flagUserHandler;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentFieldNotes() {\n this.hookupChangeHandlerTableCells(idTableAssessment + ' td.' + flagNotes + ' .' + flagNotes);\n }\n hookupTableDistractions() {\n Events.initialiseEventHandler(idTableDistractions, flagInitialised, (table) => {\n let selectorRowNew = idTableDistractions + ' tbody tr.' + flagRowNew;\n let rowBlankTemp = document.querySelector(selectorRowNew);\n Utils.consoleLogIfNotProductionEnvironment(\"row blank temp: \", rowBlankTemp);\n let countRows = document.querySelectorAll(idTableDistractions + ' > tbody > tr').length;\n _rowBlankDistraction = rowBlankTemp.cloneNode(true);\n document.querySelectorAll(selectorRowNew).forEach(function(row) {\n row.remove();\n });\n _rowBlankDistraction.setAttribute(attrIdDistraction, -1 - countRows);\n });\n\n this.hookupTableDistractionsFieldsDistractionType();\n this.hookupTableDistractionsFieldsIntensityLevelEmotional();\n this.hookupTableDistractionsFieldsIntensityLevelScent();\n this.hookupTableDistractionsFieldsIntensityLevelSight();\n this.hookupTableDistractionsFieldsIntensityLevelSound();\n this.hookupTableDistractionsFieldsIntensityLevelTouch();\n this.hookupTableDistractionsFieldsQuantity();\n this.hookupTableDistractionsFieldsProximityMetres();\n this.hookupTableDistractionsFieldsNotes();\n this.hookupTableDistractionsFieldsActive();\n }\n hookupTableDistractionsFieldsDistractionType() {\n let fieldFlag = flagDistractionType;\n let optionList = Utils.getListFromDict(filterDistractionTypes); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionType;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelEmotional() {\n let fieldFlag = flagDistractionIntensityLevelEmotional;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelEmotional;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelScent() {\n let fieldFlag = flagDistractionIntensityLevelScent;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelScent;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelSight() {\n let fieldFlag = flagDistractionIntensityLevelSight;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelSight;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelSound() {\n let fieldFlag = flagDistractionIntensityLevelSound;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelSound;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsIntensityLevelTouch() {\n let fieldFlag = flagDistractionIntensityLevelTouch;\n let optionList = Utils.getListFromDict(filterDistractionIntensityLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableDistractions + ' td.' + flagDistractionIntensityLevelTouch;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableDistractionsFieldsQuantity() {\n this.hookupChangeHandlerTableCells(idTableDistractions + ' td.' + flagQuantity + ' .' + flagQuantity);\n }\n hookupTableDistractionsFieldsProximityMetres() {\n this.hookupChangeHandlerTableCells(idTableDistractions + ' td.' + flagProximityMetres + ' .' + flagProximityMetres);\n }\n hookupTableDistractionsFieldsNotes() {\n this.hookupChangeHandlerTableCells(idTableDistractions + ' td.' + flagNotes + ' .' + flagNotes);\n }\n hookupTableDistractionsFieldsActive() {\n this.hookupFieldsActive(flagDistraction, (event, element) => { this.handleClickAddRowTableDistractions(event, element); });\n }\n handleClickAddRowTableDistractions(event, button) {\n event.stopPropagation();\n _rowBlankDistraction.setAttribute(attrIdDistraction, -1 - _rowBlankDistraction.getAttribute(attrIdDistraction));\n let tbody = document.querySelector(idTableDistractions + ' tbody');\n if (tbody.classList.contains(flagIsCollapsed)) return;\n let row = _rowBlankDistraction.cloneNode(true);\n row.classList.remove(flagInitialised);\n row.querySelectorAll('.' + flagInitialised).forEach(function(element) {\n element.classList.remove(flagInitialised);\n });\n let countRows = document.querySelectorAll(idTableDistractions + ' > tbody > tr').length;\n row.setAttribute(attrIdDistraction, -1 - countRows);\n tbody.prepend(row);\n tbody.scrollTop = 0;\n this.hookupTableDistractions();\n this.postInitialiseDistractionRowNewCallback(tbody);\n }\n postInitialiseDistractionRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDistractionType + ' div.' + flagDistractionType\n , ',td.' + flagDistractionIntensityLevelEmotional + ' div.' + flagDistractionIntensityLevelEmotional\n , ',td.' + flagDistractionIntensityLevelScent + ' div.' + flagDistractionIntensityLevelScent\n , ',td.' + flagDistractionIntensityLevelSight + ' div.' + flagDistractionIntensityLevelSight\n , ',td.' + flagDistractionIntensityLevelSound + ' div.' + flagDistractionIntensityLevelSound\n , ',td.' + flagDistractionIntensityLevelTouch + ' div.' + flagDistractionIntensityLevelTouch\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n hookupTableAssessmentCommandModalityLinks() {\n Events.initialiseEventHandler(idTableAssessmentCommandModalityLinks, flagInitialised, (table) => {\n let selectorRowNew = idTableAssessmentCommandModalityLinks + ' tbody tr.' + flagRowNew;\n let rowBlankTemp = document.querySelector(selectorRowNew);\n Utils.consoleLogIfNotProductionEnvironment(\"row blank temp: \", rowBlankTemp);\n let countRows = document.querySelectorAll(idTableAssessmentCommandModalityLinks + ' > tbody > tr').length;\n _rowBlankAssessmentCommandModalityLink = rowBlankTemp.cloneNode(true);\n document.querySelectorAll(selectorRowNew).forEach(function(row) {\n row.remove();\n });\n _rowBlankAssessmentCommandModalityLink.setAttribute(attrIdAssessmentCommandModalityLink, -1 - countRows);\n });\n\n this.hookupTableAssessmentCommandModalityLinksFieldsCommandCategory();\n this.hookupTableAssessmentCommandModalityLinksFieldsCommand();\n this.hookupTableAssessmentCommandModalityLinksFieldsCommandModality();\n this.hookupTableAssessmentCommandModalityLinksFieldsBribe();\n this.hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandlerMetres();\n this.hookupTableAssessmentCommandModalityLinksFieldsIsInHearingRangeOfHandler();\n this.hookupTableAssessmentCommandModalityLinksFieldsIsInScentRangeOfHandler();\n this.hookupTableAssessmentCommandModalityLinksFieldsIsInSightOfHandler();\n this.hookupTableAssessmentCommandModalityLinksFieldsIsOnLead();\n this.hookupTableAssessmentCommandModalityLinksFieldsTrialCount();\n this.hookupTableAssessmentCommandModalityLinksFieldsNotes();\n this.hookupTableAssessmentCommandModalityLinksFieldsResponses();\n this.hookupTableAssessmentCommandModalityLinksFieldsActive();\n }\n hookupTableAssessmentCommandModalityLinksFieldsCommandCategory() {\n this.hookupFieldsCommandCategory(idTableAssessmentCommandModalityLinks);\n /*\n let fieldFlag = flagCommandCategory;\n let optionList = Utils.getListFromDict(filterCommandCategories).sort((a, b) => a[flagName].localeCompare(b[flagName]));\n let cellSelector = idTableAssessmentCommandModalityLinks + ' td.' + flagCommandCategory;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n , (tdSelector) => { this.hookupTableAssessmentCommandModalityLinksDdlsCommandCategory(tdSelector); }\n , (event, element) => { this.handleChangeTableAssessmentCommandModalityLinksDdlCommandCategory(event, element); }\n );\n */\n }\n /*\n hookupTableAssessmentCommandModalityLinksDdlsCommandCategory(ddlSelector) {\n this.hookupChangeHandlerTableCells(ddlSelector, (event, element) => { this.handleChangeTableAssessmentCommandModalityLinksDdlCommandCategory(event, element); });\n }\n handleChangeTableAssessmentCommandModalityLinksDdlCommandCategory(event, ddlCategory) {\n let row = DOM.getRowFromElement(ddlCategory);\n let idCommandCategoryRowOld = this.getIdCommandCategoryRow(row); // DOM.getElementAttributeValueCurrent(ddlCategory);\n this.handleChangeNestedElementCellTable(event, ddlCategory);\n let idCommandCategoryRowNew = this.getIdCommandCategoryRow(row); // DOM.getElementAttributeValueCurrent(ddlCategory);\n if (idCommandCategoryRowOld == idCommandCategoryRowNew) return;\n let divCommand = row.querySelector('td.' + flagCommand + ' div');\n if (divCommand) divCommand.dispatchEvent(new Event('click'));\n let ddlCommand = row.querySelector('td.' + flagCommand + ' select.' + flagCommand);\n ddlCommand.innerHTML = '';\n ddlCommand.appendChild(DOM.createOption(null));\n let optionJson, option;\n let commandsInCategory = Utils.getListFromDict(filterCommands).filter(command => \n (\n command[attrIdCommandCategory] == idCommandCategoryRowNew\n || idCommandCategoryRowNew == 0\n )\n );\n let sortedCommands = commandsInCategory.sort((a, b) => a[flagName].localeCompare(b[flagName]));\n sortedCommands.forEach((command) => {\n optionJson = BusinessObjects.getOptionJsonFromObjectJson(command);\n option = DOM.createOption(optionJson);\n ddlCommand.appendChild(option);\n });\n this.handleChangeNestedElementCellTable(event, ddlCommand);\n }\n */\n hookupTableAssessmentCommandModalityLinksFieldsCommand() {\n this.hookupFieldsCommand(idTableAssessmentCommandModalityLinks);\n }\n hookupTableAssessmentCommandModalityLinksFieldsCommandModality() {\n let fieldFlag = flagCommandModality;\n let optionList = Utils.getListFromDict(filterCommandModalities); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessmentCommandModalityLinks + ' td.' + flagCommandModality;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentCommandModalityLinksFieldsBribe() {\n let fieldFlag = flagBribe;\n let optionList = Utils.getListFromDict(filterBribes); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessmentCommandModalityLinks + ' td.' + flagBribe;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandlerMetres() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagDistanceFromHandlerMetres + ' .' + flagDistanceFromHandlerMetres);\n }\n hookupTableAssessmentCommandModalityLinksFieldsIsInHearingRangeOfHandler() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagIsInHearingRangeOfHandler + ' .' + flagIsInHearingRangeOfHandler);\n }\n hookupTableAssessmentCommandModalityLinksFieldsIsInScentRangeOfHandler() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagIsInScentRangeOfHandler + ' .' + flagIsInScentRangeOfHandler);\n }\n hookupTableAssessmentCommandModalityLinksFieldsIsInSightOfHandler() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagIsInSightOfHandler + ' .' + flagIsInSightOfHandler);\n }\n hookupTableAssessmentCommandModalityLinksFieldsIsOnLead() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagIsOnLead + ' .' + flagIsOnLead);\n }\n hookupTableAssessmentCommandModalityLinksFieldsTrialCount() {\n // this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagTrialCount + ' .' + flagTrialCount);\n }\n hookupTableAssessmentCommandModalityLinksFieldsNotes() {\n this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' > tbody > tr > td.' + flagNotes + ' .' + flagNotes);\n }\n hookupTableAssessmentCommandModalityLinksFieldsResponses() {\n let eventType = \"click\";\n let selector = idTableAssessmentCommandModalityLinks + ' td.' + flagAssessmentResponse + ' div.' + flagAssessmentResponse;\n let handler = (event, element) => {\n let parentTd = DOM.getCellFromElement(element);\n let rowAssessmentCommandModalityLink = parentTd.closest('tr.' + flagAssessmentCommandModalityLink);\n let idAssessmentCommandModalityLink = rowAssessmentCommandModalityLink.getAttribute(attrIdAssessmentCommandModalityLink);\n let responsesTable = document.createElement(\"table\");\n responsesTable.id = idTableAssessmentResponses.replace(\"#\", \"\");\n responsesTable.classList.add(flagTableMain, flagAssessmentResponse);\n\n let head = document.createElement(\"thead\");\n let headRow = document.createElement(\"tr\");\n let thResponseQualityMetric = document.createElement(\"th\");\n thResponseQualityMetric.classList.add(flagResponseQualityMetric);\n thResponseQualityMetric.innerText = 'Response Quality Metric';\n headRow.appendChild(thResponseQualityMetric);\n let thObedienceLevel = document.createElement(\"th\");\n thObedienceLevel.classList.add(flagObedienceLevel);\n thObedienceLevel.innerText = 'Obedience Level';\n headRow.appendChild(thObedienceLevel);\n let thValueMeasured = document.createElement(\"th\");\n thValueMeasured.classList.add(flagValueMeasured);\n thValueMeasured.innerText = 'Value Measured';\n headRow.appendChild(thValueMeasured);\n let thNotes = document.createElement(\"th\");\n thNotes.classList.add(flagNotes);\n thNotes.innerText = 'Notes';\n headRow.appendChild(thNotes);\n let thActive = document.createElement(\"th\");\n thActive.classList.add(flagActive);\n let templateAddIcon = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagAdd);\n thActive.appendChild(templateAddIcon.cloneNode(true));\n headRow.appendChild(thActive);\n head.appendChild(headRow);\n responsesTable.appendChild(head);\n\n let body = document.createElement(\"tbody\");\n \n let assessmentCommandModalityLinks = assessment[flagAssessmentCommandModalityLink].filter(link => link[attrIdAssessmentCommandModalityLink] == idAssessmentCommandModalityLink);\n let assessmentCommandModalityLink = (assessmentCommandModalityLinks == null || assessmentCommandModalityLinks.length == 0) ? null : assessmentCommandModalityLinks[0];\n let responses = (assessmentCommandModalityLink == null) ? null : assessmentCommandModalityLink[flagAssessmentResponse];\n \n console.log({ assessmentCommandModalityLinks, responses });\n if (responses != null && responses.length > 0) {\n for (let responseKey in Object.keys(responses)) {\n let response = responses[responseKey];\n let row = PageDogAssessment.createNewRowTableAssessmentResponses(response);\n body.appendChild(row);\n }\n }\n responsesTable.appendChild(body);\n\n parentTd.innerHTML = responsesTable.outerHTML;\n\n let responseRows = parentTd.querySelectorAll('tbody tr.' + flagAssessmentResponse);\n if (responseRows != null && responseRows.length > 0) {\n for (let indexRow = 0; indexRow < responseRows.length; indexRow++) {\n let row = responseRows[indexRow];\n // let idAssessmentResponse = row.getAttribute(attrIdAssessmentResponse);\n \n let response = responses[indexRow]; // idAssessmentResponse];\n console.log({ indexRow, row, response }); // idAssessmentResponse,\n let inputValueMeasured = row.querySelector('td.' + flagValueMeasured + ' .' + flagValueMeasured);\n DOM.setElementValueCurrent(inputValueMeasured, response[flagValueMeasured]);\n let inputNotes = row.querySelector('td.' + flagNotes + ' .' + flagNotes);\n DOM.setElementValueCurrent(inputNotes, response[flagNotes]);\n }\n }\n\n this.hookupTablesAssessmentResponses();\n };\n Events.hookupEventHandler(\n eventType\n , selector\n , handler\n );\n this.hookupTablesAssessmentResponses();\n }\n static createNewRowTableAssessmentResponses(response) {\n if (response == null) response = {\n [attrIdAssessmentResponse]: null\n , [attrIdResponseQualityMetric]: {\n [attrIdResponseQualityMetric]: 0\n }\n , [attrIdObedienceLevel]: {\n [attrIdObedienceLevel]: 0\n }\n , [flagValueMeasured]: ''\n , [flagNotes]: ''\n , [flagActive]: true\n };\n console.log({ response });\n let isNew = (response[attrIdAssessmentResponse] == null || response[attrIdAssessmentResponse] < 1);\n let row = document.createElement(\"tr\");\n row.classList.add(flagAssessmentResponse);\n if (isNew) row.classList.add(flagRowNew);\n row.setAttribute(attrIdAssessmentResponse, response[attrIdAssessmentResponse]);\n\n let tdResponseQualityMetric = document.createElement(\"td\");\n tdResponseQualityMetric.classList.add(flagResponseQualityMetric, flagDdlPreview);\n let divResponseQualityMetric = document.createElement(\"div\");\n divResponseQualityMetric.classList.add(flagResponseQualityMetric);\n let idResponseQualityMetric = response[attrIdResponseQualityMetric][attrIdResponseQualityMetric];\n let responseQualityMetric = filterResponseQualityMetrics[idResponseQualityMetric];\n DOM.setElementAttributesValuesCurrentAndPrevious(divResponseQualityMetric, idResponseQualityMetric);\n divResponseQualityMetric.innerText = (responseQualityMetric == null) ? '' : responseQualityMetric[flagName];\n tdResponseQualityMetric.appendChild(divResponseQualityMetric);\n row.appendChild(tdResponseQualityMetric);\n\n let tdObedienceLevel = document.createElement(\"td\");\n tdObedienceLevel.classList.add(flagObedienceLevel, flagDdlPreview);\n let divObedienceLevel = document.createElement(\"div\");\n divObedienceLevel.classList.add(flagObedienceLevel);\n let idObedienceLevel = response[attrIdObedienceLevel][attrIdObedienceLevel];\n let obedienceLevel = filterObedienceLevels[idObedienceLevel];\n DOM.setElementAttributesValuesCurrentAndPrevious(divObedienceLevel, idObedienceLevel);\n divObedienceLevel.innerText = (obedienceLevel == null) ? '' : obedienceLevel[flagName];\n tdObedienceLevel.appendChild(divObedienceLevel);\n row.appendChild(tdObedienceLevel);\n\n let tdValueMeasured = document.createElement(\"td\");\n tdValueMeasured.classList.add(flagValueMeasured, flagDdlPreview);\n let inputValueMeasured = document.createElement(\"input\");\n inputValueMeasured.type = \"number\";\n inputValueMeasured.classList.add(flagValueMeasured);\n let valueMeasured = response[flagValueMeasured];\n DOM.setElementValueCurrent(inputValueMeasured, valueMeasured);\n DOM.setElementAttributeValuePrevious(inputValueMeasured, valueMeasured);\n tdValueMeasured.appendChild(inputValueMeasured);\n row.appendChild(tdValueMeasured);\n\n let tdNotes = document.createElement(\"td\");\n tdNotes.classList.add(flagNotes, flagDdlPreview);\n let inputNotes = document.createElement(\"textarea\");\n inputNotes.classList.add(flagNotes);\n let notes = response[flagNotes];\n DOM.setElementValueCurrent(inputNotes, notes);\n DOM.setElementAttributeValuePrevious(inputNotes, notes);\n tdNotes.appendChild(inputNotes);\n row.appendChild(tdNotes);\n\n console.log(inputValueMeasured.tagName);\n console.log(inputNotes.tagName);\n console.log({ valueMeasured, notes });\n\n let tdActive = document.createElement(\"td\");\n tdActive.classList.add(flagActive, flagDdlPreview);\n let templateAddIcon = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagAdd);\n let templateDeleteIcon = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagDelete);\n let buttonActive = (response[flagActive]) ? templateDeleteIcon.cloneNode(true) : templateAddIcon.cloneNode(true);\n tdActive.appendChild(buttonActive);\n row.appendChild(tdActive);\n\n return row;\n }\n hookupTablesAssessmentResponses() {\n this.hookupTableAssessmentResponsesFieldsResponseQualityMetric();\n this.hookupTableAssessmentResponsesFieldsObedienceLevel();\n this.hookupTableAssessmentResponsesFieldsValueMeasured();\n this.hookupTableAssessmentResponsesFieldsNotes();\n this.hookupTableAssessmentResponsesFieldsActive();\n }\n hookupTableAssessmentResponsesFieldsResponseQualityMetric() {\n let fieldFlag = flagResponseQualityMetric;\n let optionList = Utils.getListFromDict(filterResponseQualityMetrics); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessmentResponses + ' td.' + flagResponseQualityMetric;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentResponsesFieldsObedienceLevel() {\n let fieldFlag = flagObedienceLevel;\n let optionList = Utils.getListFromDict(filterObedienceLevels); // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n let cellSelector = idTableAssessmentResponses + ' td.' + flagObedienceLevel;\n this.hookupTableCellDdlPreviews(\n fieldFlag\n , optionList\n , cellSelector\n );\n }\n hookupTableAssessmentResponsesFieldsValueMeasured() {\n this.hookupChangeHandlerTableCells(idTableAssessmentResponses + ' td.' + flagValueMeasured + ' .' + flagValueMeasured);\n }\n hookupTableAssessmentResponsesFieldsNotes() {\n this.hookupChangeHandlerTableCells(idTableAssessmentResponses + ' td.' + flagNotes + ' .' + flagNotes);\n }\n hookupTableAssessmentResponsesFieldsActive() {\n this.hookupFieldsActive(flagAssessmentResponse, (event, element) => { this.handleClickAddRowTableAssessmentResponses(event, element); });\n }\n handleClickAddRowTableAssessmentResponses(event, button) {\n event.stopPropagation();\n let tableResponses = DOM.getClosestParent(button, \"table\");\n let tbody = tableResponses.querySelector(\":scope > tbody\");\n let row = PageDogAssessment.createNewRowTableAssessmentResponses(null);\n if (tbody.classList.contains(flagIsCollapsed)) return;\n row.classList.remove(flagInitialised);\n row.querySelectorAll('.' + flagInitialised).forEach(function(element) {\n element.classList.remove(flagInitialised);\n });\n let countRows = document.querySelectorAll(idTableAssessmentResponses + ' > tbody > tr').length;\n row.setAttribute(attrIdAssessmentResponse, -1 - countRows);\n tbody.prepend(row);\n tbody.scrollTop = 0;\n this.hookupTablesAssessmentResponses();\n this.postInitialiseAssessmentResponseRowNewCallback(tbody);\n }\n postInitialiseAssessmentResponseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagResponseQualityMetric + ' div.' + flagResponseQualityMetric\n , ',td.' + flagObedienceLevel + ' div.' + flagObedienceLevel\n , ',td.' + flagValueMeasured + ' div.' + flagValueMeasured\n , ',td.' + flagNotes + ' div.' + flagNotes\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n let countActiveRows = tbody.querySelectorAll('td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagDelete).length;\n /*\n newRows.filter(row => {\n let activeButton = row.querySelector('td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive);\n return activeButton.classList.contains(flagDelete);\n }).length;\n */\n let rowAssessmentCommandModalityLink = DOM.getRowFromElement(tbody);\n let divTrialCount = rowAssessmentCommandModalityLink.querySelector('td.' + flagTrialCount + ' div.' + flagTrialCount);\n divTrialCount.innerText = countActiveRows;\n }\n\n hookupTableAssessmentCommandModalityLinksFieldsActive() {\n this.hookupFieldsActive(flagAssessmentCommandModalityLink, (event, element) => { this.handleClickAddRowTableAssessmentCommandModalityLinks(event, element); });\n }\n handleClickAddRowTableAssessmentCommandModalityLinks(event, button) {\n event.stopPropagation();\n _rowBlankAssessmentCommandModalityLink.setAttribute(attrIdAssessmentCommandModalityLink, -1 - _rowBlankAssessmentCommandModalityLink.getAttribute(attrIdAssessmentCommandModalityLink));\n let tbody = document.querySelector(idTableAssessmentCommandModalityLinks + ' tbody');\n if (tbody.classList.contains(flagIsCollapsed)) return;\n let row = _rowBlankAssessmentCommandModalityLink.cloneNode(true);\n row.classList.remove(flagInitialised);\n row.querySelectorAll('.' + flagInitialised).forEach(function(element) {\n element.classList.remove(flagInitialised);\n });\n let countRows = document.querySelectorAll(idTableAssessmentCommandModalityLinks + ' > tbody > tr').length;\n row.setAttribute(attrIdAssessmentCommandModalityLink, -1 - countRows);\n tbody.prepend(row);\n tbody.scrollTop = 0;\n this.hookupTableAssessmentCommandModalityLinks();\n this.postInitialiseAssessmentCommandModalityLinkRowNewCallback(tbody);\n }\n postInitialiseAssessmentCommandModalityLinkRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagCommandCategory + ' div.' + flagCommandCategory\n , ',td.' + flagCommand + ' div.' + flagCommand\n , ',td.' + flagCommandModality + ' div.' + flagCommandModality\n , ',td.' + flagBribe + ' div.' + flagBribe\n ].join('');\n newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => {\n clickableElement.click();\n });\n }\n\n leave() {\n super.leave();\n }\n}\n\n","\nimport API from \"../../api.js\";\nimport BusinessObjects from \"../../lib/business_objects/business_objects.js\";\nimport DOM from \"../../dom.js\";\nimport Events from \"../../lib/events.js\";\nimport TableBasePage from \"../base_table.js\";\nimport Utils from \"../../lib/utils.js\";\nimport Validation from \"../../lib/validation.js\";\nimport DogTableMixinPage from \"./mixin_table.js\";\n\nexport default class PageDogAssessments extends TableBasePage {\n static hash = hashPageDogAssessments;\n static attrIdRowObject = attrIdAssessment;\n callSaveTableContent = API.saveAssessments;\n\n constructor(router) {\n super(router);\n this.dogMixin = new DogTableMixinPage(this);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n hookupFilters() {\n this.sharedHookupFilters();\n this.hookupFilterWeather();\n this.hookupFilterLightingLevel();\n this.hookupFilterLocation();\n this.hookupFilterHandler();\n this.hookupFilterActive();\n }\n hookupFilterWeather() {\n this.hookupFilter(attrIdWeather);\n }\n hookupFilterLightingLevel() {\n this.hookupFilter(attrIdLightingLevel);\n }\n hookupFilterHandler() {\n this.hookupFilter(flagUserHandler);\n }\n\n loadRowTable(rowJson) {\n if (rowJson == null) return;\n if (_verbose) { Utils.consoleLogIfNotProductionEnvironment(\"applying data row: \", rowJson); }\n }\n getJsonRow(row) {\n if (row == null) return;\n let inputTemperatureCelcius = row.querySelector('td.' + flagTemperatureCelcius + ' input');\n let inputNotes = row.querySelector('td.' + flagNotes + ' textarea');\n let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive);\n\n let jsonRow = {};\n jsonRow[attrIdAssessment] = row.getAttribute(attrIdAssessment);\n jsonRow[attrIdWeather] = this.getIdWeatherRow(row);\n jsonRow[attrIdLightingLevel] = this.getIdLightingLevelRow(row);\n jsonRow[flagTemperatureCelcius] = DOM.getElementAttributeValueCurrent(inputTemperatureCelcius);\n jsonRow[attrIdLocation] = this.getIdLocationRow(row);\n jsonRow[flagUserHandler] = this.getIdUserHandlerRow(row);\n jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes);\n jsonRow[flagActive] = buttonActive.classList.contains(flagDelete);\n return jsonRow;\n }\n getIdWeatherRow(tr) {\n let elementWeather = tr.querySelector('td.' + flagWeather + ' .' + flagWeather);\n return DOM.getElementAttributeValueCurrent(elementWeather);\n }\n getIdLightingLevelRow(tr) {\n let elementLightingLevel = tr.querySelector('td.' + flagLightingLevel + ' .' + flagLightingLevel);\n return DOM.getElementAttributeValueCurrent(elementLightingLevel);\n }\n getIdLocationRow(tr) {\n let elementLocation = tr.querySelector('td.' + flagLocation + ' .' + flagLocation);\n return DOM.getElementAttributeValueCurrent(elementLocation);\n }\n getIdUserHandlerRow(tr) {\n let elementUserHandler = tr.querySelector('td.' + flagUserHandler + ' .' + flagUserHandler);\n return DOM.getElementAttributeValueCurrent(elementUserHandler);\n }\n initialiseRowNew(tbody, row) {\n \n }\n postInitialiseRowNewCallback(tbody) {\n let newRows = tbody.querySelectorAll('tr.' + flagRowNew);\n let newestRow = newRows[0];\n let clickableElementsSelector = [\n 'td.' + flagDetail + ' .' + flagDetail\n ].join('');\n let detailButton = newestRow.querySelector('td.' + flagDetail + ' .' + flagDetail); /*.forEach((clickableElement) => {\n clickableElement.\n clickableElement.click();\n });\n */\n newestRow.classList.add(flagIsCollapsed);\n detailButton.click();\n // console.log({ newestRow, detailButton });\n }\n\n hookupTableMain() {\n super.hookupTableMain();\n this.hookupFieldsDetail();\n this.hookupFieldsWeather();\n this.hookupFieldsLightingLevel();\n this.hookupFieldsTemperature();\n this.dogMixin.hookupFieldsLocation();\n this.hookupFieldsHandler();\n this.hookupFieldsNotesTable();\n this.hookupFieldsActive();\n }\n hookupFieldsDetail() {\n Events.hookupEventHandler(\n \"click\" // eventType\n , idTableMain + ' td.' + flagDetail + ' button.' + flagDetail // selector\n , (event, element) => {\n let parentTr = DOM.getRowFromElement(element);\n let idAssessment = parentTr.getAttribute(attrIdAssessment);\n /*\n console.log(\"click detail\");\n console.log({ element, parentTr, idAssessment });\n const data = {};\n const params = {\n [attrIdAssessment]: idAssessment\n };\n API.request(\n hashPageDogAssessment // hashEndpoint\n , 'GET' // method\n , data\n , params\n );\n */\n\n let formFilters = TableBasePage.getFormFilters();\n let filtersJson = DOM.convertForm2JSON(formFilters);\n filtersJson[attrIdAssessment] = idAssessment;\n Utils.consoleLogIfNotProductionEnvironment(\"hookupFieldsDetail\");\n Utils.consoleLogIfNotProductionEnvironment(\"formFilters\");\n Utils.consoleLogIfNotProductionEnvironment(formFilters);\n Utils.consoleLogIfNotProductionEnvironment(\"filtersJson\");\n Utils.consoleLogIfNotProductionEnvironment(filtersJson);\n this.leave();\n API.goToHash(hashPageDogAssessment, filtersJson);\n }\n );\n }\n hookupFieldsWeather() {\n this.hookupTableCellDdlPreviews(\n flagWeather\n , Utils.getListFromDict(filterWeathers) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n hookupFieldsLightingLevel() {\n this.hookupTableCellDdlPreviews(\n flagLightingLevel\n , Utils.getListFromDict(filterLightingLevels) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n hookupFieldsTemperature() {\n this.hookupChangeHandlerTableCells(idTableMain + ' td.' + flagTemperatureCelcius + ' input.' + flagTemperatureCelcius);\n }\n hookupFieldsHandler() {\n this.hookupTableCellDdlPreviews(\n flagUserHandler\n , Utils.getListFromDict(filterUserHandlers) // .sort((a, b) => a[flagName].localeCompare(b[flagName]))\n );\n }\n\n leave() {\n super.leave();\n }\n}\n\n","import BasePage from \"../base.js\";\n\nexport default class PageAccessibilityReport extends BasePage {\n static hash = hashPageAccessibilityReport;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}\n","import BasePage from \"../base.js\";\n\nexport default class PageAccessibilityStatement extends BasePage {\n static hash = hashPageAccessibilityStatement;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}\n","\nimport BasePage from \"../base.js\";\n\nexport default class PageLicense extends BasePage {\n static hash = hashPageLicense;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}","\nimport BasePage from \"../base.js\";\n\nexport default class PagePrivacyPolicy extends BasePage {\n static hash = hashPagePrivacyPolicy;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}","import BasePage from \"../base.js\";\n\nexport default class PageRetentionSchedule extends BasePage {\n static hash = hashPageDataRetentionSchedule;\n\n constructor(router) {\n super(router);\n }\n\n initialize() {\n this.sharedInitialize();\n }\n\n leave() {\n super.leave();\n }\n}\n","\n// Pages\n// Core\nimport PageHome from './pages/core/home.js';\nimport PageContact from './pages/core/contact.js';\nimport PageContactSuccess from './pages/core/contact-success.js';\n// Dog\nimport PageDogHome from './pages/dog/home.js';\nimport PageDogCommandCategories from './pages/dog/command_categories.js';\nimport PageDogCommands from './pages/dog/commands.js';\nimport PageDogDogCommandLinks from './pages/dog/dog_command_links.js';\n// import PageDogDogs from './pages/dog/dogs.js';\nimport PageDogLocations from './pages/dog/locations.js';\nimport PageDogButtonIcons from './pages/dog/button_icons.js';\nimport PageDogCommandButtonLinks from './pages/dog/command_button_links.js';\nimport PageDogAssessment from './pages/dog/assessment.js';\nimport PageDogAssessments from './pages/dog/assessments.js';\n// Legal\nimport PageAccessibilityReport from './pages/legal/accessibility_report.js';\nimport PageAccessibilityStatement from './pages/legal/accessibility_statement.js';\nimport PageLicense from './pages/legal/license.js';\nimport PagePrivacyPolicy from './pages/legal/privacy_policy.js';\nimport PageRetentionSchedule from './pages/legal/retention_schedule.js';\n// User\n// import PageUserLogin from './pages/user/login.js';\n// import PageUserLogout from './pages/user/logout.js';\n// import PageUserAccount from './pages/user/account.js';\n\nimport API from './api.js';\nimport DOM from './dom.js';\nimport Utils from './lib/utils.js';\n\n\nexport default class Router {\n constructor() {\n // Pages\n this.pages = {};\n // Core\n this.pages[hashPageHome] = { name: 'PageHome', module: PageHome };\n this.pages[hashPageContact] = { name: 'PageContact', module: PageContact };\n this.pages[hashPageContactSuccess] = { name: 'PageContactSuccess', module: PageContactSuccess };\n // Dog\n this.pages[hashPageDogHome] = { name: 'PageDogHome', module: PageDogHome };\n this.pages[hashPageDogCommandCategories] = { name: 'PageDogCommands', module: PageDogCommandCategories };\n this.pages[hashPageDogCommands] = { name: 'PageDogCommands', module: PageDogCommands };\n this.pages[hashPageDogDogCommandLinks] = { name: 'PageDogDogCommandLinks', module: PageDogDogCommandLinks };\n // this.pages[hashPageDogDogs] = { name: 'PageDogDogs', module: PageDogDogs };\n this.pages[hashPageDogLocations] = { name: 'PageDogLocations', module: PageDogLocations };\n this.pages[hashPageDogButtonIcons] = { name: 'PageDogButtonIcons', module: PageDogButtonIcons };\n this.pages[hashPageDogCommandButtonLinks] = { name: 'PageDogCommandButtonLinks', module: PageDogCommandButtonLinks };\n this.pages[hashPageDogAssessment] = { name: 'PageDogAssessment', module: PageDogAssessment };\n this.pages[hashPageDogAssessments] = { name: 'PageDogAssessments', module: PageDogAssessments };\n // Legal\n this.pages[hashPageAccessibilityStatement] = { name: 'PageAccessibilityStatement', module: PageAccessibilityStatement };\n this.pages[hashPageDataRetentionSchedule] = { name: 'PageDataRetentionSchedule', module: PageRetentionSchedule };\n this.pages[hashPageLicense] = { name: 'PageLicense', module: PageLicense };\n this.pages[hashPagePrivacyPolicy] = { name: 'PagePrivacyPolicy', module: PagePrivacyPolicy };\n // User\n // this.pages[hashPageUserLogin] = { name: 'PageUserLogin', module: PageUserLogin }; // pathModule: './pages/user/login.js' };\n // this.pages[hashPageUserLogout] = { name: 'PageUserLogout', module: PageUserLogout }; // pathModule: './pages/user/logout.js' };\n // this.pages[hashPageUserAccount] = { name: 'PageUserAccount', module: PageUserAccount }; // pathModule: './pages/user/account.js' };\n // Routes\n this.routes = {};\n // Core\n this.routes[hashPageHome] = (isPopState = false) => this.navigateToHash(hashPageHome, isPopState);\n this.routes[hashPageContact] = (isPopState = false) => this.navigateToHash(hashPageContact, isPopState);\n this.routes[hashPageContactSuccess] = (isPopState = false) => this.navigateToHash(hashPageContactSuccess, isPopState);\n // Dog\n this.routes[hashPageDogHome] = (isPopState = false) => this.navigateToHash(hashPageDogHome, isPopState);\n this.routes[hashPageDogCommandCategories] = (isPopState = false) => this.navigateToHash(hashPageDogCommandCategories, isPopState);\n this.routes[hashPageDogCommands] = (isPopState = false) => this.navigateToHash(hashPageDogCommands, isPopState);\n this.routes[hashPageDogDogCommandLinks] = (isPopState = false) => this.navigateToHash(hashPageDogDogCommandLinks, isPopState);\n // this.routes[hashPageDogDogs] = (isPopState = false) => this.navigateToHash(hashPageDogDogs, isPopState);\n this.routes[hashPageDogLocations] = (isPopState = false) => this.navigateToHash(hashPageDogLocations, isPopState);\n this.routes[hashPageDogButtonIcons] = (isPopState = false) => this.navigateToHash(hashPageDogButtonIcons, isPopState);\n this.routes[hashPageDogCommandButtonLinks] = (isPopState = false) => this.navigateToHash(hashPageDogCommandButtonLinks, isPopState);\n this.routes[hashPageDogAssessment] = (isPopState = false) => this.navigateToHash(hashPageDogAssessment, isPopState);\n this.routes[hashPageDogAssessments] = (isPopState = false) => this.navigateToHash(hashPageDogAssessments, isPopState);\n // Legal\n this.routes[hashPageAccessibilityStatement] = (isPopState = false) => this.navigateToHash(hashPageAccessibilityStatement, isPopState);\n this.routes[hashPageDataRetentionSchedule] = (isPopState = false) => this.navigateToHash(hashPageDataRetentionSchedule, isPopState);\n this.routes[hashPageLicense] = (isPopState = false) => this.navigateToHash(hashPageLicense, isPopState);\n this.routes[hashPagePrivacyPolicy] = (isPopState = false) => this.navigateToHash(hashPagePrivacyPolicy, isPopState);\n // User\n // this.routes[hashPageUserLogin] = (isPopState = false) => this.navigateToHash(hashPageUserLogin, isPopState);\n // this.routes[hashPageUserLogout] = (isPopState = false) => this.navigateToHash(hashPageUserLogout, isPopState);\n // this.routes[hashPageUserAccount] = (isPopState = false) => this.navigateToHash(hashPageUserAccount, isPopState);\n this.initialize();\n }\n loadPage(hashPage, isPopState = false) {\n const PageClass = this.getClassPageFromHash(hashPage);\n this.currentPage = new PageClass(this);\n this.currentPage.initialize(isPopState);\n window.addEventListener('beforeunload', () => this.currentPage.leave());\n }\n getClassPageFromHash(hashPage) {\n \n let pageJson = this.pages[hashPage];\n try {\n const module = pageJson.module;\n return module; \n }\n catch (error) {\n Utils.consoleLogIfNotProductionEnvironment(\"this.pages: \", this.pages);\n console.error('Page not found:', hashPage);\n throw error;\n }\n }\n initialize() {\n window.addEventListener('popstate', this.handlePopState.bind(this));\n }\n handlePopState(event) {\n this.loadPageCurrent();\n }\n loadPageCurrent() {\n const hashPageCurrent = DOM.getHashPageCurrent();\n this.loadPage(hashPageCurrent);\n }\n navigateToHash(hash, data = null, params = null, isPopState = false) {\n let url = API.getUrlFromHash(hash, params);\n history.pushState({data: data, params: params}, '', hash);\n API.goToUrl(url, data);\n }\n \n navigateToUrl(url, data = null, appendHistory = true) {\n // this.beforeLeave();\n if (appendHistory) history.pushState(data, '', url);\n url = API.parameteriseUrl(url, data);\n API.goToUrl(url);\n }\n\n static loadPageBodyFromResponse(response) {\n DOM.loadPageBody(response.data);\n }\n}\n\nexport const router = new Router();\n","\n'use strict';\n\nimport DOM from './dom.js';\nimport Router from './router.js';\n\n\nclass App {\n constructor() {\n this.dom = new DOM();\n this.router = new Router();\n }\n\n initialize() {\n this.setupEventListeners();\n this.start();\n }\n\n setupEventListeners() {\n // document.addEventListener('click', this.handleGlobalClick.bind(this));\n }\n\n handleGlobalClick(event) {\n }\n\n start() {\n this.initPageCurrent();\n }\n\n initPageCurrent() {\n this.router.loadPageCurrent();\n }\n \n}\n\nconst app = new App();\n\nfunction domReady(fn) {\n if (document.readyState !== 'loading') {\n fn();\n } else {\n document.addEventListener('DOMContentLoaded', fn);\n }\n}\n\ndomReady(() => {\n app.initialize();\n});\n\nwindow.app = app;\n\nexport default app;","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};"],"names":["Validation","_classCallCheck","_createClass","key","value","isEmpty","object","undefined","length","isString","trim","i","isValidNumber","positiveOnly","isNaN","parseFloat","getDataContentType","params","data","contentType","JSON","stringify","Data","ContentType","arrayContainsItem","array","itemValue","hasItem","isJQueryElementArray","jQuery","document","querySelectorAll","is","isDate","Date","getTime","dictHasKey","d","k","areEqualDicts","dict1","dict2","keys1","Object","keys","keys2","_i3","_keys","imageExists","url","callback","img","Image","onload","onerror","src","toFixedOrDefault","decimalPlaces","defaultValue","arguments","toFixed","default","Utils","DOM","setElementAttributesValuesCurrentAndPrevious","element","setElementAttributeValueCurrent","setElementAttributeValuePrevious","setAttribute","attrValueCurrent","attrValuePrevious","setElementValuesCurrentAndPrevious","setElementValueCurrent","tagName","toUpperCase","type","checked","textContent","setElementValueCurrentIfEmpty","getElementValueCurrent","getCellFromElement","closest","getRowFromElement","flagRow","selector","getClosestParent","parentSelector","parent","parentElement","matches","convertForm2JSON","elementForm","dataForm","containersFilter","flagContainerInput","flagFilter","containerFilter","labelFilter","keyFilter","filter","indexFilter","querySelector","getAttribute","concat","loadPageBody","contentNew","pageBody","idPageBody","innerHTML","getHashPageCurrent","hashPageCurrent","body","dataset","page","updateAndCheckIsElementDirty","isElementDirty","isDirty","handleDirtyElement","toggleElementHasClassnameFlag","flagDirty","elementHasFlag","flag","elementAlreadyHasFlag","classList","contains","add","remove","hasDirtyChildrenContainer","container","hasDirtyChildrenNotDeletedContainer","flagDelete","returnVal","flagButton","flagActive","getElementAttributeValueCurrent","flagCheckbox","flagIsChecked","getElementAttributeValuePrevious","scrollToElement","scrollTop","offset","top","isElementInContainer","containerBounds","getBoundingClientRect","elementBounds","left","height","width","alertError","errorType","errorText","alert","createOptionUnselectedProductVariation","_defineProperty","flagProductVariationType","flagNameAttrOptionText","flagName","flagNameAttrOptionValue","attrIdProductVariationType","flagProductVariation","attrIdProductVariation","createOption","optionJson","text","option","createElement","selected","escapeHtml","div","unescapeHtml","html","innerText","Events","initialiseEventHandler","selectorElement","classInitialised","eventHandler","forEach","hookupEventHandler","eventType","flagInitialised","addEventListener","event","stopPropagation","LocalStorage","getLocalStorage","parse","localStorage","getItem","setLocalStorage","newLS","setItem","_regeneratorRuntime","e","t","r","prototype","n","hasOwnProperty","o","defineProperty","Symbol","a","iterator","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","getPrototypeOf","v","values","g","defineIteratorMethods","_invoke","AsyncIterator","invoke","_typeof","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","displayName","isGeneratorFunction","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","_catch","delegateYield","ownKeys","getOwnPropertySymbols","getOwnPropertyDescriptor","apply","_objectSpread","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","asyncGeneratorStep","_asyncToGenerator","_next","_throw","_defineProperties","_toPrimitive","toPrimitive","String","Number","API","getCsrfToken","idCSRFToken","_request","_callee","hashEndpoint","csrfToken","options","response","_args","_callee$","_context","getUrlFromHash","headers","flagCsrfToken","fetch","ok","status","json","t0","console","error","request","_x","hash","hashPageHome","parameteriseUrl","_pathHost","URLSearchParams","toString","goToUrl","window","location","href","goToHash","_loginUser","_callee2","_callee2$","_context2","flagCallback","hashPageUserLogin","loginUser","_saveCommandCategories","_callee3","commandCategories","formFilters","comment","dataRequest","_callee3$","_context3","flagFormFilters","flagCommandCategory","flagComment","hashSaveDogCommandCategory","saveCommandCategories","_x2","_x3","_x4","_saveCommands","_callee4","commands","_callee4$","_context4","flagCommand","hashSaveDogCommand","saveCommands","_x5","_x6","_x7","_saveDogCommandLinks","_callee5","dogCommandLinks","_callee5$","_context5","flagDogCommandLink","hashSaveDogDogCommandLink","saveDogCommandLinks","_x8","_x9","_x10","_saveLocations","_callee6","locations","_callee6$","_context6","flagLocation","hashSaveDogLocation","saveLocations","_x11","_x12","_x13","_saveButtonIcons","_callee7","buttonIcons","_callee7$","_context7","flagButtonIcon","hashSaveDogButtonIcon","saveButtonIcons","_x14","_x15","_x16","_saveCommandButtonLinks","_callee8","links","_callee8$","_context8","flagCommandButtonLink","hashSaveDogCommandButtonLink","saveCommandButtonLinks","_x17","_x18","_x19","_saveAssessments","_callee9","assessments","_callee9$","_context9","flagAssessment","hashSaveDogAssessment","saveAssessments","_x20","_x21","_x22","_saveAssessmentsDistractionsAndResponses","_callee10","filtersJson","_callee10$","_context10","attrIdAssessment","hashSaveDogAssessmentDistractionAndResponse","saveAssessmentsDistractionsAndResponses","_x23","_x24","_x25","getListFromDict","dict","list","consoleLogIfNotProductionEnvironment","message","environment","is_production","log","OverlayConfirm","hookup","callbackSuccess","idOverlayConfirm","flagCancel","buttonCancel","overlay","style","visibility","flagSubmit","buttonConfirm","textarea","show","flagIsCollapsed","BusinessObjects","OverlayError","BasePage","router","title","titlePageCurrent","initialize","sharedInitialize","logInitialisation","hookupCommonElements","hookupLogos","hookupNavigation","hookupOverlays","idButtonHamburger","overlayHamburger","idOverlayHamburger","flagExpanded","hookupButtonsNavHome","hookupButtonsNavContact","hookupButtonsNavUserAccount","hookupButtonsNavUserLogout","hookupButtonsNavUserLogin","hookupButtonsNavDogHome","hookupButtonsNavDogCommandCategories","hookupButtonsNavDogCommands","hookupButtonsNavDogDogCommandLinks","hookupButtonsNavDogDogs","hookupButtonsNavDogLocations","hookupButtonsNavDogButtonIcons","hookupButtonsNavDogCommandButtonLinks","hookupButtonsNavDogAssessments","hookupButtonsNav","flagNavHome","buttonSelector","hashPageNav","_this","button","navigateToHash","flagNavContact","hashPageContact","flagNavUserAccount","hashPageUserAccount","flagNavUserLogout","hashPageUserLogout","_this2","flagNavUserLogin","navigator","leave","Success","Message","flagNavDogHome","hashPageDogHome","flagNavDogCommandCategories","hashPageDogCommandCategories","flagNavDogCommands","hashPageDogCommands","flagNavDogDogCommandLinks","hashPageDogDogCommandLinks","flagNavDogDogs","hashPageDogDogs","flagNavDogLocations","hashPageDogLocations","flagNavDogButtonIcons","hashPageDogButtonIcons","flagNavDogCommandButtonLinks","hashPageDogCommandButtonLinks","flagNavDogAssessments","hashPageDogAssessments","_this3","flagImageLogo","flagLogo","hookupOverlayFromId","idOverlayError","idOverlay","display","hookupButtonSave","_this4","flagContainer","flagSave","target","setLocalStoragePage","dataPage","getLocalStoragePage","toggleShowButtonsSaveCancel","buttonContainerSelector","buttonSave","idButtonSave","idButtonCancel","isDirtyFilter","idTableMain","PageHome","_BasePage","_callSuper","_inherits","_superPropGet","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","_get","get","bind","_superPropBase","_setPrototypeOf","_wrapNativeSuper","Map","_isNativeFunction","has","set","Wrapper","_construct","Boolean","valueOf","Function","indexOf","_toArray","_arrayWithHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableRest","_toConsumableArray","_arrayWithoutHoles","_nonIterableSpread","Array","from","isArray","_arrayLikeToArray","_slicedToArray","_iterableToArrayLimit","_createForOfIteratorHelper","_n2","F","test","hi","Or","gi","ne","zr","H","Mt","WeakSet","Ut","en","Fr","self","Blob","_i","URL","webkitURL","createObjectURL","Worker","revokeObjectURL","_unused","encodeURIComponent","mi","Qr","_Qr$v","_window$__svelte","__svelte","Set","wi","pi","yi","bi","Ei","xi","Wt","tn","rn","Je","W","$i","Mr","oe","nn","It","Yt","pe","ze","yt","re","bt","K","ye","et","Ke","St","ki","Zt","Ci","ln","ut","an","Ai","on","Ri","Ii","Et","xt","Pe","Si","Ti","Ni","sn","fn","Li","requestIdleCallback","setTimeout","dt","vt","un","cn","Gt","queueMicrotask","Di","Ur","dn","Pi","vn","Oi","zi","Fi","Mi","Ui","ji","Vi","Bi","qi","Hi","Wi","ue","reactions","equals","rv","wv","He","Yi","hn","ae","ce","Qi","P","Dn","includes","Zi","En","gn","A","ge","el","de","Lt","De","ctx","B","deps","effects","_n","we","Gi","Ji","Se","$n","mn","Ce","Tt","warn","D","Ge","O","Re","Xe","Te","Z","Ki","nodeType","le","Proxy","deleteProperty","isInteger","jr","w","m","z","T","Y","M","_iterator","_step","_step$value","err","Vr","wn","pn","yn","jt","userAgent","Element","Node","__click","__className","__attributes","__style","__e","Text","__t","Jt","createTextNode","me","G","appendChild","Br","Comment","he","after","before","Xi","wt","$t","kt","Oe","Kt","qr","ct","Ie","V","J","bn","Ct","ht","_a$reactions","tl","_unused2","rl","Nt","xn","Wr","At","_m$reactions","nl","Xt","hl","An","Cn","teardown","il","kn","al","ll","first","nodes_start","Rn","$","ol","_ol","Qe","sl","fl","ul","last","Fe","nodes_end","transitions","_f$effects","cl","Vt","_r$e","effect","reaction","Qt","dl","vl","outro","Bt","er","We","map","tr","Rt","_iterator2","_step2","In","gl","_iterator3","_step3","out","_iterator4","_step4","is_global","Hr","Sn","_iterator5","_step5","Tn","Nn","x","Ln","_l","ml","Yr","Pn","defaultPrevented","_iterator6","elements","_step6","__on_r","capture","On","wl","zn","qt","pl","ft","cancelBubble","startsWith","yl","passive","removeEventListener","bl","_iterator7","_step7","ownerDocument","composedPath","__root","assignedSlot","parentNode","host","disabled","_z","_z2","_iterator8","_step8","_loop","currentTarget","rr","content","Ae","ve","importNode","cloneNode","lastChild","El","ee","Fn","Mn","xl","_t$intro","intro","anchor","recover","Ye","_ref","_ref$props","props","events","context","_ref$intro","$$events","_iterator9","_step9","removeChild","Ht","WeakMap","$l","ke","_ref2","_ref3","parseInt","substring","Ze","_t2","kl","$$slots","children","Cl","_r$head","getRootNode","head","id","code","Zr","Al","Rl","removeAttribute","className","toggle","Il","Sl","Gr","hasAttribute","ie","Tl","Un","nodeName","Nl","_e$__attributes","namespaceURI","Jr","Ll","defaultChecked","Kr","Xr","jn","Dl","mt","Pl","C","_Pl","_Pl2","_ref4","be","N","$$legacy","X","se","U","Ol","zl","_e","te","_t$intro2","_r$get","_r$get2","_r$get3","hydrate","component","$$host","sync","_loop2","_Object$keys","_i2","$set","assign","$destroy","$on","_len","_key","Vn","HTMLElement","_HTMLElement","$$ctor","$$s","attachShadow","mode","$$l","$$c","$$l_u","_connectedCallback","_this5","_iterator10","_step10","_i4","_iterator11","_step11","_i5","_a","_iterator13","_step13","$$cn","Fl","$$d","attributes","$$g_p","pt","$$p_d","shadowRoot","$$me","$$r","_iterator12","_step12","reflect","attribute","connectedCallback","attributeChangedCallback","disconnectedCallback","_this6","_this7","find","toLowerCase","childNodes","slot","Ml","_Vn","_this8","Bn","TextEncoder","Ul","Uint8Array","padStart","join","jl","_jl","_args10","now","Math","round","random","qn","algorithm","challenge","salt","signature","_qn","_callee11","_callee11$","_context11","crypto","subtle","digest","encode","t1","Vl","AbortController","promise","signal","aborted","number","took","controller","Bl","Intl","DateTimeFormat","resolvedOptions","timeZone","_unused3","ql","atob","charCodeAt","Hl","floor","Wl","_Wl","_callee13","_args13","_callee13$","_context13","_ref7","_callee12","_callee12$","_context12","decrypt","iv","clearText","TextDecoder","decode","importKey","reject","E","ERROR","VERIFIED","VERIFYING","UNVERIFIED","EXPIRED","Yl","Zl","Gl","Jl","Kl","Xl","Ql","ea","ta","ra","na","ia","la","Lr","Dr","Ee","Me","min","hardwareConcurrency","tt","nr","ir","lr","rt","dispatchEvent","CustomEvent","detail","ar","documentElement","lang","split","Dt","origin","endsWith","Pt","wr","or","Q","ariaLinkLabel","expired","footer","label","verified","verifying","waitAlert","sr","Ue","R","j","nt","je","Ve","fe","xe","Ne","Xn","Qn","Hn","hr","gr","vr","clearTimeout","cr","dr","mr","I","Jn","pluginName","Ot","pr","it","$e","requestAnimationFrame","fr","btoa","_i6","_xe","destroy","ur","lt","Wn","_Wn","L","_","b","S","q","_L","qe","_L2","globalThis","Response","verifyurl","Er","Yn","Zn","blockedCountries","classifier","disableRules","email","expectedCountries","expectedLanguages","fields","ipAddress","Gn","reduce","replace","RegExp","_iterator14","altchaPlugins","_step14","clarify","dispatch","getConfiguration","xr","getFloatingAnchor","$r","getState","kr","solve","br","setState","Le","setFloatingAnchor","Cr","verify","_console","_len2","_key2","some","Kn","reportValidity","gt","_i7","_xe2","onErrorChange","preventDefault","requestSubmit","_r","_i8","_xe3","onStateChange","clientHeight","clientWidth","bottom","max","ei","_ei","_Zn","ot","st","vi","Pr","payload","classification","yr","_br","ti","maxnumber","solution","obfuscated","t2","t3","t4","_ti","_i10","_b2","_p","_args6","ceil","altchaCreateWorker","all","_i9","_b","postMessage","start","terminate","_it","auto","blockspam","customfetch","floatinganchor","delay","floatingoffset","floating","expire","challengeurl","debug","hidefooter","hidelogo","mockerror","refetchonexpire","spamfilter","strings","workers","workerurl","ri","state","_$e","_ref6","Ar","Rr","at","zt","Ir","ni","_t","Sr","Be","__change","Ft","ii","li","ai","oi","si","Tr","fi","Nr","ui","ci","di","required","configure","getPlugin","challengejson","plugins","customElements","Altcha","PageContact","hookupButtonSubmitFormContactUs","flagButtonPrimary","PageContactSuccess","hashPageContactSuccess","PageDogHome","hookupDogHome","getOptionJsonFromObjectJsonAndKeys","objectJson","keyText","keyValue","valueSelected","getOptionJsonFromObjectJson","getObjectText","getListObjectsFromIdDictAndCsv","idDict","idCsv","listObjects","ids","msgError","labelError","idLabelError","TableBasePage","cursorYInitial","rowInitial","placeholder","dragSrcEl","dragSrcRow","hookupTableCellDdls","isPopState","isSinglePageApp","hookupFilters","hookupButtonsSaveCancel","hookupTableMain","saveRecordsTableDirtySinglePageApp","saveRecordsTableDirty","filters","getFormFilters","filtersDefault","callFilterTableContent","sharedHookupFilters","hookupButtonApplyFilters","hookupSearchTextFilter","hookupFilterActive","filterSelector","idFormFilters","flagActiveOnly","filterActiveOld","parentDiv","isChecked","filterActiveNew","filterActive","svgElement","wasChecked","handleChangeFilter","filterValuePrevious","hookupFilter","filterFlag","handler","areDirtyFilters","tbody","rows","row","dirtyInputs","dirtyInput","isDirtyLabel","initialisedElements","initialisedElement","updateAndToggleShowButtonsSaveCancel","hookupFilterIsNotEmpty","flagIsNotEmpty","idButtonApplyFilters","flagSearch","hookupFilterDog","attrIdDog","hookupFilterCommandCategory","attrIdCommandCategory","filterCommandCategory","idCommandCategory","filterCommands","commandsInCategory","command","sortedCommands","sort","localeCompare","filterCommand","idCommandPrevious","Event","hookupFilterCommand","attrIdCommand","hookupFilterLocation","attrIdLocation","callbackLoadTableContent","table","getTableMain","bodyTable","rowsJson","flagRows","every","display_order","loadRowTable","rowJson","getAndLoadFilteredTableContentSinglePageApp","hookupButtonCancel","records","getTableRecords","formElement","idTextareaConfirm","callSaveTableContent","flagStatus","flagSuccess","_verbose","flagMessage","_this9","dirtyOnly","record","getJsonRow","_this10","_this11","handleClickAddRowTable","_rowBlank","attrIdRowObject","countRows","initialiseRowNew","prepend","postInitialiseRowNewCallback","_this12","cacheRowBlank","selectorRowNew","flagRowNew","rowBlankTemp","initialiseSliderDisplayOrderRowNew","slidersDisplayOrder","flagDisplayOrder","flagSlider","maxDisplayOrder","slider","sliderDisplayOrder","hookupSlidersDisplayOrderTable","selectorDisplayOrder","hookupChangeHandlerTableCells","inputSelector","_this13","handleChangeNestedElementCellTable","input","wasDirtyParentRows","getAllIsDirtyRowsInParentTree","wasDirtyElement","isDirtyElement","cascadeChangedIsDirtyNestedElementCellTable","isDirtyRow","wasDirtyRow","shift","hookupChangeHandlerTableCellsWhenNotCollapsed","_this14","hookupFieldsCodeTable","flagCode","hookupFieldsNameTable","hookupFieldsDescriptionTable","flagDescription","hookupFieldsNotesTable","flagNotes","hookupFieldsActive","_this15","flagTable","handleClickRowNew","selectorButton","selectorButtonDelete","selectorButtonUndelete","hookupButtonsRowDelete","hookupButtonsRowUndelete","_this16","changeHandler","handleClickButtonRowDelete","changeEvent","changeElement","_this17","valuePrevious","wasDirty","buttonAddTemplate","idContainerTemplateElements","flagAdd","buttonAdd","replaceWith","_this18","handleClickButtonRowUndelete","_this19","buttonDeleteTemplate","buttonDelete","hookupTdsAccessLevel","hookupTableCellDdlPreviews","flagAccessLevel","accessLevels","fieldFlag","optionList","_this20","cellSelector","ddlHookup","ddlSelector","handleClickTableCellDdlPreview","_this21","optionObjectList","_this22","idSelected","td","ddl","optionObjectJson","toggleColumnCollapsed","flagColumn","isCollapsed","toggleColumnHasClassnameFlag","toggleColumnHeaderCollapsed","hookupFieldsCommandCategory","_this23","idTable","filterCommandCategories","hookupCommandCategoryDdls","_this24","handleChangeCommandCategoryDdl","ddlCategory","idCommandCategoryRowOld","getIdCommandCategoryRow","idCommandCategoryRowNew","idCommandCategoryFilter","getIdCommandCategoryFilter","tdCommand","ddlCommand","hookupFieldsCommand","_this25","parentTr","tdCommandCategory","idCommandCategoryRow","filterCommandList","handleChangeCommandDdl","idCommandNew","getIdCommandRow","commandNew","divCommandCategory","ddlCommandCategory","elementCommandCategory","commandCategoryFilter","commandFilter","valueCurrentCommandCategoryFilter","valueCurrentCommandFilter","getHasCommandCategoryFilter","elementCommand","getIdCommandFilter","idCommand","getHasCommandFilter","idCommandFilter","hookupFieldsDog","flagDog","filterDogs","getIdDogRow","elementDog","columnFlag","isRequiredFlag","classnameFlag","columnTh","columnThHasFlag","toggleColumnHeaderHasClassnameFlag","isDirtyMainTable","DogMixinPage","pageCurrent","hookupLocalStorageDog","DogTableMixinPage","_DogMixinPage","hookupTable","hookupFieldsLocation","filterLocations","PageDogCommandCategories","_TableBasePage","dogMixin","inputCode","inputName","buttonActive","jsonRow","PageDogCommands","inputHandSignalDefaultDescription","flagHandSignalDefaultDescription","inputCanHaveButton","flagCanHaveButton","inputNotes","newRows","newestRow","clickableElementsSelector","clickableElement","click","hookupTextareasHandSignalDefaultDescription","hookupFieldsCanHaveButton","PageDogDogCommandLinks","inputHandSignalDescription","flagHandSignalDescription","attrIdDogCommandLink","hookupTextareasHandSignalDescription","PageDogLocations","flagLocationParent","getIdLocationParentRow","elementLocationParent","hookupFieldsLocationParent","idLocationRow","PageDogButtonIcons","attrIdButtonIcon","flagImage","getIdImageRow","elementImage","hookupFieldsImage","buttonicons","PageDogCommandButtonLinks","hookupFilterButtonShape","hookupFilterColour","hookupFilterButtonIcon","attrIdButtonShape","attrIdColour","attrIdCommandButtonLink","hookupFieldsButtonShape","hookupFieldsColour","hookupFieldsButtonIcon","flagButtonShape","filterButtonShapes","flagColour","filterColours","filterButtonIcons","_rowBlankDistraction","_rowBlankAssessmentCommandModalityLink","PageDogAssessment","idTableAssessment","inputWeather","flagWeather","inputLightingLevel","flagLightingLevel","inputTemeratureCelcius","flagTemperatureCelcius","inputLocation","inputUserHandler","flagUserHandler","idAssessment","attrIdWeather","attrIdLightingLevel","flagDistraction","getDirtyDistractions","flagAssessmentCommandModalityLink","getDirtyAssessmentCommandModalityLinks","dirtyRows","idTableDistractions","dirtyRow","inputDistractionType","distractionType","inputIntensityLevelEmotional","intensityLevelEmotional","inputIntensityLevelScent","intensityLevelScent","inputIntensityLevelSight","intensityLevelSight","inputIntensityLevelSound","intensityLevelSound","inputIntensityLevelTouch","intensityLevelTouch","inputQuantity","quantity","inputProximityMetres","proximityMetres","notes","active","dirtyDistractions","indexRow","_dirtyDistractions$pu","flagDistractionType","flagDistractionIntensityLevelEmotional","flagDistractionIntensityLevelScent","flagDistractionIntensityLevelSight","flagDistractionIntensityLevelSound","flagDistractionIntensityLevelTouch","flagQuantity","flagProximityMetres","flagIcon","attrIdDistraction","attrIdDistractionType","idTableAssessmentCommandModalityLinks","idAssessmentCommandModalityLink","inputCommand","inputCommandModality","commandModality","inputBribe","bribe","inputDistanceFromHandler","distanceFromhandler","inputIsInHearingRangeOfHandler","isInHearingRangeOfHandler","inputIsInScentRangeOfHandler","isInScentRangeOfHandler","inputIsInSightOfHandler","isInSightOfHandler","inputIsOnLead","isOnLead","dirtyLinks","_dirtyLinks$push","attrIdAssessmentCommandModalityLink","flagCommandModality","flagBribe","flagDistanceFromHandlerMetres","flagIsInHearingRangeOfHandler","flagIsInScentRangeOfHandler","flagIsInSightOfHandler","flagIsOnLead","attrIdCommandModality","attrIdBribe","flagAssessmentResponse","getDirtyAssessmentResponses","rowAssessmentCommandModalityLink","idTableAssessmentResponses","inputResponseQualityMetric","responseQualityMetric","inputObedienceLevel","obedienceLevel","inputValueMeasured","valueMeasured","dirtyResponses","flagResponseQualityMetric","flagObedienceLevel","flagValueMeasured","attrIdAssessmentResponse","attrIdResponseQualityMetric","attrIdObedienceLevel","assessment","filterAssessment","hookupTableAssessmentHeader","hookupTableDistractions","hookupTableAssessmentCommandModalityLinks","hookupTableAssessmentFieldWeather","hookupTableAssessmentFieldLightingLevel","hookupTableAssessmentFieldTemperature","hookupTableAssessmentFieldLocation","hookupTableAssessmentFieldUserHandler","hookupTableAssessmentFieldNotes","filterWeathers","filterLightingLevels","filterUserHandlers","hookupTableDistractionsFieldsDistractionType","hookupTableDistractionsFieldsIntensityLevelEmotional","hookupTableDistractionsFieldsIntensityLevelScent","hookupTableDistractionsFieldsIntensityLevelSight","hookupTableDistractionsFieldsIntensityLevelSound","hookupTableDistractionsFieldsIntensityLevelTouch","hookupTableDistractionsFieldsQuantity","hookupTableDistractionsFieldsProximityMetres","hookupTableDistractionsFieldsNotes","hookupTableDistractionsFieldsActive","filterDistractionTypes","filterDistractionIntensityLevels","handleClickAddRowTableDistractions","postInitialiseDistractionRowNewCallback","hookupTableAssessmentCommandModalityLinksFieldsCommandCategory","hookupTableAssessmentCommandModalityLinksFieldsCommand","hookupTableAssessmentCommandModalityLinksFieldsCommandModality","hookupTableAssessmentCommandModalityLinksFieldsBribe","hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandlerMetres","hookupTableAssessmentCommandModalityLinksFieldsIsInHearingRangeOfHandler","hookupTableAssessmentCommandModalityLinksFieldsIsInScentRangeOfHandler","hookupTableAssessmentCommandModalityLinksFieldsIsInSightOfHandler","hookupTableAssessmentCommandModalityLinksFieldsIsOnLead","hookupTableAssessmentCommandModalityLinksFieldsTrialCount","hookupTableAssessmentCommandModalityLinksFieldsNotes","hookupTableAssessmentCommandModalityLinksFieldsResponses","hookupTableAssessmentCommandModalityLinksFieldsActive","filterCommandModalities","filterBribes","parentTd","responsesTable","flagTableMain","headRow","thResponseQualityMetric","thObedienceLevel","thValueMeasured","thNotes","thActive","templateAddIcon","assessmentCommandModalityLinks","link","assessmentCommandModalityLink","responses","responseKey","createNewRowTableAssessmentResponses","outerHTML","responseRows","hookupTablesAssessmentResponses","hookupTableAssessmentResponsesFieldsResponseQualityMetric","hookupTableAssessmentResponsesFieldsObedienceLevel","hookupTableAssessmentResponsesFieldsValueMeasured","hookupTableAssessmentResponsesFieldsNotes","hookupTableAssessmentResponsesFieldsActive","filterResponseQualityMetrics","filterObedienceLevels","handleClickAddRowTableAssessmentResponses","tableResponses","postInitialiseAssessmentResponseRowNewCallback","countActiveRows","divTrialCount","flagTrialCount","handleClickAddRowTableAssessmentCommandModalityLinks","postInitialiseAssessmentCommandModalityLinkRowNewCallback","isNew","tdResponseQualityMetric","flagDdlPreview","divResponseQualityMetric","idResponseQualityMetric","tdObedienceLevel","divObedienceLevel","idObedienceLevel","tdValueMeasured","tdNotes","tdActive","templateDeleteIcon","hashPageDogAssessment","PageDogAssessments","hookupFilterWeather","hookupFilterLightingLevel","hookupFilterHandler","inputTemperatureCelcius","getIdWeatherRow","getIdLightingLevelRow","getIdLocationRow","getIdUserHandlerRow","elementWeather","elementLightingLevel","elementLocation","elementUserHandler","flagDetail","detailButton","hookupFieldsDetail","hookupFieldsWeather","hookupFieldsLightingLevel","hookupFieldsTemperature","hookupFieldsHandler","PageAccessibilityReport","hashPageAccessibilityReport","PageAccessibilityStatement","hashPageAccessibilityStatement","PageLicense","hashPageLicense","PagePrivacyPolicy","hashPagePrivacyPolicy","PageRetentionSchedule","hashPageDataRetentionSchedule","Router","pages","module","routes","loadPage","hashPage","PageClass","getClassPageFromHash","currentPage","pageJson","handlePopState","loadPageCurrent","history","pushState","navigateToUrl","appendHistory","loadPageBodyFromResponse","App","dom","setupEventListeners","handleGlobalClick","initPageCurrent","app","domReady","readyState"],"sourceRoot":""} \ No newline at end of file diff --git a/static/docs/dial-gauge-1.jpg b/static/docs/dial-gauge-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..274af27239db176a1caf46d97f1c3fbec13361d1 GIT binary patch literal 9800 zcmc(EcUV)|w`c%C6h);fCCo^Z8fnsD1Oe&Ng0w`Xcj+ZS#!*yihL#KjK}rZ6sgV%K zC;~zRqyz|6dhaEa1RlS8zx$gz_x-;2?t9<&zPJB4XRWi(*{iR;_Bv-HXJY_e05j8t z3m2G}&o9i(%q$nLuwFbL*Vx!DUAb|MgX6}v8#g$41b8{Q__%M}xcT!z>5@CF8RD_Zeax-UCY4VKJ`6I&F2w$Fuf&a<(yX2e@Rp^_+{z=us#5U=c`+RwLc zSXjn5&EugQ{m11+6dNA_ao*a5l~+|tm!;xtkQ&x#s0E+3*!G{ziTfH3#d=l7W||4( zGiLyfGXQ_01WY9)bO8^lGPOD*C+A!`olY;7@sV~ z{QBSb4JOa4eeAP68Ux{89PMRInZ@;8Z%OHzwK2er@$<-`c*g6UD6&(m zs`QEH0fv&6k?JVcv9O2>Gr}exL$5xFWY9 zGbQR0(MAKW&IR;uM3%iOJV1WQ`F*7Hz_-o+>M$1mH9O!nFF7Q_j=MhWGyq1k?alqt z$~h_5dOVaOPkT3dbY;;%WVC?0X_?-e?ccquiZl$Y{#<+l zp)c-0k{rEThf03%0!uzKm7rDpA;5noY)bpFVgXE{6Bspj24LP2 z7JK;^zgn5gHmVM4+$D7pLP9shqO?2g6vI5o?{}n@m-7yWo5R!S>gv4Of-cXXY-OlK zsJZiwTM|g|ow>46m)%WU{QNPg+=Y;}tv<4v;W4AsWN}p0*&n-?S4Y*~ybu-}j^(tA zFY2z|fpnpOJaSBAlZ|5l7dU$q$R5K ze87HUCc-w|e`Wmn+2ucm9g@<(rkv05C1p~nTdA=8KeVk{I}iK4udK)l3@#6=z&R}{ z#381JU0UXa1-ld1ot&@!SW$Kk8kL{a8fo#UU1M{YBy=+_2faLQ*E%&%AMSPEb|E63 zH<1T&S$ALV1yQwf_t(YuetWaJH!^NO)jdx>NBF`u5cd8~R7>&OU$3E&Z9P0Dl2%14 z6Mr16PsPI&hYdku2_vnKvTX-LRH4un3_Q?yWM)d3BZAcN%vB1n*E?!x}?$gbzhjA6W@R-1ZJJ>^{U87vRPU(}?juKx-?)7fHTEG$25r;klTwXl`K>8yp7KSm)yz|YerNHv2sRu2v zn|>EQZ#a*=Q|j?=ycW1}3V#u|Ze=+!yKF-`1MrcldNI<+_ud$vzQc6QK=H6sZ82N> zrge=l-|e3o%tGy?#Kk3y%uJ7P-;Mx`CCn=`ZspxA(|ZXSR_`m`#_qJ*_-<+F9dEjSVedn6#sG87 zUL*wLb`YGutX)6PyS@`6vNU1uG=Rqr>7KH6DLI2REHnWe$?yL+ZppNCOK7%582dVy zEvS5>=P1UXujq6Ff&CN`GuvjAg5{M6G%&Kp*n4I3I0#2qZkP2{Ll8wy4Fyr!s)|Q_ z7iVeat)!}yBE>|ueN%mcbQrffe_-}h87qc>6+hqVYmlK3{ZLm*W@y*g2KrrEj7+A} z)ni%y;hmqmI&JmUVk8x+sV!a-Q6{l4RG5SOToWN>uSuPCxq)z(-g_&?cb38}GgLgF zE!P^{UW}=$t*Df5SzN$PfC;IK3#2k7pkjO9(okScp#MOi*z_eAs&8dSZ(1U5zLS<{ z{5?deHD%`FgP1(2XpY=y|H_s%8I%A+))X2eGW0eNwm3BXf`s4spVnpD5pEpj>-rBtD1AOj%%3PBad32ZKHhChYF_0M%XXbKMvf^{uQxp@YY4&O6SKp1DQgi`W)_B> zPpLU;t2%xbSlK(f<`d4-FXtGGlz3gHu0(nH;8%g)D?d^(;&Um2(raeEqDU7NV{lIF zmvH++{!uhpKrgPHoa>zEI2kQmFiGyT4X<%B%xEYMrvA#Iw=f84s#bs zUXw>CPs|fj*jlH3jh3}dmzI)G{KcE7Yl-b3*6I7=DbYhj;6~qrv?l=#OYOP3VeI0I zL{f^ml|_{nE%IjRNBG04A}$fy!kDZxX1UYngB)?EFPzQe@!0)miZd;&@vGKRb99ob zXJpX){uO^(orA-BPafHDrM9EC`omj~#GQSW;;a%5e=4(fETn&(v}K(()xIA+NEEL_ zQRQw$NtM`uzTvA9qMsdj|L7c{aNBC$8aR()EZff5{MR(|M^)^!W8_Ej0Cu^rYK^QH zHB~L^Ghja%wXbO_e9w2?hi)?ujEhPlXCTbLN`FvWi8d(#*fBI5?YNcp~GeCrr9P+lO)?E&j|>HkzILu&}A8+_t)=q`wVDZd1>m?W&1%s zot*IE4FuvON4z~hSpYOAThNaVn@8sek+uAeu-!!Ev1XALpOhH0*VS!}hgQvfcO*K1 z>N4oxED~cLrumwZ!pjNMk!Jvl(R7FTZ+VEcFLseJW_bx|YSjS^d+{i~S)pKC%gJV= z^5LbBaGd~@Xa=jOuYdRY!ElzFX7BB{V~LBdp3N0ip=q9b-jj|4n0bc+r!sLUdAVB0 zfi&cgdh_L=bP(A``aGpx<*!RkHbyXI$ce1x0jot%+M`G59xOn-Zm3I%xzhy(d z5fampj{v~lU;bA)>rXA8)K>z9gO&?pQK_n=x=PVpjsR}t@V%`7Y88+APQX-l^E!Qu zU%jE{cBK0?1EUUfGB}UmGO);p8ifOM74&X(yRCvs687&+@C>9T;IkHMPKX~A1mt4W zaUkPw4T`fXipN66;$3B2>1F7HFl6_U0{dkZ^WW^0$R+z90(#iWS9Z7D-7@~zEFn7w z;p8yf7c&T5aXR$$+ za+waXppQ_1Fc@&@gjSLVPQ$)&_sMT~6{N7}8*uu#c%vDeT4HwH&jNWkrrLGHjZ-Wg zO7!gE7e^&NgRE;s(c=l)Qq_xa?iC(8_xI^YjrFv^ubti=g;O?yC*6lWDZs_q;f_&= z7e2=g8|>3nt@2rObmf(`cd2$0Yo*~WE!OF%$vb4Q5Oo1vI=W8}f|ia7;0Hb?9$3h!0={9hKb1@>pi`+X*`H$8$wVat>D$sdwxl%CHXu8bfiYx z&AS`!9O7f|g^!WNywPyPlQT$*ygvrET+IqFR(MB?(HJeQLgR$TWIM-hp$(XVLh)D- zzVfG5bV7Dob;p6NY|{yFtV**h$~50)DRc7m#G=U&*>Aj%&^(W1_tO_l4mR}_oyZnx z`ku9u8kHqSihngBnIPoWD4)xY4oDIHiqoA@+D}Y;yR4QomAwh-wjV}Rp8F;wy&@<)s1+ zHe+P_7LK}vN>2r~SP;K7x6(D5ZGTjMs33w*FO)NX=gS}br!oF#0I1L}G`e`RW8Nbi5u`D5=aH?0aRB`!_Kreaofh-1rR z0AIVsSJQRrt9&vQ_#Q#~)8fLR;Qavea>NEy z@qROIRk#g!elmjT&OM8Nbfp2&if<^MmG&`|%w6}{7pCqXataFly0x^?Yl*kBayqvdg&3?i`KT!qk zb!@8XII+vD8`wlnc|OGf1yMP-B;H%M)(U+x1_uXd>XepJ5 zAgR_UgUaWVMqm4sOtK~X2?dUHLpT?-^z=>}WBomx!H}e7?BkEthS>4$)lbBSY^yf2 z+mQ4MC((@9&XWoMs!z159iM4Vtr}Lz^95cXDW+BS$dd+xsf)cED%mGRV;&947QPt{ z7YXi{RJybl8dIN!h}Plc)!yi=RVqkc9YEm^XbK+=5w(^4L!#==iCclLz5TPkTvKR- z{sYCzE(JN20*;6Xm7_?TpuMzIGX+#wRzkuq%>Ua^w&0jKugAMCh4t6<2|%ZDY<&q# z+VRx$o#>~mwQ$tyyGmc5ImKP+qKkOdV?}V@rCTt+<~J+#^&eAHllkQBW3NIVU_V(# zysAm-iLS*f$Sp-)mri{9A8P*Vu8}&GvIH1DB3ueNp4ctBjlb(EyBFavO0-51eqS1w zC|GW$lxkH6(lL{@QzQ7>oALYbul6k9@@=24WJOpHe$=$0e=7I4@jim_s6WRFeWiLM zIWzevOzw0HLTQ1^#J}-&_f(bz4vb@)8tXqqV=^_j=_3<8UMFPZmfBj2)e}`^vh;}EVTaRDoiPyBZ)lBWQ5tp8mvdjHCn-|3=({}yQ z>TEaxY#aqbbb<8eDCe6W&K1zjG^92m%R=T$+yV~dvYGw^=+}$n=kJjE_-Torz>Rh} z(?)F(6!>A;4>Q?xE=<0Yv3CgndSyvHO(7LE{=mXNRhiq*qwfqLG8heE9RYnj z4L@T|`?rH>!5NPS+y4N$SQ>As3V*23^l~a)%IH#WM~kL`&Hw@q(3p-Vm9I`z4ji;x z2S_s^Hj)ZH=w(6afmrj4h(KuuDAP5Nwy5*d zXA@~b4#hSX#W&|{MAJml{8`^$S)B%oj3F~zFeks)G@8OCk!OH_*DdJkjSOY7EBMp; z9Wz<^gad51P$h?B-$pQ&Ia3Vrw(C)9cFZ7TbrLV=oIfwUE__WcxaFy+Z2wZ2JItVjpb`DS)3B-xZ80@ChHcllATG9-2o-W$~DCQP+? zELe%)UZnf@46uwT9;z7})?4O{(3Xw1CCrURr!Gup7-=5~7%pg7KAs?iY0dvg+{pfj z(3>ugs{FY>Fz}0G`KWD%~MSCGW0p1Y`op%T!yC9C)}Nm?CeN)4wcn$ zkSfXA)PcdQ76^PElexy+qVGNA-bfC)qA>$|QN$9g3T|k6gCirih?eOBMgR7-T6bfd z3KmdBykL9Kk})nZK5bAQXe#UAie0TWr7m`ILi2~zn(9o@Q)`OL^_%HGl5?Hdy^qB) zrxdTvj-9|Wz`>X02PXArfLpJY)6ry?+(5*4z$F&ze>V}M@~AoAlHhp{6w0{`bm;ih zPVr@>mN)pX4WHKyN3b!9SdY%oDcaFM2JEl*qg$*((|9o1^}sH;U}0R~S#GU6uC5cl zEzvW`W5DA1ZrQ**J+O)roKf;wgI)@vo6P>oPU_P_(}l|q;F~!>%o$);1#an{Pgj5` zkVe&#)4t$?2@V~lBUOp+#PR2>0J>tIR+>|SS6o&msw zo}kXCpw>)FcnJh!3!_y!kP+fIR z9HFQ}mI=a{-Ti7oAw)^>{dN#m8R|#O00aYMg0oehJh4g87%!)Q8^Y!~jXF;p3_&09 z=Q_Rey}6}t>2L^bNtfl~kMT8nIHjL_tP46Z#cFFPp8+a<-$Z)Updog(F~!59TFl2q zSOj*KYJ=*6>pr*TGpa; zl=K2M1B|VEGCyR~xwF_;XT2Us${W?f-02C(c6E4FAeKcNk5u{=N0umamYk!DN2oL( zZ4yC*U1=RNsW00WrQEJ&QWE!Yn+C{XSFl;xvuPKRS(TO&Y^}llP(kn7+BFZ{vHC{* z89*IA*gqaN?&w~2teAQ{h&HA+hPBYUJ4O`XYh3V?CL-6vYDc9k={l7yNSD?ny5S+9 z@!l_grJBD(d;`leR<$*RMi6DLPkCc=oo;3sbI@G&=bG&JHU#QwzaNmiadU-COG_l? zbySr&gg1E{6YqOTJT?Pzz!j5TIIUWL&E;DTuOX3_+fc&+QVumJKBUxfRDFQx^XM1jL!XFOX8K*8zFRr`svq?#@$r1<}2?0A&u+O7K z(|3r@j-5=iNrCN{3^N4UpMDC?&_il_qr%V!wJ5&S){$l~XP%AqE9>f-Z&{w z(;@>l%b6U|^k{Ge)bb2aJL+3HrX-Lx@VHZ~skEmy&D^6E?eEX1*@myMZ~3tKCI9iE zqRkZ_Nf&BJpZ(~i6R4`TPv&-|_i=mOsy#9UH*C99YN%6szRBM(k~8IitQeY?NY z5+#u8xK+^Uj@}@}s6efJqj}_oZ9VLQakWjRSqNN{iUKzI{u-yIC%ts3A3b`Dqm~ca z%YvFr8LnQ6J3uJ*X6{X`!a4?wsN2sNuJeF zsn>R2HTI8JD{uiQ5m^toDaveAQOuTBn$-J7CzL~1EnIUwkaE&+PfU~Bnao#Q$!*JA z_ms7`4fIU!pU%}M^pGth+d0V+p8q-dl&Y!#t3{tcNp{hBUZ$F4S+1)2_^C~wmoeMM zKv$uM;t7u7bq0H;I^9y>jzOtcJ|V_Kl}^$xO^ra4XniYXe$WF_8DyG4fS#&YI{`2Z^>ic4A;fZKR zI6Y_idMc#{>wM~|OgB`E*>~8HKGw*t#DK*29~1)|(RcqIt$$%x+_|5eT1{7&n~lNC zXB=$XA9+SEUcJ*L)udF1k^qU%gf*!Y)FsI*5uz(SO9e-4GF8FEPvVn^iQ8A_LQRf^ ze({r28-zxhkGbzZhywhgl@7RyAr~@)6fQboRz|Wiu9nGxVz;U7=YOnq8~14Vpbr7N zcmC0r=6^z)6~)ucw0@j+hquPfv)!$0oSiYw9jX~9Z6*xS=C@2%av1u8RA8?ZCwSG> zRB_V-OA~!B<2{vY43A`?jGwy=-KCrtqE#!r?FLpBvS-u#r`&0DlS5Wc^W48A{0m~1 zCat!&*WRYw8MYQ!pq+QQ)AltQSNM=-(TIpSCw1uVy`J|o6Y_NTH$lM!A54OqsUOj3 zdXl15=I=GXt$Kba{m2#Af;0X!7UE_iaGn=HgwweY zkw_lAPiT6Qt^TsFTF%=&fL+$FfARiz=$epKR!at-)R&pHt9~DSAu-wo=Y6Ib@Ok;s z8I_FusTub?+2H1L#}C1Wwlew&d7;WNMiMQlrY-0;VyepU8v#DOMFS8yIqz~>cmm~E zyLEhyqlE!Mx zcn|T2*pMxHZ{4Su4e;IH!G>2=DHl#ffj5 z3~3ls#HwQ_ae7~07g#PX&DV!kEuGFr{-)_*AEH{(b@EPjbTPu+tQ1*Q=e)P9a=7g=0z`i(&#h!zAtu{uI`2j6x=J)am? zXocH+v!MsBy83Q#Y=Z7o&>}>4MT@KJvE%{6T}3sUT3kb-%ZH;601=*_{_Y6>8Dnz! W&)C0)DF6T^;$Khw|9;AJM)@CZC~G$W literal 0 HcmV?d00001 diff --git a/static/docs/fetch-metrics-logo.png b/static/docs/fetch-metrics-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..8cc3cc4fa8e5d53bfae3ea33abdf5a3fdbf30921 GIT binary patch literal 60361 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 WHqKLLkT(B&Aup>UQ!8Z>{C@yP4_34Q literal 0 HcmV?d00001 diff --git a/static/docs/fetch-metrics-logo.xcf b/static/docs/fetch-metrics-logo.xcf new file mode 100644 index 0000000000000000000000000000000000000000..18fadba582aef5eeac2eee7f082bd4a136e70ae8 GIT binary patch literal 436774 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𝔡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 arc}3iztM`0xf50p<;zh;bPfUL|2F~m@i0aJ literal 0 HcmV?d00001 diff --git a/static/docs/robots.txt b/static/docs/robots.txt new file mode 100644 index 0000000..affacb8 --- /dev/null +++ b/static/docs/robots.txt @@ -0,0 +1,6 @@ +User-agent: * +Disallow: /qa +Disallow: /dev +Disallow: /dog + +Sitemap: https://fetch-metrics.co.uk/sitemap.xml \ No newline at end of file diff --git a/static/js/api.js b/static/js/api.js index a109f41..fc75095 100644 --- a/static/js/api.js +++ b/static/js/api.js @@ -125,4 +125,24 @@ export default class API { return await API.request(hashSaveDogCommandButtonLink, 'POST', dataRequest); } + // Assessments + static async saveAssessments(assessments, formFilters, comment) { + let dataRequest = {}; + dataRequest[flagFormFilters] = DOM.convertForm2JSON(formFilters); + dataRequest[flagAssessment] = assessments; + dataRequest[flagComment] = comment; + return await API.request(hashSaveDogAssessment, 'POST', dataRequest); + } + + // Assessments + static async saveAssessmentsDistractionsAndResponses(assessments, formFilters, comment) { + let filtersJson = DOM.convertForm2JSON(formFilters); + filtersJson[attrIdAssessment] = null; + let dataRequest = {}; + dataRequest[flagFormFilters] = filtersJson; + dataRequest[flagAssessment] = assessments; + dataRequest[flagComment] = comment; + return await API.request(hashSaveDogAssessmentDistractionAndResponse, 'POST', dataRequest); + } + } diff --git a/static/js/pages/base.js b/static/js/pages/base.js index 1df50c1..cc1198c 100644 --- a/static/js/pages/base.js +++ b/static/js/pages/base.js @@ -8,6 +8,7 @@ import Utils from "../lib/utils.js"; import OverlayConfirm from "../components/common/temporary/overlay_confirm.js"; import OverlayError from "../components/common/temporary/overlay_error.js"; +import Validation from "../lib/validation.js"; export default class BasePage { constructor(router) { @@ -176,7 +177,7 @@ export default class BasePage { } hookupButtonSave() { - Events.initialiseEventHandler('form.' + flagFilter + ' button.' + flagSave, flagInitialised, (button) => { + Events.initialiseEventHandler('.' + flagContainer + '.' + flagSave + '.' + flagCancel + ' button.' + flagSave, flagInitialised, (button) => { button.addEventListener("click", (event) => { event.stopPropagation(); button = event.target; @@ -200,9 +201,11 @@ export default class BasePage { return LocalStorage.getLocalStorage(this.hash); } - toggleShowButtonsSaveCancel(show, buttonContainerSelector = '.' + flagContainer + '.' + flagSave + '.' + flagCancel) { // , buttonSave = null, buttonCancel = null - let buttonSave = document.querySelector(buttonContainerSelector + ' button.' + flagSave); - let buttonCancel = document.querySelector(buttonContainerSelector + ' button.' + flagCancel); + toggleShowButtonsSaveCancel(show, buttonContainerSelector = null) { // , buttonSave = null, buttonCancel = null + if (Validation.isEmpty(buttonContainerSelector)) buttonContainerSelector = '.' + flagContainer + '.' + flagSave + '.' + flagCancel; + let buttonSave = document.querySelector(buttonContainerSelector + ' ' + idButtonSave); + let buttonCancel = document.querySelector(buttonContainerSelector + ' ' + idButtonCancel); + Utils.consoleLogIfNotProductionEnvironment({ show, buttonContainerSelector, buttonCancel, buttonSave }); if (show) { buttonCancel.classList.remove(flagIsCollapsed); buttonSave.classList.remove(flagIsCollapsed); diff --git a/static/js/pages/base_table.js b/static/js/pages/base_table.js index 994855d..6dbf5c4 100644 --- a/static/js/pages/base_table.js +++ b/static/js/pages/base_table.js @@ -299,7 +299,7 @@ export default class TableBasePage extends BasePage { .catch(error => console.error('Error:', error)); } hookupButtonCancel() { - Events.initialiseEventHandler(idFormFilters + ' button.' + flagCancel, flagInitialised, (button) => { + Events.initialiseEventHandler('.' + flagContainer + '.' + flagSave + '.' + flagCancel + ' button.' + flagCancel, flagInitialised, (button) => { button.addEventListener("click", (event) => { event.stopPropagation(); button = event.target; @@ -756,6 +756,8 @@ export default class TableBasePage extends BasePage { let formFilters = TableBasePage.getFormFilters(); let areDirtyFilters = DOM.hasDirtyChildrenContainer(formFilters); + console.log({ records, isDirtyMainTable, formFilters, areDirtyFilters }); + this.toggleShowButtonsSaveCancel(isDirtyMainTable && !areDirtyFilters); } } diff --git a/static/js/pages/dog/assessment.js b/static/js/pages/dog/assessment.js index 19ab5d4..c241f0b 100644 --- a/static/js/pages/dog/assessment.js +++ b/static/js/pages/dog/assessment.js @@ -14,7 +14,7 @@ var _rowBlankAssessmentCommandModalityLink; export default class PageDogAssessment extends TableBasePage { static hash = hashPageDogAssessment; static attrIdRowObject = attrIdAssessment; - callSaveTableContent = API.saveAssessments; + callSaveTableContent = API.saveAssessmentsDistractionsAndResponses; constructor(router) { super(router); @@ -32,16 +32,189 @@ export default class PageDogAssessment extends TableBasePage { if (rowJson == null) return; if (_verbose) { Utils.consoleLogIfNotProductionEnvironment("applying data row: ", rowJson); } } + getTableRecords(dirtyOnly = false) { + dirtyOnly = true; + let row = document.querySelector(idTableAssessment + ' tbody tr.' + flagAssessment); + return [this.getJsonRow(row)]; + } getJsonRow(row) { + console.log("getJsonRow: ", row); if (row == null) return; - /* - let inputTemperatureCelcius = row.querySelector('td.' + flagTemperatureCelcius + ' input'); - let buttonActive = row.querySelector('td.' + flagActive + ' .' + flagActive); - */ + let inputWeather = row.querySelector(idTableAssessment + ' td.' + flagWeather + ' .' + flagWeather); + let inputLightingLevel = row.querySelector(idTableAssessment + ' td.' + flagLightingLevel + ' .' + flagLightingLevel); + let inputTemeratureCelcius = row.querySelector(idTableAssessment + ' td.' + flagTemperatureCelcius + ' .' + flagTemperatureCelcius); + let inputLocation = row.querySelector(idTableAssessment + ' td.' + flagLocation + ' .' + flagLocation); + let inputUserHandler = row.querySelector(idTableAssessment + ' td.' + flagUserHandler + ' .' + flagUserHandler); + let inputNotes = row.querySelector(idTableAssessment + ' td.' + flagNotes + ' .' + flagNotes); + // let buttonActive = row.querySelector(idTableAssessment + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive); + let idAssessment = row.getAttribute(attrIdAssessment); let jsonRow = {}; - jsonRow[attrIdAssessment] = row.getAttribute(attrIdAssessment); + jsonRow[attrIdAssessment] = idAssessment; + jsonRow[attrIdWeather] = DOM.getElementAttributeValueCurrent(inputWeather); + jsonRow[attrIdLightingLevel] = DOM.getElementAttributeValueCurrent(inputLightingLevel); + jsonRow[flagTemperatureCelcius] = DOM.getElementAttributeValueCurrent(inputTemeratureCelcius); + jsonRow[attrIdLocation] = DOM.getElementAttributeValueCurrent(inputLocation); + jsonRow[flagUserHandler] = DOM.getElementAttributeValueCurrent(inputUserHandler); + jsonRow[flagNotes] = DOM.getElementAttributeValueCurrent(inputNotes); + jsonRow[flagActive] = true; // buttonActive.classList.contains(flagDelete); + jsonRow[flagDistraction] = this.getDirtyDistractions(idAssessment); + jsonRow[flagAssessmentCommandModalityLink] = this.getDirtyAssessmentCommandModalityLinks(idAssessment); + console.log({ jsonRow }); return jsonRow; } + getDirtyDistractions(idAssessment) { + let dirtyRows = document.querySelectorAll(idTableDistractions + ' tbody tr.' + flagDistraction + '.' + flagDirty); + if (dirtyRows == null || dirtyRows.length == 0) return []; + // dirtyRows = Array.from(dirtyRows); + let dirtyRow, + inputDistractionType, distractionType, + inputIntensityLevelEmotional, intensityLevelEmotional, + inputIntensityLevelScent, intensityLevelScent, + inputIntensityLevelSight, intensityLevelSight, + inputIntensityLevelSound, intensityLevelSound, + inputIntensityLevelTouch, intensityLevelTouch, + inputQuantity, quantity, + inputProximityMetres, proximityMetres, + inputNotes, notes, + buttonActive, active; + console.log('getDirtyDistractions'); + console.log({ dirtyRows }); + let dirtyDistractions = []; + for(let indexRow = 0; indexRow < dirtyRows.length; indexRow++) { + dirtyRow = dirtyRows[indexRow]; + inputDistractionType = dirtyRow.querySelector('td.' + flagDistractionType + ' .' + flagDistractionType); + distractionType = DOM.getElementAttributeValueCurrent(inputDistractionType); + inputIntensityLevelEmotional = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelEmotional + ' .' + flagDistractionIntensityLevelEmotional); + intensityLevelEmotional = DOM.getElementAttributeValueCurrent(inputIntensityLevelEmotional); + inputIntensityLevelScent = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelScent + ' .' + flagDistractionIntensityLevelScent); + intensityLevelScent = DOM.getElementAttributeValueCurrent(inputIntensityLevelScent); + inputIntensityLevelSight = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelSight + ' .' + flagDistractionIntensityLevelSight); + intensityLevelSight = DOM.getElementAttributeValueCurrent(inputIntensityLevelSight); + inputIntensityLevelSound = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelSound + ' .' + flagDistractionIntensityLevelSound); + intensityLevelSound = DOM.getElementAttributeValueCurrent(inputIntensityLevelSound); + inputIntensityLevelTouch = dirtyRow.querySelector('td.' + flagDistractionIntensityLevelTouch + ' .' + flagDistractionIntensityLevelTouch); + intensityLevelTouch = DOM.getElementAttributeValueCurrent(inputIntensityLevelTouch); + inputQuantity = dirtyRow.querySelector('td.' + flagQuantity + ' .' + flagQuantity); + quantity = DOM.getElementAttributeValueCurrent(inputQuantity); + inputProximityMetres = dirtyRow.querySelector('td.' + flagProximityMetres + ' .' + flagProximityMetres); + proximityMetres = DOM.getElementAttributeValueCurrent(inputProximityMetres); + inputNotes = dirtyRow.querySelector('td.' + flagNotes + ' .' + flagNotes); + notes = DOM.getElementAttributeValueCurrent(inputNotes); + buttonActive = dirtyRow.querySelector(idTableDistractions + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive); + active = buttonActive.classList.contains(flagDelete); + dirtyDistractions.push({ + [attrIdDistraction]: dirtyRow.getAttribute(attrIdDistraction) + , [attrIdAssessment]: idAssessment + , [attrIdDistractionType]: distractionType + , [flagDistractionIntensityLevelEmotional]: intensityLevelEmotional + , [flagDistractionIntensityLevelScent]: intensityLevelScent + , [flagDistractionIntensityLevelSight]: intensityLevelSight + , [flagDistractionIntensityLevelSound]: intensityLevelSound + , [flagDistractionIntensityLevelTouch]: intensityLevelTouch + , [flagQuantity]: quantity + , [flagProximityMetres]: proximityMetres + , [flagNotes]: notes + , [flagActive]: active + }); + }; + return dirtyDistractions; + } + getDirtyAssessmentCommandModalityLinks(idAssessment) { + let dirtyRows = document.querySelectorAll(idTableAssessmentCommandModalityLinks + ' > tbody > tr.' + flagAssessmentCommandModalityLink + '.' + flagDirty); + if (dirtyRows == null || dirtyRows.length == 0) return []; + dirtyRows = Array.from(dirtyRows); + let dirtyRow, idAssessmentCommandModalityLink, + inputCommand, command, + inputCommandModality, commandModality, + inputBribe, bribe, + inputDistanceFromHandler, distanceFromhandler, + inputIsInHearingRangeOfHandler, isInHearingRangeOfHandler, + inputIsInScentRangeOfHandler, isInScentRangeOfHandler, + inputIsInSightOfHandler, isInSightOfHandler, + inputIsOnLead, isOnLead, + inputNotes, notes, + buttonActive, active; + console.log('getDirtyAssessmentCommandModalityLinks'); + console.log({ dirtyRows }); + let dirtyLinks = []; + for(let indexRow = 0; indexRow < dirtyRows.length; indexRow++) { + dirtyRow = dirtyRows[indexRow]; + idAssessmentCommandModalityLink = dirtyRow.getAttribute(attrIdAssessmentCommandModalityLink); + inputCommand = dirtyRow.querySelector('td.' + flagCommand + ' .' + flagCommand); + command = DOM.getElementAttributeValueCurrent(inputCommand); + inputCommandModality = dirtyRow.querySelector('td.' + flagCommandModality + ' .' + flagCommandModality); + commandModality = DOM.getElementAttributeValueCurrent(inputCommandModality); + inputBribe = dirtyRow.querySelector('td.' + flagBribe + ' .' + flagBribe); + bribe = DOM.getElementAttributeValueCurrent(inputBribe); + inputDistanceFromHandler = dirtyRow.querySelector('td.' + flagDistanceFromHandlerMetres + ' .' + flagDistanceFromHandlerMetres); + distanceFromhandler = DOM.getElementAttributeValueCurrent(inputDistanceFromHandler); + inputIsInHearingRangeOfHandler = dirtyRow.querySelector('td.' + flagIsInHearingRangeOfHandler + ' .' + flagIsInHearingRangeOfHandler); + isInHearingRangeOfHandler = DOM.getElementAttributeValueCurrent(inputIsInHearingRangeOfHandler); + inputIsInScentRangeOfHandler = dirtyRow.querySelector('td.' + flagIsInScentRangeOfHandler + ' .' + flagIsInScentRangeOfHandler); + isInScentRangeOfHandler = DOM.getElementAttributeValueCurrent(inputIsInScentRangeOfHandler); + inputIsInSightOfHandler = dirtyRow.querySelector('td.' + flagIsInSightOfHandler + ' .' + flagIsInSightOfHandler); + isInSightOfHandler = DOM.getElementAttributeValueCurrent(inputIsInSightOfHandler); + inputIsOnLead = dirtyRow.querySelector('td.' + flagIsOnLead + ' .' + flagIsOnLead); + isOnLead = DOM.getElementAttributeValueCurrent(inputIsOnLead); + inputNotes = dirtyRow.querySelector('td.' + flagNotes + ' .' + flagNotes); + notes = DOM.getElementAttributeValueCurrent(inputNotes); + buttonActive = dirtyRow.querySelector(idTableAssessmentCommandModalityLinks + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive); + active = buttonActive.classList.contains(flagDelete); + dirtyLinks.push({ + [attrIdAssessmentCommandModalityLink]: idAssessmentCommandModalityLink + , [attrIdAssessment]: idAssessment + , [attrIdCommand]: command + , [attrIdCommandModality]: commandModality + , [attrIdBribe]: bribe + , [flagDistanceFromHandlerMetres]: distanceFromhandler + , [flagIsInHearingRangeOfHandler]: isInHearingRangeOfHandler + , [flagIsInScentRangeOfHandler]: isInScentRangeOfHandler + , [flagIsInSightOfHandler]: isInSightOfHandler + , [flagIsOnLead]: isOnLead + , [flagNotes]: notes + , [flagActive]: active + , [flagAssessmentResponse]: this.getDirtyAssessmentResponses(dirtyRow, idAssessmentCommandModalityLink) + }); + } + return dirtyLinks; + } + getDirtyAssessmentResponses(rowAssessmentCommandModalityLink, idAssessmentCommandModalityLink) { + let dirtyRows = rowAssessmentCommandModalityLink.querySelectorAll(idTableAssessmentResponses + ' tbody tr.' + flagAssessmentResponse + '.' + flagDirty); + if (dirtyRows == null || dirtyRows.length == 0) return []; + dirtyRows = Array.from(dirtyRows); + let dirtyRow, + inputResponseQualityMetric, responseQualityMetric, + inputObedienceLevel, obedienceLevel, + inputValueMeasured, valueMeasured, + inputNotes, notes, + buttonActive, active; + console.log('getDirtyAssessmentResponses'); + console.log({ dirtyRows }); + let dirtyResponses = []; + for(let indexRow = 0; indexRow < dirtyRows.length; indexRow++) { + dirtyRow = dirtyRows[indexRow]; + inputResponseQualityMetric = dirtyRow.querySelector('td.' + flagResponseQualityMetric + ' .' + flagResponseQualityMetric); + responseQualityMetric = DOM.getElementAttributeValueCurrent(inputResponseQualityMetric); + inputObedienceLevel = dirtyRow.querySelector('td.' + flagObedienceLevel + ' .' + flagObedienceLevel); + obedienceLevel = DOM.getElementAttributeValueCurrent(inputObedienceLevel); + inputValueMeasured = dirtyRow.querySelector('td.' + flagValueMeasured + ' .' + flagValueMeasured); + valueMeasured = DOM.getElementAttributeValueCurrent(inputValueMeasured); + inputNotes = dirtyRow.querySelector('td.' + flagNotes + ' .' + flagNotes); + notes = DOM.getElementAttributeValueCurrent(inputNotes); + buttonActive = dirtyRow.querySelector(idTableAssessmentResponses + ' td.' + flagActive + ' .' + flagButton + '.' + flagIcon + '.' + flagActive); + active = buttonActive.classList.contains(flagDelete); + dirtyResponses.push({ + [attrIdAssessmentResponse]: dirtyRow.getAttribute(attrIdAssessmentResponse) + , [attrIdAssessmentCommandModalityLink]: idAssessmentCommandModalityLink + , [attrIdResponseQualityMetric]: responseQualityMetric + , [attrIdObedienceLevel]: obedienceLevel + , [flagValueMeasured]: valueMeasured + , [flagNotes]: notes + , [flagActive]: active + }); + } + return dirtyResponses; + } initialiseRowNew(tbody, row) { } @@ -58,6 +231,14 @@ export default class PageDogAssessment extends TableBasePage { clickableElement.click(); }); } + callFilterTableContent() { + if (assessment[attrIdAssessment] < 1) { + let formFilters = TableBasePage.getFormFilters(); + let filterAssessment = formFilters.querySelector('#' + attrIdAssessment); + DOM.setElementValueCurrent(filterAssessment, ''); + } + super.callFilterTableContent(); + } hookupTableMain() { super.hookupTableMain(); @@ -72,6 +253,12 @@ export default class PageDogAssessment extends TableBasePage { this.hookupTableAssessmentFieldLocation(); this.hookupTableAssessmentFieldUserHandler(); this.hookupTableAssessmentFieldNotes(); + if (assessment[attrIdAssessment] < 1) { + let tbody = document.querySelector(idTableAssessment + ' tbody'); + let row = tbody.querySelector('tr'); + row.classList.add(flagRowNew); + this.postInitialiseRowNewCallback(tbody); + } } hookupTableAssessmentFieldWeather() { let fieldFlag = flagWeather; @@ -264,7 +451,7 @@ export default class PageDogAssessment extends TableBasePage { this.hookupTableAssessmentCommandModalityLinksFieldsCommand(); this.hookupTableAssessmentCommandModalityLinksFieldsCommandModality(); this.hookupTableAssessmentCommandModalityLinksFieldsBribe(); - this.hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandler(); + this.hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandlerMetres(); this.hookupTableAssessmentCommandModalityLinksFieldsIsInHearingRangeOfHandler(); this.hookupTableAssessmentCommandModalityLinksFieldsIsInScentRangeOfHandler(); this.hookupTableAssessmentCommandModalityLinksFieldsIsInSightOfHandler(); @@ -343,8 +530,8 @@ export default class PageDogAssessment extends TableBasePage { , cellSelector ); } - hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandler() { - this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagDistanceFromHandler + ' .' + flagDistanceFromHandler); + hookupTableAssessmentCommandModalityLinksFieldsDistanceFromHandlerMetres() { + this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagDistanceFromHandlerMetres + ' .' + flagDistanceFromHandlerMetres); } hookupTableAssessmentCommandModalityLinksFieldsIsInHearingRangeOfHandler() { this.hookupChangeHandlerTableCells(idTableAssessmentCommandModalityLinks + ' td.' + flagIsInHearingRangeOfHandler + ' .' + flagIsInHearingRangeOfHandler); @@ -369,6 +556,8 @@ export default class PageDogAssessment extends TableBasePage { let selector = idTableAssessmentCommandModalityLinks + ' td.' + flagAssessmentResponse + ' div.' + flagAssessmentResponse; let handler = (event, element) => { let parentTd = DOM.getCellFromElement(element); + let rowAssessmentCommandModalityLink = parentTd.closest('tr.' + flagAssessmentCommandModalityLink); + let idAssessmentCommandModalityLink = rowAssessmentCommandModalityLink.getAttribute(attrIdAssessmentCommandModalityLink); let responsesTable = document.createElement("table"); responsesTable.id = idTableAssessmentResponses.replace("#", ""); responsesTable.classList.add(flagTableMain, flagAssessmentResponse); @@ -401,11 +590,14 @@ export default class PageDogAssessment extends TableBasePage { let body = document.createElement("tbody"); - let assessmentCommandModalityLink = assessment[flagAssessmentCommandModalityLink]; + let assessmentCommandModalityLinks = assessment[flagAssessmentCommandModalityLink].filter(link => link[attrIdAssessmentCommandModalityLink] == idAssessmentCommandModalityLink); + let assessmentCommandModalityLink = (assessmentCommandModalityLinks == null || assessmentCommandModalityLinks.length == 0) ? null : assessmentCommandModalityLinks[0]; let responses = (assessmentCommandModalityLink == null) ? null : assessmentCommandModalityLink[flagAssessmentResponse]; + console.log({ assessmentCommandModalityLinks, responses }); if (responses != null && responses.length > 0) { - for (let response in responses) { + for (let responseKey in Object.keys(responses)) { + let response = responses[responseKey]; let row = PageDogAssessment.createNewRowTableAssessmentResponses(response); body.appendChild(row); } @@ -414,6 +606,21 @@ export default class PageDogAssessment extends TableBasePage { parentTd.innerHTML = responsesTable.outerHTML; + let responseRows = parentTd.querySelectorAll('tbody tr.' + flagAssessmentResponse); + if (responseRows != null && responseRows.length > 0) { + for (let indexRow = 0; indexRow < responseRows.length; indexRow++) { + let row = responseRows[indexRow]; + // let idAssessmentResponse = row.getAttribute(attrIdAssessmentResponse); + + let response = responses[indexRow]; // idAssessmentResponse]; + console.log({ indexRow, row, response }); // idAssessmentResponse, + let inputValueMeasured = row.querySelector('td.' + flagValueMeasured + ' .' + flagValueMeasured); + DOM.setElementValueCurrent(inputValueMeasured, response[flagValueMeasured]); + let inputNotes = row.querySelector('td.' + flagNotes + ' .' + flagNotes); + DOM.setElementValueCurrent(inputNotes, response[flagNotes]); + } + } + this.hookupTablesAssessmentResponses(); }; Events.hookupEventHandler( @@ -426,12 +633,17 @@ export default class PageDogAssessment extends TableBasePage { static createNewRowTableAssessmentResponses(response) { if (response == null) response = { [attrIdAssessmentResponse]: null - , [flagResponseQualityMetric]: 0 - , [flagObedienceLevel]: 0 + , [attrIdResponseQualityMetric]: { + [attrIdResponseQualityMetric]: 0 + } + , [attrIdObedienceLevel]: { + [attrIdObedienceLevel]: 0 + } , [flagValueMeasured]: '' , [flagNotes]: '' , [flagActive]: true }; + console.log({ response }); let isNew = (response[attrIdAssessmentResponse] == null || response[attrIdAssessmentResponse] < 1); let row = document.createElement("tr"); row.classList.add(flagAssessmentResponse); @@ -442,8 +654,10 @@ export default class PageDogAssessment extends TableBasePage { tdResponseQualityMetric.classList.add(flagResponseQualityMetric, flagDdlPreview); let divResponseQualityMetric = document.createElement("div"); divResponseQualityMetric.classList.add(flagResponseQualityMetric); - DOM.setElementAttributesValuesCurrentAndPrevious(divResponseQualityMetric, response[flagResponseQualityMetric]); - divResponseQualityMetric.innerText = response[flagResponseQualityMetric]; + let idResponseQualityMetric = response[attrIdResponseQualityMetric][attrIdResponseQualityMetric]; + let responseQualityMetric = filterResponseQualityMetrics[idResponseQualityMetric]; + DOM.setElementAttributesValuesCurrentAndPrevious(divResponseQualityMetric, idResponseQualityMetric); + divResponseQualityMetric.innerText = (responseQualityMetric == null) ? '' : responseQualityMetric[flagName]; tdResponseQualityMetric.appendChild(divResponseQualityMetric); row.appendChild(tdResponseQualityMetric); @@ -451,8 +665,10 @@ export default class PageDogAssessment extends TableBasePage { tdObedienceLevel.classList.add(flagObedienceLevel, flagDdlPreview); let divObedienceLevel = document.createElement("div"); divObedienceLevel.classList.add(flagObedienceLevel); - DOM.setElementAttributesValuesCurrentAndPrevious(divObedienceLevel, response[flagObedienceLevel]); - divObedienceLevel.innerText = response[flagObedienceLevel]; + let idObedienceLevel = response[attrIdObedienceLevel][attrIdObedienceLevel]; + let obedienceLevel = filterObedienceLevels[idObedienceLevel]; + DOM.setElementAttributesValuesCurrentAndPrevious(divObedienceLevel, idObedienceLevel); + divObedienceLevel.innerText = (obedienceLevel == null) ? '' : obedienceLevel[flagName]; tdObedienceLevel.appendChild(divObedienceLevel); row.appendChild(tdObedienceLevel); @@ -461,8 +677,9 @@ export default class PageDogAssessment extends TableBasePage { let inputValueMeasured = document.createElement("input"); inputValueMeasured.type = "number"; inputValueMeasured.classList.add(flagValueMeasured); - DOM.setElementAttributesValuesCurrentAndPrevious(inputValueMeasured, response[flagValueMeasured]); - inputValueMeasured.value = response[flagValueMeasured]; + let valueMeasured = response[flagValueMeasured]; + DOM.setElementValueCurrent(inputValueMeasured, valueMeasured); + DOM.setElementAttributeValuePrevious(inputValueMeasured, valueMeasured); tdValueMeasured.appendChild(inputValueMeasured); row.appendChild(tdValueMeasured); @@ -470,11 +687,16 @@ export default class PageDogAssessment extends TableBasePage { tdNotes.classList.add(flagNotes, flagDdlPreview); let inputNotes = document.createElement("textarea"); inputNotes.classList.add(flagNotes); - DOM.setElementAttributesValuesCurrentAndPrevious(inputNotes, response[flagNotes]); - inputNotes.value = response[flagNotes]; + let notes = response[flagNotes]; + DOM.setElementValueCurrent(inputNotes, notes); + DOM.setElementAttributeValuePrevious(inputNotes, notes); tdNotes.appendChild(inputNotes); row.appendChild(tdNotes); + console.log(inputValueMeasured.tagName); + console.log(inputNotes.tagName); + console.log({ valueMeasured, notes }); + let tdActive = document.createElement("td"); tdActive.classList.add(flagActive, flagDdlPreview); let templateAddIcon = document.querySelector(idContainerTemplateElements + ' .' + flagButton + '.' + flagIcon + '.' + flagActive + '.' + flagAdd); @@ -531,7 +753,7 @@ export default class PageDogAssessment extends TableBasePage { row.querySelectorAll('.' + flagInitialised).forEach(function(element) { element.classList.remove(flagInitialised); }); - let countRows = document.querySelectorAll(attrIdAssessmentResponse + ' > tbody > tr').length; + let countRows = document.querySelectorAll(idTableAssessmentResponses + ' > tbody > tr').length; row.setAttribute(attrIdAssessmentResponse, -1 - countRows); tbody.prepend(row); tbody.scrollTop = 0; diff --git a/static/js/pages/dog/assessments.js b/static/js/pages/dog/assessments.js index d793cbc..e588844 100644 --- a/static/js/pages/dog/assessments.js +++ b/static/js/pages/dog/assessments.js @@ -84,14 +84,16 @@ export default class PageDogAssessments extends TableBasePage { let newRows = tbody.querySelectorAll('tr.' + flagRowNew); let newestRow = newRows[0]; let clickableElementsSelector = [ - 'td.' + flagWeather + ' div.' + flagWeather - , ',td.' + flagLightingLevel + ' div.' + flagLightingLevel - , ',td.' + flagLocation + ' div.' + flagLocation - , ',td.' + flagUserHandler + ' div.' + flagUserHandler + 'td.' + flagDetail + ' .' + flagDetail ].join(''); - newestRow.querySelectorAll(clickableElementsSelector).forEach((clickableElement) => { + let detailButton = newestRow.querySelector('td.' + flagDetail + ' .' + flagDetail); /*.forEach((clickableElement) => { + clickableElement. clickableElement.click(); }); + */ + newestRow.classList.add(flagIsCollapsed); + detailButton.click(); + // console.log({ newestRow, detailButton }); } hookupTableMain() { diff --git a/templates/components/dog/_row_assessment_command_modality_link.html b/templates/components/dog/_row_assessment_command_modality_link.html index 2bd0c06..8298cde 100644 --- a/templates/components/dog/_row_assessment_command_modality_link.html +++ b/templates/components/dog/_row_assessment_command_modality_link.html @@ -1,6 +1,6 @@ {% if is_blank_row %} - + {% include 'components/dog/_preview_DDL_command_category.html' %} @@ -13,9 +13,9 @@ {% include 'components/dog/_preview_DDL_bribe.html' %} - + @@ -60,7 +60,7 @@ {% include 'components/dog/_td_active.html' %} {% else %} - + {% set command_preview = link.command %} {% set command_category_preview = command_preview.command_category %} @@ -77,12 +77,12 @@ {% include 'components/dog/_preview_DDL_bribe.html' %} - + + class="{{ model.FLAG_DISTANCE_FROM_HANDLER_METRES }}" + {{ model.ATTR_VALUE_CURRENT }}="{{ link.distance_from_handler_metres }}" + {{ model.ATTR_VALUE_PREVIOUS }}="{{ link.distance_from_handler_metres }}" + value="{{ link.distance_from_handler_metres }}" />

How we use your information

-

If you opt in to marketing communications, we will also use your email address to send you updates about our services, ERPNext features, and relevant industry news. You can unsubscribe from these communications at any time.

+

If you opt in to marketing communications, we will also use your email address to send you updates about our services, Fetch Metrics features, and relevant industry news. You can unsubscribe from these communications at any time.

For full details about how we handle your personal data, please read our Privacy Policy.

diff --git a/templates/pages/dog/_assessment.html b/templates/pages/dog/_assessment.html index fd2982b..e1b054f 100644 --- a/templates/pages/dog/_assessment.html +++ b/templates/pages/dog/_assessment.html @@ -5,6 +5,65 @@ {% set assessment = model.assessments[0] %} +
+ {{ model.form_filters.hidden_tag() }} +
+
+ +
+ {{ model.form_filters.id_assessment.label }} + {{ model.form_filters.id_assessment() }} + {% for error in model.form_filters.id_assessment.errors %} +

{{ error }}

+ {% endfor %} +
+
+ {{ model.form_filters.id_weather.label }} + {{ model.form_filters.id_weather() }} + {% for error in model.form_filters.id_weather.errors %} +

{{ error }}

+ {% endfor %} +
+
+ {{ model.form_filters.id_lighting_level.label }} + {{ model.form_filters.id_lighting_level() }} + {% for error in model.form_filters.id_lighting_level.errors %} +

{{ error }}

+ {% endfor %} +
+
+ {{ model.form_filters.id_location.label }} + {{ model.form_filters.id_location() }} + {% for error in model.form_filters.id_location.errors %} +

{{ error }}

+ {% endfor %} +
+
+ {{ model.form_filters.id_user_handler.label }} + {{ model.form_filters.id_user_handler() }} + {% for error in model.form_filters.id_user_handler.errors %} +

{{ error }}

+ {% endfor %} +
+
+ {{ model.form_filters.active_only.label }} + {{ model.form_filters.active_only() }} + {% for error in model.form_filters.active_only.errors %} +

{{ error }}

+ {% endfor %} + {% set class_name = model.FLAG_FILTER + ' ' + model.FLAG_ACTIVE_ONLY + ' ' + model.FLAG_CHECKBOX %} + {% include 'components/common/buttons/_icon_checkbox.html' %} +
+
+
+
+
@@ -35,8 +94,8 @@ - - {{ model.form_filters.hidden_tag() }} + {% set is_blank_row = (assessment.id_assessment < 1) %} + {% set weather_preview = assessment.weather %} {% include 'components/dog/_preview_DDL_weather.html' %} @@ -108,7 +167,7 @@ Command Command Modality Bribe - Distance From Handler + Distance From Handler In Range Of Handler? On Lead? Trial Count @@ -155,7 +214,8 @@

We retain contact form submissions for customer service purposes and retain marketing consent records as required by law. For details about how long we keep your information, please see our data retention schedule.