From b76a999d01e1d6f0f648ec7fa304c34a81d519bc Mon Sep 17 00:00:00 2001 From: Teddy Middleton-Smith Date: Fri, 25 Jul 2025 19:22:17 +0100 Subject: [PATCH] Feat: Home and Contact pages setup with Altcha bot protection and saving to database using alterntive layout. --- app.py | 2 + business_objects/project_hub/__init__.py | 0 business_objects/project_hub/contact_form.py | 136 + controllers/core/contact.py | 143 + datastores/datastore_project_hub.py | 113 + forms/project_hub/__init__.py | 0 forms/project_hub/contact.py | 100 + models/model_view_base.py | 21 +- models/model_view_contact.py | 31 + models/model_view_contact_success.py | 28 + models/model_view_home.py | 7 + static/MySQL/00000_combined.sql | 573 +-- static/MySQL/00001_destroy.sql | 11 + .../MySQL/11310_tbl_DOG_Assessment_Temp.sql | 4 +- .../11600_tbl_PH_Contact_Form_Change_Set.sql | 19 + static/MySQL/11601_tbl_PH_Contact_Form.sql | 28 + .../MySQL/11602_tbl_PH_Contact_Form_Audit.sql | 24 + .../MySQL/11603_tbl_PH_Contact_Form_Temp.sql | 21 + .../31600_tri_PH_Contact_Form_Change_Set.sql | 14 + static/MySQL/31601_tri_PH_Contact_Form.sql | 58 + static/MySQL/71310_p_dog_save_assessment.sql | 552 +++ .../MySQL/71310_p_dog_save_dog_assessment.sql | 693 ---- static/MySQL/71322_p_dog_save_distraction.sql | 672 +++ ..._save_assessment_command_modality_link.sql | 672 +++ static/MySQL/71601_p_ph_save_contact_form.sql | 436 ++ .../71603_p_ph_get_many_contact_form.sql | 277 ++ static/MySQL/90000_populate.sql | 45 +- ...ATED_71602_p_ph_test_save_contact_form.sql | 108 + ..._71604_p_ph_test_get_many_contact_form.sql | 0 static/css/layouts/footer.css | 35 +- static/css/layouts/header.css | 39 - static/css/main.css | 8 +- static/css/pages/core/contact.css | 135 + static/css/pages/core/home.css | 226 +- static/css/sections/core.css | 152 + static/css/sections/dog.css | 88 +- static/dist/css/core_admin_home.bundle.css | 152 + .../dist/css/core_admin_home.bundle.css.map | 2 +- static/dist/css/core_contact.bundle.css | 289 ++ static/dist/css/core_contact.bundle.css.map | 1 + static/dist/css/core_home.bundle.css | 370 +- static/dist/css/core_home.bundle.css.map | 2 +- static/dist/css/dog_assessment.bundle.css | 91 +- static/dist/css/dog_assessment.bundle.css.map | 2 +- static/dist/css/dog_assessments.bundle.css | 87 +- .../dist/css/dog_assessments.bundle.css.map | 2 +- static/dist/css/dog_button_icons.bundle.css | 87 +- .../dist/css/dog_button_icons.bundle.css.map | 2 +- .../css/dog_command_button_links.bundle.css | 87 +- .../dog_command_button_links.bundle.css.map | 2 +- .../css/dog_command_categories.bundle.css | 87 +- .../css/dog_command_categories.bundle.css.map | 2 +- static/dist/css/dog_commands.bundle.css | 87 +- static/dist/css/dog_commands.bundle.css.map | 2 +- .../dist/css/dog_dog_command_links.bundle.css | 87 +- .../css/dog_dog_command_links.bundle.css.map | 2 +- static/dist/css/dog_dogs.bundle.css | 87 +- static/dist/css/dog_dogs.bundle.css.map | 2 +- static/dist/css/dog_home.bundle.css | 87 +- static/dist/css/dog_home.bundle.css.map | 2 +- static/dist/css/dog_locations.bundle.css | 87 +- static/dist/css/dog_locations.bundle.css.map | 2 +- static/dist/css/main.bundle.css | 84 +- static/dist/css/main.bundle.css.map | 2 +- static/dist/js/core_admin_home.bundle.js | 148 +- static/dist/js/core_admin_home.bundle.js.map | 2 +- static/dist/js/core_contact.bundle.js | 17 + static/dist/js/core_contact.bundle.js.map | 1 + static/dist/js/core_home.bundle.js | 148 +- static/dist/js/core_home.bundle.js.map | 2 +- static/dist/js/main.bundle.js | 3640 ++++++++++++++++- static/dist/js/main.bundle.js.map | 2 +- static/js/pages/base.js | 4 + static/js/pages/core/contact-success.js | 16 + static/js/pages/core/contact.js | 23 + static/js/router.js | 6 + static/js/test.js | 23 + templates/layouts/layout.html | 241 +- templates/layouts/layout_dog.html | 341 ++ templates/pages/core/DEPRECATED_home_app.html | 20 + .../pages/core/DEPRECATED_home_portfolio.html | 119 - templates/pages/core/_contact.html | 77 + templates/pages/core/_contact_success.html | 22 + templates/pages/core/_home.html | 243 +- templates/pages/dog/_assessment.html | 2 +- templates/pages/dog/_assessments.html | 2 +- templates/pages/dog/_button_icons.html | 2 +- .../pages/dog/_command_button_links.html | 2 +- templates/pages/dog/_command_categories.html | 2 +- templates/pages/dog/_commands.html | 2 +- templates/pages/dog/_dog_command_links.html | 2 +- templates/pages/dog/_home.html | 2 +- templates/pages/dog/_locations.html | 2 +- todo.txt | 1 + webpack.config.js | 8 +- 95 files changed, 10274 insertions(+), 2115 deletions(-) create mode 100644 business_objects/project_hub/__init__.py create mode 100644 business_objects/project_hub/contact_form.py create mode 100644 controllers/core/contact.py create mode 100644 datastores/datastore_project_hub.py create mode 100644 forms/project_hub/__init__.py create mode 100644 forms/project_hub/contact.py create mode 100644 models/model_view_contact.py create mode 100644 models/model_view_contact_success.py create mode 100644 static/MySQL/11600_tbl_PH_Contact_Form_Change_Set.sql create mode 100644 static/MySQL/11601_tbl_PH_Contact_Form.sql create mode 100644 static/MySQL/11602_tbl_PH_Contact_Form_Audit.sql create mode 100644 static/MySQL/11603_tbl_PH_Contact_Form_Temp.sql create mode 100644 static/MySQL/31600_tri_PH_Contact_Form_Change_Set.sql create mode 100644 static/MySQL/31601_tri_PH_Contact_Form.sql create mode 100644 static/MySQL/71310_p_dog_save_assessment.sql delete mode 100644 static/MySQL/71310_p_dog_save_dog_assessment.sql create mode 100644 static/MySQL/71322_p_dog_save_distraction.sql create mode 100644 static/MySQL/71330_p_dog_save_assessment_command_modality_link.sql create mode 100644 static/MySQL/71601_p_ph_save_contact_form.sql create mode 100644 static/MySQL/71603_p_ph_get_many_contact_form.sql create mode 100644 static/MySQL/deprecated/DEPRECATED_71602_p_ph_test_save_contact_form.sql create mode 100644 static/MySQL/deprecated/DEPRECATED_71604_p_ph_test_get_many_contact_form.sql create mode 100644 static/css/pages/core/contact.css create mode 100644 static/dist/css/core_contact.bundle.css create mode 100644 static/dist/css/core_contact.bundle.css.map create mode 100644 static/dist/js/core_contact.bundle.js create mode 100644 static/dist/js/core_contact.bundle.js.map create mode 100644 static/js/pages/core/contact-success.js create mode 100644 static/js/pages/core/contact.js create mode 100644 static/js/test.js create mode 100644 templates/layouts/layout_dog.html create mode 100644 templates/pages/core/DEPRECATED_home_app.html delete mode 100644 templates/pages/core/DEPRECATED_home_portfolio.html create mode 100644 templates/pages/core/_contact.html create mode 100644 templates/pages/core/_contact_success.html diff --git a/app.py b/app.py index 640f555..b27058f 100644 --- a/app.py +++ b/app.py @@ -27,6 +27,7 @@ from controllers.dog.dog_command_link import routes_dog_dog_command_link from controllers.dog.home import routes_dog_home from controllers.dog.location import routes_dog_location from controllers.core.home import routes_core_home +from controllers.core.contact import routes_core_contact from controllers.legal.legal import routes_legal from controllers.user.user import routes_user from extensions import db, csrf, mail, oauth @@ -118,6 +119,7 @@ with app.app_context(): print(f"Registered clients: {list(oauth._clients.keys())}") app.register_blueprint(routes_core_home) +app.register_blueprint(routes_core_contact) app.register_blueprint(routes_dog) app.register_blueprint(routes_dog_command) app.register_blueprint(routes_dog_command_category) diff --git a/business_objects/project_hub/__init__.py b/business_objects/project_hub/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/business_objects/project_hub/contact_form.py b/business_objects/project_hub/contact_form.py new file mode 100644 index 0000000..7d4174e --- /dev/null +++ b/business_objects/project_hub/contact_form.py @@ -0,0 +1,136 @@ +""" +Project: PARTS Website +Author: Edward Middleton-Smith + Precision And Research Technology Systems Limited + +Technology: Business Objects +Feature: Contact_Form Business Object +""" + +# internal +from business_objects.base import Base +from business_objects.db_base import SQLAlchemy_ABC +import lib.argument_validation as av +from extensions import db +from helpers.helper_app import Helper_App +# external +from dataclasses import dataclass +from typing import ClassVar + + +class Contact_Form(SQLAlchemy_ABC, Base): + FLAG_ALTCHA: ClassVar[str] = 'altcha' + FLAG_CONTACT_FORM: ClassVar[str] = 'contact-form' + FLAG_NAME_COMPANY: ClassVar[str] = 'name-company' + FLAG_NAME_CONTACT: ClassVar[str] = 'name-contact' + FLAG_MESSAGE: ClassVar[str] = 'message' + FLAG_RECEIVE_MARKETING_COMMUNICATIONS: ClassVar[str] = 'receive-marketing-communications' + NAME_ATTR_OPTION_VALUE: ClassVar[str] = FLAG_CONTACT_FORM + NAME_ATTR_OPTION_TEXT: ClassVar[str] = Base.FLAG_EMAIL + + __tablename__ = 'PH_Contact_Form' + __table_args__ = { 'extend_existing': True } + + id_contact_form = db.Column(db.Integer, primary_key=True) + email = db.Column(db.String(255)) + name_contact = db.Column(db.String(255)) + name_company = db.Column(db.String(255)) + message = db.Column(db.Text) + receive_marketing_communications = db.Column(db.Boolean) + active = db.Column(db.Boolean) + created_on = db.Column(db.DateTime) + + def __init__(self): + self.id_contact_form = 0 + self.is_new = False + super().__init__() + + def from_DB_Contact_Form(query_row): + _m = 'Contact_Form.from_DB_Contact_Form' + contact_form = Contact_Form() + contact_form.id_contact_form = query_row[0] + contact_form.email = query_row[1] + contact_form.name_contact = query_row[2] + contact_form.name_company = query_row[3] + contact_form.message = query_row[4] + contact_form.receive_marketing_communications = av.input_bool(query_row[5], 'receive_marketing_communications', _m) + contact_form.active = av.input_bool(query_row[6], 'active', _m) + contact_form.created_on = query_row[7] + return contact_form + + @classmethod + def from_json(cls, json): + _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.created_on = json.get(cls.FLAG_CREATED_ON, None) + Helper_App.console_log(f'Contact_Form: {contact_form}') + return contact_form + + + def to_json(self): + as_json = { + self.FLAG_CONTACT_FORM: self.id_contact_form + , self.FLAG_EMAIL: self.email + , self.FLAG_NAME_CONTACT: self.name_contact + , self.FLAG_NAME_COMPANY: self.name_company + , self.FLAG_MESSAGE: self.message + , self.FLAG_RECEIVE_MARKETING_COMMUNICATIONS: self.receive_marketing_communications + , 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): + return f''' +{self.__class__.__name__}( + {self.FLAG_CONTACT_FORM}: {self.id_contact_form} + {self.FLAG_EMAIL}: {self.email} + {self.FLAG_NAME_CONTACT}: {self.name_contact} + {self.FLAG_NAME_COMPANY}: {self.name_company} + {self.FLAG_MESSAGE}: {self.message} + {self.FLAG_RECEIVE_MARKETING_COMMUNICATIONS}: {self.receive_marketing_communications} + {self.FLAG_ACTIVE}: {self.active} + {self.FLAG_CREATED_ON}: {self.created_on} +) + ''' + +class Contact_Form_Temp(db.Model, Base): + __tablename__ = 'PH_Contact_Form_Temp' + __table_args__ = { 'extend_existing': True } + id_temp = db.Column(db.Integer, primary_key=True) + id_contact_form = db.Column(db.Integer) + email = db.Column(db.String(255)) + name_contact = db.Column(db.String(255)) + name_company = db.Column(db.String(255)) + message = db.Column(db.Text) + receive_marketing_communications = db.Column(db.Boolean) + active = db.Column(db.Boolean) + created_on = db.Column(db.DateTime) + guid: str = db.Column(db.String(36)) + + def __init__(self): + super().__init__() + + @classmethod + def from_contact_form(cls, contact_form): + _m = 'Contact_Form_Temp.from_Contact_Form' + temp = cls() + temp.id_contact_form = contact_form.id_contact_form + temp.email = contact_form.email + temp.name_contact = contact_form.name_contact + temp.name_company = contact_form.name_company + temp.message = contact_form.message + temp.receive_marketing_communications = contact_form.receive_marketing_communications + temp.active = contact_form.active + temp.created_on = contact_form.created_on + return temp \ No newline at end of file diff --git a/controllers/core/contact.py b/controllers/core/contact.py new file mode 100644 index 0000000..e0d5dfb --- /dev/null +++ b/controllers/core/contact.py @@ -0,0 +1,143 @@ +""" +Project: PARTS Website +Author: Edward Middleton-Smith + Precision And Research Technology Systems Limited + +Technology: App Routing +Feature: Core - Contact Routes + +Description: +Contact Page Controller. +""" + +# IMPORTS +# internal +from business_objects.api import API +from business_objects.project_hub.contact_form import Contact_Form +from datastores.datastore_project_hub import DataStore_Project_Hub_Contact_Form +from forms.project_hub.contact import Form_Contact +from helpers.helper_app import Helper_App +from models.model_view_contact import Model_View_Contact +from models.model_view_contact_success import Model_View_Contact_Success +from models.model_view_home import Model_View_Home +import lib.argument_validation as av +# external +from flask import Flask, render_template, jsonify, request, render_template_string, send_from_directory, redirect, url_for, session, Blueprint, current_app, flash +from flask_mail import Mail, Message +from extensions import db, oauth, mail +from urllib.parse import quote_plus, urlencode +from authlib.integrations.flask_client import OAuth +from authlib.integrations.base_client import OAuthError +from urllib.parse import quote, urlparse, parse_qs +import json +import base64 +import hmac +import hashlib +import datetime +from altcha import ChallengeOptions, create_challenge, verify_solution + +routes_core_contact = Blueprint('routes_core_contact', __name__) + + +@routes_core_contact.route(Model_View_Contact.HASH_PAGE_CONTACT, methods=['GET']) +def contact(): + try: + form = Form_Contact() + model = Model_View_Contact(form) + html_body = render_template('pages/core/_contact.html', model = model) + return html_body + except Exception as e: + return API.get_standard_response( + success = False, + status_code = 500, + message = f"Error: {e}", + data = None, + errors = [str(e)], + meta = None + ) + +@routes_core_contact.route(Model_View_Contact.HASH_GET_ALTCHA_CHALLENGE, methods=['GET']) +def create_altcha_challenge(): + options = ChallengeOptions( + expires = datetime.datetime.now() + datetime.timedelta(hours=1), + max_number = 100000, # The maximum random number + hmac_key = current_app.app_config.ALTCHA_SECRET_KEY, + ) + challenge = create_challenge(options) + Helper_App.console_log(f"Challenge created: {challenge}") + # return jsonify({"challenge": challenge}) + return jsonify({ + "algorithm": challenge.algorithm, + "challenge": challenge.challenge, + "salt": challenge.salt, + "signature": challenge.signature, + }) + +@routes_core_contact.route(Model_View_Contact.HASH_PAGE_CONTACT, methods=['POST']) +def contact_post(): + try: + form = Form_Contact() + if form.validate_on_submit(): + try: + email = form.email.data + # CC = form.CC.data # not in use + contact_name = form.contact_name.data + company_name = form.company_name.data + message = form.message.data + receive_marketing = form.receive_marketing.data + receive_marketing_text = "I would like to receive marketing emails.\n" if receive_marketing else "" + # send email + mailItem = Message("PARTS Website Contact Us Message", recipients=[current_app.config['MAIL_CONTACT_PUBLIC']]) + mailItem.body = f"Dear Lord Edward Middleton-Smith,\n\n{message}\n{receive_marketing_text}\nKind regards,\n{contact_name}\n{company_name}\n{email}" + mail.send(mailItem) + # save to database + datastore = DataStore_Project_Hub_Contact_Form() + contact_form = Contact_Form.from_json(form.to_json()) + datastore.save_contact_forms( + comment = contact_form.message + , contact_forms = [contact_form] + ) + return redirect(url_for(Model_View_Contact.ENDPOINT_PAGE_CONTACT_SUCCESS)) + except Exception as e: + return API.get_standard_response( + success = False, + status_code = 500, + message = f"Error: {e}", + data = None, + errors = [str(e)], + meta = None + ) + return API.get_standard_response( + success = False, + status_code = 500, + message = f"Error: {form.errors}", + data = None, + errors = [str(form.errors)], + meta = None + ) + # html_body = render_template('pages/core/_contact.html', model = model) + except Exception as e: + return API.get_standard_response( + success = False, + status_code = 500, + message = f"Error: {e}", + data = None, + errors = [str(e)], + meta = None + ) + +@routes_core_contact.route(Model_View_Contact.HASH_PAGE_CONTACT_SUCCESS, methods=['GET']) +def contact_success(): + try: + model = Model_View_Contact_Success() + html_body = render_template('pages/core/_contact_success.html', model = model) + return html_body + except Exception as e: + return API.get_standard_response( + success = False, + status_code = 500, + message = f"Error: {e}", + data = None, + errors = [str(e)], + meta = None + ) diff --git a/datastores/datastore_project_hub.py b/datastores/datastore_project_hub.py new file mode 100644 index 0000000..5045b89 --- /dev/null +++ b/datastores/datastore_project_hub.py @@ -0,0 +1,113 @@ +""" +Project: PARTS Website +Author: Edward Middleton-Smith + Precision And Research Technology Systems Limited + +Technology: DataStores +Feature: User DataStore + +Description: +Datastore for Users +""" + +# internal +# from routes import bp_home +import lib.argument_validation as av +from business_objects.sql_error import SQL_Error +from business_objects.project_hub.contact_form import Contact_Form, Contact_Form_Temp +from datastores.datastore_base import DataStore_Base +from helpers.helper_app import Helper_App +from helpers.helper_db_mysql import Helper_DB_MySQL +# from models.model_view_store_checkout import Model_View_Store_Checkout # circular! +from extensions import db +# external +from flask_sqlalchemy import SQLAlchemy +from datetime import datetime + +db = SQLAlchemy() + + +class DataStore_Project_Hub_Contact_Form(DataStore_Base): + + def __init__(self): + super().__init__() + + @classmethod + def get_many_contact_form(cls): + _m = f'{cls.__qualname__}.get_many_contact_form' + user = cls.get_user_session() + argument_dict = { + 'a_id_user': user.id_user + , 'a_debug': 0 + } + Helper_App.console_log(f'argument_dict: {argument_dict}') + result = cls.db_procedure_execute('p_ph_get_many_contact_form', argument_dict) + cursor = result.cursor + + # Contact_Forms + result_set_1 = cursor.fetchall() + Helper_App.console_log(f'raw contact_forms: {result_set_1}') + contact_forms = [] + contact_form_indexes = {} + for row in result_set_1: + new_contact_form = Contact_Form.from_DB_contact_form(row) + contact_form_indexes[new_contact_form.id_contact_form] = len(contact_forms) + contact_forms.append(new_contact_form) + + # Errors + 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 contact_forms, errors + + @classmethod + def save_contact_forms(cls, comment, contact_forms): + _m = f'{cls}.save_contact_forms' + 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 contact forms: {contact_forms}') + + rows = [] + for contact_form in contact_forms: + row = Contact_Form_Temp.from_contact_form(contact_form) + row.guid = guid + rows.append(row) + + cls.upload_bulk(Contact_Form_Temp.__tablename__, rows, 1000) + + Helper_App.console_log('Contact Forms 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_ph_save_contact_form', argument_dict_list) + + Helper_App.console_log('Contact Forms saved') + + # Errors + cursor = result.cursor + cursor.nextset() + result_set_e = cursor.fetchall() + 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/project_hub/__init__.py b/forms/project_hub/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/forms/project_hub/contact.py b/forms/project_hub/contact.py new file mode 100644 index 0000000..c1371ed --- /dev/null +++ b/forms/project_hub/contact.py @@ -0,0 +1,100 @@ +""" +Project: PARTS Website +Author: Edward Middleton-Smith + Precision And Research Technology Systems Limited + +Technology: Backend +Feature: Contact Us Form + +Description: +Defines Flask-WTF form for handling user input on Contact Us page. +""" + +# IMPORTS +# internal +from business_objects.base import Base +from business_objects.project_hub.contact_form import Contact_Form +# from models.model_view_store import Model_View_Store # circular +from models.model_view_base import Model_View_Base +from forms.base import Form_Base +# external +from flask import Flask, render_template, request, flash, redirect, url_for, current_app +from flask_wtf import FlaskForm +from wtforms import StringField, TextAreaField, SubmitField, HiddenField, BooleanField, Field, EmailField +from wtforms.validators import DataRequired, Email, ValidationError +import markupsafe +from flask_wtf.recaptcha import RecaptchaField +from abc import ABCMeta, abstractmethod +import json +from altcha import verify_solution +import base64 + +class ALTCHAValidator: + def __init__(self, message=None): + self.message = message or 'ALTCHA verification failed' + + def __call__(self, form, field): + altcha_data = field.data + + if not altcha_data: + raise ValidationError(self.message) + + try: + # The data is base64 encoded JSON + try: + # First try to decode it as JSON directly (if it's not base64 encoded) + altcha_payload = json.loads(altcha_data) + except json.JSONDecodeError: + # If direct JSON decoding fails, try base64 decoding first + decoded_data = base64.b64decode(altcha_data).decode('utf-8') + altcha_payload = json.loads(decoded_data) + + ok, err = verify_solution(altcha_payload, current_app.app_config.ALTCHA_SECRET_KEY, check_expires=True) + + if err or not ok: + raise ValidationError(self.message + ': ' + (err or 'Invalid solution')) + + except Exception as e: + raise ValidationError(f'Invalid ALTCHA data: {str(e)}') + +class ALTCHAField(Field): + def __init__(self, label='', validators=None, **kwargs): + validators = validators or [] + validators.append(ALTCHAValidator()) + + super(ALTCHAField, self).__init__(label, validators, **kwargs) + + def __call__(self, **kwargs): + html = f""" + + + """ + return markupsafe.Markup(html) + + +class Form_Contact(FlaskForm): + email = EmailField('Email') + contact_name = StringField('Name') + company_name = StringField('Company') + message = TextAreaField('Message') + receive_marketing = BooleanField('I would like to receive marketing emails.') + # recaptcha = RecaptchaField() + # altcha = HiddenField('ALTCHA') # , validators=[validate_altcha] + altcha = ALTCHAField('Verify you are human') + submit = SubmitField('Send Message') + + def to_json(self): + return { + Base.FLAG_EMAIL: self.email.data + , Contact_Form.FLAG_NAME_CONTACT: self.contact_name.data + , Contact_Form.FLAG_NAME_COMPANY: self.company_name.data + , Contact_Form.FLAG_MESSAGE: self.message.data + , Contact_Form.FLAG_RECEIVE_MARKETING_COMMUNICATIONS: self.receive_marketing.data + , Contact_Form.FLAG_ALTCHA: self.altcha.data + , Base.FLAG_ACTIVE: True + , Base.FLAG_CREATED_ON: None + } diff --git a/models/model_view_base.py b/models/model_view_base.py index 9019e7b..a45357b 100644 --- a/models/model_view_base.py +++ b/models/model_view_base.py @@ -112,6 +112,7 @@ class Model_View_Base(BaseModel, ABC): FLAG_ASSESSMENT: ClassVar[str] = Assessment.FLAG_ASSESSMENT FLAG_ASSESSMENT_COMMAND_MODALITY_LINK: ClassVar[str] = Assessment_Command_Modality_Link.FLAG_ASSESSMENT_COMMAND_MODALITY_LINK FLAG_ASSESSMENT_RESPONSE: ClassVar[str] = Assessment_Response.FLAG_ASSESSMENT_RESPONSE + FLAG_BENEFITS: ClassVar[str] = 'benefits' FLAG_BOOL_FALSE: ClassVar[str] = 'false' FLAG_BOOL_TRUE: ClassVar[str] = 'true' FLAG_BRIBE: ClassVar[str] = Bribe.FLAG_BRIBE @@ -139,6 +140,8 @@ class Model_View_Base(BaseModel, ABC): FLAG_CONTAINER_ICON_AND_LABEL: ClassVar[str] = 'container-icon-label' FLAG_CONTAINER_INPUT: ClassVar[str] = 'container-input' FLAG_CSRF_TOKEN: ClassVar[str] = 'X-CSRFToken' + FLAG_CTA_1: ClassVar[str] = 'cta-1' + FLAG_CTA_2: ClassVar[str] = 'cta-2' FLAG_DATA: ClassVar[str] = 'data' FLAG_DATE_FROM: ClassVar[str] = Base.FLAG_DATE_FROM FLAG_DATE_TO: ClassVar[str] = Base.FLAG_DATE_TO @@ -159,6 +162,8 @@ class Model_View_Base(BaseModel, ABC): FLAG_ERROR: ClassVar[str] = 'error' FLAG_EXPANDED: ClassVar[str] = 'expanded' FLAG_FAILURE: ClassVar[str] = 'failure' + FLAG_FAQ: ClassVar[str] = 'faq' + FLAG_FEATURES: ClassVar[str] = 'features' FLAG_FILTER: ClassVar[str] = 'filter' FLAG_FORM: ClassVar[str] = 'form' FLAG_FORM_FILTERS: ClassVar[str] = 'form-filters' @@ -272,8 +277,20 @@ class Model_View_Base(BaseModel, ABC): NAME_COMPANY: ClassVar[str] = 'Precision And Research Technology Systems Limited - Fetch Metrics' NAME_COMPANY_SHORT: ClassVar[str] = 'Fetch Metrics' NAME_CSRF_TOKEN: ClassVar[str] = 'csrf-token' - URL_GITHUB: ClassVar[str] = 'https://github.com/Teddy-1024' - URL_LINKEDIN: ClassVar[str] = 'https://uk.linkedin.com/in/teddyms' + USERNAME_DISCORD: ClassVar[str] = 'Fetch Metrics' + USERNAME_GITHUB: ClassVar[str] = 'Teddy-1024' + USERNAME_INSTAGRAM: ClassVar[str] = 'fetchmetrics' + USERNAME_LINKEDIN: ClassVar[str] = 'teddyms' + USERNAME_REDDIT: ClassVar[str] = 'Fetch-Metrics' + USERNAME_TIKTOK: ClassVar[str] = 'fetchmetrics' + USERNAME_TWITTER: ClassVar[str] = 'FetchMetrics' + URL_DISCORD: ClassVar[str] = f'https://discord.gg/WFZN6WuZ' + URL_GITHUB: ClassVar[str] = f'https://github.com/{USERNAME_GITHUB}' + URL_INSTAGRAM: ClassVar[str] = f'https://www.instagram.com/{USERNAME_INSTAGRAM}/' + URL_LINKEDIN: ClassVar[str] = f'https://uk.linkedin.com/in/{USERNAME_LINKEDIN}' + URL_REDDIT: ClassVar[str] = f'https://www.reddit.com/u/{USERNAME_REDDIT}/s/gZKEz2ZwHN' + URL_TIKTOK: ClassVar[str] = f'https://www.tiktok.com/@{USERNAME_TIKTOK}' + URL_TWITTER: ClassVar[str] = f'https://x.com/{USERNAME_TWITTER}' _title: str hash_page_current: str diff --git a/models/model_view_contact.py b/models/model_view_contact.py new file mode 100644 index 0000000..e69fbae --- /dev/null +++ b/models/model_view_contact.py @@ -0,0 +1,31 @@ +""" +Project: PARTS Website +Author: Edward Middleton-Smith + Precision And Research Technology Systems Limited + +Technology: View Models +Feature: Contact View Model + +Description: +Data model for contact view +""" + +# internal +from business_objects.project_hub.contact_form import Contact_Form +from models.model_view_base import Model_View_Base +# from routes import bp_home +from lib import argument_validation as av +from forms.project_hub.contact import Form_Contact +# external +from flask_wtf import FlaskForm +from abc import abstractproperty +from pydantic import BaseModel +from typing import ClassVar + +class Model_View_Contact(Model_View_Base): + + form_contact: Form_Contact + + def __init__(self, form_contact, hash_page_current=Model_View_Base.HASH_PAGE_CONTACT, **kwargs): + super().__init__(hash_page_current=hash_page_current, form_contact=form_contact, **kwargs) + self._title = 'Contact' diff --git a/models/model_view_contact_success.py b/models/model_view_contact_success.py new file mode 100644 index 0000000..c2e071e --- /dev/null +++ b/models/model_view_contact_success.py @@ -0,0 +1,28 @@ +""" +Project: PARTS Website +Author: Edward Middleton-Smith + Precision And Research Technology Systems Limited + +Technology: View Models +Feature: Contact View Model + +Description: +Data model for contact view +""" + +# internal +from models.model_view_base import Model_View_Base +# from routes import bp_home +from lib import argument_validation as av +# from forms.contact import Form_Contact +# external +from flask_wtf import FlaskForm +from abc import abstractproperty +from pydantic import BaseModel +from typing import ClassVar + +class Model_View_Contact_Success(Model_View_Base): + + def __init__(self, hash_page_current=Model_View_Base.HASH_PAGE_CONTACT_SUCCESS, **kwargs): + super().__init__(hash_page_current=hash_page_current, **kwargs) + self._title = 'Contact Success' diff --git a/models/model_view_home.py b/models/model_view_home.py index 4533b3a..e1b508e 100644 --- a/models/model_view_home.py +++ b/models/model_view_home.py @@ -14,8 +14,15 @@ Data model for home view from models.model_view_base import Model_View_Base # from routes import bp_home # external +from typing import ClassVar + class Model_View_Home(Model_View_Base): + FLAG_EARLY_ACCESS: ClassVar[str] = 'early-access' + FLAG_PROBLEM: ClassVar[str] = 'problem' + FLAG_SOCIAL_PROOF: ClassVar[str] = 'social-proof' + FLAG_SOLUTION: ClassVar[str] = 'solution' + def __init__(self, hash_page_current=Model_View_Base.HASH_PAGE_HOME): super().__init__(hash_page_current=hash_page_current) self._title = 'Home' diff --git a/static/MySQL/00000_combined.sql b/static/MySQL/00000_combined.sql index 4701dd3..bd62b43 100644 --- a/static/MySQL/00000_combined.sql +++ b/static/MySQL/00000_combined.sql @@ -1,32 +1,26 @@ - + USE demo; -DROP PROCEDURE IF EXISTS demo.p_dog_get_many_response_quality_metric; +DROP PROCEDURE IF EXISTS demo.p_ph_save_contact_form; DELIMITER // -CREATE PROCEDURE demo.p_dog_get_many_response_quality_metric ( - IN a_id_user INT - , IN a_get_all_response_quality_metric BIT - , IN a_get_inactive_response_quality_metric BIT - , IN a_ids_response_quality_metric TEXT - , IN a_names_response_quality_metric TEXT - , IN a_require_all_id_search_filters_met BIT - , IN a_require_any_id_search_filters_met BIT - , IN a_require_all_non_id_search_filters_met BIT - , IN a_require_any_non_id_search_filters_met BIT - , IN a_debug BIT +CREATE PROCEDURE demo.p_ph_save_contact_form ( + IN a_comment VARCHAR(500), + IN a_guid BINARY(36), + IN a_id_user INT, + IN a_debug BIT ) BEGIN - DECLARE v_can_view BIT; - DECLARE v_code_type_error_bad_data VARCHAR(100); - DECLARE v_code_type_error_no_permission VARCHAR(100); - DECLARE v_guid BINARY(36); + DECLARE v_code_type_error_bad_data VARCHAR(100); DECLARE v_id_access_level_view INT; - DECLARE v_id_minimum INT; - DECLARE v_id_permission_dog_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_id_type_error_no_permission INT; DECLARE v_time_start TIMESTAMP(6); + DECLARE v_can_admin BIT; + DECLARE v_can_create BIT; DECLARE exit handler for SQLEXCEPTION BEGIN @@ -39,10 +33,10 @@ BEGIN ROLLBACK; CREATE TEMPORARY TABLE IF NOT EXISTS tmp_Msg_Error ( - id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT , id_type INT NULL - , code VARCHAR(250) NOT NULL - , msg TEXT NOT NULL + , code VARCHAR(50) NOT NULL + , msg VARCHAR(4000) NOT NULL ); INSERT INTO tmp_Msg_Error ( @@ -58,94 +52,138 @@ BEGIN 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 demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + SELECT * + FROM tmp_Msg_Error; + DROP TABLE IF EXISTS tmp_Msg_Error ; - - DROP TABLE IF EXISTS tmp_Msg_Error; END; - + SET v_time_start := CURRENT_TIMESTAMP(6); - SET v_guid := UUID(); SET v_code_type_error_bad_data := 'BAD_DATA'; - SET v_code_type_error_no_permission := 'NO_PERMISSION'; - 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_type_error_no_permission := (SELECT ERROR_TYPE.id_type FROM demo.CORE_Msg_Error_Type ERROR_TYPE WHERE ERROR_TYPE.code = v_code_type_error_no_permission LIMIT 1); - SET v_id_permission_dog_view := (SELECT PERMISSION.id_permission FROM demo.DOG_Permission PERMISSION WHERE PERMISSION.code = 'DOG_VIEW' LIMIT 1); - SET v_id_access_level_view := (SELECT ACCESS_LEVEL.id_access_level FROM demo.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'VIEW' LIMIT 1); + 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 a_id_user := IFNULL(a_id_user, 0); - /* - SET a_get_all_response_quality_metric := IFNULL(a_get_all_response_quality_metric, 0); - SET a_get_inactive_response_quality_metric := IFNULL(a_get_inactive_response_quality_metric, 0); - SET a_ids_response_quality_metric := TRIM(IFNULL(a_ids_response_quality_metric, '')); - SET a_names_response_quality_metric := TRIM(IFNULL(a_names_response_quality_metric, '')); - SET a_require_all_id_search_filters_met := IFNULL(a_require_all_id_search_filters_met, 1); - SET a_require_any_id_search_filters_met := IFNULL(a_require_any_id_search_filters_met, 1); - SET a_require_all_non_id_search_filters_met := IFNULL(a_require_all_non_id_search_filters_met, 0); - SET a_require_any_non_id_search_filters_met := IFNULL(a_require_any_non_id_search_filters_met, 1); - */ - SET a_debug := IFNULL(a_debug, 0); + CALL demo.p_core_validate_guid ( a_guid ); - IF a_debug = 1 THEN - SELECT - a_id_user - , a_get_all_response_quality_metric - , a_get_inactive_response_quality_metric - , a_ids_response_quality_metric - , a_names_response_quality_metric - , a_require_all_id_search_filters_met - , a_require_any_id_search_filters_met - , a_require_all_non_id_search_filters_met - , a_require_any_non_id_search_filters_met - , a_debug - ; - - SELECT - v_id_type_error_bad_data - , v_id_type_error_no_permission - , v_guid - , v_id_permission_dog_view - , v_time_start - ; - END IF; - - DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; - DROP TEMPORARY TABLE IF EXISTS tmp_Response_Quality_Metric; + DROP TABLE IF EXISTS tmp_Contact_Form; - CREATE TEMPORARY TABLE tmp_Response_Quality_Metric ( - id_metric INT NOT NULL - , id_unit_measurement INT - , code VARCHAR(250) - , name VARCHAR(250) - , value_min DOUBLE - , value_max DOUBLE - , active BIT - , does_meet_id_filters BIT NOT NULL - , does_meet_non_id_filters BIT NOT NULL + 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 IF NOT EXISTS tmp_Msg_Error ( - id_error INT NOT NULL PRIMARY KEY AUTO_INCREMENT + display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT , id_type INT NULL - , code VARCHAR(250) NOT NULL - , msg TEXT NOT NULL - ); + , code VARCHAR(50) NOT NULL + , msg VARCHAR(4000) NOT NULL + ); + + + -- Get data from Temp table + INSERT INTO tmp_Contact_Form ( + id_contact_form + , email + , name_contact + , name_company + , message + , receive_marketing_communications + , 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 + ; + + 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)') + ; + + -- 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) + ; + END IF; -- Permissions IF a_debug = 1 THEN SELECT - v_guid + a_guid , 0 -- get_all_user , 0 -- get_inactive_user , a_id_user -- ids_user @@ -156,7 +194,7 @@ 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_dog_view -- ids_permission + , v_id_permission_contact_form_admin -- ids_permission , v_id_access_level_view -- ids_access_level , 0 -- a_show_errors , 0 -- a_debug @@ -164,7 +202,7 @@ BEGIN END IF; CALL demo.p_dog_calc_user( - v_guid + a_guid , 0 -- get_all_user , 0 -- get_inactive_user , a_id_user -- ids_user @@ -175,7 +213,7 @@ 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_dog_view -- ids_permission + , v_id_permission_contact_form_admin -- ids_permission , v_id_access_level_view -- ids_access_level , 0 -- a_show_errors , 0 -- a_debug @@ -184,19 +222,83 @@ BEGIN SELECT IFNULL(CALC_USER_T.has_access, 0) INTO - v_can_view + v_can_admin FROM demo.DOG_Calc_User_Temp CALC_USER_T - WHERE CALC_USER_T.GUID = v_guid + WHERE CALC_USER_T.GUID = a_guid LIMIT 1 ; IF a_debug = 1 THEN - SELECT v_can_view; + 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; - IF (v_can_view = 0) THEN + 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) + INTO + v_can_create + 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_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 DELETE t_ME FROM tmp_Msg_Error t_ME WHERE t_ME.id_type <> v_id_type_error_no_permission @@ -204,186 +306,131 @@ BEGIN INSERT INTO tmp_Msg_Error ( id_type , code - , msg + , msg ) VALUES ( v_id_type_error_no_permission - , v_code_type_error_no_permission - , 'You do not have permission to view RESPONSE_QUALITY_METRIC.' + , v_code_type_error_no_permission + , 'You do not have permission to admin Contact Forms.' ) ; 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; + + 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; - CALL demo.p_dog_clear_calc_user( - v_guid - , 0 -- a_debug - ); + START TRANSACTION; - - -- Call Response_Quality_Metric Calc - IF NOT EXISTS(SELECT * FROM tmp_Msg_Error 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 - IF a_debug = 1 THEN - SELECT - v_guid -- a_guid - , a_id_user -- a_id_user - , a_get_all_response_quality_metric -- a_get_all_response_quality_metric - , a_get_inactive_response_quality_metric -- a_get_inactive_response_quality_metric - , a_ids_response_quality_metric -- a_ids_response_quality_metric - , a_names_response_quality_metric -- a_names_response_quality_metric - , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met - , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met - , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met - , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met - , 0 -- a_show_errors - , 0 -- a_debug - ; - END IF; - - CALL demo.p_dog_calc_response_quality_metric ( - v_guid -- a_guid - , a_id_user -- a_id_user - , a_get_all_response_quality_metric -- a_get_all_response_quality_metric - , a_get_inactive_response_quality_metric -- a_get_inactive_response_quality_metric - , a_ids_response_quality_metric -- a_ids_response_quality_metric - , a_names_response_quality_metric -- a_names_response_quality_metric - , a_require_all_id_search_filters_met -- a_require_all_id_search_filters_met - , a_require_any_id_search_filters_met -- a_require_any_id_search_filters_met - , a_require_all_non_id_search_filters_met -- a_require_all_non_id_search_filters_met - , a_require_any_non_id_search_filters_met -- a_require_any_non_id_search_filters_met - , 0 -- a_show_errors - , 0 -- a_debug - ); - - IF a_debug = 1 THEN - SELECT COUNT(*) FROM demo.DOG_Response_Quality_Metric_Temp; - SELECT * FROM demo.DOG_Response_Quality_Metric_Temp; - END IF; - - INSERT INTO tmp_Response_Quality_Metric ( - id_metric - , id_unit_measurement - , code - , name - , value_min - , value_max - , active - , does_meet_id_filters - , does_meet_non_id_filters - ) - SELECT - RESPONSE_QUALITY_METRIC_T.id_metric - , RESPONSE_QUALITY_METRIC_T.id_unit_measurement - , RESPONSE_QUALITY_METRIC_T.code - , RESPONSE_QUALITY_METRIC_T.name - , RESPONSE_QUALITY_METRIC_T.value_min - , RESPONSE_QUALITY_METRIC_T.value_max - , RESPONSE_QUALITY_METRIC_T.active - - , RESPONSE_QUALITY_METRIC_T.does_meet_id_filters - , RESPONSE_QUALITY_METRIC_T.does_meet_non_id_filters - FROM demo.DOG_Response_Quality_Metric_Temp RESPONSE_QUALITY_METRIC_T - WHERE RESPONSE_QUALITY_METRIC_T.GUID = v_guid + DELETE FROM demo.PH_Contact_Form_Temp + WHERE GUID = a_guid ; - - IF a_debug = 1 THEN - SELECT COUNT(*) FROM tmp_Response_Quality_Metric; - SELECT * FROM tmp_Response_Quality_Metric; - END IF; - END IF; + + COMMIT; - -- Filter outputs - IF EXISTS(SELECT * FROM tmp_Msg_Error 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 - IF a_debug = 1 THEN - SELECT * FROM tmp_Response_Quality_Metric; - END IF; - - DELETE FROM tmp_Response_Quality_Metric; - END IF; - - - -- Outputs - -- RESPONSE_QUALITY_METRIC - SELECT - t_RESPONSE_QUALITY_METRIC.id_metric - , t_RESPONSE_QUALITY_METRIC.id_unit_measurement - , UNIT_MEASUREMENT.name_singular AS name_singular_unit_measurement - , UNIT_MEASUREMENT.name_plural AS name_plural_unit_measurement - , UNIT_MEASUREMENT.symbol AS symbol_unit_measurement - , t_RESPONSE_QUALITY_METRIC.code - , t_RESPONSE_QUALITY_METRIC.name - , t_RESPONSE_QUALITY_METRIC.value_min - , t_RESPONSE_QUALITY_METRIC.value_max - , t_RESPONSE_QUALITY_METRIC.active - - , t_RESPONSE_QUALITY_METRIC.does_meet_id_filters - , t_RESPONSE_QUALITY_METRIC.does_meet_non_id_filters - FROM tmp_Response_Quality_Metric t_RESPONSE_QUALITY_METRIC - LEFT JOIN demo.DOG_Response_Quality_Metric RESPONSE_QUALITY_METRIC ON t_RESPONSE_QUALITY_METRIC.id_metric = RESPONSE_QUALITY_METRIC.id_metric - LEFT JOIN demo.DOG_Unit_Measurement UNIT_MEASUREMENT ON t_RESPONSE_QUALITY_METRIC.id_unit_measurement = UNIT_MEASUREMENT.id_unit_measurement - ORDER BY t_RESPONSE_QUALITY_METRIC.name - ; - -- 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 demo.CORE_Msg_Error_Type ERROR_TYPE ON t_ERROR.id_type = ERROR_TYPE.id_type + SELECT * + FROM tmp_Msg_Error t_ME + INNER JOIN demo.CORE_Msg_Error_Type MET ON t_ME.id_type = MET.id_type ; - IF a_debug = 1 AND v_can_view = 1 THEN - SELECT * FROM tmp_Response_Quality_Metric; - END IF; - - CALL demo.p_dog_clear_calc_response_quality_metric( - v_guid -- a_guid - , 0 -- a_debug - ); + IF a_debug = 1 THEN + SELECT * from tmp_Contact_Form; + END IF; + + DROP TEMPORARY TABLE tmp_Contact_Form; + DROP TEMPORARY TABLE tmp_Msg_Error; - DROP TEMPORARY TABLE IF EXISTS tmp_Msg_Error; - DROP TEMPORARY TABLE IF EXISTS tmp_Response_Quality_Metric; - - IF a_debug = 1 THEN + IF a_debug = 1 THEN CALL demo.p_core_debug_timing_reporting ( v_time_start ); - END IF; + END IF; END // DELIMITER ; -/* +select + * + -- COUNT(*) +-- delete +from demo.PH_Contact_Form_Temp +; -CALL demo.p_dog_get_many_response_quality_metric ( - 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user - , 1 -- a_get_all_response_quality_metric - , 0 -- a_get_inactive_response_quality_metric - , '' -- a_ids_response_quality_metric - , '' -- a_names_response_quality_metric - , 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 - , 1 -- a_require_any_non_id_search_filters_met - , 1 -- a_debug + +CALL demo.p_ph_save_contact_form ( + 'nipples' + , (SELECT GUID FROM demo.PH_Contact_Form_Temp ORDER BY id_temp DESC LIMIT 1) + , 1 + , 1 ); +select + * + -- COUNT(*) +-- delete +from demo.PH_Contact_Form_Temp +; -CALL demo.p_dog_get_many_response_quality_metric ( - 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user - , 1 -- a_get_all_response_quality_metric - , 0 -- a_get_inactive_response_quality_metric - , '' -- a_ids_response_quality_metric - , 'pat,point' -- a_names_response_quality_metric - , 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 - , 1 -- a_require_any_non_id_search_filters_met - , 1 -- a_debug -); -*/ \ No newline at end of file diff --git a/static/MySQL/00001_destroy.sql b/static/MySQL/00001_destroy.sql index 90a1904..3f6521f 100644 --- a/static/MySQL/00001_destroy.sql +++ b/static/MySQL/00001_destroy.sql @@ -14,6 +14,12 @@ DROP TABLE IF EXISTS parts.tmp_dog_User_Role_Link; -- Permanent Tables +DROP TABLE IF EXISTS parts.PH_Contact_Form_Temp; +DROP TABLE IF EXISTS parts.PH_Contact_Form_Audit; +DROP TABLE IF EXISTS parts.PH_Contact_Form; + +DROP TABLE IF EXISTS parts.PH_Contact_Form_Change_Set; + DROP TABLE IF EXISTS parts.DOG_Assessment_Response_Temp; DROP TABLE IF EXISTS parts.DOG_Assessment_Response_Audit; DROP TABLE IF EXISTS parts.DOG_Assessment_Response; @@ -181,6 +187,11 @@ DROP TABLE IF EXISTS parts.CORE_File_Type; DROP TABLE IF EXISTS parts.CORE_Msg_Error_Type; -- Stored Procedures +DROP PROCEDURE IF EXISTS parts.p_ph_test_get_many_contact_form; +DROP PROCEDURE IF EXISTS parts.p_ph_get_many_contact_form; +DROP PROCEDURE IF EXISTS parts.p_ph_test_save_contact_form; +DROP PROCEDURE IF EXISTS parts.p_ph_save_contact_form; + DROP PROCEDURE IF EXISTS parts.p_dog_test_get_many_dog_command; DROP PROCEDURE IF EXISTS parts.p_dog_test_get_many_command; DROP PROCEDURE IF EXISTS parts.p_dog_get_many_command; diff --git a/static/MySQL/11310_tbl_DOG_Assessment_Temp.sql b/static/MySQL/11310_tbl_DOG_Assessment_Temp.sql index 942edd7..12c4638 100644 --- a/static/MySQL/11310_tbl_DOG_Assessment_Temp.sql +++ b/static/MySQL/11310_tbl_DOG_Assessment_Temp.sql @@ -1,6 +1,8 @@ USE parts; +-- DROP TABLE IF EXISTS parts.DOG_Assessment_Temp; + SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning FROM INFORMATION_SCHEMA.TABLES WHERE @@ -17,7 +19,7 @@ CREATE TABLE IF NOT EXISTS parts.DOG_Assessment_Temp ( , id_user_handler INT , notes TEXT , temperature_celcius DECIMAL(5, 2) --- , difficulty_level DOUBLE + , difficulty_level DOUBLE , active BIT , does_meet_id_filters BIT diff --git a/static/MySQL/11600_tbl_PH_Contact_Form_Change_Set.sql b/static/MySQL/11600_tbl_PH_Contact_Form_Change_Set.sql new file mode 100644 index 0000000..2375089 --- /dev/null +++ b/static/MySQL/11600_tbl_PH_Contact_Form_Change_Set.sql @@ -0,0 +1,19 @@ + +USE parts; + +SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning +FROM INFORMATION_SCHEMA.TABLES +WHERE + TABLE_SCHEMA = 'parts' + AND TABLE_NAME = 'PH_Contact_Form_Change_Set' +; + +CREATE TABLE IF NOT EXISTS parts.PH_Contact_Form_Change_Set ( + id_change_set INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , comment VARCHAR(500) + , updated_last_on DATETIME + , id_user_updated_last_by INT + , CONSTRAINT FK_PH_Contact_Form_Change_Set_id_user_updated_last_by + FOREIGN KEY (id_user_updated_last_by) + REFERENCES parts.DOG_User(id_user) +); \ No newline at end of file diff --git a/static/MySQL/11601_tbl_PH_Contact_Form.sql b/static/MySQL/11601_tbl_PH_Contact_Form.sql new file mode 100644 index 0000000..792cec5 --- /dev/null +++ b/static/MySQL/11601_tbl_PH_Contact_Form.sql @@ -0,0 +1,28 @@ + +USE parts; + +SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning +FROM INFORMATION_SCHEMA.TABLES +WHERE + TABLE_SCHEMA = 'parts' + AND TABLE_NAME = 'PH_Contact_Form' +; + +CREATE TABLE IF NOT EXISTS parts.PH_Contact_Form ( + id_contact_form INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , 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 DEFAULT 0 + , active BIT NOT NULL DEFAULT 1 + , created_on DATETIME + , id_user_created_by INT + , CONSTRAINT FK_PH_Contact_Form_id_user_created_by + FOREIGN KEY (id_user_created_by) + REFERENCES parts.DOG_User(id_user) + , id_change_set INT + , CONSTRAINT FK_PH_Contact_Form_id_change_set + FOREIGN KEY (id_change_set) + REFERENCES parts.PH_Contact_Form_Change_Set(id_change_set) +); diff --git a/static/MySQL/11602_tbl_PH_Contact_Form_Audit.sql b/static/MySQL/11602_tbl_PH_Contact_Form_Audit.sql new file mode 100644 index 0000000..9cb14b9 --- /dev/null +++ b/static/MySQL/11602_tbl_PH_Contact_Form_Audit.sql @@ -0,0 +1,24 @@ + +USE parts; + +SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning +FROM INFORMATION_SCHEMA.TABLES +WHERE + TABLE_SCHEMA = 'parts' + AND TABLE_NAME = 'PH_Contact_Form_Audit' +; + +CREATE TABLE IF NOT EXISTS parts.PH_Contact_Form_Audit ( + id_audit INT NOT NULL AUTO_INCREMENT PRIMARY KEY + , id_contact_form INT NOT NULL + , CONSTRAINT FK_PH_Contact_Form_Audit_id_contact_form + FOREIGN KEY (id_contact_form) + REFERENCES parts.PH_Contact_Form(id_contact_form) + , name_field VARCHAR(50) NOT NULL + , value_prev TEXT + , value_new TEXT + , id_change_set INT NOT NULL + , CONSTRAINT FK_PH_Contact_Form_Audit_id_change_set + FOREIGN KEY (id_change_set) + REFERENCES parts.PH_Contact_Form_Change_Set(id_change_set) +); diff --git a/static/MySQL/11603_tbl_PH_Contact_Form_Temp.sql b/static/MySQL/11603_tbl_PH_Contact_Form_Temp.sql new file mode 100644 index 0000000..a8d153e --- /dev/null +++ b/static/MySQL/11603_tbl_PH_Contact_Form_Temp.sql @@ -0,0 +1,21 @@ + +USE parts; + +SELECT CONCAT('WARNING: Table ', TABLE_SCHEMA, '.', TABLE_NAME, ' already exists.') AS msg_warning +FROM INFORMATION_SCHEMA.TABLES +WHERE + TABLE_SCHEMA = 'parts' + AND TABLE_NAME = 'PH_Contact_Form_Temp' +; + +CREATE TABLE IF NOT EXISTS parts.PH_Contact_Form_Temp ( + id_temp INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_contact_form INT + , email VARCHAR(255) + , name_contact VARCHAR(255) + , name_company VARCHAR(255) + , message TEXT + , receive_marketing_communications BIT + , active BIT + , guid BINARY(36) +); diff --git a/static/MySQL/31600_tri_PH_Contact_Form_Change_Set.sql b/static/MySQL/31600_tri_PH_Contact_Form_Change_Set.sql new file mode 100644 index 0000000..0ef7c9a --- /dev/null +++ b/static/MySQL/31600_tri_PH_Contact_Form_Change_Set.sql @@ -0,0 +1,14 @@ +USE parts; + +DROP TRIGGER IF EXISTS parts.before_insert_PH_Contact_Form_Change_Set; + +DELIMITER // +CREATE TRIGGER parts.before_insert_PH_Contact_Form_Change_Set +BEFORE INSERT ON parts.PH_Contact_Form_Change_Set +FOR EACH ROW +BEGIN + IF NEW.updated_last_on <=> NULL THEN + SET NEW.updated_last_on = NOW(); + END IF; +END // +DELIMITER ; diff --git a/static/MySQL/31601_tri_PH_Contact_Form.sql b/static/MySQL/31601_tri_PH_Contact_Form.sql new file mode 100644 index 0000000..daf7892 --- /dev/null +++ b/static/MySQL/31601_tri_PH_Contact_Form.sql @@ -0,0 +1,58 @@ + +USE parts; + +DROP TRIGGER IF EXISTS parts.before_insert_PH_Contact_Form; +DROP TRIGGER IF EXISTS parts.before_update_PH_Contact_Form; + +DELIMITER // +CREATE TRIGGER parts.before_insert_PH_Contact_Form +BEFORE INSERT ON parts.PH_Contact_Form +FOR EACH ROW +BEGIN + SET NEW.created_on := IFNULL(NEW.created_on, NOW()); +END // +DELIMITER ; + +DELIMITER // +CREATE TRIGGER parts.before_update_PH_Contact_Form +BEFORE UPDATE ON parts.PH_Contact_Form +FOR EACH ROW +BEGIN + IF OLD.id_change_set <=> NEW.id_change_set THEN + SIGNAL SQLSTATE '45000' + SET MESSAGE_TEXT = 'New change Set ID must be provided.'; + END IF; + + INSERT INTO parts.PH_Contact_Form_Audit ( + id_contact_form, + name_field, + value_prev, + value_new, + id_change_set + ) + -- Changed email + SELECT NEW.id_contact_form, 'email', OLD.email, NEW.email, NEW.id_change_set + WHERE NOT OLD.email <=> NEW.email + UNION + -- Changed name_contact + SELECT NEW.id_contact_form, 'name_contact', OLD.name_contact, NEW.name_contact, NEW.id_change_set + WHERE NOT OLD.name_contact <=> NEW.name_contact + UNION + -- Changed name_company + SELECT NEW.id_contact_form, 'name_company', OLD.name_company, NEW.name_company, NEW.id_change_set + WHERE NOT OLD.name_company <=> NEW.name_company + UNION + -- Changed message + SELECT NEW.id_contact_form, 'message', OLD.message, NEW.message, NEW.id_change_set + WHERE NOT OLD.message <=> NEW.message + UNION + -- Changed receive_marketing_communications + SELECT NEW.id_contact_form, 'receive_marketing_communications', CONVERT(CONVERT(OLD.receive_marketing_communications, SIGNED), CHAR), CONVERT(CONVERT(NEW.receive_marketing_communications, SIGNED), CHAR), NEW.id_change_set + WHERE NOT (OLD.receive_marketing_communications <=> NEW.receive_marketing_communications) + UNION + -- Changed active + SELECT NEW.id_contact_form, 'active', CONVERT(CONVERT(OLD.active, SIGNED), CHAR), CONVERT(CONVERT(NEW.active, SIGNED), CHAR), NEW.id_change_set + WHERE NOT (OLD.active <=> NEW.active) + ; +END // +DELIMITER ; diff --git a/static/MySQL/71310_p_dog_save_assessment.sql b/static/MySQL/71310_p_dog_save_assessment.sql new file mode 100644 index 0000000..f2fa819 --- /dev/null +++ b/static/MySQL/71310_p_dog_save_assessment.sql @@ -0,0 +1,552 @@ + +USE parts; + +DROP PROCEDURE IF EXISTS parts.p_dog_save_assessment; + +DELIMITER // +CREATE PROCEDURE parts.p_dog_save_assessment ( + 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 NULL + , 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 + ; + + 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_Copy; + DROP TABLE IF EXISTS tmp_Assessment; + + CREATE TEMPORARY TABLE tmp_Assessment ( + id_temp INT + , id_assessment INT + , id_weather INT + , id_lighting_level INT + , id_location INT + , id_user_handler INT + , notes TEXT + , temperature_celcius DECIMAL(5, 2) + , difficulty_level FLOAT + , active BIT + , is_new BIT + , name_error VARCHAR(250) + ); + + CREATE TEMPORARY TABLE tmp_Assessment_Copy ( + id_temp INT + , id_assessment INT + , id_weather INT + , id_lighting_level INT + , id_location INT + , id_user_handler INT + , notes TEXT + , temperature_celcius DECIMAL(5, 2) + , difficulty_level FLOAT + , 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 NULL + , code VARCHAR(250) + , msg TEXT NOT NULL + ); + + + -- Get data from Temp table + INSERT INTO tmp_Assessment ( + id_temp + , id_assessment + , id_weather + , id_lighting_level + , id_location + , id_user_handler + , notes + , temperature_celcius + , difficulty_level + , active + , is_new + ) + SELECT + ASSESSMENT_T.id_temp + , ASSESSMENT_T.id_assessment + , COALESCE( + ASSESSMENT_T.id_weather + , ASSESSMENT.id_weather + ) AS id_weather + , COALESCE( + ASSESSMENT_T.id_lighting_level + , ASSESSMENT.id_lighting_level + ) AS id_lighting_level + , COALESCE( + ASSESSMENT_T.id_location + , ASSESSMENT.id_location + ) AS id_location + , COALESCE( + ASSESSMENT_T.id_user_handler + , ASSESSMENT.id_user_handler + ) AS id_user_handler + , ASSESSMENT_T.notes + , ASSESSMENT_T.temperature_celcius + , ASSESSMENT_T.difficulty_level + , COALESCE(ASSESSMENT_T.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 + ; + + IF a_debug = 1 THEN + SELECT 'Assessment_Temp records'; + SELECT * FROM tmp_Assessment; + SELECT COUNT(*) FROM tmp_Assessment; + END IF; + + -- Error names + 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) + , CASE WHEN t_ASSESSMENT.notes IS NOT NULL THEN CONCAT(' - ', t_ASSESSMENT.notes) ELSE '' END + /* + COALESCE(WEATHER.name, '(No Weather)') + , ' - ' + , COALESCE(LIGHTING_LEVEL.name, '(No Lighting Level)') + , ' - ' + , COALESCE(LOCATIONS.name, '(No Location)') + , ' - ' + , COALESCE(CONCAT(USER_HANDLER.firstname, ' ', USER_HANDLER.surname), '(No User Handler)') + , ' - x' + , CONVERT(COALESCE(t_ASSESSMENT.quantity, 0), CHAR) + */ + ) + ; + + IF a_debug = 1 THEN + SELECT 'After set name_error'; + SELECT * FROM tmp_Assessment; + SELECT COUNT(*) FROM tmp_Assessment; + END IF; + + + -- Validation + -- Missing mandatory fields + -- id_weather + IF EXISTS ( + SELECT * + FROM tmp_Assessment t_ASSESSMENT + LEFT JOIN demo.DOG_Weather WEATHER ON t_ASSESSMENT.id_weather = WEATHER.id_weather + WHERE + ISNULL(t_ASSESSMENT.id_weather) + OR ISNULL(WEATHER.id_weather) + OR WEATHER.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 Weather Assessment(s) do not have a valid Weather: ', GROUP_CONCAT(t_ASSESSMENT.name_error SEPARATOR ', ')) AS msg + FROM tmp_Assessment t_ASSESSMENT + LEFT JOIN parts.DOG_Weather WEATHER ON t_ASSESSMENT.id_weather = WEATHER.id_weather + WHERE + ISNULL(t_ASSESSMENT.id_weather) + OR ISNULL(WEATHER.id_weather) + OR WEATHER.active = 0 + ; + END IF; + -- id_lighting_level + IF EXISTS ( + SELECT * + FROM tmp_Assessment t_ASSESSMENT + LEFT JOIN demo.DOG_Lighting_Level LIGHTING_LEVEL ON t_ASSESSMENT.id_lighting_level = LIGHTING_LEVEL.id_lighting_level + WHERE + ISNULL(t_ASSESSMENT.id_lighting_level) + OR ISNULL(LIGHTING_LEVEL.id_lighting_level) + OR LIGHTING_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 Lighting_Level Assessment(s) do not have a valid Lighting_Level: ', GROUP_CONCAT(t_ASSESSMENT.name_error SEPARATOR ', ')) AS msg + FROM tmp_Assessment t_ASSESSMENT + LEFT JOIN parts.DOG_Lighting_Level LIGHTING_LEVEL ON t_ASSESSMENT.id_lighting_level = LIGHTING_LEVEL.id_lighting_level + WHERE + ISNULL(t_ASSESSMENT.id_lighting_level) + OR ISNULL(LIGHTING_LEVEL.id_lighting_level) + OR LIGHTING_LEVEL.active = 0 + ; + END IF; + -- id_location + IF EXISTS ( + SELECT * + FROM tmp_Assessment t_ASSESSMENT + LEFT JOIN demo.DOG_Location LOCATION ON t_ASSESSMENT.id_location = LOCATION.id_location + WHERE + ISNULL(t_ASSESSMENT.id_location) + OR ISNULL(LOCATION.id_location) + OR LOCATION.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 Location Assessment(s) do not have a valid Location: ', GROUP_CONCAT(t_ASSESSMENT.name_error SEPARATOR ', ')) AS msg + FROM tmp_Assessment t_ASSESSMENT + LEFT JOIN parts.DOG_Location LOCATION ON t_ASSESSMENT.id_location = LOCATION.id_location + WHERE + ISNULL(t_ASSESSMENT.id_location) + OR ISNULL(LOCATION.id_location) + OR LOCATION.active = 0 + ; + END IF; + -- id_user_handler + 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 + WHERE + ISNULL(t_ASSESSMENT.id_user_handler) + OR ISNULL(USER_HANDLER.id_user_handler) + OR USER_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 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 + WHERE + ISNULL(t_ASSESSMENT.id_user_handler) + OR ISNULL(USER_HANDLER.id_user_handler) + OR USER_HANDLER.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 Assessments.' + ) + ; + 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; + END IF; + + DELETE FROM tmp_Assessment; + 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 ASSESSMENT + INNER JOIN tmp_Assessment t_ASSESSMENT + ON ASSESSMENT.id_assessment = t_ASSESSMENT.id_assessment + AND t_ASSESSMENT.is_new = 0 + SET + ASSESSMENT.id_weather = t_ASSESSMENT.id_weather + , ASSESSMENT.id_lighting_level = t_ASSESSMENT.id_lighting_level + , ASSESSMENT.id_location = t_ASSESSMENT.id_location + , ASSESSMENT.id_user_handler = t_ASSESSMENT.id_user_handler + , ASSESSMENT.temperature_celcius = t_ASSESSMENT.temperature_celcius + , ASSESSMENT.difficulty_level = t_ASSESSMENT.difficulty_level + , ASSESSMENT.notes = t_ASSESSMENT.notes + , ASSESSMENT.active = t_ASSESSMENT.active + , ASSESSMENT.id_change_set = v_id_change_set + ; + + INSERT INTO parts.DOG_Assessment ( + id_weather + , id_lighting_level + , id_location + , id_user_handler + , temperature_celcius + , difficulty_level + , notes + , active + , id_user_created_by + , created_on + ) + SELECT + 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 + , t_ASSESSMENT.temperature_celcius AS temperature_celcius + , t_ASSESSMENT.difficulty_level AS difficulty_level + , t_ASSESSMENT.notes AS notes + , t_ASSESSMENT.active AS active + , a_id_user AS created_by + , v_time_start AS created_on + FROM tmp_Assessment t_ASSESSMENT + WHERE + t_ASSESSMENT.is_new = 1 + AND t_ASSESSMENT.active = 1 + ; + + COMMIT; + END IF; + + START TRANSACTION; + + DELETE FROM parts.DOG_Assessment_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; + END IF; + + DROP TEMPORARY TABLE tmp_Assessment; + 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 ; + + + +/* + +'ripplesipplenippletippledipplekipple' +DELETE FROM parts.DOG_Assessment WHERE id_assessment > 740; +* / +delete +from parts.DOG_Assessment_Audit +where id_assessment > 768 +; +delete +from parts.DOG_Assessment +where id_assessment > 768 +; +delete +from parts.DOG_Assessment_Temp +; +select + * + -- COUNT(*) +-- delete +from parts.DOG_Assessment_Temp +; +select COUNT(*) +from parts.DOG_Assessment_Temp +; +select + * + -- COUNT(*) +-- delete +from parts.DOG_Assessment +; +select COUNT(*) +from parts.DOG_Assessment +; + +INSERT INTO parts.DOG_Assessment_Temp ( + id_assessment + , id_dog + , id_command + , hand_signal_description + , notes + , active + , guid +) +VALUES ( + -1 -- id_assessment + , 1 -- id_dog + , 1 -- id_command + , 'Test deez noots' -- hand_signal_description + , NULL -- notes + , 1 -- active + , 'ripplesipplenippletippledipplekipple' +); + +CALL parts.p_dog_save_assessment ( + 'nipples' + , 'ripplesipplenippletippledipplekipple' + , 1 + , 1 +); + + +select + * + -- COUNT(*) +-- delete +from parts.DOG_Assessment_Temp +; +select COUNT(*) +from parts.DOG_Assessment_Temp +; +select + * + -- COUNT(*) +-- delete +from parts.DOG_Assessment +; +select COUNT(*) +from parts.DOG_Assessment +; + +*/ \ No newline at end of file diff --git a/static/MySQL/71310_p_dog_save_dog_assessment.sql b/static/MySQL/71310_p_dog_save_dog_assessment.sql deleted file mode 100644 index 32ef969..0000000 --- a/static/MySQL/71310_p_dog_save_dog_assessment.sql +++ /dev/null @@ -1,693 +0,0 @@ - -USE parts; - -DROP PROCEDURE IF EXISTS parts.p_dog_save_dog_command_link; - -DELIMITER // -CREATE PROCEDURE parts.p_dog_save_dog_command_link ( - 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 NULL - , 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 - ; - - 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_Dog_Command_Link_Copy; - DROP TABLE IF EXISTS tmp_Dog_Command_Link; - - CREATE TEMPORARY TABLE tmp_Dog_Command_Link ( - id_temp INT - , id_link INT - , id_dog INT - , id_command INT - , hand_signal_description TEXT - , notes TEXT - , active BIT - , is_new BIT - , name_error VARCHAR(250) - ); - - CREATE TEMPORARY TABLE tmp_Dog_Command_Link_Copy ( - id_temp INT - , id_link INT - , id_dog INT - , id_command INT - , hand_signal_description TEXT - , 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 NULL - , code VARCHAR(250) - , msg TEXT NOT NULL - ); - - - -- Get data from Temp table - INSERT INTO tmp_Dog_Command_Link ( - id_temp - , id_link - , id_dog - , id_command - , hand_signal_description - , notes - , active - , is_new - ) - SELECT - DOG_COMMAND_LINK_T.id_temp - , COALESCE(DOG_COMMAND_LINK.id_link, DOG_COMMAND_LINK_T.id_link) - , COALESCE( - DOG_COMMAND_LINK_T.id_dog - , DOG_COMMAND_LINK.id_dog - ) AS id_dog - , COALESCE( - DOG_COMMAND_LINK_T.id_command - , DOG_COMMAND_LINK.id_command - ) AS id_command - /* - , NULLIF( - COALESCE( - DOG_COMMAND_LINK_T.hand_signal_description - , DOG_COMMAND_LINK.hand_signal_description - ) - , '' - ) AS hand_signal_description - , NULLIF( - COALESCE( - DOG_COMMAND_LINK_T.notes - , DOG_COMMAND_LINK.notes - ) - , '' - ) AS notes - */ - , COALESCE( - DOG_COMMAND_LINK_T.hand_signal_description - , DOG_COMMAND_LINK.hand_signal_description - ) AS hand_signal_description - , COALESCE( - DOG_COMMAND_LINK_T.notes - , DOG_COMMAND_LINK.notes - ) AS notes - , COALESCE(DOG_COMMAND_LINK_T.active, 1) AS active - , CASE WHEN COALESCE(DOG_COMMAND_LINK.id_link, DOG_COMMAND_LINK_T.id_link, 0) < 1 THEN 1 ELSE 0 END AS is_new - FROM parts.DOG_Dog_Command_Link_Temp DOG_COMMAND_LINK_T - LEFT JOIN parts.DOG_Dog_Command_Link DOG_COMMAND_LINK - ON DOG_COMMAND_LINK_T.id_link = DOG_COMMAND_LINK.id_link - OR ( - DOG_COMMAND_LINK_T.id_dog = DOG_COMMAND_LINK.id_dog - AND DOG_COMMAND_LINK_T.id_command = DOG_COMMAND_LINK.id_command - AND ( - DOG_COMMAND_LINK.hand_signal_description IS NULL - OR DOG_COMMAND_LINK_T.hand_signal_description <=> DOG_COMMAND_LINK.hand_signal_description - ) - AND ( - DOG_COMMAND_LINK.notes IS NULL - OR DOG_COMMAND_LINK_T.notes <=> DOG_COMMAND_LINK.notes - ) - ) - WHERE DOG_COMMAND_LINK_T.guid = a_guid - ; - - IF a_debug = 1 THEN - SELECT 'Dog_Command_Link_Temp records'; - SELECT * FROM tmp_Dog_Command_Link; - SELECT COUNT(*) FROM tmp_Dog_Command_Link; - END IF; - - -- Error names - UPDATE tmp_Dog_Command_Link t_DOG_COMMAND_LINK - LEFT JOIN parts.DOG_Dog DOG ON t_DOG_COMMAND_LINK.id_dog = DOG.id_dog - LEFT JOIN parts.DOG_Command COMMAND ON t_DOG_COMMAND_LINK.id_command = COMMAND.id_command - SET t_DOG_COMMAND_LINK.name_error = CASE WHEN - ISNULL(DOG.id_dog) - AND ISNULL(COMMAND.id_command) - THEN COALESCE(t_DOG_COMMAND_LINK.hand_signal_description, t_DOG_COMMAND_LINK.notes, '(No Dog Command Link)') - ELSE CONCAT( - COALESCE(DOG.name, t_DOG_COMMAND_LINK.id_dog, '(No Dog)') - , ' - ' - , COALESCE(COMMAND.name, t_DOG_COMMAND_LINK.id_command, '(No Command)') - ) END - ; - - IF a_debug = 1 THEN - SELECT 'After set name_error'; - SELECT * FROM tmp_Dog_Command_Link; - SELECT COUNT(*) FROM tmp_Dog_Command_Link; - END IF; - - /* - -- Missing Dog Command Link Ids - UPDATE tmp_Dog_Command_Link t_DOG_COMMAND_LINK - LEFT JOIN parts.DOG_Dog_Command_Link DOG_COMMAND_LINK - -- ON t_DOG_COMMAND_LINK.id_link = DOG_COMMAND_LINK.id_link - ON t_DOG_COMMAND_LINK.id_dog = DOG_COMMAND_LINK.id_dog - AND t_DOG_COMMAND_LINK.id_command = DOG_COMMAND_LINK.id_command - SET - t_DOG_COMMAND_LINK.id_link = DOG_COMMAND_LINK.id_link - , t_DOG_COMMAND_LINK.is_new = 0 - WHERE - IFNULL(t_DOG_COMMAND_LINK.id_link, 0) < 1 - AND NOT ISNULL(DOG_COMMAND_LINK.id_link) - ; - - IF a_debug = 1 THEN - SELECT 'After set missing id_link'; - SELECT * FROM tmp_Dog_Command_Link; - SELECT COUNT(*) FROM tmp_Dog_Command_Link; - END IF; - */ - - -- Validation - -- Missing mandatory fields - -- id_dog - IF EXISTS ( - SELECT * - FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK - LEFT JOIN demo.DOG_Dog DOG ON t_DOG_COMMAND_LINK.id_dog = DOG.id_dog - WHERE - ISNULL(t_DOG_COMMAND_LINK.id_dog) - OR ISNULL(DOG.id_dog) - OR DOG.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 Command Link(s) do not have a valid Dog: ', GROUP_CONCAT(t_DOG_COMMAND_LINK.name_error SEPARATOR ', ')) AS msg - FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK - LEFT JOIN parts.DOG_Dog DOG ON t_DOG_COMMAND_LINK.id_dog = DOG.id_dog - WHERE - ISNULL(t_DOG_COMMAND_LINK.id_dog) - OR ISNULL(DOG.id_dog) - OR DOG.active = 0 - ; - END IF; - -- id_command - IF EXISTS ( - SELECT * - FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK - LEFT JOIN demo.DOG_Command COMMAND ON t_DOG_COMMAND_LINK.id_command = COMMAND.id_command - WHERE - ISNULL(t_DOG_COMMAND_LINK.id_command) - OR ISNULL(COMMAND.id_command) - OR COMMAND.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 Command Link(s) do not have a valid Command: ', GROUP_CONCAT(t_DOG_COMMAND_LINK.name_error SEPARATOR ', ')) AS msg - FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK - LEFT JOIN parts.DOG_Command COMMAND ON t_DOG_COMMAND_LINK.id_command = COMMAND.id_command - WHERE - ISNULL(t_DOG_COMMAND_LINK.id_command) - OR ISNULL(COMMAND.id_command) - OR COMMAND.active = 0 - ; - END IF; - - -- Duplicates - INSERT INTO tmp_Dog_Command_Link_Copy ( - id_temp - , id_link - , id_dog - , id_command - , hand_signal_description - , notes - , active - , is_new - , name_error - ) - SELECT - t_DOG_COMMAND_LINK.id_temp - , t_DOG_COMMAND_LINK.id_link - , t_DOG_COMMAND_LINK.id_dog - , t_DOG_COMMAND_LINK.id_command - , t_DOG_COMMAND_LINK.hand_signal_description - , t_DOG_COMMAND_LINK.notes - , t_DOG_COMMAND_LINK.active - , t_DOG_COMMAND_LINK.is_new - , t_DOG_COMMAND_LINK.name_error - FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK - ; - - IF a_debug = 1 THEN - SELECT COUNT(*) AS Count_Temp_Link FROM tmp_Dog_Command_Link; - SELECT COUNT(*) AS Count_Temp_Link_Copy FROM tmp_Dog_Command_Link_Copy; - - WITH - Combined_Links AS ( - SELECT - DOG_COMMAND_LINK.id_link - , DOG_COMMAND_LINK.id_dog - , DOG_COMMAND_LINK.id_command - , IFNULL( - t_DOG_COMMAND_LINK_COPY.name_error - , CONCAT( - COALESCE(DOG.name, t_DOG_COMMAND_LINK_COPY.id_dog, '(No Dog)') - , ' - ' - , COALESCE(COMMAND.name, t_DOG_COMMAND_LINK_COPY.id_command, '(No Command)') - ) - ) AS name_error - FROM parts.DOG_Dog_Command_Link DOG_COMMAND_LINK - LEFT JOIN tmp_Dog_Command_Link_Copy t_DOG_COMMAND_LINK_COPY - ON DOG_COMMAND_LINK.id_dog = t_DOG_COMMAND_LINK_COPY.id_dog - AND DOG_COMMAND_LINK.id_command = t_DOG_COMMAND_LINK_COPY.id_command - INNER JOIN parts.DOG_Dog DOG ON DOG_COMMAND_LINK.id_dog = DOG.id_dog - INNER JOIN parts.DOG_Command COMMAND ON DOG_COMMAND_LINK.id_command = COMMAND.id_command - WHERE t_DOG_COMMAND_LINK_COPY.is_new = 1 - UNION - SELECT - t_DOG_COMMAND_LINK.id_link - , t_DOG_COMMAND_LINK.id_dog - , t_DOG_COMMAND_LINK.id_command - , t_DOG_COMMAND_LINK.name_error - FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK - ) - , Duplicate_Link_Row_Numbers AS ( - SELECT - COMBINED_LINK.id_link - , COMBINED_LINK.id_dog - , COMBINED_LINK.id_command - , COMBINED_LINK.name_error - , ROW_NUMBER() OVER (PARTITION BY COMBINED_LINK.id_dog, COMBINED_LINK.id_command ORDER BY COMBINED_LINK.name_error ASC) AS index_link_as_duplicate - FROM Combined_Links COMBINED_LINK - ) - SELECT * - FROM Duplicate_Link_Row_Numbers; - END IF; - - IF EXISTS ( - WITH - Combined_Links AS ( - SELECT - DOG_COMMAND_LINK.id_link - , DOG_COMMAND_LINK.id_dog - , DOG_COMMAND_LINK.id_command - , IFNULL( - t_DOG_COMMAND_LINK_COPY.name_error - , CONCAT( - COALESCE(DOG.name, t_DOG_COMMAND_LINK_COPY.id_dog, '(No Dog)') - , ' - ' - , COALESCE(COMMAND.name, t_DOG_COMMAND_LINK_COPY.id_command, '(No Command)') - ) - ) AS name_error - FROM parts.DOG_Dog_Command_Link DOG_COMMAND_LINK - LEFT JOIN tmp_Dog_Command_Link_Copy t_DOG_COMMAND_LINK_COPY - ON DOG_COMMAND_LINK.id_dog = t_DOG_COMMAND_LINK_COPY.id_dog - AND DOG_COMMAND_LINK.id_command = t_DOG_COMMAND_LINK_COPY.id_command - INNER JOIN parts.DOG_Dog DOG ON DOG_COMMAND_LINK.id_dog = DOG.id_dog - INNER JOIN parts.DOG_Command COMMAND ON DOG_COMMAND_LINK.id_command = COMMAND.id_command - WHERE t_DOG_COMMAND_LINK_COPY.is_new = 1 - UNION - SELECT - t_DOG_COMMAND_LINK.id_link - , t_DOG_COMMAND_LINK.id_dog - , t_DOG_COMMAND_LINK.id_command - , t_DOG_COMMAND_LINK.name_error - FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK - ) - , Duplicate_Link_Row_Numbers AS ( - SELECT - COMBINED_LINK.id_link - , COMBINED_LINK.id_dog - , COMBINED_LINK.id_command - , COMBINED_LINK.name_error - , ROW_NUMBER() OVER (PARTITION BY COMBINED_LINK.id_dog, COMBINED_LINK.id_command ORDER BY COMBINED_LINK.name_error ASC) AS index_link_as_duplicate - FROM Combined_Links COMBINED_LINK - ) - SELECT * - FROM Duplicate_Link_Row_Numbers DUPLICATE_LINK - WHERE DUPLICATE_LINK.index_link_as_duplicate > 1 - GROUP BY DUPLICATE_LINK.id_dog, DUPLICATE_LINK.id_command - ) THEN - INSERT INTO tmp_Msg_Error ( - id_type - , code - , msg - ) - WITH - Combined_Links AS ( - SELECT - DOG_COMMAND_LINK.id_link - , DOG_COMMAND_LINK.id_dog - , DOG_COMMAND_LINK.id_command - , IFNULL( - t_DOG_COMMAND_LINK_COPY.name_error - , CONCAT( - COALESCE(DOG.name, t_DOG_COMMAND_LINK_COPY.id_dog, '(No Dog)') - , ' - ' - , COALESCE(COMMAND.name, t_DOG_COMMAND_LINK_COPY.id_command, '(No Command)') - ) - ) AS name_error - FROM parts.DOG_Dog_Command_Link DOG_COMMAND_LINK - LEFT JOIN tmp_Dog_Command_Link_Copy t_DOG_COMMAND_LINK_COPY - ON DOG_COMMAND_LINK.id_dog = t_DOG_COMMAND_LINK_COPY.id_dog - AND DOG_COMMAND_LINK.id_command = t_DOG_COMMAND_LINK_COPY.id_command - INNER JOIN parts.DOG_Dog DOG ON DOG_COMMAND_LINK.id_dog = DOG.id_dog - INNER JOIN parts.DOG_Command COMMAND ON DOG_COMMAND_LINK.id_command = COMMAND.id_command - WHERE t_DOG_COMMAND_LINK_COPY.is_new = 1 - UNION - SELECT - t_DOG_COMMAND_LINK.id_link - , t_DOG_COMMAND_LINK.id_dog - , t_DOG_COMMAND_LINK.id_command - , t_DOG_COMMAND_LINK.name_error - FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK - ) - , Duplicate_Link_Row_Numbers AS ( - SELECT - COMBINED_LINK.id_link - , COMBINED_LINK.id_dog - , COMBINED_LINK.id_command - , COMBINED_LINK.name_error - , ROW_NUMBER() OVER (PARTITION BY COMBINED_LINK.id_dog, COMBINED_LINK.id_command ORDER BY COMBINED_LINK.name_error ASC) AS index_link_as_duplicate - FROM Combined_Links COMBINED_LINK - ) - SELECT - v_id_type_error_bad_data - , v_code_type_error_bad_data - , CONCAT('Attempt to create duplicate or overwrite existing Dog Command Links on: ', GROUP_CONCAT(DUPLICATE_LINK.name_error SEPARATOR ', ')) AS msg - FROM Duplicate_Link_Row_Numbers DUPLICATE_LINK - WHERE DUPLICATE_LINK.index_link_as_duplicate > 1 - GROUP BY - DUPLICATE_LINK.id_dog - , DUPLICATE_LINK.id_command - ; - 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 Commands.' - ) - ; - 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_Dog_Command_Link; - END IF; - - DELETE FROM tmp_Dog_Command_Link; - 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_Dog_Command_Link DOG_COMMAND_LINK - INNER JOIN tmp_Dog_Command_Link t_DOG_COMMAND_LINK - ON DOG_COMMAND_LINK.id_link = t_DOG_COMMAND_LINK.id_link - AND t_DOG_COMMAND_LINK.is_new = 0 - SET - DOG_COMMAND_LINK.id_dog = t_DOG_COMMAND_LINK.id_dog - , DOG_COMMAND_LINK.id_command = t_DOG_COMMAND_LINK.id_command - , DOG_COMMAND_LINK.hand_signal_description = t_DOG_COMMAND_LINK.hand_signal_description - , DOG_COMMAND_LINK.notes = t_DOG_COMMAND_LINK.notes - , DOG_COMMAND_LINK.active = t_DOG_COMMAND_LINK.active - , DOG_COMMAND_LINK.id_change_set = v_id_change_set - ; - - INSERT INTO parts.DOG_Dog_Command_Link ( - id_dog - , id_command - , hand_signal_description - , notes - , active - , id_user_created_by - , created_on - ) - SELECT - t_DOG_COMMAND_LINK.id_dog AS id_dog - , t_DOG_COMMAND_LINK.id_command AS id_command - , t_DOG_COMMAND_LINK.hand_signal_description AS hand_signal_description - , t_DOG_COMMAND_LINK.notes AS notes - , t_DOG_COMMAND_LINK.active AS active - , a_id_user AS created_by - , v_time_start AS created_on - FROM tmp_Dog_Command_Link t_DOG_COMMAND_LINK - WHERE - t_DOG_COMMAND_LINK.is_new = 1 - AND t_DOG_COMMAND_LINK.active = 1 - ; - - COMMIT; - END IF; - - START TRANSACTION; - - DELETE FROM parts.DOG_Dog_Command_Link_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_Dog_Command_Link; - END IF; - - DROP TEMPORARY TABLE tmp_Dog_Command_Link; - 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 ; - - - -/* - -'ripplesipplenippletippledipplekipple' -DELETE FROM parts.DOG_Dog_Command_Link WHERE id_link > 740; -* / -delete -from parts.DOG_Dog_Command_Link_Audit -where id_link > 768 -; -delete -from parts.DOG_Dog_Command_Link -where id_link > 768 -; -delete -from parts.DOG_Dog_Command_Link_Temp -; -select - * - -- COUNT(*) --- delete -from parts.DOG_Dog_Command_Link_Temp -; -select COUNT(*) -from parts.DOG_Dog_Command_Link_Temp -; -select - * - -- COUNT(*) --- delete -from parts.DOG_Dog_Command_Link -; -select COUNT(*) -from parts.DOG_Dog_Command_Link -; - -INSERT INTO parts.DOG_Dog_Command_Link_Temp ( - id_link - , id_dog - , id_command - , hand_signal_description - , notes - , active - , guid -) -VALUES ( - -1 -- id_link - , 1 -- id_dog - , 1 -- id_command - , 'Test deez noots' -- hand_signal_description - , NULL -- notes - , 1 -- active - , 'ripplesipplenippletippledipplekipple' -); - -CALL parts.p_dog_save_dog_command_link ( - 'nipples' - , 'ripplesipplenippletippledipplekipple' - , 1 - , 1 -); - - -select - * - -- COUNT(*) --- delete -from parts.DOG_Dog_Command_Link_Temp -; -select COUNT(*) -from parts.DOG_Dog_Command_Link_Temp -; -select - * - -- COUNT(*) --- delete -from parts.DOG_Dog_Command_Link -; -select COUNT(*) -from parts.DOG_Dog_Command_Link -; - -*/ \ No newline at end of file diff --git a/static/MySQL/71322_p_dog_save_distraction.sql b/static/MySQL/71322_p_dog_save_distraction.sql new file mode 100644 index 0000000..a03d075 --- /dev/null +++ b/static/MySQL/71322_p_dog_save_distraction.sql @@ -0,0 +1,672 @@ + +USE parts; + +DROP PROCEDURE IF EXISTS parts.p_dog_save_distraction; + +DELIMITER // +CREATE PROCEDURE parts.p_dog_save_distraction ( + 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 NULL + , 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 + ; + + 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_Distraction_Copy; + DROP TABLE IF EXISTS tmp_Distraction; + + CREATE TEMPORARY TABLE tmp_Distraction ( + id_temp INT + , id_distraction INT + , id_assessment INT + , id_distraction_type INT + , id_intensity_level_emotional INT + , id_intensity_level_scent INT + , id_intensity_level_sight INT + , id_intensity_level_sound INT + , id_intensity_level_touch INT + , quantity INT + , proximity_metres FLOAT + , notes TEXT + , active BIT + , is_new BIT + , name_error VARCHAR(250) + ); + + CREATE TEMPORARY TABLE tmp_Distraction_Copy ( + id_temp INT + , id_distraction INT + , id_assessment INT + , id_distraction_type INT + , id_intensity_level_emotional INT + , id_intensity_level_scent INT + , id_intensity_level_sight INT + , id_intensity_level_sound INT + , id_intensity_level_touch INT + , quantity INT + , proximity_metres FLOAT + , 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 NULL + , code VARCHAR(250) + , msg TEXT NOT NULL + ); + + + -- Get data from Temp table + INSERT INTO tmp_Distraction ( + id_temp + , id_distraction + , id_assessment + , id_distraction_type + , id_intensity_level_emotional + , id_intensity_level_scent + , id_intensity_level_sight + , id_intensity_level_sound + , id_intensity_level_touch + , quantity + , proximity_metres + , notes + , active + , is_new + ) + SELECT + DISTRACTION_T.id_temp + , DISTRACTION_T.id_distraction + , COALESCE( + DISTRACTION_T.id_assessment + , DISTRACTION.id_assessment + ) AS id_assessment + , COALESCE( + DISTRACTION_T.id_distraction_type + , DISTRACTION.id_distraction_type + ) AS id_distraction_type + , COALESCE( + DISTRACTION_T.id_intensity_level_emotional + , DISTRACTION.id_intensity_level_emotional + ) AS id_intensity_level_emotional + , COALESCE( + DISTRACTION_T.id_intensity_level_scent + , DISTRACTION.id_intensity_level_scent + ) AS id_intensity_level_scent + , COALESCE( + DISTRACTION_T.id_intensity_level_sight + , DISTRACTION.id_intensity_level_sight + ) AS id_intensity_level_sight + , COALESCE( + DISTRACTION_T.id_intensity_level_sound + , DISTRACTION.id_intensity_level_sound + ) AS id_intensity_level_sound + , COALESCE( + DISTRACTION_T.id_intensity_level_touch + , DISTRACTION.id_intensity_level_touch + ) AS id_intensity_level_touch + , DISTRACTION_T.quantity + , DISTRACTION_T.proximity_metres + , DISTRACTION_T.notes + , COALESCE(DISTRACTION_T.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 + ; + + IF a_debug = 1 THEN + SELECT 'Distraction_Temp records'; + SELECT * FROM tmp_Distraction; + SELECT COUNT(*) FROM tmp_Distraction; + END IF; + + -- Error names + UPDATE tmp_Distraction t_DISTRACTION + LEFT JOIN parts.DOG_Distraction_Type DISTRACTION_TYPE ON t_DISTRACTION.id_distraction_type = DISTRACTION_TYPE.id_type + 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 + 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 + 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 + 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 + 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 + SET t_DISTRACTION.name_error = CONCAT( + /* + CONVERT(COALESCE(t_DISTRACTION.created_on, DISTRACTION.created_on, v_time_start), CHAR) + , CASE WHEN t_DISTRACTION.notes IS NOT NULL THEN CONCAT(' - ', t_DISTRACTION.notes) ELSE '' END + */ + COALESCE(DISTRACTION_TYPE.name, '(No Distraction Type)') + , ' - ' + , COALESCE(DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.name, '(No Distraction Intensity Level Emotional)') + , ' - ' + , COALESCE(DISTRACTION_INTENSITY_LEVEL_SCENT.name, '(No Distraction Intensity Level Scent)') + , ' - ' + , COALESCE(DISTRACTION_INTENSITY_LEVEL_SCENT.name, '(No Distraction Intensity Level Sight)') + , ' - ' + , COALESCE(DISTRACTION_INTENSITY_LEVEL_SCENT.name, '(No Distraction Intensity Level Sound)') + , ' - ' + , COALESCE(DISTRACTION_INTENSITY_LEVEL_SCENT.name, '(No Distraction Intensity Level Touch)') + , ' - x' + , CONVERT(COALESCE(t_ASSESSMENT.quantity, 0), CHAR) + ) + ; + + IF a_debug = 1 THEN + SELECT 'After set name_error'; + SELECT * FROM tmp_Distraction; + SELECT COUNT(*) FROM tmp_Distraction; + END IF; + + + -- Validation + -- Missing mandatory fields + -- id_assessment + IF EXISTS ( + SELECT * + FROM tmp_Distraction t_DISTRACTION + LEFT JOIN demo.DOG_Assessment ASSESSMENT ON t_DISTRACTION.id_assessment = ASSESSMENT.id_assessment + WHERE + ISNULL(t_DISTRACTION.id_assessment) + OR ISNULL(ASSESSMENT.id_assessment) + OR ASSESSMENT.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 Distraction(s) do not have a valid Assessment: ', GROUP_CONCAT(t_DISTRACTION.name_error SEPARATOR ', ')) AS msg + FROM tmp_Distraction t_DISTRACTION + LEFT JOIN parts.DOG_Assessment ASSESSMENT ON t_DISTRACTION.id_assessment = ASSESSMENT.id_assessment + WHERE + ISNULL(t_DISTRACTION.id_assessment) + OR ISNULL(ASSESSMENT.id_assessment) + OR ASSESSMENT.active = 0 + ; + END IF; + -- id_distraction_type + 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 + WHERE + ISNULL(t_DISTRACTION.id_distraction_type) + OR ISNULL(DISTRACTION_TYPE.id_distraction_type) + OR DISTRACTION_TYPE.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 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 + WHERE + ISNULL(t_DISTRACTION.id_distraction_type) + OR ISNULL(DISTRACTION_TYPE.id_distraction_type) + OR DISTRACTION_TYPE.active = 0 + ; + END IF; + -- id_intensity_level_emotional + 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 + WHERE + ISNULL(t_DISTRACTION.id_intensity_level_emotional) + OR ISNULL(DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level_emotional) + OR DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.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 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 + WHERE + ISNULL(t_DISTRACTION.id_intensity_level_emotional) + OR ISNULL(DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.id_intensity_level_emotional) + OR DISTRACTION_INTENSITY_LEVEL_EMOTIONAL.active = 0 + ; + END IF; + -- id_intensity_level_scent + IF EXISTS ( + SELECT * + FROM tmp_Distraction t_DISTRACTION + 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 DISTRACTION_INTENSITY_LEVEL_SCENT.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 Distraction(s) do not have a valid Intensity Level Scent: ', GROUP_CONCAT(t_DISTRACTION.name_error SEPARATOR ', ')) AS msg + FROM tmp_Distraction t_DISTRACTION + 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 DISTRACTION_INTENSITY_LEVEL_SCENT.active = 0 + ; + END IF; + -- id_intensity_level_sight + IF EXISTS ( + SELECT * + FROM tmp_Distraction t_DISTRACTION + 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 DISTRACTION_INTENSITY_LEVEL_SIGHT.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 Distraction(s) do not have a valid Intensity Level Sight: ', GROUP_CONCAT(t_DISTRACTION.name_error SEPARATOR ', ')) AS msg + FROM tmp_Distraction t_DISTRACTION + 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 DISTRACTION_INTENSITY_LEVEL_SIGHT.active = 0 + ; + END IF; + -- id_intensity_level_sound + IF EXISTS ( + SELECT * + FROM tmp_Distraction t_DISTRACTION + 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 DISTRACTION_INTENSITY_LEVEL_SOUND.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 Distraction(s) do not have a valid Intensity Level Sound: ', GROUP_CONCAT(t_DISTRACTION.name_error SEPARATOR ', ')) AS msg + FROM tmp_Distraction t_DISTRACTION + 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 DISTRACTION_INTENSITY_LEVEL_SOUND.active = 0 + ; + END IF; + -- id_intensity_level_touch + IF EXISTS ( + SELECT * + FROM tmp_Distraction t_DISTRACTION + 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 DISTRACTION_INTENSITY_LEVEL_TOUCH.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 Distraction(s) do not have a valid Intensity Level Touch: ', GROUP_CONCAT(t_DISTRACTION.name_error SEPARATOR ', ')) AS msg + FROM tmp_Distraction t_DISTRACTION + 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 DISTRACTION_INTENSITY_LEVEL_TOUCH.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 Distractions.' + ) + ; + 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_Distraction; + END IF; + + DELETE FROM tmp_Distraction; + 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_Distraction DISTRACTION + INNER JOIN tmp_Distraction t_DISTRACTION + ON DISTRACTION.id_distraction = t_DISTRACTION.id_distraction + AND t_DISTRACTION.is_new = 0 + SET + DISTRACTION.id_assessment = t_DISTRACTION.id_assessment + , DISTRACTION.id_distraction_type = t_DISTRACTION.id_distraction_type + , DISTRACTION.id_intensity_level_emotional = t_DISTRACTION.id_intensity_level_emotional + , DISTRACTION.id_intensity_level_scent = t_DISTRACTION.id_intensity_level_scent + , DISTRACTION.id_intensity_level_sight = t_DISTRACTION.id_intensity_level_sight + , DISTRACTION.id_intensity_level_sound = t_DISTRACTION.id_intensity_level_sound + , DISTRACTION.id_intensity_level_touch = t_DISTRACTION.id_intensity_level_touch + , DISTRACTION.quantity = t_DISTRACTION.quantity + , DISTRACTION.proximity_metres = t_DISTRACTION.proximity_metres + , DISTRACTION.notes = t_DISTRACTION.notes + , DISTRACTION.active = t_DISTRACTION.active + , DISTRACTION.id_change_set = v_id_change_set + ; + + INSERT INTO parts.DOG_Distraction ( + id_assessment + , id_distraction_type + , id_intensity_level_emotional + , id_intensity_level_scent + , id_intensity_level_sight + , id_intensity_level_sound + , id_intensity_level_touch + , quantity + , proximity_metres + , notes + , active + , id_user_created_by + , created_on + ) + SELECT + 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 + , t_DISTRACTION.id_intensity_level_sight AS id_intensity_level_sight + , t_DISTRACTION.id_intensity_level_sound AS id_intensity_level_sound + , t_DISTRACTION.id_intensity_level_touch AS id_intensity_level_touch + , t_DISTRACTION.quantity AS quantity + , t_DISTRACTION.proximity_metres AS proximity_metres + , t_DISTRACTION.notes AS notes + , t_DISTRACTION.active AS active + , a_id_user AS created_by + , v_time_start AS created_on + FROM tmp_Distraction t_DISTRACTION + WHERE + t_DISTRACTION.is_new = 1 + AND t_DISTRACTION.active = 1 + ; + + COMMIT; + END IF; + + START TRANSACTION; + + DELETE FROM parts.DOG_Distraction_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_Distraction; + END IF; + + DROP TEMPORARY TABLE tmp_Distraction; + 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 ; + + + +/* + +'ripplesipplenippletippledipplekipple' +DELETE FROM parts.DOG_Distraction WHERE id_distraction > 740; +* / +delete +from parts.DOG_Distraction_Audit +where id_distraction > 768 +; +delete +from parts.DOG_Distraction +where id_distraction > 768 +; +delete +from parts.DOG_Distraction_Temp +; +select + * + -- COUNT(*) +-- delete +from parts.DOG_Distraction_Temp +; +select COUNT(*) +from parts.DOG_Distraction_Temp +; +select + * + -- COUNT(*) +-- delete +from parts.DOG_Distraction +; +select COUNT(*) +from parts.DOG_Distraction +; + +INSERT INTO parts.DOG_Distraction_Temp ( + id_distraction + , id_dog + , id_command + , hand_signal_description + , notes + , active + , guid +) +VALUES ( + -1 -- id_distraction + , 1 -- id_dog + , 1 -- id_command + , 'Test deez noots' -- hand_signal_description + , NULL -- notes + , 1 -- active + , 'ripplesipplenippletippledipplekipple' +); + +CALL parts.p_dog_save_distraction ( + 'nipples' + , 'ripplesipplenippletippledipplekipple' + , 1 + , 1 +); + + +select + * + -- COUNT(*) +-- delete +from parts.DOG_Distraction_Temp +; +select COUNT(*) +from parts.DOG_Distraction_Temp +; +select + * + -- COUNT(*) +-- delete +from parts.DOG_Distraction +; +select COUNT(*) +from parts.DOG_Distraction +; + +*/ \ No newline at end of file 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 new file mode 100644 index 0000000..123194e --- /dev/null +++ b/static/MySQL/71330_p_dog_save_assessment_command_modality_link.sql @@ -0,0 +1,672 @@ + +USE parts; + +DROP PROCEDURE IF EXISTS parts.p_dog_save_assessment_command_modality_link; + +DELIMITER // +CREATE PROCEDURE parts.p_dog_save_assessment_command_modality_link ( + 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 NULL + , 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 + ; + + 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_Command_Modality_Link_Copy; + DROP TABLE IF EXISTS tmp_Assessment_Command_Modality_Link; + + CREATE TEMPORARY TABLE tmp_Assessment_Command_Modality_Link ( + id_temp INT + , id_link INT + , id_assessment INT + , id_command INT + , id_command_modality INT + , id_bribe INT + , distance_from_handler FLOAT + , is_in_sight_of_handler BIT + , is_in_scent_range_of_handler BIT + , is_in_hearing_range_of_handler BIT + , is_on_lead BIT + , trial_count INT + , active BIT + , is_new BIT + , name_error VARCHAR(250) + ); + + CREATE TEMPORARY TABLE tmp_Assessment_Command_Modality_Link_Copy ( + id_temp INT + , id_link INT + , id_assessment INT + , 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 + , is_in_hearing_range_of_handler INT + , is_on_lead FLOAT + , trial_count 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 NULL + , code VARCHAR(250) + , msg TEXT NOT NULL + ); + + + -- Get data from Temp table + INSERT INTO tmp_Assessment_Command_Modality_Link ( + id_temp + , id_link + , 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 + , is_in_hearing_range_of_handler + , is_on_lead + , trial_count + , active + , is_new + ) + SELECT + ASSESSMENT_COMMAND_MODALITY_LINK_T.id_temp + , ASSESSMENT_COMMAND_MODALITY_LINK_T.id_link + , COALESCE( + ASSESSMENT_COMMAND_MODALITY_LINK_T.id_assessment + , ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment + ) AS id_assessment + , COALESCE( + ASSESSMENT_COMMAND_MODALITY_LINK_T.id_command + , ASSESSMENT_COMMAND_MODALITY_LINK.id_command + ) AS id_command + , COALESCE( + ASSESSMENT_COMMAND_MODALITY_LINK_T.id_command_modality + , ASSESSMENT_COMMAND_MODALITY_LINK.id_command_modality + ) AS id_command_modality + , COALESCE( + ASSESSMENT_COMMAND_MODALITY_LINK_T.id_bribe + , 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 + , 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 + , 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 + , 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 + ; + + IF a_debug = 1 THEN + SELECT 'Assessment_Command_Modality_Link_Temp records'; + SELECT * FROM tmp_Assessment_Command_Modality_Link; + SELECT COUNT(*) FROM tmp_Assessment_Command_Modality_Link; + END IF; + + -- 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 + 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(ASSESSMENT_COMMAND_MODALITY_LINK_COMMAND_MODALITY.name, '(No Assessment_Command_Modality_Link Intensity Level Emotional)') + , ' - ' + , COALESCE(ASSESSMENT_COMMAND_MODALITY_LINK_BRIBE.name, '(No Assessment_Command_Modality_Link Intensity Level Scent)') + , ' - ' + , 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) + ) + ; + + IF a_debug = 1 THEN + SELECT 'After set name_error'; + SELECT * FROM tmp_Assessment_Command_Modality_Link; + SELECT COUNT(*) FROM tmp_Assessment_Command_Modality_Link; + END IF; + + + -- Validation + -- Missing mandatory fields + -- id_assessment + IF EXISTS ( + SELECT * + FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK + LEFT JOIN demo.DOG_Assessment ASSESSMENT ON t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = ASSESSMENT.id_assessment + WHERE + ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment) + OR ISNULL(ASSESSMENT.id_assessment) + OR ASSESSMENT.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 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 + ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment) + OR ISNULL(ASSESSMENT.id_assessment) + OR ASSESSMENT.active = 0 + ; + END IF; + -- id_command + 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 + WHERE + ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command) + OR ISNULL(ASSESSMENT_COMMAND_MODALITY_COMMAND.id_command) + OR ASSESSMENT_COMMAND_MODALITY_COMMAND.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_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 + 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 + WHERE + ISNULL(t_ASSESSMENT_COMMAND_MODALITY_LINK.id_command) + OR ISNULL(ASSESSMENT_COMMAND_MODALITY_COMMAND.id_command) + OR ASSESSMENT_COMMAND_MODALITY_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 + 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 + ) 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 Assessment_Command_Modality_Link_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 + 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 + ; + 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 + 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 + ) 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 Scent: ', 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 + 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 + ; + END IF; + -- id_distance_from_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_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 + ) 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 Sight: ', 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 + ; + 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_Command_Modality_Links.' + ) + ; + 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_Command_Modality_Link; + END IF; + + DELETE FROM tmp_Assessment_Command_Modality_Link; + 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_Command_Modality_Link ASSESSMENT_COMMAND_MODALITY_LINK + INNER JOIN tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK + ON ASSESSMENT_COMMAND_MODALITY_LINK.id_link = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_link + AND t_ASSESSMENT_COMMAND_MODALITY_LINK.is_new = 0 + SET + ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment = t_ASSESSMENT_COMMAND_MODALITY_LINK.id_assessment + , 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.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.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_command + , id_command_modality + , id_bribe + , id_distance_from_handler + , id_is_in_sight_of_handler + , id_is_in_scent_range_of_handler + , is_in_hearing_range_of_handler + , is_on_lead + , 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_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.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.active AS active + , a_id_user AS created_by + , v_time_start AS created_on + FROM tmp_Assessment_Command_Modality_Link t_ASSESSMENT_COMMAND_MODALITY_LINK + WHERE + t_ASSESSMENT_COMMAND_MODALITY_LINK.is_new = 1 + AND t_ASSESSMENT_COMMAND_MODALITY_LINK.active = 1 + ; + + COMMIT; + END IF; + + START TRANSACTION; + + DELETE FROM parts.DOG_Assessment_Command_Modality_Link_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_Command_Modality_Link; + END IF; + + DROP TEMPORARY TABLE tmp_Assessment_Command_Modality_Link; + 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 ; + + + +/* + +'ripplesipplenippletippledipplekipple' +DELETE FROM parts.DOG_Assessment_Command_Modality_Link WHERE id_link > 740; +* / +delete +from parts.DOG_Assessment_Command_Modality_Link_Audit +where id_link > 768 +; +delete +from parts.DOG_Assessment_Command_Modality_Link +where id_link > 768 +; +delete +from parts.DOG_Assessment_Command_Modality_Link_Temp +; +select + * + -- COUNT(*) +-- delete +from parts.DOG_Assessment_Command_Modality_Link_Temp +; +select COUNT(*) +from parts.DOG_Assessment_Command_Modality_Link_Temp +; +select + * + -- COUNT(*) +-- delete +from parts.DOG_Assessment_Command_Modality_Link +; +select COUNT(*) +from parts.DOG_Assessment_Command_Modality_Link +; + +INSERT INTO parts.DOG_Assessment_Command_Modality_Link_Temp ( + id_link + , id_dog + , id_command + , hand_signal_description + , trial_count + , active + , guid +) +VALUES ( + -1 -- id_link + , 1 -- id_dog + , 1 -- id_command + , 'Test deez noots' -- hand_signal_description + , NULL -- trial_count + , 1 -- active + , 'ripplesipplenippletippledipplekipple' +); + +CALL parts.p_dog_save_assessment_command_modality_link ( + 'nipples' + , 'ripplesipplenippletippledipplekipple' + , 1 + , 1 +); + + +select + * + -- COUNT(*) +-- delete +from parts.DOG_Assessment_Command_Modality_Link_Temp +; +select COUNT(*) +from parts.DOG_Assessment_Command_Modality_Link_Temp +; +select + * + -- COUNT(*) +-- delete +from parts.DOG_Assessment_Command_Modality_Link +; +select COUNT(*) +from parts.DOG_Assessment_Command_Modality_Link +; + +*/ \ 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 new file mode 100644 index 0000000..6936a84 --- /dev/null +++ b/static/MySQL/71601_p_ph_save_contact_form.sql @@ -0,0 +1,436 @@ + +USE parts; + +DROP PROCEDURE IF EXISTS parts.p_ph_save_contact_form; + +DELIMITER // +CREATE PROCEDURE parts.p_ph_save_contact_form ( + 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 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 ( + display_order INT NOT NULL PRIMARY KEY AUTO_INCREMENT + , id_type INT NULL + , code VARCHAR(50) NOT NULL + , msg VARCHAR(4000) 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 * + FROM tmp_Msg_Error; + DROP TABLE IF EXISTS tmp_Msg_Error + ; + END; + + 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 parts.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 parts.DOG_Permission P WHERE P.code = 'CONTACT_FORM_ADMIN' LIMIT 1); + SET v_id_permission_contact_form_new := (SELECT id_permission FROM parts.DOG_Permission P WHERE P.code = 'CONTACT_FORM_CREATE' LIMIT 1); + + CALL parts.p_core_validate_guid ( a_guid ); + + DROP TABLE IF EXISTS tmp_Contact_Form; + + 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 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 + ); + + + -- Get data from Temp table + INSERT INTO tmp_Contact_Form ( + id_contact_form + , email + , name_contact + , name_company + , message + , receive_marketing_communications + , 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 parts.PH_Contact_Form_Temp CF_T + LEFT JOIN parts.PH_Contact_Form CF ON CF_T.id_contact_form = CF.id_contact_form + WHERE CF_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)') + ; + + -- 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) + ; + 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; + + 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_contact_form_admin -- 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) + INTO + v_can_admin + FROM parts.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 parts.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 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_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) + INTO + v_can_create + FROM parts.DOG_Calc_User_Temp CALC_USER_T + WHERE CALC_USER_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 parts.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 + 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 admin Contact Forms.' + ) + ; + 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; + + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN + START TRANSACTION; + + INSERT INTO parts.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 parts.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 parts.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; + + DELETE FROM parts.PH_Contact_Form_Temp + WHERE GUID = a_guid + ; + + COMMIT; + + -- Errors + SELECT * + FROM tmp_Msg_Error t_ME + INNER JOIN parts.CORE_Msg_Error_Type MET ON t_ME.id_type = MET.id_type + ; + + IF a_debug = 1 THEN + SELECT * from tmp_Contact_Form; + END IF; + + DROP TEMPORARY TABLE tmp_Contact_Form; + 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 ; + +/* +select + * + -- COUNT(*) +-- delete +from parts.PH_Contact_Form_Temp +; + + +CALL parts.p_ph_save_contact_form ( + 'nipples' + , (SELECT GUID FROM parts.PH_Contact_Form_Temp ORDER BY id_temp DESC LIMIT 1) + , 1 + , 1 +); + +select + * + -- COUNT(*) +-- delete +from parts.PH_Contact_Form_Temp +; + +*/ diff --git a/static/MySQL/71603_p_ph_get_many_contact_form.sql b/static/MySQL/71603_p_ph_get_many_contact_form.sql new file mode 100644 index 0000000..23e2cd3 --- /dev/null +++ b/static/MySQL/71603_p_ph_get_many_contact_form.sql @@ -0,0 +1,277 @@ + +USE parts; + +DROP PROCEDURE IF EXISTS parts.p_ph_get_many_contact_form; + +DELIMITER // +CREATE PROCEDURE parts.p_ph_get_many_contact_form ( + IN a_id_user INT + , IN a_get_all_contact_form BIT + , IN a_get_inactive_contact_form BIT + , IN a_ids_contact_form VARCHAR(500) + , IN a_debug BIT +) +BEGIN + DECLARE v_has_filter_contact_form BIT; + DECLARE v_guid BINARY(36); + DECLARE v_id_access_level_admin INT; + DECLARE v_id_permission_contact_form_admin INT; + DECLARE v_id_minimum INT; + DECLARE v_time_start TIMESTAMP(6); + DECLARE v_can_view BIT; + + SET v_time_start := CURRENT_TIMESTAMP(6); + SET v_guid := UUID(); + SET v_id_access_level_admin := (SELECT ACCESS_LEVEL.id_access_level FROM parts.DOG_Access_Level ACCESS_LEVEL WHERE ACCESS_LEVEL.code = 'ADMIN' LIMIT 1); + SET v_id_permission_contact_form_admin := (SELECT PERMISSION.id_permission FROM parts.DOG_Permission PERMISSION WHERE PERMISSION.code = 'CONTACT_FORM_ADMIN' LIMIT 1); + + SET a_id_user := IFNULL(a_id_user, 0); + SET a_get_all_contact_form := IFNULL(a_get_all_contact_form, 0); + SET a_get_inactive_contact_form := IFNULL(a_get_inactive_contact_form, 0); + SET a_ids_contact_form := TRIM(IFNULL(a_ids_contact_form, '')); + SET a_debug := IFNULL(a_debug, 0); + + IF a_debug = 1 THEN + SELECT + a_id_user + , a_get_all_contact_form + , a_get_inactive_contact_form + , a_ids_contact_form + , a_debug + ; + END IF; + + DROP TEMPORARY TABLE IF EXISTS tmp_Split; + DROP TEMPORARY TABLE IF EXISTS tmp_Contact_Form; + + CREATE TEMPORARY TABLE tmp_Contact_Form ( + id_contact_form INT NOT NULL + ); + + 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_Split ( + substring VARCHAR(4000) NOT NULL + , as_int INT NULL + ); + DELETE FROM tmp_Split; + + CALL parts.p_core_validate_guid ( v_guid ); + + SET v_has_filter_contact_form = CASE WHEN a_ids_contact_form = '' THEN 0 ELSE 1 END; + + -- Contact Forms + IF v_has_filter_contact_form = 1 THEN + CALL parts.p_split(v_guid, a_ids_contact_form, ',', a_debug); + + INSERT INTO tmp_Split ( + substring + , as_int + ) + SELECT + substring + , CONVERT(substring, DECIMAL(10,0)) AS as_int + FROM parts.CORE_Split_Temp + WHERE + GUID = v_guid + AND NOT ISNULL(substring) + AND substring != '' + ; + + CALL parts.p_clear_split_temp( v_guid ); + END IF; + + IF NOT EXISTS (SELECT * FROM tmp_Msg_Error LIMIT 1) THEN + IF EXISTS ( + SELECT * + FROM tmp_Split t_S + LEFT JOIN parts.PH_Contact_Form CF ON t_S.as_int = CF.id_contact_form + WHERE + ISNULL(t_S.as_int) + OR ISNULL(CF.id_contact_form) + OR ( + CF.active = 0 + AND a_get_inactive_contact_form = 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('Invalid or inactive Contact Form IDs: ', IFNULL(GROUP_CONCAT(t_S.substring SEPARATOR ', '), 'NULL')) + FROM tmp_Split t_S + LEFT JOIN parts.PH_Contact_Form CF ON t_S.as_int = CF.id_contact_form + WHERE + ISNULL(t_S.as_int) + OR ISNULL(CF.id_contact_form) + OR ( + CF.active = 0 + AND a_get_inactive_contact_form = 0 + ) + ; + ELSE + INSERT INTO tmp_Contact_Form ( + id_contact_form + ) + SELECT + CF.id_contact_form + FROM tmp_Split t_S + RIGHT JOIN parts.PH_Contact_Form CF ON t_S.as_int = CF.id_contact_form + WHERE + ( + a_get_all_contact_form = 1 + OR ( + v_has_filter_contact_form = 1 + AND NOT ISNULL(t_S.as_int) + ) + ) + AND ( + a_get_inactive_contact_form = 1 + OR CF.active = 1 + ) + ; + END IF; + END IF; + + DELETE FROM tmp_Split; + + + -- Permissions + IF a_debug = 1 THEN + SELECT + v_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_admin -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ; + END IF; + + CALL parts.p_dog_calc_user( + v_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_admin -- ids_access_level + , 0 -- a_show_errors + , 0 -- a_debug + ); + + SELECT + IFNULL(CALC_USER_T.has_access, 0) + INTO + v_can_view + FROM parts.DOG_Calc_User_Temp CALC_USER_T + WHERE CALC_USER_T.GUID = v_guid + LIMIT 1 + ; + + IF a_debug = 1 THEN + SELECT v_can_view; + SELECT COUNT(*) AS Count_Errors FROM tmp_Msg_Error t_ERROR; + SELECT * FROM tmp_Msg_Error t_ERROR; + END IF; + + IF (v_can_view = 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 view Contact Forms.' + ) + ; + + IF a_debug = 1 THEN + SELECT * FROM tmp_Contact_Form; + END IF; + + DELETE FROM tmp_Contact_Form; + END IF; + + CALL parts.p_dog_clear_calc_user( + v_guid + , 0 -- a_debug + ); + + -- Outputs + -- Contact Forms + SELECT + t_CF.id_contact_form + , CF.email + , CF.name_contact + , CF.name_company + , CF.message + , CF.active + , v_can_view + FROM tmp_Contact_Form t_CF + INNER JOIN parts.PH_Contact_Form CF ON t_CF.id_contact_form = CF.id_contact_form + GROUP BY t_CF.id_contact_form + ORDER BY CF.created_on DESC + ; + + -- Errors + SELECT * + FROM tmp_Msg_Error t_ME + INNER JOIN parts.CORE_Msg_Error_Type MET ON t_ME.id_type = MET.id_type + ; + + IF a_debug = 1 AND v_can_view = 1 THEN + SELECT * FROM tmp_Contact_Form; + END IF; + + DROP TEMPORARY TABLE IF EXISTS tmp_Split; + DROP TEMPORARY TABLE IF EXISTS tmp_Contact_Form; + + IF a_debug = 1 THEN + CALL parts.p_core_debug_timing_reporting ( v_time_start ); + END IF; +END // +DELIMITER ; + + +/* + +CALL parts.p_ph_get_many_contact_form ( + 1 -- 'auth0|6582b95c895d09a70ba10fef', -- a_id_user + , 1 -- a_get_all_contact_form + , 0 -- a_get_inactive_contact_form + , '' -- a_ids_contact_form + , 0 -- a_debug +); + +*/ diff --git a/static/MySQL/90000_populate.sql b/static/MySQL/90000_populate.sql index 42c033b..48f9394 100644 --- a/static/MySQL/90000_populate.sql +++ b/static/MySQL/90000_populate.sql @@ -99,7 +99,12 @@ VALUES , ( 1 , 'USER' - , 'Admin User' + , 'User' + ) + , ( + 2 + , 'PROJECT_HUB' + , 'Project Hub' ) ; @@ -154,6 +159,20 @@ VALUES , 2 , 2 ) + , ( + 1 + , 'CONTACT_FORM_ADMIN' + , 'Admin Contact Form' + , 3 + , 3 + ) + , ( + 1 + , 'CONTACT_FORM_CREATE' + , 'Create Contact Form' + , 3 + , 4 + ) ; -- Users @@ -265,6 +284,18 @@ VALUES , 6 , 3 , 1 + ) + , ( + 1 + , 7 + , 3 + , 1 + ) + , ( + 1 + , 8 + , 3 + , 1 ) , ( 2 @@ -302,6 +333,18 @@ VALUES , 1 , 1 ) + , ( + 2 + , 7 + , 4 + , 1 + ) + , ( + 2 + , 8 + , 1 + , 1 + ) ; -- User Role link diff --git a/static/MySQL/deprecated/DEPRECATED_71602_p_ph_test_save_contact_form.sql b/static/MySQL/deprecated/DEPRECATED_71602_p_ph_test_save_contact_form.sql new file mode 100644 index 0000000..e284da8 --- /dev/null +++ b/static/MySQL/deprecated/DEPRECATED_71602_p_ph_test_save_contact_form.sql @@ -0,0 +1,108 @@ +USE parts; + +DROP PROCEDURE IF EXISTS parts.p_ph_test_save_contact_form; + + +DELIMITER // +CREATE PROCEDURE parts.p_ph_test_save_contact_form () +BEGIN + + DECLARE v_guid BINARY(36); + DECLARE v_time_start TIMESTAMP(6); + + SET v_time_start := CURRENT_TIMESTAMP(6); + SET v_guid := 'nipple_ripple_chipple_spittle_pickle'; -- 123456789012345678901234567890123456 + + SELECT 'Start of Test'; + + SELECT * + FROM parts.PH_Contact_Form + ; + SELECT * + FROM parts.PH_Contact_Form_Temp + ; + + START TRANSACTION; + + INSERT INTO parts.PH_Contact_Form_Temp ( + id_contact_form + , email + , name_contact + , name_company + , message + , guid + , active + ) + /* + VALUES ( + -1 -- id_contact_form + , 'edward.middletonsmith@gmail.com' -- email + , 'Teddy' -- name_contact + , 'PARTS Ltd' -- name_company + , 'Sa dude' -- message + , v_guid + ) + */ + VALUES ( + -1 -- id_contact_form + , 'edward.middletonsmith@gmail.com' -- email + , 'Teddy' -- name_contact + , 'PARTS Ltd' -- name_company + , 'hegrodorf is good' -- message + , v_guid + , 1 -- active + ) + ; + + COMMIT; + + SELECT * + FROM parts.PH_Contact_Form_Temp + -- WHERE GUID = v_guid + ; + + CALL parts.p_ph_save_contact_form ( + 'Test save Contact Form' -- comment + , v_guid -- guid + , 3 -- 1 -- id_user + , 1 -- debug + ); + + SELECT * + FROM parts.PH_Contact_Form + ; + SELECT * + FROM parts.PH_Contact_Form_Temp + ; + + CALL parts.p_debug_timing_reporting ( v_time_start ); +END // +DELIMITER ; + + +/* +SELECT 'Before Test'; +SELECT * +FROM parts.PH_Contact_Form +; +SELECT * +FROM parts.PH_Contact_Form_Temp +; + + +CALL parts.p_ph_test_save_contact_form (); + +SELECT 'After Test'; +SELECT * +FROM parts.PH_Contact_Form +; +SELECT * +FROM parts.PH_Contact_Form_Temp +; + +DELETE FROM parts.PH_Contact_Form_Temp; + +DROP TABLE IF EXISTS tmp_Msg_Error; + + +*/ diff --git a/static/MySQL/deprecated/DEPRECATED_71604_p_ph_test_get_many_contact_form.sql b/static/MySQL/deprecated/DEPRECATED_71604_p_ph_test_get_many_contact_form.sql new file mode 100644 index 0000000..e69de29 diff --git a/static/css/layouts/footer.css b/static/css/layouts/footer.css index 3aef242..a039be0 100644 --- a/static/css/layouts/footer.css +++ b/static/css/layouts/footer.css @@ -1,34 +1 @@ - -/* Footer */ -.footer { - padding: 1vh 1vw; - text-align: center; - margin: 0; - max-height: 5vh; - overflow-y: auto; - background-color: var(--colour-accent); - position: absolute; - bottom: 0; - width: 98vw; -} - -@media screen and (max-width: 400px) { - .footer { - max-height: 8vh; - padding: 0 2vw; - font-size: 10px; - width: 96vw; - max-width: 96vw; - } - .footer > h4 { - font-size: 10px; - } - .footer > h5 { - font-size: 9px; - } -} - -.footer > h4, h5 { - padding: 0; - margin: 0; -} \ No newline at end of file +/* In sections */ \ No newline at end of file diff --git a/static/css/layouts/header.css b/static/css/layouts/header.css index cafec18..ba2aca2 100644 --- a/static/css/layouts/header.css +++ b/static/css/layouts/header.css @@ -1,43 +1,4 @@ -/* -header { - background: white; - box-shadow: 0 2px 4px rgba(0,0,0,0.1); - / * position: fixed; - top: 0; * / - width: 100%; - z-index: 1000; -} - -.navbar { - display: flex; - justify-content: space-between; - align-items: center; - padding: 1rem 0; -} - -.logo { - font-size: 1.5rem; - font-weight: bold; - color: var(--primary); -} - -.nav-links { - display: flex; - gap: 2rem; -} - -.nav-links a { - text-decoration: none; - color: var(--text); - font-weight: 500; - align-content: center; -} -.nav-links a.button { - color: white; -} -*/ - /* Navigation */ .topnav { diff --git a/static/css/main.css b/static/css/main.css index c541200..cd91156 100644 --- a/static/css/main.css +++ b/static/css/main.css @@ -59,8 +59,9 @@ script, link { display: none !important; } +/* #pageBody { - /* height: 69vh !important; */ + / * height: 69vh !important; * / max-height: 79vh; padding: 0 5vw; margin: 0; @@ -76,6 +77,7 @@ script, link { width: 90vw; color: var(--colour-text); } +*/ .page-body > * { display: flex; @@ -117,7 +119,7 @@ img.header-logo { background-color: var(--colour-text-background); padding: 1vh 2.5vw; margin: 1vh; - display: flex !important; + display: flex; flex-wrap: wrap; align-items: center; justify-content: center; @@ -210,6 +212,8 @@ img.header-logo { ul { max-width: 90%; padding: 5px 0 10px 0; + width: fit-content; + margin: auto; } li { text-align: left; diff --git a/static/css/pages/core/contact.css b/static/css/pages/core/contact.css new file mode 100644 index 0000000..917bed4 --- /dev/null +++ b/static/css/pages/core/contact.css @@ -0,0 +1,135 @@ + +.contact-section { + padding: 2rem 2rem 4rem; +} +.contact-section h1 { + margin: 1rem auto; +} +.contact-section p { + margin: 0.5rem auto; +} + +.contact-form { + max-width: 60vw; + width: fit-content; + margin: 0 auto; + background: #fff; + padding: 2rem; + border-radius: 8px; + box-shadow: 0 2px 4px rgba(0,0,0,0.1); +} +.contact-form textarea { + max-width: 40vw; +} + +.form-grid { + display: grid; + grid-template-columns: 200px 1fr; + gap: 1.5rem; + margin-bottom: 1rem; +} +.form-label { + padding-top: 0.5rem; + font-weight: 500; +} +.form-input { + width: 100%; + padding: 0.5rem; + border: 1px solid #d1d5db; + border-radius: 4px; + font-size: 1rem; +} +textarea.form-input { + min-height: 120px; +} + +.marketing-consent input { + display: inline-block; + margin-left: 20%; + margin-bottom: 1.25rem; +} + +.container.captcha > div:first-child > label:first-child { + display: flex; + justify-content: center; + width: fit-content; + text-align: center; + margin: 0 auto; +} +.container.captcha > p:last-child{ + font-size: 0.9rem; + margin: 1vh 0; +} +.container.captcha .altcha-main { + padding-left: 1rem; + padding-top: 0.75rem; + padding-bottom: 0; +} +.container.captcha .altcha-main > :last-child { + display: none; +} +.container.captcha .altcha, +altcha-widget > div:first-child, +.container.captcha > div > .altcha-widget > div { + width: fit-content; + display: flex; + margin-left: auto; + margin-right: auto; +} + +input[type="submit"] { + margin-left: 40%; + padding: 0.75rem 1.5rem; + background: #2563eb; + color: white; + border: none; + border-radius: 4px; + cursor: pointer; + font-size: 1rem; +} + +input[type="submit"]:hover { + background: #1d4ed8; +} + +.data-notice { + margin-top: 3rem; + padding: 1.5rem; + background: #f3f4f6; + border-radius: 4px; + font-size: 0.95rem; +} + +.data-notice h3 { + margin-bottom: 1rem; + font-size: 1.1rem; +} + +.data-notice ul li { + list-style-position: inside; +} + +@media (max-width: 768px) { + .contact-form { + max-width: 80vw; + } + .contact-form textarea { + max-width: 60vw; + } + .form-grid { + grid-template-columns: 1fr; + gap: 0.5rem; + } + + .form-label { + padding-top: 0; + } + + .submit-button { + margin-left: 0; + width: 100%; + } +} + +@media (max-width: 400px) { +} \ No newline at end of file diff --git a/static/css/pages/core/home.css b/static/css/pages/core/home.css index 4400bff..7023492 100644 --- a/static/css/pages/core/home.css +++ b/static/css/pages/core/home.css @@ -1,66 +1,45 @@ - -/* Hero Section */ -.home-hero { - padding: 8rem 0 4rem; - align-self: center; - margin-left: auto; - margin-right: auto; +/* Common */ +p { + width: 100%; + font-size: 16px; +} +p.section-title, +p.section-subtitle { + margin: 0 auto; +} +.section-subtitle { + font-size: 18px; +} +ul li { + font-size: 16px; } -.hero-content { - max-width: 600px; -} - -.home-hero h2 { - font-size: 24px; - line-height: 1.2; - margin-bottom: 1.5rem; - color: var(--colour-text); - margin-left: auto; - margin-right: auto; -} - -.home-hero a { - font-size: 1.25rem; - margin-bottom: 2rem; - color: var(--colour-primary); - cursor: pointer; - margin-left: auto; - margin-right: auto; -} - -/* Services Section */ -.services { +section.problem, +section.benefits, +section.features, +section.faq { padding: 6rem 0; - background: white; + background: var(--colour-text-background); } - -.services-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); - gap: 2rem; - margin-top: 3rem; -} - -.service-card { +section.problem .card.problem, +section.benefits .card.benefits, +section.features .card.features, +section.faq .card.faq { padding: 2rem; - background: var(--light); + background: var(--colour-page-background); border-radius: 8px; transition: transform 0.3s ease; + display: block; } -.service-card:hover { - transform: translateY(-5px); -} - -/* Testimonial Section */ -.testimonial { +section.solution, +section.social-proof { padding: 6rem 0; - background: var(--light); + background: var(--colour-page-background-1); } - -.testimonial-card { - background: white; +section.solution .card.solution, +section.social-proof .card.social-proof { + background: var(--colour-text-background); padding: 2rem; border-radius: 8px; max-width: 800px; @@ -68,14 +47,56 @@ box-shadow: 0 4px 6px rgba(0,0,0,0.1); } -/* Pricing Section */ -.pricing { +/* Hero Section */ +.hero { + padding: 8rem 0 4rem; + background: linear-gradient(45deg, var(--colour-page-background-1), var(--colour-page-background-2)); /* linear-gradient(45deg, #f8fafc, #eff6ff); */ +} + +.hero-content { + max-width: 600px; +} + +.hero h1 { + font-size: 3rem; + line-height: 1.2; + margin-bottom: 1.5rem; + color: var(--colour-text); +} + +.hero p { + font-size: 1.25rem; + margin-bottom: 2rem; + color: var(--colour-secondary); +} + + + +/* Problem Section */ + + +/* +section.problem .problem.card:hover { + transform: translateY(-5px); +} +*/ + +/* Solution Section */ + +/* Benefits Section */ +section.benefits .section-subtitle { + font-size: 18px; + font-weight: bold; +} + +/* Social Proof Section * / +section.social-proof { padding: 6rem 0; background: white; } -.pricing-card { - background: var(--light); +section.social-proof .card.social-proof { + background: var(--colour-page-background); padding: 2rem; border-radius: 8px; text-align: center; @@ -83,21 +104,63 @@ margin: 3rem auto 0; } -.price { - font-size: 2.5rem; - color: var(--primary); - font-weight: bold; - margin: 1rem 0; +section.social-proof ul { + list-style: none; + margin: 0; +} +* / + +section.social-proof .section-subtitle { + font-size: 16px; +} +*/ +section.social-proof ul li { + font-size: 14px; +} + +/* Early Access Section * / +section.early-access { + padding: 6rem 0; + background: white; +} + +section.early-access .card.early-access { + background: var(--colour-page-background); + padding: 2rem; + border-radius: 8px; + text-align: center; + max-width: 400px; + margin: 3rem auto 0; +} + +section.early-access ul { + list-style: none; + margin: 0; +} +section.early-access a.button { + margin: 0.25rem; +} +*/ + +/* Features section */ +section.features .button { + margin-top: 0; } /* CTA Section */ -.cta { +.cta-1, +.cta-2 { padding: 6rem 0; - background: var(--primary); + background: var(--colour-primary); color: white; text-align: center; } +/* FAQs * / +section.faq .button { + margin-bottom: 0.25rem; +} +*/ /* Animations */ /* Fallback styles to ensure content is visible without JS */ @@ -130,4 +193,39 @@ .delay-1 { animation-delay: 0.1s; } .delay-2 { animation-delay: 0.2s; } .delay-3 { animation-delay: 0.3s; } -.delay-4 { animation-delay: 0.4s; } \ No newline at end of file +.delay-4 { animation-delay: 0.4s; } + +/* Buttons */ +.button { + display: inline-block; + padding: 0.75rem 1.5rem; + border-radius: 6px; + text-decoration: none; + font-weight: 500; + transition: all 0.3s ease; + width: fit-content; + margin: 0.75rem; + font-size: 18px; +} + +.button-primary { + background: var(--colour-primary); + color: white; +} + +.button-primary:hover { + background: var(--colour-secondary); +} + +.button-light { + background: white; + color: var(--colour-primary); +} + +.button-light:hover { + background: var(--colour-page-background); +} + +.logo:hover{ + cursor: pointer; +} \ No newline at end of file diff --git a/static/css/sections/core.css b/static/css/sections/core.css index e69de29..e4caaa4 100644 --- a/static/css/sections/core.css +++ b/static/css/sections/core.css @@ -0,0 +1,152 @@ + +/* Home page +*/ +header { + background: white; + box-shadow: 0 2px 4px rgba(0,0,0,0.1); + /* position: fixed; + top: 0; */ + width: 100%; + z-index: 1000; +} + +.navbar { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 0; +} + +.logo { + font-size: 1.5rem; + font-weight: bold; + color: var(--primary); +} + +.nav-links { + display: flex; + gap: 2rem; + display: flex; + flex-wrap: wrap; + max-width: 70vw; +} + +.nav-links a { + text-decoration: none; + color: var(--text); + font-weight: 500; + align-content: center; + font-size: 1rem; +} +.nav-links a.button { + color: white; + margin: 0 auto; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 1.5rem; +} + +/* Header */ +header { + background: white; + box-shadow: 0 2px 4px rgba(0,0,0,0.1); + /* position: fixed; + top: 0; */ + width: 100%; + z-index: 1000; +} + +.navbar { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 0; +} + +.logo { + font-size: 1.5rem; + font-weight: bold; + color: var(--primary); +} + +.nav-links { + display: flex; + gap: 2rem; +} + +.nav-links a { + text-decoration: none; + color: var(--text); + font-weight: 500; + align-content: center; +} +.nav-links a.button { + color: white; +} + +/* Footer */ +.footer { + background: #1f2937; + color: #f3f4f6; + padding: 4rem 0 2rem; +} + +.footer-content { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 2rem; + margin-bottom: 2rem; +} + +.footer-section h3 { + color: #fff; + margin-bottom: 1rem; + font-size: 1.2rem; +} + +.footer-section ul { + list-style: none; + padding: 0; +} + +.footer-section ul li { + margin-bottom: 0.5rem; +} + +.footer-section a { + color: #f3f4f6; + text-decoration: none; + transition: color 0.3s ease; +} + +.footer-section a:hover { + color: #fff; + text-decoration: underline; +} + +.footer-bottom { + border-top: 1px solid #374151; + padding-top: 2rem; + text-align: center; + font-size: 0.9rem; +} + +.footer-bottom a { + color: aquamarine; +} + +@media (max-width: 768px) { + .footer-content { + grid-template-columns: 1fr; + text-align: center; + } +} + +@media (max-width: 515px) { + .nav-links { + display: none; + } +} \ No newline at end of file diff --git a/static/css/sections/dog.css b/static/css/sections/dog.css index 75e3700..39ca423 100644 --- a/static/css/sections/dog.css +++ b/static/css/sections/dog.css @@ -1,38 +1,4 @@ -.img-product { - max-width: 20vh; - max-height: 20vh; - border-radius: 3vh; - justify-self: left; -} - -.img-thumbnail { - max-width: 10vh; - max-height: 10vh; - border-radius: 3vh; - justify-self: left; -} - -.buttonAddToBasket { - background-color: var(--colour-page-background); - border-color: var(--colour-primary); -} - -#buttonCheckout, .buttonBuyNow { - background-color: var(--colour-page-background); - /* color: var(--c_purple_dark); */ - border-color: var(--colour-primary); -} - -.button-increment, .button-decrement { - border: 2px solid darkgrey; - background-color: lightgray; - margin: 1vh 1vh; - width: 2.5vh; - height: 2.5vh; - border-radius: 1.25vh; - font-size: 2vh; -} .container-input > input { padding: 0vh 1vh; @@ -53,3 +19,57 @@ /* Main Table */ + + +#pageBody { + /* height: 69vh !important; */ + max-height: 79vh; + padding: 0 5vw; + margin: 0; + border: 0; + align-content: center; + justify-content: flex-start; + display: flex; + flex-direction: column; + align-items: flex-start; + overflow-y: auto; + overflow-x: hidden; + position: absolute; + width: 90vw; + color: var(--colour-text); +} + + +/* Footer */ +.footer { + padding: 1vh 1vw; + text-align: center; + margin: 0; + max-height: 5vh; + overflow-y: auto; + background-color: var(--colour-accent); + position: absolute; + bottom: 0; + width: 98vw; +} + +@media screen and (max-width: 400px) { + .footer { + max-height: 8vh; + padding: 0 2vw; + font-size: 10px; + width: 96vw; + max-width: 96vw; + } + .footer > h4 { + font-size: 10px; + } + .footer > h5 { + font-size: 9px; + } +} + +.footer > h4, h5 { + padding: 0; + margin: 0; +} \ No newline at end of file diff --git a/static/dist/css/core_admin_home.bundle.css b/static/dist/css/core_admin_home.bundle.css index 8dd0ec0..d74422d 100644 --- a/static/dist/css/core_admin_home.bundle.css +++ b/static/dist/css/core_admin_home.bundle.css @@ -1,3 +1,155 @@ + +/* Home page +*/ +header { + background: white; + box-shadow: 0 2px 4px rgba(0,0,0,0.1); + /* position: fixed; + top: 0; */ + width: 100%; + z-index: 1000; +} + +.navbar { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 0; +} + +.logo { + font-size: 1.5rem; + font-weight: bold; + color: var(--primary); +} + +.nav-links { + display: flex; + gap: 2rem; + display: flex; + flex-wrap: wrap; + max-width: 70vw; +} + +.nav-links a { + text-decoration: none; + color: var(--text); + font-weight: 500; + align-content: center; + font-size: 1rem; +} +.nav-links a.button { + color: white; + margin: 0 auto; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 1.5rem; +} + +/* Header */ +header { + background: white; + box-shadow: 0 2px 4px rgba(0,0,0,0.1); + /* position: fixed; + top: 0; */ + width: 100%; + z-index: 1000; +} + +.navbar { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 0; +} + +.logo { + font-size: 1.5rem; + font-weight: bold; + color: var(--primary); +} + +.nav-links { + display: flex; + gap: 2rem; +} + +.nav-links a { + text-decoration: none; + color: var(--text); + font-weight: 500; + align-content: center; +} +.nav-links a.button { + color: white; +} + +/* Footer */ +.footer { + background: #1f2937; + color: #f3f4f6; + padding: 4rem 0 2rem; +} + +.footer-content { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 2rem; + margin-bottom: 2rem; +} + +.footer-section h3 { + color: #fff; + margin-bottom: 1rem; + font-size: 1.2rem; +} + +.footer-section ul { + list-style: none; + padding: 0; +} + +.footer-section ul li { + margin-bottom: 0.5rem; +} + +.footer-section a { + color: #f3f4f6; + text-decoration: none; + transition: color 0.3s ease; +} + +.footer-section a:hover { + color: #fff; + text-decoration: underline; +} + +.footer-bottom { + border-top: 1px solid #374151; + padding-top: 2rem; + text-align: center; + font-size: 0.9rem; +} + +.footer-bottom a { + color: aquamarine; +} + +@media (max-width: 768px) { + .footer-content { + grid-template-columns: 1fr; + text-align: center; + } +} + +@media (max-width: 450px) { + .nav-links { + display: none; + } +} #pageBody > .card:first-of-type { width: min(80vw, 500px); } diff --git a/static/dist/css/core_admin_home.bundle.css.map b/static/dist/css/core_admin_home.bundle.css.map index 73a5acc..defaa95 100644 --- a/static/dist/css/core_admin_home.bundle.css.map +++ b/static/dist/css/core_admin_home.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/core_admin_home.bundle.css","mappings":"AAAA;IACI,uBAAuB;AAC3B;;AAEA;IACI,WAAW;AACf,C","sources":["webpack://app/./static/css/pages/core/admin_home.css"],"sourcesContent":["#pageBody > .card:first-of-type {\n width: min(80vw, 500px);\n}\n\n.container.row {\n width: auto;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/core_admin_home.bundle.css","mappings":";AACA;CACC;AACD;IACI,iBAAiB;IACjB,qCAAqC;IACrC;aACS;IACT,WAAW;IACX,aAAa;AACjB;;AAEA;IACI,aAAa;IACb,8BAA8B;IAC9B,mBAAmB;IACnB,eAAe;AACnB;;AAEA;IACI,iBAAiB;IACjB,iBAAiB;IACjB,qBAAqB;AACzB;;AAEA;IACI,aAAa;IACb,SAAS;IACT,aAAa;IACb,eAAe;IACf,eAAe;AACnB;;AAEA;IACI,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,qBAAqB;IACrB,eAAe;AACnB;AACA;IACI,YAAY;IACZ,cAAc;AAClB;;AAEA;IACI,iBAAiB;IACjB,cAAc;IACd,iBAAiB;AACrB;;AAEA,WAAW;AACX;IACI,iBAAiB;IACjB,qCAAqC;IACrC;aACS;IACT,WAAW;IACX,aAAa;AACjB;;AAEA;IACI,aAAa;IACb,8BAA8B;IAC9B,mBAAmB;IACnB,eAAe;AACnB;;AAEA;IACI,iBAAiB;IACjB,iBAAiB;IACjB,qBAAqB;AACzB;;AAEA;IACI,aAAa;IACb,SAAS;AACb;;AAEA;IACI,qBAAqB;IACrB,kBAAkB;IAClB,gBAAgB;IAChB,qBAAqB;AACzB;AACA;IACI,YAAY;AAChB;;AAEA,WAAW;AACX;IACI,mBAAmB;IACnB,cAAc;IACd,oBAAoB;AACxB;;AAEA;IACI,aAAa;IACb,2DAA2D;IAC3D,SAAS;IACT,mBAAmB;AACvB;;AAEA;IACI,WAAW;IACX,mBAAmB;IACnB,iBAAiB;AACrB;;AAEA;IACI,gBAAgB;IAChB,UAAU;AACd;;AAEA;IACI,qBAAqB;AACzB;;AAEA;IACI,cAAc;IACd,qBAAqB;IACrB,2BAA2B;AAC/B;;AAEA;IACI,WAAW;IACX,0BAA0B;AAC9B;;AAEA;IACI,6BAA6B;IAC7B,iBAAiB;IACjB,kBAAkB;IAClB,iBAAiB;AACrB;;AAEA;IACI,iBAAiB;AACrB;;AAEA;IACI;QACI,0BAA0B;QAC1B,kBAAkB;IACtB;AACJ;;AAEA;IACI;QACI,aAAa;IACjB;AACJ,C;ACvJA;IACI,uBAAuB;AAC3B;;AAEA;IACI,WAAW;AACf,C","sources":["webpack://app/./static/css/sections/core.css","webpack://app/./static/css/pages/core/admin_home.css"],"sourcesContent":["\n/* Home page\n*/\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n display: flex;\n flex-wrap: wrap;\n max-width: 70vw;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n font-size: 1rem;\n}\n.nav-links a.button {\n color: white;\n margin: 0 auto;\n}\n\n.container {\n max-width: 1200px;\n margin: 0 auto;\n padding: 0 1.5rem;\n}\n\n/* Header */\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n}\n.nav-links a.button {\n color: white;\n}\n\n/* Footer */\n.footer {\n background: #1f2937;\n color: #f3f4f6;\n padding: 4rem 0 2rem;\n}\n\n.footer-content {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n margin-bottom: 2rem;\n}\n\n.footer-section h3 {\n color: #fff;\n margin-bottom: 1rem;\n font-size: 1.2rem;\n}\n\n.footer-section ul {\n list-style: none;\n padding: 0;\n}\n\n.footer-section ul li {\n margin-bottom: 0.5rem;\n}\n\n.footer-section a {\n color: #f3f4f6;\n text-decoration: none;\n transition: color 0.3s ease;\n}\n\n.footer-section a:hover {\n color: #fff;\n text-decoration: underline;\n}\n\n.footer-bottom {\n border-top: 1px solid #374151;\n padding-top: 2rem;\n text-align: center;\n font-size: 0.9rem;\n}\n\n.footer-bottom a {\n color: aquamarine;\n}\n\n@media (max-width: 768px) {\n .footer-content {\n grid-template-columns: 1fr;\n text-align: center;\n }\n}\n\n@media (max-width: 450px) {\n .nav-links {\n display: none;\n }\n}","#pageBody > .card:first-of-type {\n width: min(80vw, 500px);\n}\n\n.container.row {\n width: auto;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/css/core_contact.bundle.css b/static/dist/css/core_contact.bundle.css new file mode 100644 index 0000000..d53a7c7 --- /dev/null +++ b/static/dist/css/core_contact.bundle.css @@ -0,0 +1,289 @@ + +/* Home page +*/ +header { + background: white; + box-shadow: 0 2px 4px rgba(0,0,0,0.1); + /* position: fixed; + top: 0; */ + width: 100%; + z-index: 1000; +} + +.navbar { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 0; +} + +.logo { + font-size: 1.5rem; + font-weight: bold; + color: var(--primary); +} + +.nav-links { + display: flex; + gap: 2rem; + display: flex; + flex-wrap: wrap; + max-width: 70vw; +} + +.nav-links a { + text-decoration: none; + color: var(--text); + font-weight: 500; + align-content: center; + font-size: 1rem; +} +.nav-links a.button { + color: white; + margin: 0 auto; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 1.5rem; +} + +/* Header */ +header { + background: white; + box-shadow: 0 2px 4px rgba(0,0,0,0.1); + /* position: fixed; + top: 0; */ + width: 100%; + z-index: 1000; +} + +.navbar { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 0; +} + +.logo { + font-size: 1.5rem; + font-weight: bold; + color: var(--primary); +} + +.nav-links { + display: flex; + gap: 2rem; +} + +.nav-links a { + text-decoration: none; + color: var(--text); + font-weight: 500; + align-content: center; +} +.nav-links a.button { + color: white; +} + +/* Footer */ +.footer { + background: #1f2937; + color: #f3f4f6; + padding: 4rem 0 2rem; +} + +.footer-content { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 2rem; + margin-bottom: 2rem; +} + +.footer-section h3 { + color: #fff; + margin-bottom: 1rem; + font-size: 1.2rem; +} + +.footer-section ul { + list-style: none; + padding: 0; +} + +.footer-section ul li { + margin-bottom: 0.5rem; +} + +.footer-section a { + color: #f3f4f6; + text-decoration: none; + transition: color 0.3s ease; +} + +.footer-section a:hover { + color: #fff; + text-decoration: underline; +} + +.footer-bottom { + border-top: 1px solid #374151; + padding-top: 2rem; + text-align: center; + font-size: 0.9rem; +} + +.footer-bottom a { + color: aquamarine; +} + +@media (max-width: 768px) { + .footer-content { + grid-template-columns: 1fr; + text-align: center; + } +} + +@media (max-width: 450px) { + .nav-links { + display: none; + } +} + +.contact-section { + padding: 2rem 2rem 4rem; +} +.contact-section h1 { + margin: 1rem auto; +} +.contact-section p { + margin: 0.5rem auto; +} + +.contact-form { + max-width: 60vw; + width: fit-content; + margin: 0 auto; + background: #fff; + padding: 2rem; + border-radius: 8px; + box-shadow: 0 2px 4px rgba(0,0,0,0.1); +} +.contact-form textarea { + max-width: 40vw; +} + +.form-grid { + display: grid; + grid-template-columns: 200px 1fr; + gap: 1.5rem; + margin-bottom: 1rem; +} +.form-label { + padding-top: 0.5rem; + font-weight: 500; +} +.form-input { + width: 100%; + padding: 0.5rem; + border: 1px solid #d1d5db; + border-radius: 4px; + font-size: 1rem; +} +textarea.form-input { + min-height: 120px; +} + +.marketing-consent input { + display: inline-block; + margin-left: 20%; + margin-bottom: 1.25rem; +} + +.container.captcha > div:first-child > label:first-child { + display: flex; + justify-content: center; + width: fit-content; + text-align: center; + margin: 0 auto; +} +.container.captcha > p:last-child{ + font-size: 0.9rem; + margin: 1vh 0; +} +.container.captcha .altcha-main { + padding-left: 1rem; + padding-top: 0.75rem; + padding-bottom: 0; +} +.container.captcha .altcha-main > :last-child { + display: none; +} +.container.captcha .altcha, +altcha-widget > div:first-child, +.container.captcha > div > .altcha-widget > div { + width: fit-content; + display: flex; + margin-left: auto; + margin-right: auto; +} + +input[type="submit"] { + margin-left: 40%; + padding: 0.75rem 1.5rem; + background: #2563eb; + color: white; + border: none; + border-radius: 4px; + cursor: pointer; + font-size: 1rem; +} + +input[type="submit"]:hover { + background: #1d4ed8; +} + +.data-notice { + margin-top: 3rem; + padding: 1.5rem; + background: #f3f4f6; + border-radius: 4px; + font-size: 0.95rem; +} + +.data-notice h3 { + margin-bottom: 1rem; + font-size: 1.1rem; +} + +.data-notice ul li { + list-style-position: inside; +} + +@media (max-width: 768px) { + .contact-form { + max-width: 80vw; + } + .contact-form textarea { + max-width: 60vw; + } + .form-grid { + grid-template-columns: 1fr; + gap: 0.5rem; + } + + .form-label { + padding-top: 0; + } + + .submit-button { + margin-left: 0; + width: 100%; + } +} + +@media (max-width: 400px) { +} + +/*# sourceMappingURL=core_contact.bundle.css.map*/ \ No newline at end of file diff --git a/static/dist/css/core_contact.bundle.css.map b/static/dist/css/core_contact.bundle.css.map new file mode 100644 index 0000000..380e074 --- /dev/null +++ b/static/dist/css/core_contact.bundle.css.map @@ -0,0 +1 @@ +{"version":3,"file":"css/core_contact.bundle.css","mappings":"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","sources":["webpack://app/./static/css/sections/core.css","webpack://app/./static/css/pages/core/contact.css"],"sourcesContent":["\n/* Home page\n*/\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n display: flex;\n flex-wrap: wrap;\n max-width: 70vw;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n font-size: 1rem;\n}\n.nav-links a.button {\n color: white;\n margin: 0 auto;\n}\n\n.container {\n max-width: 1200px;\n margin: 0 auto;\n padding: 0 1.5rem;\n}\n\n/* Header */\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n}\n.nav-links a.button {\n color: white;\n}\n\n/* Footer */\n.footer {\n background: #1f2937;\n color: #f3f4f6;\n padding: 4rem 0 2rem;\n}\n\n.footer-content {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n margin-bottom: 2rem;\n}\n\n.footer-section h3 {\n color: #fff;\n margin-bottom: 1rem;\n font-size: 1.2rem;\n}\n\n.footer-section ul {\n list-style: none;\n padding: 0;\n}\n\n.footer-section ul li {\n margin-bottom: 0.5rem;\n}\n\n.footer-section a {\n color: #f3f4f6;\n text-decoration: none;\n transition: color 0.3s ease;\n}\n\n.footer-section a:hover {\n color: #fff;\n text-decoration: underline;\n}\n\n.footer-bottom {\n border-top: 1px solid #374151;\n padding-top: 2rem;\n text-align: center;\n font-size: 0.9rem;\n}\n\n.footer-bottom a {\n color: aquamarine;\n}\n\n@media (max-width: 768px) {\n .footer-content {\n grid-template-columns: 1fr;\n text-align: center;\n }\n}\n\n@media (max-width: 450px) {\n .nav-links {\n display: none;\n }\n}","\n.contact-section {\n padding: 2rem 2rem 4rem;\n}\n.contact-section h1 {\n margin: 1rem auto;\n}\n.contact-section p {\n margin: 0.5rem auto;\n}\n\n.contact-form {\n max-width: 60vw;\n width: fit-content;\n margin: 0 auto;\n background: #fff;\n padding: 2rem;\n border-radius: 8px;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n}\n.contact-form textarea {\n max-width: 40vw;\n}\n\n.form-grid {\n display: grid;\n grid-template-columns: 200px 1fr;\n gap: 1.5rem;\n margin-bottom: 1rem;\n}\n.form-label {\n padding-top: 0.5rem;\n font-weight: 500;\n}\n.form-input {\n width: 100%;\n padding: 0.5rem;\n border: 1px solid #d1d5db;\n border-radius: 4px;\n font-size: 1rem;\n}\ntextarea.form-input {\n min-height: 120px;\n}\n\n.marketing-consent input {\n display: inline-block;\n margin-left: 20%;\n margin-bottom: 1.25rem;\n}\n\n.container.captcha > div:first-child > label:first-child {\n display: flex;\n justify-content: center;\n width: fit-content;\n text-align: center;\n margin: 0 auto;\n}\n.container.captcha > p:last-child{\n font-size: 0.9rem;\n margin: 1vh 0;\n}\n.container.captcha .altcha-main {\n padding-left: 1rem;\n padding-top: 0.75rem;\n padding-bottom: 0;\n}\n.container.captcha .altcha-main > :last-child {\n display: none;\n}\n.container.captcha .altcha,\naltcha-widget > div:first-child,\n.container.captcha > div > .altcha-widget > div {\n width: fit-content;\n display: flex;\n margin-left: auto;\n margin-right: auto;\n}\n\ninput[type=\"submit\"] {\n margin-left: 40%;\n padding: 0.75rem 1.5rem;\n background: #2563eb;\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 1rem;\n}\n\ninput[type=\"submit\"]:hover {\n background: #1d4ed8;\n}\n\n.data-notice {\n margin-top: 3rem;\n padding: 1.5rem;\n background: #f3f4f6;\n border-radius: 4px;\n font-size: 0.95rem;\n}\n\n.data-notice h3 {\n margin-bottom: 1rem;\n font-size: 1.1rem;\n}\n\n.data-notice ul li {\n list-style-position: inside;\n}\n\n@media (max-width: 768px) {\n .contact-form {\n max-width: 80vw;\n }\n .contact-form textarea {\n max-width: 60vw;\n }\n .form-grid {\n grid-template-columns: 1fr;\n gap: 0.5rem;\n }\n\n .form-label {\n padding-top: 0;\n }\n\n .submit-button {\n margin-left: 0;\n width: 100%;\n }\n}\n\n@media (max-width: 400px) {\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/css/core_home.bundle.css b/static/dist/css/core_home.bundle.css index 8b7bd60..6462bca 100644 --- a/static/dist/css/core_home.bundle.css +++ b/static/dist/css/core_home.bundle.css @@ -1,66 +1,197 @@ -/* Hero Section */ -.home-hero { - padding: 8rem 0 4rem; - align-self: center; - margin-left: auto; - margin-right: auto; -} - -.hero-content { - max-width: 600px; -} - -.home-hero h2 { - font-size: 24px; - line-height: 1.2; - margin-bottom: 1.5rem; - color: var(--colour-text); - margin-left: auto; - margin-right: auto; -} - -.home-hero a { - font-size: 1.25rem; - margin-bottom: 2rem; - color: var(--colour-primary); - cursor: pointer; - margin-left: auto; - margin-right: auto; -} - -/* Services Section */ -.services { - padding: 6rem 0; +/* Home page +*/ +header { background: white; + box-shadow: 0 2px 4px rgba(0,0,0,0.1); + /* position: fixed; + top: 0; */ + width: 100%; + z-index: 1000; } -.services-grid { - display: grid; - grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); +.navbar { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 0; +} + +.logo { + font-size: 1.5rem; + font-weight: bold; + color: var(--primary); +} + +.nav-links { + display: flex; gap: 2rem; - margin-top: 3rem; + display: flex; + flex-wrap: wrap; + max-width: 70vw; } -.service-card { +.nav-links a { + text-decoration: none; + color: var(--text); + font-weight: 500; + align-content: center; + font-size: 1rem; +} +.nav-links a.button { + color: white; + margin: 0 auto; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 1.5rem; +} + +/* Header */ +header { + background: white; + box-shadow: 0 2px 4px rgba(0,0,0,0.1); + /* position: fixed; + top: 0; */ + width: 100%; + z-index: 1000; +} + +.navbar { + display: flex; + justify-content: space-between; + align-items: center; + padding: 1rem 0; +} + +.logo { + font-size: 1.5rem; + font-weight: bold; + color: var(--primary); +} + +.nav-links { + display: flex; + gap: 2rem; +} + +.nav-links a { + text-decoration: none; + color: var(--text); + font-weight: 500; + align-content: center; +} +.nav-links a.button { + color: white; +} + +/* Footer */ +.footer { + background: #1f2937; + color: #f3f4f6; + padding: 4rem 0 2rem; +} + +.footer-content { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); + gap: 2rem; + margin-bottom: 2rem; +} + +.footer-section h3 { + color: #fff; + margin-bottom: 1rem; + font-size: 1.2rem; +} + +.footer-section ul { + list-style: none; + padding: 0; +} + +.footer-section ul li { + margin-bottom: 0.5rem; +} + +.footer-section a { + color: #f3f4f6; + text-decoration: none; + transition: color 0.3s ease; +} + +.footer-section a:hover { + color: #fff; + text-decoration: underline; +} + +.footer-bottom { + border-top: 1px solid #374151; + padding-top: 2rem; + text-align: center; + font-size: 0.9rem; +} + +.footer-bottom a { + color: aquamarine; +} + +@media (max-width: 768px) { + .footer-content { + grid-template-columns: 1fr; + text-align: center; + } +} + +@media (max-width: 450px) { + .nav-links { + display: none; + } +} +/* Common */ +p { + width: 100%; + font-size: 16px; +} +p.section-title, +p.section-subtitle { + margin: 0 auto; +} +.section-subtitle { + font-size: 18px; +} +ul li { + font-size: 16px; +} + +section.problem, +section.benefits, +section.features, +section.faq { + padding: 6rem 0; + background: var(--colour-text-background); +} +section.problem .card.problem, +section.benefits .card.benefits, +section.features .card.features, +section.faq .card.faq { padding: 2rem; - background: var(--light); + background: var(--colour-page-background); border-radius: 8px; transition: transform 0.3s ease; + display: block; } -.service-card:hover { - transform: translateY(-5px); -} - -/* Testimonial Section */ -.testimonial { +section.solution, +section.social-proof { padding: 6rem 0; - background: var(--light); + background: var(--colour-page-background-1); } - -.testimonial-card { - background: white; +section.solution .card.solution, +section.social-proof .card.social-proof { + background: var(--colour-text-background); padding: 2rem; border-radius: 8px; max-width: 800px; @@ -68,14 +199,56 @@ box-shadow: 0 4px 6px rgba(0,0,0,0.1); } -/* Pricing Section */ -.pricing { +/* Hero Section */ +.hero { + padding: 8rem 0 4rem; + background: linear-gradient(45deg, var(--colour-page-background-1), var(--colour-page-background-2)); /* linear-gradient(45deg, #f8fafc, #eff6ff); */ +} + +.hero-content { + max-width: 600px; +} + +.hero h1 { + font-size: 3rem; + line-height: 1.2; + margin-bottom: 1.5rem; + color: var(--colour-text); +} + +.hero p { + font-size: 1.25rem; + margin-bottom: 2rem; + color: var(--colour-secondary); +} + + + +/* Problem Section */ + + +/* +section.problem .problem.card:hover { + transform: translateY(-5px); +} +*/ + +/* Solution Section */ + +/* Benefits Section */ +section.benefits .section-subtitle { + font-size: 18px; + font-weight: bold; +} + +/* Social Proof Section * / +section.social-proof { padding: 6rem 0; background: white; } -.pricing-card { - background: var(--light); +section.social-proof .card.social-proof { + background: var(--colour-page-background); padding: 2rem; border-radius: 8px; text-align: center; @@ -83,21 +256,63 @@ margin: 3rem auto 0; } -.price { - font-size: 2.5rem; - color: var(--primary); - font-weight: bold; - margin: 1rem 0; +section.social-proof ul { + list-style: none; + margin: 0; +} +* / + +section.social-proof .section-subtitle { + font-size: 16px; +} +*/ +section.social-proof ul li { + font-size: 14px; +} + +/* Early Access Section * / +section.early-access { + padding: 6rem 0; + background: white; +} + +section.early-access .card.early-access { + background: var(--colour-page-background); + padding: 2rem; + border-radius: 8px; + text-align: center; + max-width: 400px; + margin: 3rem auto 0; +} + +section.early-access ul { + list-style: none; + margin: 0; +} +section.early-access a.button { + margin: 0.25rem; +} +*/ + +/* Features section */ +section.features .button { + margin-top: 0; } /* CTA Section */ -.cta { +.cta-1, +.cta-2 { padding: 6rem 0; - background: var(--primary); + background: var(--colour-primary); color: white; text-align: center; } +/* FAQs * / +section.faq .button { + margin-bottom: 0.25rem; +} +*/ /* Animations */ /* Fallback styles to ensure content is visible without JS */ @@ -132,4 +347,39 @@ .delay-3 { animation-delay: 0.3s; } .delay-4 { animation-delay: 0.4s; } +/* Buttons */ +.button { + display: inline-block; + padding: 0.75rem 1.5rem; + border-radius: 6px; + text-decoration: none; + font-weight: 500; + transition: all 0.3s ease; + width: fit-content; + margin: 0.75rem; + font-size: 18px; +} + +.button-primary { + background: var(--colour-primary); + color: white; +} + +.button-primary:hover { + background: var(--colour-secondary); +} + +.button-light { + background: white; + color: var(--colour-primary); +} + +.button-light:hover { + background: var(--colour-page-background); +} + +.logo:hover{ + cursor: pointer; +} + /*# sourceMappingURL=core_home.bundle.css.map*/ \ No newline at end of file diff --git a/static/dist/css/core_home.bundle.css.map b/static/dist/css/core_home.bundle.css.map index 3fc99ef..d79aa12 100644 --- a/static/dist/css/core_home.bundle.css.map +++ b/static/dist/css/core_home.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/core_home.bundle.css","mappings":";AACA,iBAAiB;AACjB;IACI,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,gBAAgB;AACpB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,qBAAqB;IACrB,yBAAyB;IACzB,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,kBAAkB;IAClB,mBAAmB;IACnB,4BAA4B;IAC5B,eAAe;IACf,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA,qBAAqB;AACrB;IACI,eAAe;IACf,iBAAiB;AACrB;;AAEA;IACI,aAAa;IACb,2DAA2D;IAC3D,SAAS;IACT,gBAAgB;AACpB;;AAEA;IACI,aAAa;IACb,wBAAwB;IACxB,kBAAkB;IAClB,+BAA+B;AACnC;;AAEA;IACI,2BAA2B;AAC/B;;AAEA,wBAAwB;AACxB;IACI,eAAe;IACf,wBAAwB;AAC5B;;AAEA;IACI,iBAAiB;IACjB,aAAa;IACb,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;IACnB,qCAAqC;AACzC;;AAEA,oBAAoB;AACpB;IACI,eAAe;IACf,iBAAiB;AACrB;;AAEA;IACI,wBAAwB;IACxB,aAAa;IACb,kBAAkB;IAClB,kBAAkB;IAClB,gBAAgB;IAChB,mBAAmB;AACvB;;AAEA;IACI,iBAAiB;IACjB,qBAAqB;IACrB,iBAAiB;IACjB,cAAc;AAClB;;AAEA,gBAAgB;AAChB;IACI,eAAe;IACf,0BAA0B;IAC1B,YAAY;IACZ,kBAAkB;AACtB;;;AAGA,eAAe;AACf,4DAA4D;AAC5D;IACI,UAAU,EAAE,0BAA0B;AAC1C;;AAEA,iEAAiE;AACjE;IACI;QACI,UAAU;IACd;;IAEA;QACI,yCAAyC;IAC7C;AACJ;;AAEA;IACI;QACI,UAAU;QACV,2BAA2B;IAC/B;IACA;QACI,UAAU;QACV,wBAAwB;IAC5B;AACJ;;AAEA,WAAW,qBAAqB,EAAE;AAClC,WAAW,qBAAqB,EAAE;AAClC,WAAW,qBAAqB,EAAE;AAClC,WAAW,qBAAqB,EAAE,C","sources":["webpack://app/./static/css/pages/core/home.css"],"sourcesContent":["\n/* Hero Section */\n.home-hero {\n padding: 8rem 0 4rem;\n align-self: center;\n margin-left: auto;\n margin-right: auto;\n}\n\n.hero-content {\n max-width: 600px;\n}\n\n.home-hero h2 {\n font-size: 24px;\n line-height: 1.2;\n margin-bottom: 1.5rem;\n color: var(--colour-text); \n margin-left: auto;\n margin-right: auto;\n}\n\n.home-hero a {\n font-size: 1.25rem;\n margin-bottom: 2rem;\n color: var(--colour-primary);\n cursor: pointer;\n margin-left: auto;\n margin-right: auto;\n}\n\n/* Services Section */\n.services {\n padding: 6rem 0;\n background: white;\n}\n\n.services-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));\n gap: 2rem;\n margin-top: 3rem;\n}\n\n.service-card {\n padding: 2rem;\n background: var(--light);\n border-radius: 8px;\n transition: transform 0.3s ease;\n}\n\n.service-card:hover {\n transform: translateY(-5px);\n}\n\n/* Testimonial Section */\n.testimonial {\n padding: 6rem 0;\n background: var(--light);\n}\n\n.testimonial-card {\n background: white;\n padding: 2rem;\n border-radius: 8px;\n max-width: 800px;\n margin: 3rem auto 0;\n box-shadow: 0 4px 6px rgba(0,0,0,0.1);\n}\n\n/* Pricing Section */\n.pricing {\n padding: 6rem 0;\n background: white;\n}\n\n.pricing-card {\n background: var(--light);\n padding: 2rem;\n border-radius: 8px;\n text-align: center;\n max-width: 400px;\n margin: 3rem auto 0;\n}\n\n.price {\n font-size: 2.5rem;\n color: var(--primary);\n font-weight: bold;\n margin: 1rem 0;\n}\n\n/* CTA Section */\n.cta {\n padding: 6rem 0;\n background: var(--primary);\n color: white;\n text-align: center;\n}\n\n\n/* Animations */\n/* Fallback styles to ensure content is visible without JS */\n.reveal {\n opacity: 1; /* Default visible state */\n}\n\n/* Only hide elements if browser supports Intersection Observer */\n@supports (animation-name: fade) {\n .reveal {\n opacity: 0;\n }\n\n .reveal.active {\n animation: fade-up 0.8s ease-out forwards;\n }\n}\n\n@keyframes fade-up {\n 0% {\n opacity: 0;\n transform: translateY(30px);\n }\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.delay-1 { animation-delay: 0.1s; }\n.delay-2 { animation-delay: 0.2s; }\n.delay-3 { animation-delay: 0.3s; }\n.delay-4 { animation-delay: 0.4s; }"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/core_home.bundle.css","mappings":"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","sources":["webpack://app/./static/css/sections/core.css","webpack://app/./static/css/pages/core/home.css"],"sourcesContent":["\n/* Home page\n*/\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n display: flex;\n flex-wrap: wrap;\n max-width: 70vw;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n font-size: 1rem;\n}\n.nav-links a.button {\n color: white;\n margin: 0 auto;\n}\n\n.container {\n max-width: 1200px;\n margin: 0 auto;\n padding: 0 1.5rem;\n}\n\n/* Header */\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n /* position: fixed;\n top: 0; */\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n}\n.nav-links a.button {\n color: white;\n}\n\n/* Footer */\n.footer {\n background: #1f2937;\n color: #f3f4f6;\n padding: 4rem 0 2rem;\n}\n\n.footer-content {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n gap: 2rem;\n margin-bottom: 2rem;\n}\n\n.footer-section h3 {\n color: #fff;\n margin-bottom: 1rem;\n font-size: 1.2rem;\n}\n\n.footer-section ul {\n list-style: none;\n padding: 0;\n}\n\n.footer-section ul li {\n margin-bottom: 0.5rem;\n}\n\n.footer-section a {\n color: #f3f4f6;\n text-decoration: none;\n transition: color 0.3s ease;\n}\n\n.footer-section a:hover {\n color: #fff;\n text-decoration: underline;\n}\n\n.footer-bottom {\n border-top: 1px solid #374151;\n padding-top: 2rem;\n text-align: center;\n font-size: 0.9rem;\n}\n\n.footer-bottom a {\n color: aquamarine;\n}\n\n@media (max-width: 768px) {\n .footer-content {\n grid-template-columns: 1fr;\n text-align: center;\n }\n}\n\n@media (max-width: 450px) {\n .nav-links {\n display: none;\n }\n}","/* Common */\np {\n width: 100%;\n font-size: 16px;\n}\np.section-title,\np.section-subtitle {\n margin: 0 auto;\n}\n.section-subtitle {\n font-size: 18px;\n}\nul li {\n font-size: 16px;\n}\n\nsection.problem,\nsection.benefits,\nsection.features,\nsection.faq {\n padding: 6rem 0;\n background: var(--colour-text-background);\n}\nsection.problem .card.problem,\nsection.benefits .card.benefits,\nsection.features .card.features,\nsection.faq .card.faq {\n padding: 2rem;\n background: var(--colour-page-background);\n border-radius: 8px;\n transition: transform 0.3s ease;\n display: block;\n}\n\nsection.solution,\nsection.social-proof {\n padding: 6rem 0;\n background: var(--colour-page-background-1);\n}\nsection.solution .card.solution,\nsection.social-proof .card.social-proof {\n background: var(--colour-text-background);\n padding: 2rem;\n border-radius: 8px;\n max-width: 800px;\n margin: 3rem auto 0;\n box-shadow: 0 4px 6px rgba(0,0,0,0.1);\n}\n\n/* Hero Section */\n.hero {\n padding: 8rem 0 4rem;\n background: linear-gradient(45deg, var(--colour-page-background-1), var(--colour-page-background-2)); /* linear-gradient(45deg, #f8fafc, #eff6ff); */\n}\n\n.hero-content {\n max-width: 600px;\n}\n\n.hero h1 {\n font-size: 3rem;\n line-height: 1.2;\n margin-bottom: 1.5rem;\n color: var(--colour-text);\n}\n\n.hero p {\n font-size: 1.25rem;\n margin-bottom: 2rem;\n color: var(--colour-secondary);\n}\n\n\n\n/* Problem Section */\n\n\n/*\nsection.problem .problem.card:hover {\n transform: translateY(-5px);\n}\n*/\n\n/* Solution Section */\n\n/* Benefits Section */\nsection.benefits .section-subtitle {\n font-size: 18px;\n font-weight: bold;\n}\n\n/* Social Proof Section * /\nsection.social-proof {\n padding: 6rem 0;\n background: white;\n}\n\nsection.social-proof .card.social-proof {\n background: var(--colour-page-background);\n padding: 2rem;\n border-radius: 8px;\n text-align: center;\n max-width: 400px;\n margin: 3rem auto 0;\n}\n\nsection.social-proof ul {\n list-style: none;\n margin: 0;\n}\n* /\n\nsection.social-proof .section-subtitle {\n font-size: 16px;\n}\n*/\nsection.social-proof ul li {\n font-size: 14px;\n}\n\n/* Early Access Section * /\nsection.early-access {\n padding: 6rem 0;\n background: white;\n}\n\nsection.early-access .card.early-access {\n background: var(--colour-page-background);\n padding: 2rem;\n border-radius: 8px;\n text-align: center;\n max-width: 400px;\n margin: 3rem auto 0;\n}\n\nsection.early-access ul {\n list-style: none;\n margin: 0;\n}\nsection.early-access a.button {\n margin: 0.25rem;\n}\n*/\n\n/* Features section */\nsection.features .button {\n margin-top: 0;\n}\n\n/* CTA Section */\n.cta-1,\n.cta-2 {\n padding: 6rem 0;\n background: var(--colour-primary);\n color: white;\n text-align: center;\n}\n\n/* FAQs * /\nsection.faq .button {\n margin-bottom: 0.25rem;\n}\n*/\n\n/* Animations */\n/* Fallback styles to ensure content is visible without JS */\n.reveal {\n opacity: 1; /* Default visible state */\n}\n\n/* Only hide elements if browser supports Intersection Observer */\n@supports (animation-name: fade) {\n .reveal {\n opacity: 0;\n }\n\n .reveal.active {\n animation: fade-up 0.8s ease-out forwards;\n }\n}\n\n@keyframes fade-up {\n 0% {\n opacity: 0;\n transform: translateY(30px);\n }\n 100% {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n.delay-1 { animation-delay: 0.1s; }\n.delay-2 { animation-delay: 0.2s; }\n.delay-3 { animation-delay: 0.3s; }\n.delay-4 { animation-delay: 0.4s; }\n\n/* Buttons */\n.button {\n display: inline-block;\n padding: 0.75rem 1.5rem;\n border-radius: 6px;\n text-decoration: none;\n font-weight: 500;\n transition: all 0.3s ease;\n width: fit-content;\n margin: 0.75rem;\n font-size: 18px;\n}\n\n.button-primary {\n background: var(--colour-primary);\n color: white;\n}\n\n.button-primary:hover {\n background: var(--colour-secondary);\n}\n\n.button-light {\n background: white;\n color: var(--colour-primary);\n}\n\n.button-light:hover {\n background: var(--colour-page-background);\n}\n\n.logo:hover{\n cursor: pointer;\n}"],"names":[],"sourceRoot":""} \ 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 0ef55be..4d936b8 100644 --- a/static/dist/css/dog_assessment.bundle.css +++ b/static/dist/css/dog_assessment.bundle.css @@ -1,38 +1,4 @@ -.img-product { - max-width: 20vh; - max-height: 20vh; - border-radius: 3vh; - justify-self: left; -} - -.img-thumbnail { - max-width: 10vh; - max-height: 10vh; - border-radius: 3vh; - justify-self: left; -} - -.buttonAddToBasket { - background-color: var(--colour-page-background); - border-color: var(--colour-primary); -} - -#buttonCheckout, .buttonBuyNow { - background-color: var(--colour-page-background); - /* color: var(--c_purple_dark); */ - border-color: var(--colour-primary); -} - -.button-increment, .button-decrement { - border: 2px solid darkgrey; - background-color: lightgray; - margin: 1vh 1vh; - width: 2.5vh; - height: 2.5vh; - border-radius: 1.25vh; - font-size: 2vh; -} .container-input > input { padding: 0vh 1vh; @@ -55,6 +21,59 @@ +#pageBody { + /* height: 69vh !important; */ + max-height: 79vh; + padding: 0 5vw; + margin: 0; + border: 0; + align-content: center; + justify-content: flex-start; + display: flex; + flex-direction: column; + align-items: flex-start; + overflow-y: auto; + overflow-x: hidden; + position: absolute; + width: 90vw; + color: var(--colour-text); +} + + +/* Footer */ +.footer { + padding: 1vh 1vw; + text-align: center; + margin: 0; + max-height: 5vh; + overflow-y: auto; + background-color: var(--colour-accent); + position: absolute; + bottom: 0; + width: 98vw; +} + +@media screen and (max-width: 400px) { + .footer { + max-height: 8vh; + padding: 0 2vw; + font-size: 10px; + width: 96vw; + max-width: 96vw; + } + .footer > h4 { + font-size: 10px; + } + .footer > h5 { + font-size: 9px; + } +} + +.footer > h4, h5 { + padding: 0; + margin: 0; +} + .container.save.button-cancel { position: fixed; @@ -117,8 +136,8 @@ 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: 40vh; - min-width: 40vh; + max-width: 43vh; + min-width: 43vh; } /*# 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 c1fb6c1..9ae1a56 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":";AACA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,+CAA+C;IAC/C,mCAAmC;AACvC;;AAEA;IACI,+CAA+C;IAC/C,iCAAiC;IACjC,mCAAmC;AACvC;;AAEA;IACI,0BAA0B;IAC1B,2BAA2B;IAC3B,eAAe;IACf,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,cAAc;AAClB;;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;AAEA;IACI,eAAe;AACnB;;;;AAIA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;;;;;ACnDf;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.img-product {\n max-width: 20vh;\n max-height: 20vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.img-thumbnail {\n max-width: 10vh;\n max-height: 10vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.buttonAddToBasket {\n background-color: var(--colour-page-background);\n border-color: var(--colour-primary);\n}\n\n#buttonCheckout, .buttonBuyNow {\n background-color: var(--colour-page-background);\n /* color: var(--c_purple_dark); */\n border-color: var(--colour-primary);\n}\n\n.button-increment, .button-decrement {\n border: 2px solid darkgrey;\n background-color: lightgray;\n margin: 1vh 1vh;\n width: 2.5vh;\n height: 2.5vh;\n border-radius: 1.25vh;\n font-size: 2vh;\n}\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.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: 40vh;\n min-width: 40vh;\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,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 diff --git a/static/dist/css/dog_assessments.bundle.css b/static/dist/css/dog_assessments.bundle.css index 805ac86..1963595 100644 --- a/static/dist/css/dog_assessments.bundle.css +++ b/static/dist/css/dog_assessments.bundle.css @@ -1,38 +1,4 @@ -.img-product { - max-width: 20vh; - max-height: 20vh; - border-radius: 3vh; - justify-self: left; -} - -.img-thumbnail { - max-width: 10vh; - max-height: 10vh; - border-radius: 3vh; - justify-self: left; -} - -.buttonAddToBasket { - background-color: var(--colour-page-background); - border-color: var(--colour-primary); -} - -#buttonCheckout, .buttonBuyNow { - background-color: var(--colour-page-background); - /* color: var(--c_purple_dark); */ - border-color: var(--colour-primary); -} - -.button-increment, .button-decrement { - border: 2px solid darkgrey; - background-color: lightgray; - margin: 1vh 1vh; - width: 2.5vh; - height: 2.5vh; - border-radius: 1.25vh; - font-size: 2vh; -} .container-input > input { padding: 0vh 1vh; @@ -55,5 +21,58 @@ +#pageBody { + /* height: 69vh !important; */ + max-height: 79vh; + padding: 0 5vw; + margin: 0; + border: 0; + align-content: center; + justify-content: flex-start; + display: flex; + flex-direction: column; + align-items: flex-start; + overflow-y: auto; + overflow-x: hidden; + position: absolute; + width: 90vw; + color: var(--colour-text); +} + + +/* Footer */ +.footer { + padding: 1vh 1vw; + text-align: center; + margin: 0; + max-height: 5vh; + overflow-y: auto; + background-color: var(--colour-accent); + position: absolute; + bottom: 0; + width: 98vw; +} + +@media screen and (max-width: 400px) { + .footer { + max-height: 8vh; + padding: 0 2vw; + font-size: 10px; + width: 96vw; + max-width: 96vw; + } + .footer > h4 { + font-size: 10px; + } + .footer > h5 { + font-size: 9px; + } +} + +.footer > h4, h5 { + padding: 0; + margin: 0; +} + /*# sourceMappingURL=dog_assessments.bundle.css.map*/ \ No newline at end of file diff --git a/static/dist/css/dog_assessments.bundle.css.map b/static/dist/css/dog_assessments.bundle.css.map index 0767195..dc67afe 100644 --- a/static/dist/css/dog_assessments.bundle.css.map +++ b/static/dist/css/dog_assessments.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/dog_assessments.bundle.css","mappings":";AACA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,+CAA+C;IAC/C,mCAAmC;AACvC;;AAEA;IACI,+CAA+C;IAC/C,iCAAiC;IACjC,mCAAmC;AACvC;;AAEA;IACI,0BAA0B;IAC1B,2BAA2B;IAC3B,eAAe;IACf,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,cAAc;AAClB;;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;AAEA;IACI,eAAe;AACnB;;;;AAIA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe","sources":["webpack://app/./static/css/sections/dog.css"],"sourcesContent":["\n.img-product {\n max-width: 20vh;\n max-height: 20vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.img-thumbnail {\n max-width: 10vh;\n max-height: 10vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.buttonAddToBasket {\n background-color: var(--colour-page-background);\n border-color: var(--colour-primary);\n}\n\n#buttonCheckout, .buttonBuyNow {\n background-color: var(--colour-page-background);\n /* color: var(--c_purple_dark); */\n border-color: var(--colour-primary);\n}\n\n.button-increment, .button-decrement {\n border: 2px solid darkgrey;\n background-color: lightgray;\n margin: 1vh 1vh;\n width: 2.5vh;\n height: 2.5vh;\n border-radius: 1.25vh;\n font-size: 2vh;\n}\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"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/dog_assessments.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","sources":["webpack://app/./static/css/sections/dog.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}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/css/dog_button_icons.bundle.css b/static/dist/css/dog_button_icons.bundle.css index 7214899..9f258da 100644 --- a/static/dist/css/dog_button_icons.bundle.css +++ b/static/dist/css/dog_button_icons.bundle.css @@ -1,38 +1,4 @@ -.img-product { - max-width: 20vh; - max-height: 20vh; - border-radius: 3vh; - justify-self: left; -} - -.img-thumbnail { - max-width: 10vh; - max-height: 10vh; - border-radius: 3vh; - justify-self: left; -} - -.buttonAddToBasket { - background-color: var(--colour-page-background); - border-color: var(--colour-primary); -} - -#buttonCheckout, .buttonBuyNow { - background-color: var(--colour-page-background); - /* color: var(--c_purple_dark); */ - border-color: var(--colour-primary); -} - -.button-increment, .button-decrement { - border: 2px solid darkgrey; - background-color: lightgray; - margin: 1vh 1vh; - width: 2.5vh; - height: 2.5vh; - border-radius: 1.25vh; - font-size: 2vh; -} .container-input > input { padding: 0vh 1vh; @@ -55,6 +21,59 @@ +#pageBody { + /* height: 69vh !important; */ + max-height: 79vh; + padding: 0 5vw; + margin: 0; + border: 0; + align-content: center; + justify-content: flex-start; + display: flex; + flex-direction: column; + align-items: flex-start; + overflow-y: auto; + overflow-x: hidden; + position: absolute; + width: 90vw; + color: var(--colour-text); +} + + +/* Footer */ +.footer { + padding: 1vh 1vw; + text-align: center; + margin: 0; + max-height: 5vh; + overflow-y: auto; + background-color: var(--colour-accent); + position: absolute; + bottom: 0; + width: 98vw; +} + +@media screen and (max-width: 400px) { + .footer { + max-height: 8vh; + padding: 0 2vw; + font-size: 10px; + width: 96vw; + max-width: 96vw; + } + .footer > h4 { + font-size: 10px; + } + .footer > h5 { + font-size: 9px; + } +} + +.footer > h4, h5 { + padding: 0; + margin: 0; +} + #tableMain tbody > div { width: 49vh; diff --git a/static/dist/css/dog_button_icons.bundle.css.map b/static/dist/css/dog_button_icons.bundle.css.map index bfe5d77..2154901 100644 --- a/static/dist/css/dog_button_icons.bundle.css.map +++ b/static/dist/css/dog_button_icons.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/dog_button_icons.bundle.css","mappings":";AACA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,+CAA+C;IAC/C,mCAAmC;AACvC;;AAEA;IACI,+CAA+C;IAC/C,iCAAiC;IACjC,mCAAmC;AACvC;;AAEA;IACI,0BAA0B;IAC1B,2BAA2B;IAC3B,eAAe;IACf,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,cAAc;AAClB;;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;AAEA;IACI,eAAe;AACnB;;;;AAIA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;;;;;ACnDf;IACI,WAAW;AACf","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/button_icons.css"],"sourcesContent":["\n.img-product {\n max-width: 20vh;\n max-height: 20vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.img-thumbnail {\n max-width: 10vh;\n max-height: 10vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.buttonAddToBasket {\n background-color: var(--colour-page-background);\n border-color: var(--colour-primary);\n}\n\n#buttonCheckout, .buttonBuyNow {\n background-color: var(--colour-page-background);\n /* color: var(--c_purple_dark); */\n border-color: var(--colour-primary);\n}\n\n.button-increment, .button-decrement {\n border: 2px solid darkgrey;\n background-color: lightgray;\n margin: 1vh 1vh;\n width: 2.5vh;\n height: 2.5vh;\n border-radius: 1.25vh;\n font-size: 2vh;\n}\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#tableMain tbody > div {\n width: 49vh;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/dog_button_icons.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,WAAW;AACf","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/button_icons.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#tableMain tbody > div {\n width: 49vh;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/css/dog_command_button_links.bundle.css b/static/dist/css/dog_command_button_links.bundle.css index 127c632..4cdd949 100644 --- a/static/dist/css/dog_command_button_links.bundle.css +++ b/static/dist/css/dog_command_button_links.bundle.css @@ -1,38 +1,4 @@ -.img-product { - max-width: 20vh; - max-height: 20vh; - border-radius: 3vh; - justify-self: left; -} - -.img-thumbnail { - max-width: 10vh; - max-height: 10vh; - border-radius: 3vh; - justify-self: left; -} - -.buttonAddToBasket { - background-color: var(--colour-page-background); - border-color: var(--colour-primary); -} - -#buttonCheckout, .buttonBuyNow { - background-color: var(--colour-page-background); - /* color: var(--c_purple_dark); */ - border-color: var(--colour-primary); -} - -.button-increment, .button-decrement { - border: 2px solid darkgrey; - background-color: lightgray; - margin: 1vh 1vh; - width: 2.5vh; - height: 2.5vh; - border-radius: 1.25vh; - font-size: 2vh; -} .container-input > input { padding: 0vh 1vh; @@ -55,6 +21,59 @@ +#pageBody { + /* height: 69vh !important; */ + max-height: 79vh; + padding: 0 5vw; + margin: 0; + border: 0; + align-content: center; + justify-content: flex-start; + display: flex; + flex-direction: column; + align-items: flex-start; + overflow-y: auto; + overflow-x: hidden; + position: absolute; + width: 90vw; + color: var(--colour-text); +} + + +/* Footer */ +.footer { + padding: 1vh 1vw; + text-align: center; + margin: 0; + max-height: 5vh; + overflow-y: auto; + background-color: var(--colour-accent); + position: absolute; + bottom: 0; + width: 98vw; +} + +@media screen and (max-width: 400px) { + .footer { + max-height: 8vh; + padding: 0 2vw; + font-size: 10px; + width: 96vw; + max-width: 96vw; + } + .footer > h4 { + font-size: 10px; + } + .footer > h5 { + font-size: 9px; + } +} + +.footer > h4, h5 { + padding: 0; + margin: 0; +} + /* #formFilters .container-input.filter.active_only { } diff --git a/static/dist/css/dog_command_button_links.bundle.css.map b/static/dist/css/dog_command_button_links.bundle.css.map index b7a62c6..ae5ab2b 100644 --- a/static/dist/css/dog_command_button_links.bundle.css.map +++ b/static/dist/css/dog_command_button_links.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/dog_command_button_links.bundle.css","mappings":";AACA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,+CAA+C;IAC/C,mCAAmC;AACvC;;AAEA;IACI,+CAA+C;IAC/C,iCAAiC;IACjC,mCAAmC;AACvC;;AAEA;IACI,0BAA0B;IAC1B,2BAA2B;IAC3B,eAAe;IACf,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,cAAc;AAClB;;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;AAEA;IACI,eAAe;AACnB;;;;AAIA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;;;;ACpDf;;;CAGC;;;AAGD;IACI,YAAY;AAChB;;AAEA;;;;;;;CAOC;AACD;;;;;;IAMI,eAAe;IACf,eAAe;AACnB;;AAEA;;;;CAIC;;AAED;IACI;;QAEI,eAAe;QACf,eAAe;IACnB;AACJ","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/command_button_links.css"],"sourcesContent":["\n.img-product {\n max-width: 20vh;\n max-height: 20vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.img-thumbnail {\n max-width: 10vh;\n max-height: 10vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.buttonAddToBasket {\n background-color: var(--colour-page-background);\n border-color: var(--colour-primary);\n}\n\n#buttonCheckout, .buttonBuyNow {\n background-color: var(--colour-page-background);\n /* color: var(--c_purple_dark); */\n border-color: var(--colour-primary);\n}\n\n.button-increment, .button-decrement {\n border: 2px solid darkgrey;\n background-color: lightgray;\n margin: 1vh 1vh;\n width: 2.5vh;\n height: 2.5vh;\n border-radius: 1.25vh;\n font-size: 2vh;\n}\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#formFilters .container-input.filter.active_only {\n}\n*/\n\n\n#tableMain tbody > div {\n width: 113vh;\n}\n\n/*\n#tableMain tbody tr td table thead tr th.id_variation_type,\n#tableMain tbody tr td table tbody tr td.id_variation_type,\n#tableMain tbody tr td table thead tr th.id_variation, \n#tableMain tbody tr td table tbody tr td.id_variation {\n width: 47.5%;\n}\n*/\n#tableMain tbody tr td table thead tr th.button_shape, \n#tableMain tbody tr td table tbody tr td.button_shape,\n#tableMain tbody tr td table thead tr th.colour, \n#tableMain tbody tr td table tbody tr td.colour,\n#tableMain tbody tr td table thead tr th.button_icon, \n#tableMain tbody tr td table tbody tr td.button_icon {\n max-width: 12vh;\n max-width: 12vh;\n}\n\n/*\nselect.id_variation, select.id_variation_type {\n max-width: 40% !important;\n}\n*/\n\n@media screen and (max-width: 850px) {\n #formFilters input,\n #formFilters select {\n max-width: 12vh;\n min-width: 12vh;\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/dog_command_button_links.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;;ACzEA;;;CAGC;;;AAGD;IACI,YAAY;AAChB;;AAEA;;;;;;;CAOC;AACD;;;;;;IAMI,eAAe;IACf,eAAe;AACnB;;AAEA;;;;CAIC;;AAED;IACI;;QAEI,eAAe;QACf,eAAe;IACnB;AACJ","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/command_button_links.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 .container-input.filter.active_only {\n}\n*/\n\n\n#tableMain tbody > div {\n width: 113vh;\n}\n\n/*\n#tableMain tbody tr td table thead tr th.id_variation_type,\n#tableMain tbody tr td table tbody tr td.id_variation_type,\n#tableMain tbody tr td table thead tr th.id_variation, \n#tableMain tbody tr td table tbody tr td.id_variation {\n width: 47.5%;\n}\n*/\n#tableMain tbody tr td table thead tr th.button_shape, \n#tableMain tbody tr td table tbody tr td.button_shape,\n#tableMain tbody tr td table thead tr th.colour, \n#tableMain tbody tr td table tbody tr td.colour,\n#tableMain tbody tr td table thead tr th.button_icon, \n#tableMain tbody tr td table tbody tr td.button_icon {\n max-width: 12vh;\n max-width: 12vh;\n}\n\n/*\nselect.id_variation, select.id_variation_type {\n max-width: 40% !important;\n}\n*/\n\n@media screen and (max-width: 850px) {\n #formFilters input,\n #formFilters select {\n max-width: 12vh;\n min-width: 12vh;\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/css/dog_command_categories.bundle.css b/static/dist/css/dog_command_categories.bundle.css index 1441563..dd65e2f 100644 --- a/static/dist/css/dog_command_categories.bundle.css +++ b/static/dist/css/dog_command_categories.bundle.css @@ -1,38 +1,4 @@ -.img-product { - max-width: 20vh; - max-height: 20vh; - border-radius: 3vh; - justify-self: left; -} - -.img-thumbnail { - max-width: 10vh; - max-height: 10vh; - border-radius: 3vh; - justify-self: left; -} - -.buttonAddToBasket { - background-color: var(--colour-page-background); - border-color: var(--colour-primary); -} - -#buttonCheckout, .buttonBuyNow { - background-color: var(--colour-page-background); - /* color: var(--c_purple_dark); */ - border-color: var(--colour-primary); -} - -.button-increment, .button-decrement { - border: 2px solid darkgrey; - background-color: lightgray; - margin: 1vh 1vh; - width: 2.5vh; - height: 2.5vh; - border-radius: 1.25vh; - font-size: 2vh; -} .container-input > input { padding: 0vh 1vh; @@ -55,6 +21,59 @@ +#pageBody { + /* height: 69vh !important; */ + max-height: 79vh; + padding: 0 5vw; + margin: 0; + border: 0; + align-content: center; + justify-content: flex-start; + display: flex; + flex-direction: column; + align-items: flex-start; + overflow-y: auto; + overflow-x: hidden; + position: absolute; + width: 90vw; + color: var(--colour-text); +} + + +/* Footer */ +.footer { + padding: 1vh 1vw; + text-align: center; + margin: 0; + max-height: 5vh; + overflow-y: auto; + background-color: var(--colour-accent); + position: absolute; + bottom: 0; + width: 98vw; +} + +@media screen and (max-width: 400px) { + .footer { + max-height: 8vh; + padding: 0 2vw; + font-size: 10px; + width: 96vw; + max-width: 96vw; + } + .footer > h4 { + font-size: 10px; + } + .footer > h5 { + font-size: 9px; + } +} + +.footer > h4, h5 { + padding: 0; + margin: 0; +} + #formFilters #search { max-width: 20vh; min-width: 20vh; diff --git a/static/dist/css/dog_command_categories.bundle.css.map b/static/dist/css/dog_command_categories.bundle.css.map index aabe3d9..c13afb8 100644 --- a/static/dist/css/dog_command_categories.bundle.css.map +++ b/static/dist/css/dog_command_categories.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/dog_command_categories.bundle.css","mappings":";AACA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,+CAA+C;IAC/C,mCAAmC;AACvC;;AAEA;IACI,+CAA+C;IAC/C,iCAAiC;IACjC,mCAAmC;AACvC;;AAEA;IACI,0BAA0B;IAC1B,2BAA2B;IAC3B,eAAe;IACf,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,cAAc;AAClB;;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;AAEA;IACI,eAAe;AACnB;;;;AAIA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;;;;ACpDf;IACI,eAAe;IACf,eAAe;AACnB;;AAEA;IACI,eAAe;AACnB;AACA;;IAEI,WAAW;AACf;AACA;IACI,sCAAsC;AAC1C;AACA;;;CAGC;AACD;;IAEI,eAAe;IACf,eAAe;AACnB;;AAEA;IACI;;QAEI,eAAe;QACf,eAAe;IACnB;IACA;;QAEI,cAAc;QACd,cAAc;IAClB;AACJ,C","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/command_categories.css"],"sourcesContent":["\n.img-product {\n max-width: 20vh;\n max-height: 20vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.img-thumbnail {\n max-width: 10vh;\n max-height: 10vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.buttonAddToBasket {\n background-color: var(--colour-page-background);\n border-color: var(--colour-primary);\n}\n\n#buttonCheckout, .buttonBuyNow {\n background-color: var(--colour-page-background);\n /* color: var(--c_purple_dark); */\n border-color: var(--colour-primary);\n}\n\n.button-increment, .button-decrement {\n border: 2px solid darkgrey;\n background-color: lightgray;\n margin: 1vh 1vh;\n width: 2.5vh;\n height: 2.5vh;\n border-radius: 1.25vh;\n font-size: 2vh;\n}\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#formFilters #search {\n max-width: 20vh;\n min-width: 20vh;\n}\n\n#tableMain tbody > div {\n max-width: 58vh;\n}\n#tableMain thead tr th,\n#tableMain tbody tr td {\n height: 3vh;\n}\n#tableMain tbody tr td.name .name {\n border: 1px solid var(--colour-accent);\n}\n/*\n#tableMain thead tr th.code,\n#tableMain tbody tr td.code,\n*/\n#tableMain thead tr th.name ,\n#tableMain tbody tr td.name {\n max-width: 50vh;\n min-width: 50vh;\n}\n\n@media screen and (max-width: 800px) {\n #tableMain thead tr th.name ,\n #tableMain tbody tr td.name {\n max-width: 63vw;\n min-width: 63vw;\n }\n #tableMain thead tr th.active ,\n #tableMain tbody tr td.active {\n max-width: 3vw;\n min-width: 3vw;\n }\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/dog_command_categories.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;;ACzEA;IACI,eAAe;IACf,eAAe;AACnB;;AAEA;IACI,eAAe;AACnB;AACA;;IAEI,WAAW;AACf;AACA;IACI,sCAAsC;AAC1C;AACA;;;CAGC;AACD;;IAEI,eAAe;IACf,eAAe;AACnB;;AAEA;IACI;;QAEI,eAAe;QACf,eAAe;IACnB;IACA;;QAEI,cAAc;QACd,cAAc;IAClB;AACJ,C","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/command_categories.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#formFilters #search {\n max-width: 20vh;\n min-width: 20vh;\n}\n\n#tableMain tbody > div {\n max-width: 58vh;\n}\n#tableMain thead tr th,\n#tableMain tbody tr td {\n height: 3vh;\n}\n#tableMain tbody tr td.name .name {\n border: 1px solid var(--colour-accent);\n}\n/*\n#tableMain thead tr th.code,\n#tableMain tbody tr td.code,\n*/\n#tableMain thead tr th.name ,\n#tableMain tbody tr td.name {\n max-width: 50vh;\n min-width: 50vh;\n}\n\n@media screen and (max-width: 800px) {\n #tableMain thead tr th.name ,\n #tableMain tbody tr td.name {\n max-width: 63vw;\n min-width: 63vw;\n }\n #tableMain thead tr th.active ,\n #tableMain tbody tr td.active {\n max-width: 3vw;\n min-width: 3vw;\n }\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/css/dog_commands.bundle.css b/static/dist/css/dog_commands.bundle.css index 93ba690..0b19d35 100644 --- a/static/dist/css/dog_commands.bundle.css +++ b/static/dist/css/dog_commands.bundle.css @@ -1,38 +1,4 @@ -.img-product { - max-width: 20vh; - max-height: 20vh; - border-radius: 3vh; - justify-self: left; -} - -.img-thumbnail { - max-width: 10vh; - max-height: 10vh; - border-radius: 3vh; - justify-self: left; -} - -.buttonAddToBasket { - background-color: var(--colour-page-background); - border-color: var(--colour-primary); -} - -#buttonCheckout, .buttonBuyNow { - background-color: var(--colour-page-background); - /* color: var(--c_purple_dark); */ - border-color: var(--colour-primary); -} - -.button-increment, .button-decrement { - border: 2px solid darkgrey; - background-color: lightgray; - margin: 1vh 1vh; - width: 2.5vh; - height: 2.5vh; - border-radius: 1.25vh; - font-size: 2vh; -} .container-input > input { padding: 0vh 1vh; @@ -55,6 +21,59 @@ +#pageBody { + /* height: 69vh !important; */ + max-height: 79vh; + padding: 0 5vw; + margin: 0; + border: 0; + align-content: center; + justify-content: flex-start; + display: flex; + flex-direction: column; + align-items: flex-start; + overflow-y: auto; + overflow-x: hidden; + position: absolute; + width: 90vw; + color: var(--colour-text); +} + + +/* Footer */ +.footer { + padding: 1vh 1vw; + text-align: center; + margin: 0; + max-height: 5vh; + overflow-y: auto; + background-color: var(--colour-accent); + position: absolute; + bottom: 0; + width: 98vw; +} + +@media screen and (max-width: 400px) { + .footer { + max-height: 8vh; + padding: 0 2vw; + font-size: 10px; + width: 96vw; + max-width: 96vw; + } + .footer > h4 { + font-size: 10px; + } + .footer > h5 { + font-size: 9px; + } +} + +.footer > h4, h5 { + padding: 0; + margin: 0; +} + /* #formFilters .container { max-width: fit-content; diff --git a/static/dist/css/dog_commands.bundle.css.map b/static/dist/css/dog_commands.bundle.css.map index ead76ac..5aa0912 100644 --- a/static/dist/css/dog_commands.bundle.css.map +++ b/static/dist/css/dog_commands.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/dog_commands.bundle.css","mappings":";AACA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,+CAA+C;IAC/C,mCAAmC;AACvC;;AAEA;IACI,+CAA+C;IAC/C,iCAAiC;IACjC,mCAAmC;AACvC;;AAEA;IACI,0BAA0B;IAC1B,2BAA2B;IAC3B,eAAe;IACf,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,cAAc;AAClB;;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;AAEA;IACI,eAAe;AACnB;;;;AAIA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;;;;ACpDf;;;;CAIC;;AAED;IACI,WAAW;AACf;AACA;;IAEI,cAAc;IACd,cAAc;AAClB;;AAEA;;;;;;;;CAQC,C","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/commands.css"],"sourcesContent":["\n.img-product {\n max-width: 20vh;\n max-height: 20vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.img-thumbnail {\n max-width: 10vh;\n max-height: 10vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.buttonAddToBasket {\n background-color: var(--colour-page-background);\n border-color: var(--colour-primary);\n}\n\n#buttonCheckout, .buttonBuyNow {\n background-color: var(--colour-page-background);\n /* color: var(--c_purple_dark); */\n border-color: var(--colour-primary);\n}\n\n.button-increment, .button-decrement {\n border: 2px solid darkgrey;\n background-color: lightgray;\n margin: 1vh 1vh;\n width: 2.5vh;\n height: 2.5vh;\n border-radius: 1.25vh;\n font-size: 2vh;\n}\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#formFilters .container {\n max-width: fit-content;\n}\n*/\n\n#tableMain tbody > div {\n width: 99vh;\n}\n#tableMain thead tr th.can-have-button, \n#tableMain tbody tr td.can-have-button {\n max-width: 6vh;\n min-width: 6vh;\n}\n\n/*\n@media screen and (max-width: 600px) {\n #formFilters input,\n #formFilters select {\n width: 12vh;\n min-width: 12vh;\n }\n}\n*/"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/dog_commands.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;;ACzEA;;;;CAIC;;AAED;IACI,WAAW;AACf;AACA;;IAEI,cAAc;IACd,cAAc;AAClB;;AAEA;;;;;;;;CAQC,C","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/commands.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 .container {\n max-width: fit-content;\n}\n*/\n\n#tableMain tbody > div {\n width: 99vh;\n}\n#tableMain thead tr th.can-have-button, \n#tableMain tbody tr td.can-have-button {\n max-width: 6vh;\n min-width: 6vh;\n}\n\n/*\n@media screen and (max-width: 600px) {\n #formFilters input,\n #formFilters select {\n width: 12vh;\n min-width: 12vh;\n }\n}\n*/"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/css/dog_dog_command_links.bundle.css b/static/dist/css/dog_dog_command_links.bundle.css index 99f59e9..1aebd43 100644 --- a/static/dist/css/dog_dog_command_links.bundle.css +++ b/static/dist/css/dog_dog_command_links.bundle.css @@ -1,38 +1,4 @@ -.img-product { - max-width: 20vh; - max-height: 20vh; - border-radius: 3vh; - justify-self: left; -} - -.img-thumbnail { - max-width: 10vh; - max-height: 10vh; - border-radius: 3vh; - justify-self: left; -} - -.buttonAddToBasket { - background-color: var(--colour-page-background); - border-color: var(--colour-primary); -} - -#buttonCheckout, .buttonBuyNow { - background-color: var(--colour-page-background); - /* color: var(--c_purple_dark); */ - border-color: var(--colour-primary); -} - -.button-increment, .button-decrement { - border: 2px solid darkgrey; - background-color: lightgray; - margin: 1vh 1vh; - width: 2.5vh; - height: 2.5vh; - border-radius: 1.25vh; - font-size: 2vh; -} .container-input > input { padding: 0vh 1vh; @@ -55,6 +21,59 @@ +#pageBody { + /* height: 69vh !important; */ + max-height: 79vh; + padding: 0 5vw; + margin: 0; + border: 0; + align-content: center; + justify-content: flex-start; + display: flex; + flex-direction: column; + align-items: flex-start; + overflow-y: auto; + overflow-x: hidden; + position: absolute; + width: 90vw; + color: var(--colour-text); +} + + +/* Footer */ +.footer { + padding: 1vh 1vw; + text-align: center; + margin: 0; + max-height: 5vh; + overflow-y: auto; + background-color: var(--colour-accent); + position: absolute; + bottom: 0; + width: 98vw; +} + +@media screen and (max-width: 400px) { + .footer { + max-height: 8vh; + padding: 0 2vw; + font-size: 10px; + width: 96vw; + max-width: 96vw; + } + .footer > h4 { + font-size: 10px; + } + .footer > h5 { + font-size: 9px; + } +} + +.footer > h4, h5 { + padding: 0; + margin: 0; +} + /* #formFilters .container-input.filter.active_only { } diff --git a/static/dist/css/dog_dog_command_links.bundle.css.map b/static/dist/css/dog_dog_command_links.bundle.css.map index b7c61de..e6e11ff 100644 --- a/static/dist/css/dog_dog_command_links.bundle.css.map +++ b/static/dist/css/dog_dog_command_links.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/dog_dog_command_links.bundle.css","mappings":";AACA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,+CAA+C;IAC/C,mCAAmC;AACvC;;AAEA;IACI,+CAA+C;IAC/C,iCAAiC;IACjC,mCAAmC;AACvC;;AAEA;IACI,0BAA0B;IAC1B,2BAA2B;IAC3B,eAAe;IACf,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,cAAc;AAClB;;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;AAEA;IACI,eAAe;AACnB;;;;AAIA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;;;;ACpDf;;;CAGC;;;AAGD;IACI,YAAY;AAChB;AACA;IACI,eAAe;AACnB;;AAEA;;;;;;IAMI,uCAAuC;IACvC,oBAAoB;AACxB;;AAEA;;;;IAII,YAAY;AAChB;;AAEA;;;;CAIC;;AAED;IACI;;QAEI,eAAe;QACf,eAAe;IACnB;AACJ","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/dog_command_links.css"],"sourcesContent":["\n.img-product {\n max-width: 20vh;\n max-height: 20vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.img-thumbnail {\n max-width: 10vh;\n max-height: 10vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.buttonAddToBasket {\n background-color: var(--colour-page-background);\n border-color: var(--colour-primary);\n}\n\n#buttonCheckout, .buttonBuyNow {\n background-color: var(--colour-page-background);\n /* color: var(--c_purple_dark); */\n border-color: var(--colour-primary);\n}\n\n.button-increment, .button-decrement {\n border: 2px solid darkgrey;\n background-color: lightgray;\n margin: 1vh 1vh;\n width: 2.5vh;\n height: 2.5vh;\n border-radius: 1.25vh;\n font-size: 2vh;\n}\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#formFilters .container-input.filter.active_only {\n}\n*/\n\n\n#tableMain tbody > div {\n width: 113vh;\n}\n#tableMain {\n max-width: 90vw;\n}\n\ntd > input,\ntd > select,\ntd > textarea,\n.container-input > input,\n.container-input > select,\n.container-input > textarea {\n border: 2px solid var(--colour-primary);\n border-radius: 0.5vh;\n}\n\n#tableMain tbody tr td table thead tr th.id_variation_type,\n#tableMain tbody tr td table tbody tr td.id_variation_type,\n#tableMain tbody tr td table thead tr th.id_variation, \n#tableMain tbody tr td table tbody tr td.id_variation {\n width: 47.5%;\n}\n\n/*\nselect.id_variation, select.id_variation_type {\n max-width: 40% !important;\n}\n*/\n\n@media screen and (max-width: 850px) {\n #formFilters input,\n #formFilters select {\n max-width: 12vh;\n min-width: 12vh;\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/dog_dog_command_links.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;;ACzEA;;;CAGC;;;AAGD;IACI,YAAY;AAChB;AACA;IACI,eAAe;AACnB;;AAEA;;;;;;IAMI,uCAAuC;IACvC,oBAAoB;AACxB;;AAEA;;;;IAII,YAAY;AAChB;;AAEA;;;;CAIC;;AAED;IACI;;QAEI,eAAe;QACf,eAAe;IACnB;AACJ","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/dog_command_links.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 .container-input.filter.active_only {\n}\n*/\n\n\n#tableMain tbody > div {\n width: 113vh;\n}\n#tableMain {\n max-width: 90vw;\n}\n\ntd > input,\ntd > select,\ntd > textarea,\n.container-input > input,\n.container-input > select,\n.container-input > textarea {\n border: 2px solid var(--colour-primary);\n border-radius: 0.5vh;\n}\n\n#tableMain tbody tr td table thead tr th.id_variation_type,\n#tableMain tbody tr td table tbody tr td.id_variation_type,\n#tableMain tbody tr td table thead tr th.id_variation, \n#tableMain tbody tr td table tbody tr td.id_variation {\n width: 47.5%;\n}\n\n/*\nselect.id_variation, select.id_variation_type {\n max-width: 40% !important;\n}\n*/\n\n@media screen and (max-width: 850px) {\n #formFilters input,\n #formFilters select {\n max-width: 12vh;\n min-width: 12vh;\n }\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/css/dog_dogs.bundle.css b/static/dist/css/dog_dogs.bundle.css index bb91edb..f18aa2f 100644 --- a/static/dist/css/dog_dogs.bundle.css +++ b/static/dist/css/dog_dogs.bundle.css @@ -1,38 +1,4 @@ -.img-product { - max-width: 20vh; - max-height: 20vh; - border-radius: 3vh; - justify-self: left; -} - -.img-thumbnail { - max-width: 10vh; - max-height: 10vh; - border-radius: 3vh; - justify-self: left; -} - -.buttonAddToBasket { - background-color: var(--colour-page-background); - border-color: var(--colour-primary); -} - -#buttonCheckout, .buttonBuyNow { - background-color: var(--colour-page-background); - /* color: var(--c_purple_dark); */ - border-color: var(--colour-primary); -} - -.button-increment, .button-decrement { - border: 2px solid darkgrey; - background-color: lightgray; - margin: 1vh 1vh; - width: 2.5vh; - height: 2.5vh; - border-radius: 1.25vh; - font-size: 2vh; -} .container-input > input { padding: 0vh 1vh; @@ -55,5 +21,58 @@ +#pageBody { + /* height: 69vh !important; */ + max-height: 79vh; + padding: 0 5vw; + margin: 0; + border: 0; + align-content: center; + justify-content: flex-start; + display: flex; + flex-direction: column; + align-items: flex-start; + overflow-y: auto; + overflow-x: hidden; + position: absolute; + width: 90vw; + color: var(--colour-text); +} + + +/* Footer */ +.footer { + padding: 1vh 1vw; + text-align: center; + margin: 0; + max-height: 5vh; + overflow-y: auto; + background-color: var(--colour-accent); + position: absolute; + bottom: 0; + width: 98vw; +} + +@media screen and (max-width: 400px) { + .footer { + max-height: 8vh; + padding: 0 2vw; + font-size: 10px; + width: 96vw; + max-width: 96vw; + } + .footer > h4 { + font-size: 10px; + } + .footer > h5 { + font-size: 9px; + } +} + +.footer > h4, h5 { + padding: 0; + margin: 0; +} + /*# sourceMappingURL=dog_dogs.bundle.css.map*/ \ No newline at end of file diff --git a/static/dist/css/dog_dogs.bundle.css.map b/static/dist/css/dog_dogs.bundle.css.map index 69253b6..39038f5 100644 --- a/static/dist/css/dog_dogs.bundle.css.map +++ b/static/dist/css/dog_dogs.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/dog_dogs.bundle.css","mappings":";AACA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,+CAA+C;IAC/C,mCAAmC;AACvC;;AAEA;IACI,+CAA+C;IAC/C,iCAAiC;IACjC,mCAAmC;AACvC;;AAEA;IACI,0BAA0B;IAC1B,2BAA2B;IAC3B,eAAe;IACf,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,cAAc;AAClB;;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;AAEA;IACI,eAAe;AACnB;;;;AAIA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe","sources":["webpack://app/./static/css/sections/dog.css"],"sourcesContent":["\n.img-product {\n max-width: 20vh;\n max-height: 20vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.img-thumbnail {\n max-width: 10vh;\n max-height: 10vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.buttonAddToBasket {\n background-color: var(--colour-page-background);\n border-color: var(--colour-primary);\n}\n\n#buttonCheckout, .buttonBuyNow {\n background-color: var(--colour-page-background);\n /* color: var(--c_purple_dark); */\n border-color: var(--colour-primary);\n}\n\n.button-increment, .button-decrement {\n border: 2px solid darkgrey;\n background-color: lightgray;\n margin: 1vh 1vh;\n width: 2.5vh;\n height: 2.5vh;\n border-radius: 1.25vh;\n font-size: 2vh;\n}\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"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/dog_dogs.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","sources":["webpack://app/./static/css/sections/dog.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}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/css/dog_home.bundle.css b/static/dist/css/dog_home.bundle.css index c1009e1..36d45a5 100644 --- a/static/dist/css/dog_home.bundle.css +++ b/static/dist/css/dog_home.bundle.css @@ -1,38 +1,4 @@ -.img-product { - max-width: 20vh; - max-height: 20vh; - border-radius: 3vh; - justify-self: left; -} - -.img-thumbnail { - max-width: 10vh; - max-height: 10vh; - border-radius: 3vh; - justify-self: left; -} - -.buttonAddToBasket { - background-color: var(--colour-page-background); - border-color: var(--colour-primary); -} - -#buttonCheckout, .buttonBuyNow { - background-color: var(--colour-page-background); - /* color: var(--c_purple_dark); */ - border-color: var(--colour-primary); -} - -.button-increment, .button-decrement { - border: 2px solid darkgrey; - background-color: lightgray; - margin: 1vh 1vh; - width: 2.5vh; - height: 2.5vh; - border-radius: 1.25vh; - font-size: 2vh; -} .container-input > input { padding: 0vh 1vh; @@ -54,6 +20,59 @@ /* Main Table */ + +#pageBody { + /* height: 69vh !important; */ + max-height: 79vh; + padding: 0 5vw; + margin: 0; + border: 0; + align-content: center; + justify-content: flex-start; + display: flex; + flex-direction: column; + align-items: flex-start; + overflow-y: auto; + overflow-x: hidden; + position: absolute; + width: 90vw; + color: var(--colour-text); +} + + +/* Footer */ +.footer { + padding: 1vh 1vw; + text-align: center; + margin: 0; + max-height: 5vh; + overflow-y: auto; + background-color: var(--colour-accent); + position: absolute; + bottom: 0; + width: 98vw; +} + +@media screen and (max-width: 400px) { + .footer { + max-height: 8vh; + padding: 0 2vw; + font-size: 10px; + width: 96vw; + max-width: 96vw; + } + .footer > h4 { + font-size: 10px; + } + .footer > h5 { + font-size: 9px; + } +} + +.footer > h4, h5 { + padding: 0; + margin: 0; +} #pageBody .column .row { margin-top: 0.5vh; } diff --git a/static/dist/css/dog_home.bundle.css.map b/static/dist/css/dog_home.bundle.css.map index fe689a0..1b1c539 100644 --- a/static/dist/css/dog_home.bundle.css.map +++ b/static/dist/css/dog_home.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/dog_home.bundle.css","mappings":";AACA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,+CAA+C;IAC/C,mCAAmC;AACvC;;AAEA;IACI,+CAA+C;IAC/C,iCAAiC;IACjC,mCAAmC;AACvC;;AAEA;IACI,0BAA0B;IAC1B,2BAA2B;IAC3B,eAAe;IACf,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,cAAc;AAClB;;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;AAEA;IACI,eAAe;AACnB;;;;AAIA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;;;ACrDf;IACI,iBAAiB;AACrB;AACA;IACI,iBAAiB;IACjB,kBAAkB;AACtB,C","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/home.css"],"sourcesContent":["\n.img-product {\n max-width: 20vh;\n max-height: 20vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.img-thumbnail {\n max-width: 10vh;\n max-height: 10vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.buttonAddToBasket {\n background-color: var(--colour-page-background);\n border-color: var(--colour-primary);\n}\n\n#buttonCheckout, .buttonBuyNow {\n background-color: var(--colour-page-background);\n /* color: var(--c_purple_dark); */\n border-color: var(--colour-primary);\n}\n\n.button-increment, .button-decrement {\n border: 2px solid darkgrey;\n background-color: lightgray;\n margin: 1vh 1vh;\n width: 2.5vh;\n height: 2.5vh;\n border-radius: 1.25vh;\n font-size: 2vh;\n}\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","#pageBody .column .row {\n margin-top: 0.5vh;\n}\n#pageBody .column .row .button {\n margin-left: auto;\n margin-right: auto;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/dog_home.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;AC1EA;IACI,iBAAiB;AACrB;AACA;IACI,iBAAiB;IACjB,kBAAkB;AACtB,C","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/home.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}","#pageBody .column .row {\n margin-top: 0.5vh;\n}\n#pageBody .column .row .button {\n margin-left: auto;\n margin-right: auto;\n}"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/css/dog_locations.bundle.css b/static/dist/css/dog_locations.bundle.css index 4f3bc5d..f54ec80 100644 --- a/static/dist/css/dog_locations.bundle.css +++ b/static/dist/css/dog_locations.bundle.css @@ -1,38 +1,4 @@ -.img-product { - max-width: 20vh; - max-height: 20vh; - border-radius: 3vh; - justify-self: left; -} - -.img-thumbnail { - max-width: 10vh; - max-height: 10vh; - border-radius: 3vh; - justify-self: left; -} - -.buttonAddToBasket { - background-color: var(--colour-page-background); - border-color: var(--colour-primary); -} - -#buttonCheckout, .buttonBuyNow { - background-color: var(--colour-page-background); - /* color: var(--c_purple_dark); */ - border-color: var(--colour-primary); -} - -.button-increment, .button-decrement { - border: 2px solid darkgrey; - background-color: lightgray; - margin: 1vh 1vh; - width: 2.5vh; - height: 2.5vh; - border-radius: 1.25vh; - font-size: 2vh; -} .container-input > input { padding: 0vh 1vh; @@ -55,6 +21,59 @@ +#pageBody { + /* height: 69vh !important; */ + max-height: 79vh; + padding: 0 5vw; + margin: 0; + border: 0; + align-content: center; + justify-content: flex-start; + display: flex; + flex-direction: column; + align-items: flex-start; + overflow-y: auto; + overflow-x: hidden; + position: absolute; + width: 90vw; + color: var(--colour-text); +} + + +/* Footer */ +.footer { + padding: 1vh 1vw; + text-align: center; + margin: 0; + max-height: 5vh; + overflow-y: auto; + background-color: var(--colour-accent); + position: absolute; + bottom: 0; + width: 98vw; +} + +@media screen and (max-width: 400px) { + .footer { + max-height: 8vh; + padding: 0 2vw; + font-size: 10px; + width: 96vw; + max-width: 96vw; + } + .footer > h4 { + font-size: 10px; + } + .footer > h5 { + font-size: 9px; + } +} + +.footer > h4, h5 { + padding: 0; + margin: 0; +} + #tableMain tbody > div { width: 49vh; diff --git a/static/dist/css/dog_locations.bundle.css.map b/static/dist/css/dog_locations.bundle.css.map index 944d99d..b1ef9e3 100644 --- a/static/dist/css/dog_locations.bundle.css.map +++ b/static/dist/css/dog_locations.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/dog_locations.bundle.css","mappings":";AACA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,gBAAgB;IAChB,kBAAkB;IAClB,kBAAkB;AACtB;;AAEA;IACI,+CAA+C;IAC/C,mCAAmC;AACvC;;AAEA;IACI,+CAA+C;IAC/C,iCAAiC;IACjC,mCAAmC;AACvC;;AAEA;IACI,0BAA0B;IAC1B,2BAA2B;IAC3B,eAAe;IACf,YAAY;IACZ,aAAa;IACb,qBAAqB;IACrB,cAAc;AAClB;;AAEA;IACI,gBAAgB;IAChB,oBAAoB;IACpB,cAAc;AAClB;;AAEA;IACI,eAAe;AACnB;;;;AAIA,iBAAiB;AACjB;IACI,sBAAsB;AAC1B;;AAEA,eAAe;;;;;ACnDf;IACI,WAAW;AACf","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/locations.css"],"sourcesContent":["\n.img-product {\n max-width: 20vh;\n max-height: 20vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.img-thumbnail {\n max-width: 10vh;\n max-height: 10vh;\n border-radius: 3vh;\n justify-self: left;\n}\n\n.buttonAddToBasket {\n background-color: var(--colour-page-background);\n border-color: var(--colour-primary);\n}\n\n#buttonCheckout, .buttonBuyNow {\n background-color: var(--colour-page-background);\n /* color: var(--c_purple_dark); */\n border-color: var(--colour-primary);\n}\n\n.button-increment, .button-decrement {\n border: 2px solid darkgrey;\n background-color: lightgray;\n margin: 1vh 1vh;\n width: 2.5vh;\n height: 2.5vh;\n border-radius: 1.25vh;\n font-size: 2vh;\n}\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#tableMain tbody > div {\n width: 49vh;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/dog_locations.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,WAAW;AACf","sources":["webpack://app/./static/css/sections/dog.css","webpack://app/./static/css/pages/dog/locations.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#tableMain tbody > div {\n width: 49vh;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/css/main.bundle.css b/static/dist/css/main.bundle.css index 6a4c54c..b4d9398 100644 --- a/static/dist/css/main.bundle.css +++ b/static/dist/css/main.bundle.css @@ -59,8 +59,9 @@ script, link { display: none !important; } +/* #pageBody { - /* height: 69vh !important; */ + / * height: 69vh !important; * / max-height: 79vh; padding: 0 5vw; margin: 0; @@ -76,6 +77,7 @@ script, link { width: 90vw; color: var(--colour-text); } +*/ .page-body > * { display: flex; @@ -117,7 +119,7 @@ img.header-logo { background-color: var(--colour-text-background); padding: 1vh 2.5vw; margin: 1vh; - display: flex !important; + display: flex; flex-wrap: wrap; align-items: center; justify-content: center; @@ -210,6 +212,8 @@ img.header-logo { ul { max-width: 90%; padding: 5px 0 10px 0; + width: fit-content; + margin: auto; } li { text-align: left; @@ -521,45 +525,6 @@ table div { align-content: center; } -/* -header { - background: white; - box-shadow: 0 2px 4px rgba(0,0,0,0.1); - / * position: fixed; - top: 0; * / - width: 100%; - z-index: 1000; -} - -.navbar { - display: flex; - justify-content: space-between; - align-items: center; - padding: 1rem 0; -} - -.logo { - font-size: 1.5rem; - font-weight: bold; - color: var(--primary); -} - -.nav-links { - display: flex; - gap: 2rem; -} - -.nav-links a { - text-decoration: none; - color: var(--text); - font-weight: 500; - align-content: center; -} -.nav-links a.button { - color: white; -} -*/ - /* Navigation */ .topnav { @@ -717,40 +682,7 @@ form.filter button.save, form.filter button.button-cancel { font-size: 16px; } } - -/* Footer */ -.footer { - padding: 1vh 1vw; - text-align: center; - margin: 0; - max-height: 5vh; - overflow-y: auto; - background-color: var(--colour-accent); - position: absolute; - bottom: 0; - width: 98vw; -} - -@media screen and (max-width: 400px) { - .footer { - max-height: 8vh; - padding: 0 2vw; - font-size: 10px; - width: 96vw; - max-width: 96vw; - } - .footer > h4 { - font-size: 10px; - } - .footer > h5 { - font-size: 9px; - } -} - -.footer > h4, h5 { - padding: 0; - margin: 0; -} +/* In sections */ #formFilters { padding: 0.5vh 1vw; @@ -834,7 +766,7 @@ table.table-main tbody tr td.notes { table.table-main tbody tr td:has(.dirty) { background-color: var(--colour-primary); } -table.table-main tbody tr td:has(.dirty) table { +table.table-main tbody tr td:has(.dirty) table tr:not(:has(.dirty)) { background-color: var(--colour-text-background); } table.table-main tbody tr:not(:last-of-type) td { diff --git a/static/dist/css/main.bundle.css.map b/static/dist/css/main.bundle.css.map index 8a864d8..29fef0a 100644 --- a/static/dist/css/main.bundle.css.map +++ b/static/dist/css/main.bundle.css.map @@ -1 +1 @@ -{"version":3,"file":"css/main.bundle.css","mappings":"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ACI,aAAa;AACjB;;AAEA,2BAA2B;AAC3B;IACI,eAAe;IACf,kBAAkB;IAClB,QAAQ;IACR,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,WAAW;AACf;AACA;IACI,eAAe;IACf,eAAe;IACf,cAAc;IACd,cAAc;AAClB;AACA;;;;;CAKC;AACD;IACI,SAAS;IACT,aAAa;IACb,kBAAkB;IAClB,gBAAgB;IAChB,gBAAgB;AACpB;AACA;IACI,sCAAsC;IACtC,kBAAkB;AACtB;AACA;IACI,4BAA4B;IAC5B,6BAA6B;AACjC;AACA;IACI,+BAA+B;IAC/B,gCAAgC;AACpC;;AAEA;IACI,aAAa;IACb,eAAe;IACf,mBAAmB;IACnB,uBAAuB;IACvB,kBAAkB;IAClB,WAAW;IACX,+BAA+B;IAC/B,iBAAiB;IACjB,eAAe;IACf,kBAAkB;AACtB;AACA;IACI,oCAAoC;IACpC,uCAAuC;AAC3C;AACA;IACI,WAAW;IACX;;;KAGC;AACL;AACA;IACI,kBAAkB;IAClB,qBAAqB;AACzB;;AAEA;IACI;QACI,eAAe;QACf,eAAe;QACf,gBAAgB;QAChB,gBAAgB;IACpB;IACA;QACI,eAAe;QACf,eAAe;QACf,cAAc;QACd,cAAc;IAClB;IACA;QACI,SAAS;QACT,YAAY;QACZ,kBAAkB;IACtB;AACJ;;AAEA,oBAAoB;AACpB;IACI,kBAAkB;IAClB,UAAU;IACV,WAAW;IACX,YAAY;AAChB;;AAEA;IACI,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,mBAAmB;AACvB;AACA;IACI,kBAAkB;AACtB;;;;;AChIA;IACI,sBAAsB;AAC1B;;AAEA;IACI,2BAA2B;IAC3B,8BAA8B;AAClC;;AAEA;IACI,6BAA6B;AACjC;AACA;IACI,mCAAmC;AACvC;;AAEA;IACI,sBAAsB;AAC1B;AACA;IACI,8CAA8C;AAClD;AACA;IACI,uBAAuB;AAC3B;AACA;IACI,8BAA8B;AAClC;AACA;IACI,uCAAuC;AAC3C;AACA;IACI,6BAA6B;AACjC;;AAEA;IACI,eAAe;IACf,wBAAwB;IACxB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","sources":["webpack://app/./static/css/main.css","webpack://app/./static/css/components/button.css","webpack://app/./static/css/components/form.css","webpack://app/./static/css/components/image.css","webpack://app/./static/css/components/label.css","webpack://app/./static/css/components/overlay.css","webpack://app/./static/css/components/table.css","webpack://app/./static/css/layouts/header.css","webpack://app/./static/css/layouts/footer.css","webpack://app/./static/css/layouts/table-main.css","webpack://app/./static/css/lib/utils.css","webpack://app/./static/css/themes/light.css"],"sourcesContent":["\n:root {\n --font-family-base: 'Open Sans', Arial, sans-serif;\n /* Declare global variables */\n /*\n --c_purple: #5B29FF;\n --c_purple_pastel: #D1D1FF;\n --c_purple_lighter: #E8E1FF;\n --c_purple_light: #C6BDFF;\n --c_purple_dark: #4700B3;\n */\n /* purple theme\n - light https://coolors.co/palette/a172fd-a77afe-ac82fe-b691fe-c1a0fe-cbaffe-d6bffe-e0cefe-ebddfe-f5ecfe\n - dark https://coolors.co/palette/310055-3c0663-4a0a77-5a108f-6818a5-8b2fc9-ab51e3-bd68ee-d283ff-dc97ff\n */\n /*\n --c_purple_darker: #310055;\n --c_purple_dark: #4A0A77;\n --c_purple: #6818A5;\n --c_purple_light: #CBAFFE;\n --c_purple_lighter: #F5ECFE;\n\n --c_blue: #0044FF;\n --c_blue_pastel: #B8E0FF;\n --c_blue_light: #73E8FF;\n --c_blue_dark: #003ADB;\n */\n /* --c_red: * /\n --c-red: #FF0000;\n --c_red_pastel: #FAE0E2;\n --c_red_lighter: #FAE0E2;\n */\n}\n\nhtml {\n height: 100vh;\n /* overflow-y: clip; */\n}\n\nbody {\n background-color: var(--colour-page-background);\n color: var(--colour-text);\n font-family: var(--font-family-base);\n font-family: Arial;\n padding: 0;\n margin: 0;\n border: 0;\n background: linear-gradient(to bottom right, var(--colour-page-background-1), var(--colour-page-background-2)); /* var(--c_purple); */\n height: 100vh;\n /* max-height: 100vh;\n overflow-y: clip; */\n}\n\n* {\n margin: 0;\n}\n\nscript, link {\n display: none !important;\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.page-body > * {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n text-align: center;\n width: 100%;\n align-self: center;\n font-size: min(16px, calc(1vh * 4));\n}\n#pageBody > * > * {\n align-self: center;\n padding-top: 0.5vh;\n padding-bottom: 0.5vh;\n}\n#pageBody > .card {\n height: fit-content;\n margin: 0.5vh auto;\n}\n\n/* header image */\nimg.header-logo {\n max-height: 15vh;\n max-width: 15vh;\n cursor: pointer;\n border-radius: 3vh;\n}\n\n/* icon images */\n.img-icon {\n max-width: 16vh;\n max-height: 8vh;\n border-radius: 0;\n}\n\n/* Add a card effect for articles */\n.card {\n background-color: var(--colour-text-background);\n padding: 1vh 2.5vw;\n margin: 1vh;\n display: flex !important;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n text-align: center;\n border-radius: 1.5vh;\n position: relative;\n height: fit-content;\n max-width: 80vw;\n}\n\n.header.card {\n border-radius: 2.5vh;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.container {\n flex: 1;\n margin: 0px;\n align-items: flex-start;\n justify-content: flex-start;\n text-align: flex-start;\n /* max-width: 100%; */\n /* min-width: fit-content; */\n}\n\n.column {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: auto 0;\n}\n\n.row {\n display: flex; \n flex-direction: row;\n width: 100%;\n flex-wrap: wrap;\n}\n\n.container > .card:first-of-type {\n margin-top: none;\n}\n\n\n/*\n/* Responsive layout - when the screen is less than 800px wide, make the two columns stack on top of each other instead of next to each other *\n@media screen and (max-width: 800px) {\n .leftcolumn, .rightcolumn { \n width: 100%;\n /* padding: 0; *\n }\n}\n\n/* Responsive layout - when the screen is less than 400px wide, make the navigation links stack on top of each other instead of next to each other *\n@media screen and (max-width: 400px) {\n .topnav a {\n float: none;\n width: 100%;\n }\n}\n*/\n\n.container-input {\n padding: 1vh;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n text-align: center;\n}\n\n.container-input > label {\n width: 100%;\n margin-bottom: 1vh;\n margin-top: 0;\n}\n\n.container-input > input,\n.container-input > textarea {\n border: 2px solid var(--colour-accent);\n padding: 1vh;\n}\n\n.label-title {\n width: 100%;\n}\n\n\nul {\n max-width: 90%;\n padding: 5px 0 10px 0;\n}\nli {\n text-align: left;\n font-size: 18px;\n}\n\n\n:not(input,textarea,select,button).dirty {\n background-color: var(--colour-accent);\n}\ninput.dirty, textarea.dirty, select.dirty {\n border-color: var(--colour-primary);\n}\n\n\n#pageBody > *, button {\n font-size: min(12px, calc(1vh * 3));\n}\n\n\n\n@media screen and (max-width: 400px) {\n img.header-logo {\n border-radius: 3vh;\n }\n /*\n .company-name {\n font-size: 14px;\n }\n */\n}",".button {\n display: inline-block;\n padding: 0.5vh 0.75vh;\n border-radius: 0.75vh;\n text-decoration: none;\n font-weight: bold;\n transition: all 0.3s ease;\n width: fit-content;\n}\n.button:not(.is_collapsed) {\n cursor: pointer;\n}\n.button.is_collapsed {\n display: block;\n opacity: 0;\n}\n\n.button-primary {\n background: var(--colour-accent);\n color: var(--colour-primary);\n border: 2px solid var(--colour-primary);\n}\n\n.button-primary:hover {\n background: var(--colour-secondary);\n}\n\n.button-light {\n background: white;\n color: var(--colour-primary);\n}\n\n.button-light:hover {\n background: var(--colour-accent);\n}\n\n.logo:hover{\n cursor: pointer;\n}\n\n\n.button.icon.active.delete, \n.button.icon.active.add {\n height: 2vh;\n}","\n\nselect {\n border: 1px solid var(--colour-accent);\n}","\nimg, video {\n border-radius: 3vh;\n}\n","\nh1 {\n font-size: min(24px, calc(1vh * 6));\n}\n\nh2 {\n font-size: min(20px, calc(1vh * 5));\n}\n\nh3 {\n font-size: min(16px, calc(1vh * 4));\n margin-top: 1vh;\n}\n\nh4 {\n font-size: 13px;\n margin: 1vh;\n text-align: center;\n margin-left: auto;\n margin-right: auto;\n}\n\nh5 {\n font-size: 11px;\n margin: 1vh;\n}\n","\n\n/* Overlay modal */\n.overlay {\n /*\n display: none;\n */\n position: fixed;\n width: 100px;\n /* height: 50%; */ \n background: var(--colour-page-background);\n justify-content: right;\n align-items: right;\n align-self: right;\n z-index: 999;\n}\n.is_collapsed {\n display: none;\n}\n\n/* Hamburger menu overlay */\n#buttonHamburger {\n cursor: pointer;\n position: absolute;\n right: 0;\n min-height: 4vh;\n max-height: 4vh;\n min-width: 4.5vh;\n max-width: 4.5vh;\n z-index: 10;\n}\n#buttonHamburger .icon.hamburger {\n min-height: 3vh;\n max-height: 3vh;\n min-width: 3vh;\n max-width: 3vh;\n}\n/*\n#buttonHamburger:hover {\n text-decoration: none;\n cursor: pointer;\n}\n*/\n#overlayHamburger {\n top: 20vh;\n right: 0.75vh;\n overflow-x: hidden;\n overflow-y: auto;\n max-height: 60vh;\n}\n#overlayHamburger {\n border: 2px solid var(--border-colour);\n border-radius: 4px;\n}\n#overlayHamburger:first-child {\n border-top-left-radius: 12px;\n border-top-right-radius: 12px;\n}\n#overlayHamburger:last-child {\n border-bottom-left-radius: 12px;\n border-bottom-right-radius: 12px;\n}\n\n#overlayHamburger > * {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n text-align: center;\n width: 100%;\n /* color: var(--colour-text); */\n font-weight: bold;\n font-size: 15px;\n /* height: 18px; */\n}\n#overlayHamburger > :hover {\n color: var(--colour-page-background);\n background-color: var(--colour-primary);\n}\n#overlayHamburger > * > * {\n width: 100%;\n /*\n margin-top: 4.5px;\n margin-bottom: 4.5px;\n */\n}\n#overlayHamburger > .container {\n padding-top: 4.5px;\n padding-bottom: 4.5px;\n}\n\n@media screen and (max-width: 400px) {\n #buttonHamburger {\n min-height: 6vh;\n max-height: 6vh;\n min-width: 6.5vh;\n max-width: 6.5vh;\n }\n #buttonHamburger .icon.hamburger {\n min-height: 5vh;\n max-height: 5vh;\n min-width: 5vh;\n max-width: 5vh;\n }\n #overlayHamburger {\n top: 22vh;\n width: 100px;\n /* right: 6.5vh; */\n }\n}\n\n/* Confirm overlay */\n#overlayConfirm {\n position: absolute;\n left: 25vw;\n width: 50vw;\n height: 50vh;\n}\n\n#overlayConfirm .row > * {\n margin-left: auto;\n margin-right: auto;\n}\n\n#overlayConfirm .row .button.button-cancel {\n margin-right: 0.5vh;\n}\n#overlayConfirm .row .button.submit {\n margin-left: 0.5vh;\n}\n\n\n","\n#formFilters .container {\n max-width: fit-content;\n}\n\nthead, tbody {\n padding-top: 0px !important;\n padding-bottom: 0px !important;\n}\n\nth {\n background-color: transparent;\n}\ntd {\n font-size: min(12px, calc(1vh * 3));\n}\n\nth, td {\n min-width: fit-content;\n}\ntr:not(:last-child) > td {\n border-bottom: 1px dashed var(--border-colour);\n}\ntd > table > tbody > tr > td {\n border: none !important;\n}\nth.is_collapsed, td.is_collapsed {\n display: table-cell !important;\n}\ntd.dirty {\n background-color: var(--colour-primary);\n}\ntd:not(.dirty) {\n background-color: transparent;\n}\n\ntr {\n min-height: 1px;\n border-bottom: 1px solid;\n border-top: 1px solid;\n border-color: var(--border-colour);\n background-color: transparent;\n}\n\ntable button {\n margin: 0.25vh;\n padding: 0.5vh 1vh;\n}\n\ntable button.active {\n background-color: var(--colour-page-background);\n}\n\ntr.delete, tr.delete > td {\n background-color: var(--colour-error);\n}\n\ntable div {\n align-content: center;\n}","\n/*\nheader {\n background: white;\n box-shadow: 0 2px 4px rgba(0,0,0,0.1);\n / * position: fixed;\n top: 0; * /\n width: 100%;\n z-index: 1000;\n}\n\n.navbar {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 1rem 0;\n}\n\n.logo {\n font-size: 1.5rem;\n font-weight: bold;\n color: var(--primary);\n}\n\n.nav-links {\n display: flex;\n gap: 2rem;\n}\n\n.nav-links a {\n text-decoration: none;\n color: var(--text);\n font-weight: 500;\n align-content: center;\n}\n.nav-links a.button {\n color: white;\n}\n*/\n\n\n/* Navigation */\n.topnav {\n border-bottom-left-radius: 2.5vh;\n border-bottom-right-radius: 2.5vh;\n display: flex;\n flex-wrap: wrap;\n flex: 1;\n flex-direction: row;\n font-weight: bold;\n font-size: 1vh;\n max-height: 15vh;\n height: 15vh;\n align-items: flex-start;\n}\n.topnav a, .topnav label, .topnav p, .topnav h1 {\n float: left;\n display: flex;\n text-align: center;\n text-decoration: none;\n width: 100%;\n max-height: 15vh;\n font-weight: normal;\n justify-content: center;\n}\n.topnav a:hover {\n background-color: var(--colour-page-background);\n}\n\n.topnav > .container {\n max-width: 50%;\n height: 100%;\n align-items: center;\n align-self: center;\n display: flex;\n}\n.topnav > .container.header-logo {\n min-width: 15vh;\n max-width: 15vh;\n}\n.topnav > .container.company-name {\n min-width: calc(100vw - 30vh);\n max-width: calc(100vw - 30vh);\n}\n.topnav select {\n padding: 1vh;\n margin: 1vh;\n border-radius: 1vh;\n border: 2px solid var(--border-colour);\n font-weight: bold;\n text-align: center;\n width: 25vw;\n}\n.topnav select .is_collapsed {\n width: 5vw;\n}\n.company-name {\n font-size: min(28px, calc(1vh * 7));\n}\n/*\n@media screen and (max-width: 450px) {\n .company-name {\n font-size: 18px; / * min(24px, calc(1vh * 7)); * /\n }\n}\n*/\n/* Page Filters */\n#formFilters {\n width: fit-content;\n margin-left: auto;\n margin-right: auto;\n \n}\n#formFilters * {\n font-size: 12px;\n}\n\n#formFilters .container {\n}\n#formFilters .container-input {\n max-width: fit-content;\n padding: 0 0.5vh;\n}\n#formFilters .container-input:has(.dirty) {\n background-color: var(--colour-accent);\n} \n\n#formFilters .container-input input {\n width: 10vh;\n max-width: 10vh;\n height: 20px;\n}\n/*\n#formFilters .container-input input {\n height: 1.7vh;\n}\n#formFilters .container-input select {\n height: 2vh;\n}\n*/\n\n#formFilters .container-input.filter.active_only {\n width: 8vh;\n}\n#formFilters .container-input.filter.active_only input {\n display: none;\n}\n#formFilters .container-input.filter.active_only svg.active_only {\n height: 25px;\n fill: var(--colour-text-background);\n background-color: var(--colour-accent);\n /* border: 1px solid var(--colour-accent);\n border-radius: 0.5vh; */\n width: 25px;\n}\n#formFilters .container-input.filter.active_only svg.active_only.is_checked {\n fill: var(--colour-accent);\n background-color: var(--colour-text-background);\n}\n#formFilters .container-input.filter.is_not_empty {\n width: 12vh;\n}\n\n/*\n#formFilters button {\n padding: 0.5vh 0.75vh;\n background-color: var(--colour-accent);\n color: var(--colour-primary);\n font-weight: bold;\n border-radius: 0.75vh;\n border: 2px solid var(--colour-primary);\n}\n\n#formFilters button.is_collapsed {\n display: block;\n opacity: 0;\n}\n*/\n\nform.filter button.save, form.filter button.button-cancel {\n margin-top: 0;\n margin-bottom: 0;\n}\nform.filter button.save, form.filter button.button-cancel {\n margin-top: 0;\n margin-bottom: 1px;\n}\n\n\n@media screen and (max-width: 400px) {\n #formFilters .container-input select {\n /* height: 3vh; */\n }\n .topnav h1 {\n font-size: 16px;\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#formFilters {\n padding: 0.5vh 1vw;\n margin-top: 1vh;\n}\n\ntable.table-main {\n overflow-x: auto;\n padding: 1vh 1vw;\n max-width: 88vw; /* min(calc(1vh * 80), calc(1vw * 90)); */\n width: min-content;\n align-items: normal;\n justify-content: normal;\n}\n\ntable.table-main * {\n padding: 0.25vh 0.5vh;\n}\n\ntable.table-main thead {\n max-height: 4vh;\n overflow-y: visible;\n background-color: var(--colour-text-background);\n}\n\ntable.table-main tbody {\n max-height: 60vh;\n overflow-y: auto;\n min-width: fit-content;\n max-width: fit-content;\n overflow-x: visible;\n}\ntable.table-main tbody.is_collapsed {\n display: block;\n}\ntable.table-main:has(tbody > div) tbody {\n}\ntable.table-main tbody > div {\n margin-left: auto;\n margin-right: auto;\n text-align: center;\n justify-content: center;\n justify-items: center;\n justify-self: center;\n align-content: center;\n align-items: center;\n align-self: center;\n position: relative;\n display: block;\n width: 100%; /* min(calc(90vh), calc(70vw)); */\n}\n\ntable.table-main select, \ntable.table-main input:not([type=\"checkbox\"]), \ntable.table-main textarea, \ntable.table-main div {\n box-sizing: border-box;\n width: 100%;\n max-width: 100%;\n height: 100%;\n border: 1px solid var(--colour-accent);\n border-radius: 0.5vh;\n text-align: center;\n background-color: var(--colour-text-background);\n}\n\ntable.table-main thead tr th, \ntable.table-main tbody tr td {\n max-width: 20vh;\n min-width: 20vh;\n padding: 0 0.5vh;\n}\ntable.table-main tbody tr td {\n height: 5vh;\n /* padding-top: 0.5vh; */\n}\ntable.table-main thead tr th.notes, \ntable.table-main tbody tr td.notes {\n max-width: fit-content;\n}\ntable.table-main tbody tr td:has(.dirty) {\n background-color: var(--colour-primary);\n}\ntable.table-main tbody tr td:has(.dirty) table {\n background-color: var(--colour-text-background);\n}\ntable.table-main tbody tr:not(:last-of-type) td {\n padding-bottom: 0.25vh;\n}\ntable.table-main tbody tr td.ddl-preview div {\n cursor: pointer;\n}\ntable.table-main tbody tr td.ddl-preview div,\ntable.table-main tbody tr td.ddl-preview select {\n padding-left: 2vh;\n padding-right: 2vh;\n}\ntable.table-main tbody tr td.ddl-preview select {\n font-size: 12px;\n}\ntable.table-main thead tr th.active, \ntable.table-main tbody tr td.active {\n max-width: 6vh;\n min-width: 6vh;\n}\ntable.table-main thead tr th.active svg.active.add {\n fill: var(--colour-primary);\n background-color: var(--colour-accent);\n border: 2px solid var(--colour-accent);\n padding: 0;\n border-radius: 1vh;\n}\ntable.table-main tbody tr td.active svg.active.add {\n fill: var(--colour-primary);\n}\ntable.table-main tbody tr td.active svg.active.delete {\n fill: var(--colour-error);\n}\ntable.table-main tbody tr td.display_order, \ntable.table-main thead tr th.display_order {\n max-width: 5vh;\n min-width: 5vh;\n}\n\n#container-template-elements {\n display: none;\n}\n\n\n@media screen and (max-width: 850px) {\n}\n@media screen and (max-width: 400px) {\n #formFilters input[type=\"text\"],\n #formFilters select {\n width: 15vh;\n /* height: 3vh; */\n }\n table.table-main {\n max-height: 60vh;\n }\n table.table-main tbody {\n max-height: 53vh;\n }\n}",".text-center {\n text-align: center;\n}\n\n.section-title {\n font-size: 2rem;\n margin-bottom: 1rem;\n}\n\n.section-subtitle {\n margin-bottom: 2rem;\n}\n\n@media (max-width: 768px) {\n .hero h1 {\n font-size: 2.5rem;\n }\n \n .nav-links {\n display: none;\n }\n}","/* Default */\n:root {\n /* Claude dark blue / grey theme */\n --colour-accent: #C77DFF;\n --colour-error: red;\n --colour-page-background: #E0AAFF;\n --colour-page-background-1: #F5ECFE;\n --colour-page-background-2: #FAE0E2;\n --colour-primary: #240046;\n --colour-secondary: #3C096C;\n --colour-text: #10002B;\n --colour-text-background: white;\n --colour-text-link-unvisited: #0000EE;\n --colour-text-link-visited: #551A8B;\n}\n\n/*\n--c_purple_darker: #310055;\n--c_purple_dark: #4A0A77;\n--c_purple: #6818A5;\n--c_purple_light: #CBAFFE;\n--c_purple_lighter: #F5ECFE;\n\n--c_blue: #0044FF;\n--c_blue_pastel: #B8E0FF;\n--c_blue_light: #73E8FF;\n--c_blue_dark: #003ADB;\n/* --c_red: * /\n--c-red: #FF0000;\n--c_red_pastel: #FAE0E2;\n--c_red_lighter: #FAE0E2;\n}\n*/"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"css/main.bundle.css","mappings":";AACA;IACI,kDAAkD;IAClD,6BAA6B;IAC7B;;;;;;KAMC;IACD;;;KAGC;IACD;;;;;;;;;;;KAWC;IACD;;;;KAIC;AACL;;AAEA;IACI,aAAa;IACb,sBAAsB;AAC1B;;AAEA;IACI,+CAA+C;IAC/C,yBAAyB;IACzB,oCAAoC;IACpC,kBAAkB;IAClB,UAAU;IACV,SAAS;IACT,SAAS;IACT,8GAA8G,EAAE,qBAAqB;IACrI,aAAa;IACb;uBACmB;AACvB;;AAEA;IACI,SAAS;AACb;;AAEA;IACI,wBAAwB;AAC5B;;AAEA;;;;;;;;;;;;;;;;;;CAkBC;;AAED;IACI,aAAa;IACb,eAAe;IACf,mBAAmB;IACnB,uBAAuB;IACvB,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,mCAAmC;AACvC;AACA;IACI,kBAAkB;IAClB,kBAAkB;IAClB,qBAAqB;AACzB;AACA;IACI,mBAAmB;IACnB,kBAAkB;AACtB;;AAEA,iBAAiB;AACjB;IACI,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,kBAAkB;AACtB;;AAEA,gBAAgB;AAChB;IACI,eAAe;IACf,eAAe;IACf,gBAAgB;AACpB;;AAEA,mCAAmC;AACnC;IACI,+CAA+C;IAC/C,kBAAkB;IAClB,WAAW;IACX,aAAa;IACb,eAAe;IACf,mBAAmB;IACnB,uBAAuB;IACvB,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,mBAAmB;IACnB,eAAe;AACnB;;AAEA;IACI,oBAAoB;IACpB,4BAA4B;IAC5B,6BAA6B;AACjC;;AAEA;IACI,OAAO;IACP,WAAW;IACX,uBAAuB;IACvB,2BAA2B;IAC3B,sBAAsB;IACtB,qBAAqB;IACrB,4BAA4B;AAChC;;AAEA;IACI,aAAa;IACb,sBAAsB;IACtB,mBAAmB;IACnB,cAAc;AAClB;;AAEA;IACI,aAAa;IACb,mBAAmB;IACnB,WAAW;IACX,eAAe;AACnB;;AAEA;IACI,gBAAgB;AACpB;;;AAGA;;;;;;;;;;;;;;;;CAgBC;;AAED;IACI,YAAY;IACZ,aAAa;IACb,eAAe;IACf,mBAAmB;IACnB,uBAAuB;IACvB,kBAAkB;AACtB;;AAEA;IACI,WAAW;IACX,kBAAkB;IAClB,aAAa;AACjB;;AAEA;;IAEI,sCAAsC;IACtC,YAAY;AAChB;;AAEA;IACI,WAAW;AACf;;;AAGA;IACI,cAAc;IACd,qBAAqB;IACrB,kBAAkB;IAClB,YAAY;AAChB;AACA;IACI,gBAAgB;IAChB,eAAe;AACnB;;;AAGA;IACI,sCAAsC;AAC1C;AACA;IACI,mCAAmC;AACvC;;;AAGA;IACI,mCAAmC;AACvC;;;;AAIA;IACI;QACI,kBAAkB;IACtB;IACA;;;;SAIK;AACT,C;ACtPA;IACI,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,qBAAqB;IACrB,iBAAiB;IACjB,yBAAyB;IACzB,kBAAkB;AACtB;AACA;IACI,eAAe;AACnB;AACA;IACI,cAAc;IACd,UAAU;AACd;;AAEA;IACI,gCAAgC;IAChC,4BAA4B;IAC5B,uCAAuC;AAC3C;;AAEA;IACI,mCAAmC;AACvC;;AAEA;IACI,iBAAiB;IACjB,4BAA4B;AAChC;;AAEA;IACI,gCAAgC;AACpC;;AAEA;IACI,eAAe;AACnB;;;AAGA;;IAEI,WAAW;AACf,C;;;;;AC1CA;IACI,sCAAsC;AAC1C,C;;ACHA;IACI,kBAAkB;AACtB;;;ACFA;IACI,mCAAmC;AACvC;;AAEA;IACI,mCAAmC;AACvC;;AAEA;IACI,mCAAmC;IACnC,eAAe;AACnB;;AAEA;IACI,eAAe;IACf,WAAW;IACX,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,WAAW;AACf;;;;;;ACvBA,kBAAkB;AAClB;IACI;;KAEC;IACD,eAAe;IACf,YAAY;IACZ,iBAAiB;IACjB,yCAAyC;IACzC,sBAAsB;IACtB,kBAAkB;IAClB,iBAAiB;IACjB,YAAY;AAChB;AACA;IACI,aAAa;AACjB;;AAEA,2BAA2B;AAC3B;IACI,eAAe;IACf,kBAAkB;IAClB,QAAQ;IACR,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,gBAAgB;IAChB,WAAW;AACf;AACA;IACI,eAAe;IACf,eAAe;IACf,cAAc;IACd,cAAc;AAClB;AACA;;;;;CAKC;AACD;IACI,SAAS;IACT,aAAa;IACb,kBAAkB;IAClB,gBAAgB;IAChB,gBAAgB;AACpB;AACA;IACI,sCAAsC;IACtC,kBAAkB;AACtB;AACA;IACI,4BAA4B;IAC5B,6BAA6B;AACjC;AACA;IACI,+BAA+B;IAC/B,gCAAgC;AACpC;;AAEA;IACI,aAAa;IACb,eAAe;IACf,mBAAmB;IACnB,uBAAuB;IACvB,kBAAkB;IAClB,WAAW;IACX,+BAA+B;IAC/B,iBAAiB;IACjB,eAAe;IACf,kBAAkB;AACtB;AACA;IACI,oCAAoC;IACpC,uCAAuC;AAC3C;AACA;IACI,WAAW;IACX;;;KAGC;AACL;AACA;IACI,kBAAkB;IAClB,qBAAqB;AACzB;;AAEA;IACI;QACI,eAAe;QACf,eAAe;QACf,gBAAgB;QAChB,gBAAgB;IACpB;IACA;QACI,eAAe;QACf,eAAe;QACf,cAAc;QACd,cAAc;IAClB;IACA;QACI,SAAS;QACT,YAAY;QACZ,kBAAkB;IACtB;AACJ;;AAEA,oBAAoB;AACpB;IACI,kBAAkB;IAClB,UAAU;IACV,WAAW;IACX,YAAY;AAChB;;AAEA;IACI,iBAAiB;IACjB,kBAAkB;AACtB;;AAEA;IACI,mBAAmB;AACvB;AACA;IACI,kBAAkB;AACtB;;;;;AChIA;IACI,sBAAsB;AAC1B;;AAEA;IACI,2BAA2B;IAC3B,8BAA8B;AAClC;;AAEA;IACI,6BAA6B;AACjC;AACA;IACI,mCAAmC;AACvC;;AAEA;IACI,sBAAsB;AAC1B;AACA;IACI,8CAA8C;AAClD;AACA;IACI,uBAAuB;AAC3B;AACA;IACI,8BAA8B;AAClC;AACA;IACI,uCAAuC;AAC3C;AACA;IACI,6BAA6B;AACjC;;AAEA;IACI,eAAe;IACf,wBAAwB;IACxB,qBAAqB;IACrB,kCAAkC;IAClC,6BAA6B;AACjC;;AAEA;IACI,cAAc;IACd,kBAAkB;AACtB;;AAEA;IACI,+CAA+C;AACnD;;AAEA;IACI,qCAAqC;AACzC;;AAEA;IACI,qBAAqB;AACzB,C;;;ACzDA,eAAe;AACf;IACI,gCAAgC;IAChC,iCAAiC;IACjC,aAAa;IACb,eAAe;IACf,OAAO;IACP,mBAAmB;IACnB,iBAAiB;IACjB,cAAc;IACd,gBAAgB;IAChB,YAAY;IACZ,uBAAuB;AAC3B;AACA;IACI,WAAW;IACX,aAAa;IACb,kBAAkB;IAClB,qBAAqB;IACrB,WAAW;IACX,gBAAgB;IAChB,mBAAmB;IACnB,uBAAuB;AAC3B;AACA;IACI,+CAA+C;AACnD;;AAEA;IACI,cAAc;IACd,YAAY;IACZ,mBAAmB;IACnB,kBAAkB;IAClB,aAAa;AACjB;AACA;IACI,eAAe;IACf,eAAe;AACnB;AACA;IACI,6BAA6B;IAC7B,6BAA6B;AACjC;AACA;IACI,YAAY;IACZ,WAAW;IACX,kBAAkB;IAClB,sCAAsC;IACtC,iBAAiB;IACjB,kBAAkB;IAClB,WAAW;AACf;AACA;IACI,UAAU;AACd;AACA;IACI,mCAAmC;AACvC;AACA;;;;;;CAMC;AACD,iBAAiB;AACjB;IACI,kBAAkB;IAClB,iBAAiB;IACjB,kBAAkB;;AAEtB;AACA;IACI,eAAe;AACnB;;AAEA;AACA;AACA;IACI,sBAAsB;IACtB,gBAAgB;AACpB;AACA;IACI,sCAAsC;AAC1C;;AAEA;IACI,WAAW;IACX,eAAe;IACf,YAAY;AAChB;AACA;;;;;;;CAOC;;AAED;IACI,UAAU;AACd;AACA;IACI,aAAa;AACjB;AACA;IACI,YAAY;IACZ,mCAAmC;IACnC,sCAAsC;IACtC;2BACuB;IACvB,WAAW;AACf;AACA;IACI,0BAA0B;IAC1B,+CAA+C;AACnD;AACA;IACI,WAAW;AACf;;AAEA;;;;;;;;;;;;;;CAcC;;AAED;IACI,aAAa;IACb,gBAAgB;AACpB;AACA;IACI,aAAa;IACb,kBAAkB;AACtB;;;AAGA;IACI;QACI,iBAAiB;IACrB;IACA;QACI,eAAe;IACnB;AACJ,C;AC7JA,gBAAgB,C;;ACChB;IACI,kBAAkB;IAClB,eAAe;AACnB;;AAEA;IACI,gBAAgB;IAChB,gBAAgB;IAChB,eAAe,EAAE,yCAAyC;IAC1D,kBAAkB;IAClB,mBAAmB;IACnB,uBAAuB;AAC3B;;AAEA;IACI,qBAAqB;AACzB;;AAEA;IACI,eAAe;IACf,mBAAmB;IACnB,+CAA+C;AACnD;;AAEA;IACI,gBAAgB;IAChB,gBAAgB;IAChB,sBAAsB;IACtB,sBAAsB;IACtB,mBAAmB;AACvB;AACA;IACI,cAAc;AAClB;AACA;AACA;AACA;IACI,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,uBAAuB;IACvB,qBAAqB;IACrB,oBAAoB;IACpB,qBAAqB;IACrB,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;IAClB,cAAc;IACd,WAAW,EAAE,iCAAiC;AAClD;;AAEA;;;;IAII,sBAAsB;IACtB,WAAW;IACX,eAAe;IACf,YAAY;IACZ,sCAAsC;IACtC,oBAAoB;IACpB,kBAAkB;IAClB,+CAA+C;AACnD;;AAEA;;IAEI,eAAe;IACf,eAAe;IACf,gBAAgB;AACpB;AACA;IACI,WAAW;IACX,wBAAwB;AAC5B;AACA;;IAEI,sBAAsB;AAC1B;AACA;IACI,uCAAuC;AAC3C;AACA;IACI,+CAA+C;AACnD;AACA;IACI,sBAAsB;AAC1B;AACA;IACI,eAAe;AACnB;AACA;;IAEI,iBAAiB;IACjB,kBAAkB;AACtB;AACA;IACI,eAAe;AACnB;AACA;;IAEI,cAAc;IACd,cAAc;AAClB;AACA;IACI,2BAA2B;IAC3B,sCAAsC;IACtC,sCAAsC;IACtC,UAAU;IACV,kBAAkB;AACtB;AACA;IACI,2BAA2B;AAC/B;AACA;IACI,yBAAyB;AAC7B;AACA;;IAEI,cAAc;IACd,cAAc;AAClB;;AAEA;IACI,aAAa;AACjB;;;AAGA;AACA;AACA;IACI;;QAEI,WAAW;QACX,iBAAiB;IACrB;IACA;QACI,gBAAgB;IACpB;IACA;QACI,gBAAgB;IACpB;AACJ,C;;;AC/IA;IACI,kBAAkB;AACtB;;AAEA;IACI,eAAe;IACf,mBAAmB;AACvB;;AAEA;IACI,mBAAmB;AACvB;;AAEA;IACI;QACI,iBAAiB;IACrB;;IAEA;QACI,aAAa;IACjB;AACJ,C;;ACrBA,YAAY;AACZ;IACI,kCAAkC;IAClC,wBAAwB;IACxB,mBAAmB;IACnB,iCAAiC;IACjC,mCAAmC;IACnC,mCAAmC;IACnC,yBAAyB;IACzB,2BAA2B;IAC3B,sBAAsB;IACtB,+BAA+B;IAC/B,qCAAqC;IACrC,mCAAmC;AACvC;;AAEA;;;;;;;;;;;;;;;;CAgBC,C","sources":["webpack://app/./static/css/main.css","webpack://app/./static/css/components/button.css","webpack://app/./static/css/components/form.css","webpack://app/./static/css/components/image.css","webpack://app/./static/css/components/label.css","webpack://app/./static/css/components/overlay.css","webpack://app/./static/css/components/table.css","webpack://app/./static/css/layouts/header.css","webpack://app/./static/css/layouts/footer.css","webpack://app/./static/css/layouts/table-main.css","webpack://app/./static/css/lib/utils.css","webpack://app/./static/css/themes/light.css"],"sourcesContent":["\n:root {\n --font-family-base: 'Open Sans', Arial, sans-serif;\n /* Declare global variables */\n /*\n --c_purple: #5B29FF;\n --c_purple_pastel: #D1D1FF;\n --c_purple_lighter: #E8E1FF;\n --c_purple_light: #C6BDFF;\n --c_purple_dark: #4700B3;\n */\n /* purple theme\n - light https://coolors.co/palette/a172fd-a77afe-ac82fe-b691fe-c1a0fe-cbaffe-d6bffe-e0cefe-ebddfe-f5ecfe\n - dark https://coolors.co/palette/310055-3c0663-4a0a77-5a108f-6818a5-8b2fc9-ab51e3-bd68ee-d283ff-dc97ff\n */\n /*\n --c_purple_darker: #310055;\n --c_purple_dark: #4A0A77;\n --c_purple: #6818A5;\n --c_purple_light: #CBAFFE;\n --c_purple_lighter: #F5ECFE;\n\n --c_blue: #0044FF;\n --c_blue_pastel: #B8E0FF;\n --c_blue_light: #73E8FF;\n --c_blue_dark: #003ADB;\n */\n /* --c_red: * /\n --c-red: #FF0000;\n --c_red_pastel: #FAE0E2;\n --c_red_lighter: #FAE0E2;\n */\n}\n\nhtml {\n height: 100vh;\n /* overflow-y: clip; */\n}\n\nbody {\n background-color: var(--colour-page-background);\n color: var(--colour-text);\n font-family: var(--font-family-base);\n font-family: Arial;\n padding: 0;\n margin: 0;\n border: 0;\n background: linear-gradient(to bottom right, var(--colour-page-background-1), var(--colour-page-background-2)); /* var(--c_purple); */\n height: 100vh;\n /* max-height: 100vh;\n overflow-y: clip; */\n}\n\n* {\n margin: 0;\n}\n\nscript, link {\n display: none !important;\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.page-body > * {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n text-align: center;\n width: 100%;\n align-self: center;\n font-size: min(16px, calc(1vh * 4));\n}\n#pageBody > * > * {\n align-self: center;\n padding-top: 0.5vh;\n padding-bottom: 0.5vh;\n}\n#pageBody > .card {\n height: fit-content;\n margin: 0.5vh auto;\n}\n\n/* header image */\nimg.header-logo {\n max-height: 15vh;\n max-width: 15vh;\n cursor: pointer;\n border-radius: 3vh;\n}\n\n/* icon images */\n.img-icon {\n max-width: 16vh;\n max-height: 8vh;\n border-radius: 0;\n}\n\n/* Add a card effect for articles */\n.card {\n background-color: var(--colour-text-background);\n padding: 1vh 2.5vw;\n margin: 1vh;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n text-align: center;\n border-radius: 1.5vh;\n position: relative;\n height: fit-content;\n max-width: 80vw;\n}\n\n.header.card {\n border-radius: 2.5vh;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.container {\n flex: 1;\n margin: 0px;\n align-items: flex-start;\n justify-content: flex-start;\n text-align: flex-start;\n /* max-width: 100%; */\n /* min-width: fit-content; */\n}\n\n.column {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin: auto 0;\n}\n\n.row {\n display: flex; \n flex-direction: row;\n width: 100%;\n flex-wrap: wrap;\n}\n\n.container > .card:first-of-type {\n margin-top: none;\n}\n\n\n/*\n/* Responsive layout - when the screen is less than 800px wide, make the two columns stack on top of each other instead of next to each other *\n@media screen and (max-width: 800px) {\n .leftcolumn, .rightcolumn { \n width: 100%;\n /* padding: 0; *\n }\n}\n\n/* Responsive layout - when the screen is less than 400px wide, make the navigation links stack on top of each other instead of next to each other *\n@media screen and (max-width: 400px) {\n .topnav a {\n float: none;\n width: 100%;\n }\n}\n*/\n\n.container-input {\n padding: 1vh;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n text-align: center;\n}\n\n.container-input > label {\n width: 100%;\n margin-bottom: 1vh;\n margin-top: 0;\n}\n\n.container-input > input,\n.container-input > textarea {\n border: 2px solid var(--colour-accent);\n padding: 1vh;\n}\n\n.label-title {\n width: 100%;\n}\n\n\nul {\n max-width: 90%;\n padding: 5px 0 10px 0;\n width: fit-content;\n margin: auto;\n}\nli {\n text-align: left;\n font-size: 18px;\n}\n\n\n:not(input,textarea,select,button).dirty {\n background-color: var(--colour-accent);\n}\ninput.dirty, textarea.dirty, select.dirty {\n border-color: var(--colour-primary);\n}\n\n\n#pageBody > *, button {\n font-size: min(12px, calc(1vh * 3));\n}\n\n\n\n@media screen and (max-width: 400px) {\n img.header-logo {\n border-radius: 3vh;\n }\n /*\n .company-name {\n font-size: 14px;\n }\n */\n}",".button {\n display: inline-block;\n padding: 0.5vh 0.75vh;\n border-radius: 0.75vh;\n text-decoration: none;\n font-weight: bold;\n transition: all 0.3s ease;\n width: fit-content;\n}\n.button:not(.is_collapsed) {\n cursor: pointer;\n}\n.button.is_collapsed {\n display: block;\n opacity: 0;\n}\n\n.button-primary {\n background: var(--colour-accent);\n color: var(--colour-primary);\n border: 2px solid var(--colour-primary);\n}\n\n.button-primary:hover {\n background: var(--colour-secondary);\n}\n\n.button-light {\n background: white;\n color: var(--colour-primary);\n}\n\n.button-light:hover {\n background: var(--colour-accent);\n}\n\n.logo:hover{\n cursor: pointer;\n}\n\n\n.button.icon.active.delete, \n.button.icon.active.add {\n height: 2vh;\n}","\n\nselect {\n border: 1px solid var(--colour-accent);\n}","\nimg, video {\n border-radius: 3vh;\n}\n","\nh1 {\n font-size: min(24px, calc(1vh * 6));\n}\n\nh2 {\n font-size: min(20px, calc(1vh * 5));\n}\n\nh3 {\n font-size: min(16px, calc(1vh * 4));\n margin-top: 1vh;\n}\n\nh4 {\n font-size: 13px;\n margin: 1vh;\n text-align: center;\n margin-left: auto;\n margin-right: auto;\n}\n\nh5 {\n font-size: 11px;\n margin: 1vh;\n}\n","\n\n/* Overlay modal */\n.overlay {\n /*\n display: none;\n */\n position: fixed;\n width: 100px;\n /* height: 50%; */ \n background: var(--colour-page-background);\n justify-content: right;\n align-items: right;\n align-self: right;\n z-index: 999;\n}\n.is_collapsed {\n display: none;\n}\n\n/* Hamburger menu overlay */\n#buttonHamburger {\n cursor: pointer;\n position: absolute;\n right: 0;\n min-height: 4vh;\n max-height: 4vh;\n min-width: 4.5vh;\n max-width: 4.5vh;\n z-index: 10;\n}\n#buttonHamburger .icon.hamburger {\n min-height: 3vh;\n max-height: 3vh;\n min-width: 3vh;\n max-width: 3vh;\n}\n/*\n#buttonHamburger:hover {\n text-decoration: none;\n cursor: pointer;\n}\n*/\n#overlayHamburger {\n top: 20vh;\n right: 0.75vh;\n overflow-x: hidden;\n overflow-y: auto;\n max-height: 60vh;\n}\n#overlayHamburger {\n border: 2px solid var(--border-colour);\n border-radius: 4px;\n}\n#overlayHamburger:first-child {\n border-top-left-radius: 12px;\n border-top-right-radius: 12px;\n}\n#overlayHamburger:last-child {\n border-bottom-left-radius: 12px;\n border-bottom-right-radius: 12px;\n}\n\n#overlayHamburger > * {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n text-align: center;\n width: 100%;\n /* color: var(--colour-text); */\n font-weight: bold;\n font-size: 15px;\n /* height: 18px; */\n}\n#overlayHamburger > :hover {\n color: var(--colour-page-background);\n background-color: var(--colour-primary);\n}\n#overlayHamburger > * > * {\n width: 100%;\n /*\n margin-top: 4.5px;\n margin-bottom: 4.5px;\n */\n}\n#overlayHamburger > .container {\n padding-top: 4.5px;\n padding-bottom: 4.5px;\n}\n\n@media screen and (max-width: 400px) {\n #buttonHamburger {\n min-height: 6vh;\n max-height: 6vh;\n min-width: 6.5vh;\n max-width: 6.5vh;\n }\n #buttonHamburger .icon.hamburger {\n min-height: 5vh;\n max-height: 5vh;\n min-width: 5vh;\n max-width: 5vh;\n }\n #overlayHamburger {\n top: 22vh;\n width: 100px;\n /* right: 6.5vh; */\n }\n}\n\n/* Confirm overlay */\n#overlayConfirm {\n position: absolute;\n left: 25vw;\n width: 50vw;\n height: 50vh;\n}\n\n#overlayConfirm .row > * {\n margin-left: auto;\n margin-right: auto;\n}\n\n#overlayConfirm .row .button.button-cancel {\n margin-right: 0.5vh;\n}\n#overlayConfirm .row .button.submit {\n margin-left: 0.5vh;\n}\n\n\n","\n#formFilters .container {\n max-width: fit-content;\n}\n\nthead, tbody {\n padding-top: 0px !important;\n padding-bottom: 0px !important;\n}\n\nth {\n background-color: transparent;\n}\ntd {\n font-size: min(12px, calc(1vh * 3));\n}\n\nth, td {\n min-width: fit-content;\n}\ntr:not(:last-child) > td {\n border-bottom: 1px dashed var(--border-colour);\n}\ntd > table > tbody > tr > td {\n border: none !important;\n}\nth.is_collapsed, td.is_collapsed {\n display: table-cell !important;\n}\ntd.dirty {\n background-color: var(--colour-primary);\n}\ntd:not(.dirty) {\n background-color: transparent;\n}\n\ntr {\n min-height: 1px;\n border-bottom: 1px solid;\n border-top: 1px solid;\n border-color: var(--border-colour);\n background-color: transparent;\n}\n\ntable button {\n margin: 0.25vh;\n padding: 0.5vh 1vh;\n}\n\ntable button.active {\n background-color: var(--colour-page-background);\n}\n\ntr.delete, tr.delete > td {\n background-color: var(--colour-error);\n}\n\ntable div {\n align-content: center;\n}","\n\n/* Navigation */\n.topnav {\n border-bottom-left-radius: 2.5vh;\n border-bottom-right-radius: 2.5vh;\n display: flex;\n flex-wrap: wrap;\n flex: 1;\n flex-direction: row;\n font-weight: bold;\n font-size: 1vh;\n max-height: 15vh;\n height: 15vh;\n align-items: flex-start;\n}\n.topnav a, .topnav label, .topnav p, .topnav h1 {\n float: left;\n display: flex;\n text-align: center;\n text-decoration: none;\n width: 100%;\n max-height: 15vh;\n font-weight: normal;\n justify-content: center;\n}\n.topnav a:hover {\n background-color: var(--colour-page-background);\n}\n\n.topnav > .container {\n max-width: 50%;\n height: 100%;\n align-items: center;\n align-self: center;\n display: flex;\n}\n.topnav > .container.header-logo {\n min-width: 15vh;\n max-width: 15vh;\n}\n.topnav > .container.company-name {\n min-width: calc(100vw - 30vh);\n max-width: calc(100vw - 30vh);\n}\n.topnav select {\n padding: 1vh;\n margin: 1vh;\n border-radius: 1vh;\n border: 2px solid var(--border-colour);\n font-weight: bold;\n text-align: center;\n width: 25vw;\n}\n.topnav select .is_collapsed {\n width: 5vw;\n}\n.company-name {\n font-size: min(28px, calc(1vh * 7));\n}\n/*\n@media screen and (max-width: 450px) {\n .company-name {\n font-size: 18px; / * min(24px, calc(1vh * 7)); * /\n }\n}\n*/\n/* Page Filters */\n#formFilters {\n width: fit-content;\n margin-left: auto;\n margin-right: auto;\n \n}\n#formFilters * {\n font-size: 12px;\n}\n\n#formFilters .container {\n}\n#formFilters .container-input {\n max-width: fit-content;\n padding: 0 0.5vh;\n}\n#formFilters .container-input:has(.dirty) {\n background-color: var(--colour-accent);\n} \n\n#formFilters .container-input input {\n width: 10vh;\n max-width: 10vh;\n height: 20px;\n}\n/*\n#formFilters .container-input input {\n height: 1.7vh;\n}\n#formFilters .container-input select {\n height: 2vh;\n}\n*/\n\n#formFilters .container-input.filter.active_only {\n width: 8vh;\n}\n#formFilters .container-input.filter.active_only input {\n display: none;\n}\n#formFilters .container-input.filter.active_only svg.active_only {\n height: 25px;\n fill: var(--colour-text-background);\n background-color: var(--colour-accent);\n /* border: 1px solid var(--colour-accent);\n border-radius: 0.5vh; */\n width: 25px;\n}\n#formFilters .container-input.filter.active_only svg.active_only.is_checked {\n fill: var(--colour-accent);\n background-color: var(--colour-text-background);\n}\n#formFilters .container-input.filter.is_not_empty {\n width: 12vh;\n}\n\n/*\n#formFilters button {\n padding: 0.5vh 0.75vh;\n background-color: var(--colour-accent);\n color: var(--colour-primary);\n font-weight: bold;\n border-radius: 0.75vh;\n border: 2px solid var(--colour-primary);\n}\n\n#formFilters button.is_collapsed {\n display: block;\n opacity: 0;\n}\n*/\n\nform.filter button.save, form.filter button.button-cancel {\n margin-top: 0;\n margin-bottom: 0;\n}\nform.filter button.save, form.filter button.button-cancel {\n margin-top: 0;\n margin-bottom: 1px;\n}\n\n\n@media screen and (max-width: 400px) {\n #formFilters .container-input select {\n /* height: 3vh; */\n }\n .topnav h1 {\n font-size: 16px;\n }\n}","/* In sections */","\n#formFilters {\n padding: 0.5vh 1vw;\n margin-top: 1vh;\n}\n\ntable.table-main {\n overflow-x: auto;\n padding: 1vh 1vw;\n max-width: 88vw; /* min(calc(1vh * 80), calc(1vw * 90)); */\n width: min-content;\n align-items: normal;\n justify-content: normal;\n}\n\ntable.table-main * {\n padding: 0.25vh 0.5vh;\n}\n\ntable.table-main thead {\n max-height: 4vh;\n overflow-y: visible;\n background-color: var(--colour-text-background);\n}\n\ntable.table-main tbody {\n max-height: 60vh;\n overflow-y: auto;\n min-width: fit-content;\n max-width: fit-content;\n overflow-x: visible;\n}\ntable.table-main tbody.is_collapsed {\n display: block;\n}\ntable.table-main:has(tbody > div) tbody {\n}\ntable.table-main tbody > div {\n margin-left: auto;\n margin-right: auto;\n text-align: center;\n justify-content: center;\n justify-items: center;\n justify-self: center;\n align-content: center;\n align-items: center;\n align-self: center;\n position: relative;\n display: block;\n width: 100%; /* min(calc(90vh), calc(70vw)); */\n}\n\ntable.table-main select, \ntable.table-main input:not([type=\"checkbox\"]), \ntable.table-main textarea, \ntable.table-main div {\n box-sizing: border-box;\n width: 100%;\n max-width: 100%;\n height: 100%;\n border: 1px solid var(--colour-accent);\n border-radius: 0.5vh;\n text-align: center;\n background-color: var(--colour-text-background);\n}\n\ntable.table-main thead tr th, \ntable.table-main tbody tr td {\n max-width: 20vh;\n min-width: 20vh;\n padding: 0 0.5vh;\n}\ntable.table-main tbody tr td {\n height: 5vh;\n /* padding-top: 0.5vh; */\n}\ntable.table-main thead tr th.notes, \ntable.table-main tbody tr td.notes {\n max-width: fit-content;\n}\ntable.table-main tbody tr td:has(.dirty) {\n background-color: var(--colour-primary);\n}\ntable.table-main tbody tr td:has(.dirty) table tr:not(:has(.dirty)) {\n background-color: var(--colour-text-background);\n}\ntable.table-main tbody tr:not(:last-of-type) td {\n padding-bottom: 0.25vh;\n}\ntable.table-main tbody tr td.ddl-preview div {\n cursor: pointer;\n}\ntable.table-main tbody tr td.ddl-preview div,\ntable.table-main tbody tr td.ddl-preview select {\n padding-left: 2vh;\n padding-right: 2vh;\n}\ntable.table-main tbody tr td.ddl-preview select {\n font-size: 12px;\n}\ntable.table-main thead tr th.active, \ntable.table-main tbody tr td.active {\n max-width: 6vh;\n min-width: 6vh;\n}\ntable.table-main thead tr th.active svg.active.add {\n fill: var(--colour-primary);\n background-color: var(--colour-accent);\n border: 2px solid var(--colour-accent);\n padding: 0;\n border-radius: 1vh;\n}\ntable.table-main tbody tr td.active svg.active.add {\n fill: var(--colour-primary);\n}\ntable.table-main tbody tr td.active svg.active.delete {\n fill: var(--colour-error);\n}\ntable.table-main tbody tr td.display_order, \ntable.table-main thead tr th.display_order {\n max-width: 5vh;\n min-width: 5vh;\n}\n\n#container-template-elements {\n display: none;\n}\n\n\n@media screen and (max-width: 850px) {\n}\n@media screen and (max-width: 400px) {\n #formFilters input[type=\"text\"],\n #formFilters select {\n width: 15vh;\n /* height: 3vh; */\n }\n table.table-main {\n max-height: 60vh;\n }\n table.table-main tbody {\n max-height: 53vh;\n }\n}",".text-center {\n text-align: center;\n}\n\n.section-title {\n font-size: 2rem;\n margin-bottom: 1rem;\n}\n\n.section-subtitle {\n margin-bottom: 2rem;\n}\n\n@media (max-width: 768px) {\n .hero h1 {\n font-size: 2.5rem;\n }\n \n .nav-links {\n display: none;\n }\n}","/* Default */\n:root {\n /* Claude dark blue / grey theme */\n --colour-accent: #C77DFF;\n --colour-error: red;\n --colour-page-background: #E0AAFF;\n --colour-page-background-1: #F5ECFE;\n --colour-page-background-2: #FAE0E2;\n --colour-primary: #240046;\n --colour-secondary: #3C096C;\n --colour-text: #10002B;\n --colour-text-background: white;\n --colour-text-link-unvisited: #0000EE;\n --colour-text-link-visited: #551A8B;\n}\n\n/*\n--c_purple_darker: #310055;\n--c_purple_dark: #4A0A77;\n--c_purple: #6818A5;\n--c_purple_light: #CBAFFE;\n--c_purple_lighter: #F5ECFE;\n\n--c_blue: #0044FF;\n--c_blue_pastel: #B8E0FF;\n--c_blue_light: #73E8FF;\n--c_blue_dark: #003ADB;\n/* --c_red: * /\n--c-red: #FF0000;\n--c_red_pastel: #FAE0E2;\n--c_red_lighter: #FAE0E2;\n}\n*/"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/js/core_admin_home.bundle.js b/static/dist/js/core_admin_home.bundle.js index 6e543b6..7640775 100644 --- a/static/dist/js/core_admin_home.bundle.js +++ b/static/dist/js/core_admin_home.bundle.js @@ -1,153 +1,17 @@ /******/ (() => { // webpackBootstrap /******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ 561: -/***/ (() => { - +// This entry needs to be wrapped in an IIFE because it needs to be isolated against other entry modules. +(() => { // extracted by mini-css-extract-plugin +})(); -/***/ }), - -/***/ 711: -/***/ (() => { - +// This entry needs to be wrapped in an IIFE because it needs to be isolated against other entry modules. +(() => { // extracted by mini-css-extract-plugin +})(); -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var [chunkIds, fn, priority] = deferred[i]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ 780: 0, -/******/ 466: 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var [chunkIds, moreModules, runtime] = data; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkapp"] = self["webpackChunkapp"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ __webpack_require__.O(undefined, [466], () => (__webpack_require__(711))) -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, [466], () => (__webpack_require__(561))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ /******/ })() ; //# sourceMappingURL=core_admin_home.bundle.js.map \ No newline at end of file diff --git a/static/dist/js/core_admin_home.bundle.js.map b/static/dist/js/core_admin_home.bundle.js.map index a2b18c2..6e8adf9 100644 --- a/static/dist/js/core_admin_home.bundle.js.map +++ b/static/dist/js/core_admin_home.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"js/core_admin_home.bundle.js","mappings":";;;;;;;AAAA;;;;;;;;ACAA;;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC3BA;;;;;WCAA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEjDA;UACA;UACA;UACA;UACA;UACA","sources":["webpack://app/./static/css/pages/core/admin_home.css?d0e3","webpack://app/./static/css/sections/core.css","webpack://app/webpack/bootstrap","webpack://app/webpack/runtime/chunk loaded","webpack://app/webpack/runtime/hasOwnProperty shorthand","webpack://app/webpack/runtime/jsonp chunk loading","webpack://app/webpack/before-startup","webpack://app/webpack/startup","webpack://app/webpack/after-startup"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t780: 0,\n\t466: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkapp\"] = self[\"webpackChunkapp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\n__webpack_require__.O(undefined, [466], () => (__webpack_require__(711)))\nvar __webpack_exports__ = __webpack_require__.O(undefined, [466], () => (__webpack_require__(561)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/core_admin_home.bundle.js","mappings":";;;;AAAA;;;;;;ACAA","sources":["webpack://app/./static/css/sections/core.css?6d04","webpack://app/./static/css/pages/core/admin_home.css?d0e3"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/js/core_contact.bundle.js b/static/dist/js/core_contact.bundle.js new file mode 100644 index 0000000..684a8aa --- /dev/null +++ b/static/dist/js/core_contact.bundle.js @@ -0,0 +1,17 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +// This entry needs to be wrapped in an IIFE because it needs to be isolated against other entry modules. +(() => { +// extracted by mini-css-extract-plugin + +})(); + +// This entry needs to be wrapped in an IIFE because it needs to be isolated against other entry modules. +(() => { +// extracted by mini-css-extract-plugin + +})(); + +/******/ })() +; +//# sourceMappingURL=core_contact.bundle.js.map \ No newline at end of file diff --git a/static/dist/js/core_contact.bundle.js.map b/static/dist/js/core_contact.bundle.js.map new file mode 100644 index 0000000..739c434 --- /dev/null +++ b/static/dist/js/core_contact.bundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js/core_contact.bundle.js","mappings":";;;;AAAA;;;;;;ACAA","sources":["webpack://app/./static/css/sections/core.css?6d04","webpack://app/./static/css/pages/core/contact.css?164a"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/dist/js/core_home.bundle.js b/static/dist/js/core_home.bundle.js index 53bb722..3e29b59 100644 --- a/static/dist/js/core_home.bundle.js +++ b/static/dist/js/core_home.bundle.js @@ -1,153 +1,17 @@ /******/ (() => { // webpackBootstrap /******/ "use strict"; -/******/ var __webpack_modules__ = ({ - -/***/ 805: -/***/ (() => { - +// This entry needs to be wrapped in an IIFE because it needs to be isolated against other entry modules. +(() => { // extracted by mini-css-extract-plugin +})(); -/***/ }), - -/***/ 711: -/***/ (() => { - +// This entry needs to be wrapped in an IIFE because it needs to be isolated against other entry modules. +(() => { // extracted by mini-css-extract-plugin +})(); -/***/ }) - -/******/ }); -/************************************************************************/ -/******/ // The module cache -/******/ var __webpack_module_cache__ = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ // Check if module is in cache -/******/ var cachedModule = __webpack_module_cache__[moduleId]; -/******/ if (cachedModule !== undefined) { -/******/ return cachedModule.exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = __webpack_module_cache__[moduleId] = { -/******/ // no module.id needed -/******/ // no module.loaded needed -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = __webpack_modules__; -/******/ -/************************************************************************/ -/******/ /* webpack/runtime/chunk loaded */ -/******/ (() => { -/******/ var deferred = []; -/******/ __webpack_require__.O = (result, chunkIds, fn, priority) => { -/******/ if(chunkIds) { -/******/ priority = priority || 0; -/******/ for(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1]; -/******/ deferred[i] = [chunkIds, fn, priority]; -/******/ return; -/******/ } -/******/ var notFulfilled = Infinity; -/******/ for (var i = 0; i < deferred.length; i++) { -/******/ var [chunkIds, fn, priority] = deferred[i]; -/******/ var fulfilled = true; -/******/ for (var j = 0; j < chunkIds.length; j++) { -/******/ if ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) { -/******/ chunkIds.splice(j--, 1); -/******/ } else { -/******/ fulfilled = false; -/******/ if(priority < notFulfilled) notFulfilled = priority; -/******/ } -/******/ } -/******/ if(fulfilled) { -/******/ deferred.splice(i--, 1) -/******/ var r = fn(); -/******/ if (r !== undefined) result = r; -/******/ } -/******/ } -/******/ return result; -/******/ }; -/******/ })(); -/******/ -/******/ /* webpack/runtime/hasOwnProperty shorthand */ -/******/ (() => { -/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) -/******/ })(); -/******/ -/******/ /* webpack/runtime/jsonp chunk loading */ -/******/ (() => { -/******/ // no baseURI -/******/ -/******/ // object to store loaded and loading chunks -/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched -/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded -/******/ var installedChunks = { -/******/ 664: 0, -/******/ 466: 0 -/******/ }; -/******/ -/******/ // no chunk on demand loading -/******/ -/******/ // no prefetching -/******/ -/******/ // no preloaded -/******/ -/******/ // no HMR -/******/ -/******/ // no HMR manifest -/******/ -/******/ __webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0); -/******/ -/******/ // install a JSONP callback for chunk loading -/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { -/******/ var [chunkIds, moreModules, runtime] = data; -/******/ // add "moreModules" to the modules object, -/******/ // then flag all "chunkIds" as loaded and fire callback -/******/ var moduleId, chunkId, i = 0; -/******/ if(chunkIds.some((id) => (installedChunks[id] !== 0))) { -/******/ for(moduleId in moreModules) { -/******/ if(__webpack_require__.o(moreModules, moduleId)) { -/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; -/******/ } -/******/ } -/******/ if(runtime) var result = runtime(__webpack_require__); -/******/ } -/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); -/******/ for(;i < chunkIds.length; i++) { -/******/ chunkId = chunkIds[i]; -/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { -/******/ installedChunks[chunkId][0](); -/******/ } -/******/ installedChunks[chunkId] = 0; -/******/ } -/******/ return __webpack_require__.O(result); -/******/ } -/******/ -/******/ var chunkLoadingGlobal = self["webpackChunkapp"] = self["webpackChunkapp"] || []; -/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); -/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); -/******/ })(); -/******/ -/************************************************************************/ -/******/ -/******/ // startup -/******/ // Load entry module and return exports -/******/ // This entry module depends on other loaded chunks and execution need to be delayed -/******/ __webpack_require__.O(undefined, [466], () => (__webpack_require__(711))) -/******/ var __webpack_exports__ = __webpack_require__.O(undefined, [466], () => (__webpack_require__(805))) -/******/ __webpack_exports__ = __webpack_require__.O(__webpack_exports__); -/******/ /******/ })() ; //# sourceMappingURL=core_home.bundle.js.map \ No newline at end of file diff --git a/static/dist/js/core_home.bundle.js.map b/static/dist/js/core_home.bundle.js.map index d5e2aee..1ba27fb 100644 --- a/static/dist/js/core_home.bundle.js.map +++ b/static/dist/js/core_home.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"js/core_home.bundle.js","mappings":";;;;;;;AAAA;;;;;;;;ACAA;;;;;;;UCAA;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;UAEA;UACA;;;;;WCzBA;WACA;WACA;WACA;WACA,+BAA+B,wCAAwC;WACvE;WACA;WACA;WACA;WACA,iBAAiB,qBAAqB;WACtC;WACA;WACA,kBAAkB,qBAAqB;WACvC;WACA;WACA,KAAK;WACL;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;;;;WC3BA;;;;;WCAA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;;WAEA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA;WACA,MAAM,qBAAqB;WAC3B;WACA;WACA;WACA;WACA;WACA;WACA;WACA;;WAEA;WACA;WACA;;;;;UEjDA;UACA;UACA;UACA;UACA;UACA","sources":["webpack://app/./static/css/pages/core/home.css?2b63","webpack://app/./static/css/sections/core.css","webpack://app/webpack/bootstrap","webpack://app/webpack/runtime/chunk loaded","webpack://app/webpack/runtime/hasOwnProperty shorthand","webpack://app/webpack/runtime/jsonp chunk loading","webpack://app/webpack/before-startup","webpack://app/webpack/startup","webpack://app/webpack/after-startup"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t664: 0,\n\t466: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkapp\"] = self[\"webpackChunkapp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\n__webpack_require__.O(undefined, [466], () => (__webpack_require__(711)))\nvar __webpack_exports__ = __webpack_require__.O(undefined, [466], () => (__webpack_require__(805)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"js/core_home.bundle.js","mappings":";;;;AAAA;;;;;;ACAA","sources":["webpack://app/./static/css/sections/core.css?6d04","webpack://app/./static/css/pages/core/home.css?2b63"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};"],"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 0683ac0..d0c7df0 100644 --- a/static/dist/js/main.bundle.js +++ b/static/dist/js/main.bundle.js @@ -996,6 +996,7 @@ var BasePage = /*#__PURE__*/function () { } }); this.hookupButtonsNavHome(); + this.hookupButtonsNavContact(); // this.hookupButtonsNavAdminHome(); this.hookupButtonsNavUserAccount(); this.hookupButtonsNavUserLogout(); @@ -1036,6 +1037,11 @@ var BasePage = /*#__PURE__*/function () { _this.router.navigateToHash(hashPageNav); }); } + }, { + key: "hookupButtonsNavContact", + value: function hookupButtonsNavContact() { + this.hookupButtonsNav('.' + flagNavContact, hashPageContact); + } /* hookupButtonsNavAdminHome() { this.hookupButtonsNav('.' + flagNavAdminHome, hashPageAdminHome); @@ -1241,6 +1247,3614 @@ var PageHome = /*#__PURE__*/function (_BasePage) { }(BasePage); home_defineProperty(PageHome, "hash", hashPageHome); +;// ./static/js/vendor/altcha.js +var _Qr$v, _window$__svelte; +function altcha_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ altcha_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == altcha_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(altcha_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; } +function altcha_callSuper(t, o, e) { return o = altcha_getPrototypeOf(o), altcha_possibleConstructorReturn(t, altcha_isNativeReflectConstruct() ? Reflect.construct(o, e || [], altcha_getPrototypeOf(t).constructor) : o.apply(t, e)); } +function altcha_possibleConstructorReturn(t, e) { if (e && ("object" == altcha_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return altcha_assertThisInitialized(t); } +function altcha_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function altcha_superPropGet(t, o, e, r) { var p = altcha_get(altcha_getPrototypeOf(1 & r ? t.prototype : t), o, e); return 2 & r && "function" == typeof p ? function (t) { return p.apply(e, t); } : p; } +function altcha_get() { return altcha_get = "undefined" != typeof Reflect && Reflect.get ? Reflect.get.bind() : function (e, t, r) { var p = altcha_superPropBase(e, t); if (p) { var n = Object.getOwnPropertyDescriptor(p, t); return n.get ? n.get.call(arguments.length < 3 ? e : r) : n.value; } }, altcha_get.apply(null, arguments); } +function altcha_superPropBase(t, o) { for (; !{}.hasOwnProperty.call(t, o) && null !== (t = altcha_getPrototypeOf(t));); return t; } +function altcha_inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && altcha_setPrototypeOf(t, e); } +function _wrapNativeSuper(t) { var r = "function" == typeof Map ? new Map() : void 0; return _wrapNativeSuper = function _wrapNativeSuper(t) { if (null === t || !_isNativeFunction(t)) return t; if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); if (void 0 !== r) { if (r.has(t)) return r.get(t); r.set(t, Wrapper); } function Wrapper() { return _construct(t, arguments, altcha_getPrototypeOf(this).constructor); } return Wrapper.prototype = Object.create(t.prototype, { constructor: { value: Wrapper, enumerable: !1, writable: !0, configurable: !0 } }), altcha_setPrototypeOf(Wrapper, t); }, _wrapNativeSuper(t); } +function _construct(t, e, r) { if (altcha_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); var o = [null]; o.push.apply(o, e); var p = new (t.bind.apply(t, o))(); return r && altcha_setPrototypeOf(p, r.prototype), p; } +function altcha_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (altcha_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function _isNativeFunction(t) { try { return -1 !== Function.toString.call(t).indexOf("[native code]"); } catch (n) { return "function" == typeof t; } } +function altcha_setPrototypeOf(t, e) { return altcha_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, altcha_setPrototypeOf(t, e); } +function altcha_getPrototypeOf(t) { return altcha_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, altcha_getPrototypeOf(t); } +function altcha_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function altcha_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, altcha_toPropertyKey(o.key), o); } } +function altcha_createClass(e, r, t) { return r && altcha_defineProperties(e.prototype, r), t && altcha_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function altcha_ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } +function altcha_objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? altcha_ownKeys(Object(t), !0).forEach(function (r) { altcha_defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : altcha_ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } +function altcha_defineProperty(e, r, t) { return (r = altcha_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function altcha_toPropertyKey(t) { var i = altcha_toPrimitive(t, "string"); return "symbol" == altcha_typeof(i) ? i : i + ""; } +function altcha_toPrimitive(t, r) { if ("object" != altcha_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != altcha_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +function _toArray(r) { return _arrayWithHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableRest(); } +function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); } +function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } +function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); } +function altcha_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); } +function altcha_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { altcha_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { altcha_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; } +function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } +function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } +function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } +function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } +function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n2 = 0, F = function F() {}; return { s: F, n: function n() { return _n2 >= r.length ? { done: !0 } : { done: !1, value: r[_n2++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } +function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } +function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +function altcha_typeof(o) { "@babel/helpers - typeof"; return altcha_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, altcha_typeof(o); } +var hi = Object.defineProperty; +var Or = function Or(e) { + throw TypeError(e); +}; +var gi = function gi(e, t, r) { + return t in e ? hi(e, t, { + enumerable: !0, + configurable: !0, + writable: !0, + value: r + }) : e[t] = r; +}; +var ne = function ne(e, t, r) { + return gi(e, altcha_typeof(t) != "symbol" ? t + "" : t, r); + }, + zr = function zr(e, t, r) { + return t.has(e) || Or("Cannot " + r); + }; +var H = function H(e, t, r) { + return zr(e, t, "read from private field"), r ? r.call(e) : t.get(e); + }, + Mt = function Mt(e, t, r) { + return t.has(e) ? Or("Cannot add the same private member more than once") : t instanceof WeakSet ? t.add(e) : t.set(e, r); + }, + Ut = function Ut(e, t, r, l) { + return zr(e, t, "write to private field"), l ? l.call(e, r) : t.set(e, r), r; + }; +var 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 === "undefined" ? "undefined" : altcha_typeof(self)) < "u" && self.Blob && new Blob([en], { + type: "text/javascript;charset=utf-8" + }); +function _i(e) { + var t; + try { + if (t = Fr && (self.URL || self.webkitURL).createObjectURL(Fr), !t) throw ""; + var r = new Worker(t, { + name: e == null ? void 0 : e.name + }); + return r.addEventListener("error", function () { + (self.URL || self.webkitURL).revokeObjectURL(t); + }), r; + } catch (_unused) { + return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(en), { + name: e == null ? void 0 : e.name + }); + } finally { + t && (self.URL || self.webkitURL).revokeObjectURL(t); + } +} +var mi = "5"; +var Qr; +(typeof window === "undefined" ? "undefined" : altcha_typeof(window)) < "u" && ((_Qr$v = (Qr = (_window$__svelte = window.__svelte) !== null && _window$__svelte !== void 0 ? _window$__svelte : window.__svelte = {}).v) !== null && _Qr$v !== void 0 ? _Qr$v : Qr.v = /* @__PURE__ */new Set()).add(mi); +var 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(""); +var 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; +function fn(e) { + for (var t = 0; t < e.length; t++) e[t](); +} +var Li = (typeof requestIdleCallback === "undefined" ? "undefined" : altcha_typeof(requestIdleCallback)) > "u" ? function (e) { + return setTimeout(e, 1); +} : requestIdleCallback; +var dt = [], + vt = []; +function un() { + var e = dt; + dt = [], fn(e); +} +function cn() { + var e = vt; + vt = [], fn(e); +} +function Gt(e) { + dt.length === 0 && queueMicrotask(un), dt.push(e); +} +function Di(e) { + vt.length === 0 && Li(cn), vt.push(e); +} +function Ur() { + dt.length > 0 && un(), vt.length > 0 && cn(); +} +function dn(e) { + return e === this.v; +} +function Pi(e, t) { + return e != e ? t == t : e !== t || e !== null && altcha_typeof(e) == "object" || typeof e == "function"; +} +function vn(e) { + return !Pi(e, this.v); +} +function Oi(e) { + throw new Error("https://svelte.dev/e/effect_in_teardown"); +} +function zi() { + throw new Error("https://svelte.dev/e/effect_in_unowned_derived"); +} +function Fi(e) { + throw new Error("https://svelte.dev/e/effect_orphan"); +} +function Mi() { + throw new Error("https://svelte.dev/e/effect_update_depth_exceeded"); +} +function Ui() { + throw new Error("https://svelte.dev/e/hydration_failed"); +} +function ji(e) { + throw new Error("https://svelte.dev/e/props_invalid_value"); +} +function Vi() { + throw new Error("https://svelte.dev/e/state_descriptors_fixed"); +} +function Bi() { + throw new Error("https://svelte.dev/e/state_prototype_fixed"); +} +function qi() { + throw new Error("https://svelte.dev/e/state_unsafe_local_read"); +} +function Hi() { + throw new Error("https://svelte.dev/e/state_unsafe_mutation"); +} +var Wi = !1; +function ue(e, t) { + var r = { + f: 0, + // TODO ideally we could skip this altogether, but it causes type errors + v: e, + reactions: null, + equals: dn, + rv: 0, + wv: 0 + }; + return r; +} +function He(e) { + return /* @__PURE__ */Yi(ue(e)); +} +// @__NO_SIDE_EFFECTS__ +function hn(e) { + var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !1; + var r = ue(e); + return t || (r.equals = vn), r; +} +// @__NO_SIDE_EFFECTS__ +function Yi(e) { + return k !== null && !ae && (k.f & oe) !== 0 && (ce === null ? Qi([e]) : ce.push(e)), e; +} +function P(e, t) { + return k !== null && !ae && Dn() && (k.f & (oe | Yt)) !== 0 && ( + // If the source was created locally within the current derived, then + // we allow the mutation. + ce === null || !ce.includes(e)) && Hi(), Zi(e, t); +} +function Zi(e, t) { + 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; +} +function gn(e, t) { + var r = e.reactions; + if (r !== null) for (var l = r.length, i = 0; i < l; i++) { + var a = r[i], + o = a.f; + (o & ye) === 0 && (de(a, t), (o & (K | re)) !== 0 && ((o & oe) !== 0 ? gn(/** @type {Derived} */ + a, et) : Lt(/** @type {Effect} */ + a))); + } +} +// @__NO_SIDE_EFFECTS__ +function De(e) { + var t = oe | ye, + r = k !== null && (k.f & oe) !== 0 ? (/** @type {Derived} */ + k) : null; + return A === null || r !== null && (r.f & re) !== 0 ? t |= re : A.f |= ln, { + ctx: B, + deps: null, + effects: null, + equals: dn, + f: t, + fn: e, + reactions: null, + rv: 0, + v: (/** @type {V} */ + null), + wv: 0, + parent: r !== null && r !== void 0 ? r : A + }; +} +function _n(e) { + var t = e.effects; + if (t !== null) { + e.effects = null; + for (var r = 0; r < t.length; r += 1) we(/** @type {Effect} */ + t[r]); + } +} +function Gi(e) { + for (var t = e.parent; t !== null;) { + if ((t.f & oe) === 0) return /** @type {Effect} */t; + t = t.parent; + } + return null; +} +function Ji(e) { + var t, + r = A; + Se(Gi(e)); + try { + _n(e), t = $n(e); + } finally { + Se(r); + } + return t; +} +function mn(e) { + var t = Ji(e), + r = (Ce || (e.f & re) !== 0) && e.deps !== null ? et : K; + de(e, r), e.equals(t) || (e.v = t, e.wv = En()); +} +function Tt(e) { + console.warn("https://svelte.dev/e/hydration_mismatch"); +} +var D = !1; +function Ge(e) { + D = e; +} +var O; +function Re(e) { + if (e === null) throw Tt(), Je; + return O = e; +} +function Xe() { + return Re(/** @type {TemplateNode} */ + /* @__PURE__ */Te(O)); +} +function Z(e) { + if (D) { + if (/* @__PURE__ */Te(O) !== null) throw Tt(), Je; + O = e; + } +} +function Ki() { + for (var e = 0, t = O;;) { + if (t.nodeType === 8) { + var r = /** @type {Comment} */ + t.data; + if (r === rn) { + if (e === 0) return t; + e -= 1; + } else (r === Wt || r === tn) && (e += 1); + } + var l = /** @type {TemplateNode} */ + /* @__PURE__ */Te(t); + t.remove(), t = l; + } +} +function le(e) { + var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var r = arguments.length > 2 ? arguments[2] : undefined; + if (altcha_typeof(e) != "object" || e === null || ut in e) return e; + var l = sn(e); + if (l !== Ti && l !== Ni) return e; + var i = /* @__PURE__ */new Map(), + a = on(e), + o = ue(0); + a && i.set("length", ue(/** @type {any[]} */ + e.length)); + var f; + return new Proxy(/** @type {any} */ + e, { + defineProperty: function defineProperty(s, c, v) { + (!("value" in v) || v.configurable === !1 || v.enumerable === !1 || v.writable === !1) && Vi(); + var h = i.get(c); + return h === void 0 ? (h = ue(v.value), i.set(c, h)) : P(h, le(v.value, f)), !0; + }, + deleteProperty: function deleteProperty(s, c) { + var v = i.get(c); + if (v === void 0) c in s && i.set(c, ue(W));else { + if (a && typeof c == "string") { + var h = /** @type {Source} */ + i.get("length"), + g = Number(c); + Number.isInteger(g) && g < h.v && P(h, g); + } + P(v, W), jr(o); + } + return !0; + }, + get: function get(s, c, v) { + var w; + if (c === ut) return e; + var h = i.get(c), + g = c in s; + 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) { + var m = d(h); + return m === W ? void 0 : m; + } + return Reflect.get(s, c, v); + }, + getOwnPropertyDescriptor: function getOwnPropertyDescriptor(s, c) { + var v = Reflect.getOwnPropertyDescriptor(s, c); + if (v && "value" in v) { + var h = i.get(c); + h && (v.value = d(h)); + } else if (v === void 0) { + var g = i.get(c), + m = g == null ? void 0 : g.v; + if (g !== void 0 && m !== W) return { + enumerable: !0, + configurable: !0, + value: m, + writable: !0 + }; + } + return v; + }, + has: function has(s, c) { + var m; + if (c === ut) return !0; + var v = i.get(c), + h = v !== void 0 && v.v !== W || Reflect.has(s, c); + if (v !== void 0 || A !== null && (!h || (m = Pe(s, c)) != null && m.writable)) { + v === void 0 && (v = ue(h ? le(s[c], f) : W), i.set(c, v)); + var g = d(v); + if (g === W) return !1; + } + return h; + }, + set: function set(s, c, v, h) { + var F; + var g = i.get(c), + m = c in s; + if (a && c === "length") for (var w = v; w < /** @type {Source} */ + g.v; w += 1) { + var z = i.get(w + ""); + z !== void 0 ? P(z, W) : w in s && (z = ue(W), i.set(w + "", z)); + } + 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))); + var T = Reflect.getOwnPropertyDescriptor(s, c); + if (T != null && T.set && T.set.call(h, v), !m) { + if (a && typeof c == "string") { + var Y = /** @type {Source} */ + i.get("length"), + M = Number(c); + Number.isInteger(M) && M >= Y.v && P(Y, M + 1); + } + jr(o); + } + return !0; + }, + ownKeys: function ownKeys(s) { + d(o); + var c = Reflect.ownKeys(s).filter(function (g) { + var m = i.get(g); + return m === void 0 || m.v !== W; + }); + var _iterator = _createForOfIteratorHelper(i), + _step; + try { + for (_iterator.s(); !(_step = _iterator.n()).done;) { + var _step$value = _slicedToArray(_step.value, 2), + v = _step$value[0], + h = _step$value[1]; + h.v !== W && !(v in s) && c.push(v); + } + } catch (err) { + _iterator.e(err); + } finally { + _iterator.f(); + } + return c; + }, + setPrototypeOf: function setPrototypeOf() { + Bi(); + } + }); +} +function jr(e) { + var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + P(e, e.v + t); +} +var Vr, wn, pn, yn; +function jt() { + if (Vr === void 0) { + Vr = window, wn = /Firefox/.test(navigator.userAgent); + var e = Element.prototype, + t = Node.prototype; + 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; + } +} +function Jt() { + var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ""; + return document.createTextNode(e); +} +// @__NO_SIDE_EFFECTS__ +function me(e) { + return pn.call(e); +} +// @__NO_SIDE_EFFECTS__ +function Te(e) { + return yn.call(e); +} +function G(e, t) { + if (!D) return /* @__PURE__ */me(e); + var r = /** @type {TemplateNode} */ + /* @__PURE__ */me(O); + return r === null && (r = O.appendChild(Jt())), Re(r), r; +} +function Br(e, t) { + if (!D) { + var r = /** @type {DocumentFragment} */ + /* @__PURE__ */me(/** @type {Node} */ + e); + return r instanceof Comment && r.data === "" ? /* @__PURE__ */Te(r) : r; + } + return O; +} +function he(e) { + var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + var r = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : !1; + var l = D ? O : e; + for (var i; t--;) i = l, l = /** @type {TemplateNode} */ + /* @__PURE__ */Te(l); + if (!D) return l; + var a = l == null ? void 0 : l.nodeType; + if (r && a !== 3) { + var o = Jt(); + return l === null ? i == null || i.after(o) : l.before(o), Re(o), o; + } + return Re(l), /** @type {TemplateNode} */ + l; +} +function Xi(e) { + e.textContent = ""; +} +var wt = !1, + $t = !1, + kt = null, + Oe = !1, + Kt = !1; +function qr(e) { + Kt = e; +} +var ct = []; +var k = null, + ae = !1; +function Ie(e) { + k = e; +} +var A = null; +function Se(e) { + A = e; +} +var ce = null; +function Qi(e) { + ce = e; +} +var V = null, + J = 0, + ge = null; +function el(e) { + ge = e; +} +var bn = 1, + Ct = 0, + Ce = !1; +function En() { + return ++bn; +} +function ht(e) { + var h; + var t = e.f; + if ((t & ye) !== 0) return !0; + if ((t & et) !== 0) { + var r = e.deps, + l = (t & re) !== 0; + if (r !== null) { + var i, + a, + o = (t & bt) !== 0, + f = l && A !== null && !Ce, + s = r.length; + if (o || f) { + var c = /** @type {Derived} */ + e, + v = c.parent; + for (i = 0; i < s; i++) { + var _a$reactions; + a = r[i], (o || !((h = a == null ? void 0 : a.reactions) != null && h.includes(c))) && ((_a$reactions = a.reactions) !== null && _a$reactions !== void 0 ? _a$reactions : a.reactions = []).push(c); + } + o && (c.f ^= bt), f && v !== null && (v.f & re) === 0 && (c.f ^= re); + } + for (i = 0; i < s; i++) if (a = r[i], ht(/** @type {Derived} */ + a) && mn(/** @type {Derived} */ + a), a.wv > e.wv) return !0; + } + (!l || A !== null && !Ce) && de(e, K); + } + return !1; +} +function tl(e, t) { + for (var r = t; r !== null;) { + if ((r.f & yt) !== 0) try { + r.fn(e); + return; + } catch (_unused2) { + r.f ^= yt; + } + r = r.parent; + } + throw wt = !1, e; +} +function rl(e) { + return (e.f & St) === 0 && (e.parent === null || (e.parent.f & yt) === 0); +} +function Nt(e, t, r, l) { + if (wt) { + if (r === null && (wt = !1), rl(t)) throw e; + return; + } + r !== null && (wt = !0); + { + tl(e, t); + return; + } +} +function xn(e, t) { + var r = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : !0; + var l = e.reactions; + if (l !== null) for (var i = 0; i < l.length; i++) { + var a = l[i]; + (a.f & oe) !== 0 ? xn(/** @type {Derived} */ + a, t, !1) : t === a && (r ? de(a, ye) : (a.f & K) !== 0 && de(a, et), Lt(/** @type {Effect} */ + a)); + } +} +function $n(e) { + var m; + var t = V, + r = J, + l = ge, + i = k, + a = Ce, + o = ce, + f = B, + s = ae, + c = e.f; + V = /** @type {null | Value[]} */ + 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++; + try { + var v = /** @type {Function} */ + (0, e.fn)(), + h = e.deps; + if (V !== null) { + var g; + if (At(e, J), h !== null && J > 0) for (h.length = J + V.length, g = 0; g < V.length; g++) h[J + g] = V[g];else e.deps = h = V; + if (!Ce) for (g = J; g < h.length; g++) { + var _m$reactions; + ((_m$reactions = (m = h[g]).reactions) !== null && _m$reactions !== void 0 ? _m$reactions : m.reactions = []).push(e); + } + } else h !== null && J < h.length && (At(e, J), h.length = J); + if (Dn() && ge !== null && !ae && h !== null && (e.f & (oe | et | ye)) === 0) for (g = 0; g < /** @type {Source[]} */ + ge.length; g++) xn(ge[g], /** @type {Effect} */ + e); + return i !== null && Ct++, v; + } finally { + V = t, J = r, ge = l, k = i, Ce = a, ce = o, Wr(f), ae = s; + } +} +function nl(e, t) { + var r = t.reactions; + if (r !== null) { + var l = Ri.call(r, e); + if (l !== -1) { + var i = r.length - 1; + i === 0 ? r = t.reactions = null : (r[l] = r[i], r.pop()); + } + } + r === null && (t.f & oe) !== 0 && ( + // Destroying a child effect while updating a parent effect can cause a dependency to appear + // to be unused, when in fact it is used by the currently-updating parent. Checking `new_deps` + // allows us to skip the expensive work of disconnecting and immediately reconnecting it + V === null || !V.includes(t)) && (de(t, et), (t.f & (re | bt)) === 0 && (t.f ^= bt), _n(/** @type {Derived} **/ + t), At(/** @type {Derived} **/ + t, 0)); +} +function At(e, t) { + var r = e.deps; + if (r !== null) for (var l = t; l < r.length; l++) nl(e, r[l]); +} +function Xt(e) { + var t = e.f; + if ((t & St) === 0) { + de(e, K); + var r = A, + l = B, + i = Oe; + A = e, Oe = !0; + try { + (t & Yt) !== 0 ? hl(e) : An(e), Cn(e); + var a = $n(e); + e.teardown = typeof a == "function" ? a : null, e.wv = bn; + var o = e.deps, + f; + Mr && Wi && e.f & ye; + } catch (s) { + Nt(s, e, r, l || e.ctx); + } finally { + Oe = i, A = r; + } + } +} +function il() { + try { + Mi(); + } catch (e) { + if (kt !== null) Nt(e, kt, null);else throw e; + } +} +function kn() { + var e = Oe; + try { + var t = 0; + for (Oe = !0; ct.length > 0;) { + t++ > 1e3 && il(); + var r = ct, + l = r.length; + ct = []; + for (var i = 0; i < l; i++) { + var a = al(r[i]); + ll(a); + } + } + } finally { + $t = !1, Oe = e, kt = null; + } +} +function ll(e) { + var t = e.length; + if (t !== 0) for (var r = 0; r < t; r++) { + var l = e[r]; + if ((l.f & (St | Ke)) === 0) try { + ht(l) && (Xt(l), l.deps === null && l.first === null && l.nodes_start === null && (l.teardown === null ? Rn(l) : l.fn = null)); + } catch (i) { + Nt(i, l, null, l.ctx); + } + } +} +function Lt(e) { + $t || ($t = !0, queueMicrotask(kn)); + for (var t = kt = e; t.parent !== null;) { + t = t.parent; + var r = t.f; + if ((r & (ze | pe)) !== 0) { + if ((r & K) === 0) return; + t.f ^= K; + } + } + ct.push(t); +} +function al(e) { + for (var t = [], r = e; r !== null;) { + var l = r.f, + i = (l & (pe | ze)) !== 0, + a = i && (l & K) !== 0; + if (!a && (l & Ke) === 0) { + if ((l & nn) !== 0) t.push(r);else if (i) r.f ^= K;else { + var o = k; + try { + k = r, ht(r) && Xt(r); + } catch (c) { + Nt(c, r, null, r.ctx); + } finally { + k = o; + } + } + var f = r.first; + if (f !== null) { + r = f; + continue; + } + } + var s = r.parent; + for (r = r.next; r === null && s !== null;) r = s.next, s = s.parent; + } + return t; +} +function $(e) { + var t; + for (Ur(); ct.length > 0;) $t = !0, kn(), Ur(); + return /** @type {T} */t; +} +function ol() { + return _ol.apply(this, arguments); +} +function _ol() { + _ol = altcha_asyncToGenerator(/*#__PURE__*/altcha_regeneratorRuntime().mark(function _callee9() { + return altcha_regeneratorRuntime().wrap(function _callee9$(_context9) { + while (1) switch (_context9.prev = _context9.next) { + case 0: + _context9.next = 2; + return Promise.resolve(); + case 2: + $(); + case 3: + case "end": + return _context9.stop(); + } + }, _callee9); + })); + return _ol.apply(this, arguments); +} +function d(e) { + var t = e.f, + r = (t & oe) !== 0; + if (k !== null && !ae) { + ce !== null && ce.includes(e) && qi(); + var l = k.deps; + 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)); + } else if (r && /** @type {Derived} */ + e.deps === null && /** @type {Derived} */ + e.effects === null) { + var i = /** @type {Derived} */ + e, + a = i.parent; + a !== null && (a.f & re) === 0 && (i.f ^= re); + } + return r && (i = /** @type {Derived} */ + e, ht(i) && mn(i)), e.v; +} +function Qe(e) { + var t = ae; + try { + return ae = !0, e(); + } finally { + ae = t; + } +} +var sl = -7169; +function de(e, t) { + e.f = e.f & sl | t; +} +function fl(e) { + A === null && k === null && Fi(), k !== null && (k.f & re) !== 0 && A === null && zi(), Kt && Oi(); +} +function ul(e, t) { + var r = t.last; + r === null ? t.last = t.first = e : (r.next = e, e.prev = r, t.last = e); +} +function Fe(e, t, r) { + var l = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : !0; + var i = A, + a = { + ctx: B, + deps: null, + nodes_start: null, + nodes_end: null, + f: e | ye, + first: null, + fn: t, + last: null, + next: null, + parent: i, + prev: null, + teardown: null, + transitions: null, + wv: 0 + }; + if (r) try { + Xt(a), a.f |= ki; + } catch (s) { + throw we(a), s; + } else t !== null && Lt(a); + var o = r && a.deps === null && a.first === null && a.nodes_start === null && a.teardown === null && (a.f & (ln | yt)) === 0; + if (!o && l && (i !== null && ul(a, i), k !== null && (k.f & oe) !== 0)) { + var _f$effects; + var f = /** @type {Derived} */ + k; + ((_f$effects = f.effects) !== null && _f$effects !== void 0 ? _f$effects : f.effects = []).push(a); + } + return a; +} +function cl(e) { + var t = Fe(It, null, !1); + return de(t, K), t.teardown = e, t; +} +function Vt(e) { + fl(); + var t = A !== null && (A.f & pe) !== 0 && B !== null && !B.m; + if (t) { + var _r$e; + var r = /** @type {ComponentContext} */ + B; + ((_r$e = r.e) !== null && _r$e !== void 0 ? _r$e : r.e = []).push({ + fn: e, + effect: A, + reaction: k + }); + } else { + var l = Qt(e); + return l; + } +} +function dl(e) { + var t = Fe(ze, e, !0); + return function () { + we(t); + }; +} +function vl(e) { + var t = Fe(ze, e, !0); + return function () { + var r = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + return new Promise(function (l) { + r.outro ? Bt(t, function () { + we(t), l(void 0); + }) : (we(t), l(void 0)); + }); + }; +} +function Qt(e) { + return Fe(nn, e, !1); +} +function er(e) { + return Fe(It, e, !0); +} +function We(e) { + var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + var r = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : De; + var l = t.map(r); + return tr(function () { + return e.apply(void 0, _toConsumableArray(l.map(d))); + }); +} +function tr(e) { + var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + return Fe(It | Yt | t, e, !0); +} +function Rt(e) { + var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !0; + return Fe(It | pe, e, !0, t); +} +function Cn(e) { + var t = e.teardown; + if (t !== null) { + var r = Kt, + l = k; + qr(!0), Ie(null); + try { + t.call(null); + } finally { + qr(r), Ie(l); + } + } +} +function An(e) { + var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !1; + var r = e.first; + for (e.first = e.last = null; r !== null;) { + var l = r.next; + (r.f & ze) !== 0 ? r.parent = null : we(r, t), r = l; + } +} +function hl(e) { + for (var t = e.first; t !== null;) { + var r = t.next; + (t.f & pe) === 0 && we(t), t = r; + } +} +function we(e) { + var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !0; + var r = !1; + if ((t || (e.f & Ci) !== 0) && e.nodes_start !== null) { + for (var l = e.nodes_start, i = e.nodes_end; l !== null;) { + var a = l === i ? null : (/** @type {TemplateNode} */ + /* @__PURE__ */Te(l)); + l.remove(), l = a; + } + r = !0; + } + An(e, t && !r), At(e, 0), de(e, St); + var o = e.transitions; + if (o !== null) { + var _iterator2 = _createForOfIteratorHelper(o), + _step2; + try { + for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) { + var s = _step2.value; + s.stop(); + } + } catch (err) { + _iterator2.e(err); + } finally { + _iterator2.f(); + } + } + Cn(e); + var f = e.parent; + 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; +} +function Rn(e) { + var t = e.parent, + r = e.prev, + l = e.next; + r !== null && (r.next = l), l !== null && (l.prev = r), t !== null && (t.first === e && (t.first = l), t.last === e && (t.last = r)); +} +function Bt(e, t) { + var r = []; + In(e, r, !0), gl(r, function () { + we(e), t && t(); + }); +} +function gl(e, t) { + var r = e.length; + if (r > 0) { + var l = function l() { + return --r || t(); + }; + var _iterator3 = _createForOfIteratorHelper(e), + _step3; + try { + for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) { + var i = _step3.value; + i.out(l); + } + } catch (err) { + _iterator3.e(err); + } finally { + _iterator3.f(); + } + } else t(); +} +function In(e, t, r) { + if ((e.f & Ke) === 0) { + if (e.f ^= Ke, e.transitions !== null) { + var _iterator4 = _createForOfIteratorHelper(e.transitions), + _step4; + try { + for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) { + var o = _step4.value; + (o.is_global || r) && t.push(o); + } + } catch (err) { + _iterator4.e(err); + } finally { + _iterator4.f(); + } + } + for (var l = e.first; l !== null;) { + var i = l.next, + a = (l.f & Zt) !== 0 || (l.f & pe) !== 0; + In(l, t, a ? r : !1), l = i; + } + } +} +function Hr(e) { + Sn(e, !0); +} +function Sn(e, t) { + if ((e.f & Ke) !== 0) { + e.f ^= Ke, (e.f & K) === 0 && (e.f ^= K), ht(e) && (de(e, ye), Lt(e)); + for (var r = e.first; r !== null;) { + var l = r.next, + i = (r.f & Zt) !== 0 || (r.f & pe) !== 0; + Sn(r, i ? t : !1), r = l; + } + if (e.transitions !== null) { + var _iterator5 = _createForOfIteratorHelper(e.transitions), + _step5; + try { + for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) { + var a = _step5.value; + (a.is_global || t) && a["in"](); + } + } catch (err) { + _iterator5.e(err); + } finally { + _iterator5.f(); + } + } + } +} +function Tn(e) { + throw new Error("https://svelte.dev/e/lifecycle_outside_component"); +} +var B = null; +function Wr(e) { + B = e; +} +function Nn(e) { + var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !1; + var r = arguments.length > 2 ? arguments[2] : undefined; + B = { + p: B, + c: null, + e: null, + m: !1, + s: e, + x: null, + l: null + }; +} +function Ln(e) { + var t = B; + if (t !== null) { + e !== void 0 && (t.x = e); + var o = t.e; + if (o !== null) { + var r = A, + l = k; + t.e = null; + try { + for (var i = 0; i < o.length; i++) { + var a = o[i]; + Se(a.effect), Ie(a.reaction), Qt(a.fn); + } + } finally { + Se(r), Ie(l); + } + } + B = t.p, t.m = !0; + } + return e || /** @type {T} */ + {}; +} +function Dn() { + return !0; +} +var _l = ["touchstart", "touchmove"]; +function ml(e) { + return _l.includes(e); +} +var Yr = !1; +function Pn() { + Yr || (Yr = !0, document.addEventListener("reset", function (e) { + Promise.resolve().then(function () { + var t; + if (!e.defaultPrevented) { + var _iterator6 = _createForOfIteratorHelper(/**@type {HTMLFormElement} */ + e.target.elements), + _step6; + try { + for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) { + var r = _step6.value; + (t = r.__on_r) == null || t.call(r); + } + } catch (err) { + _iterator6.e(err); + } finally { + _iterator6.f(); + } + } + }); + }, + // In the capture phase to guarantee we get noticed of it (no possiblity of stopPropagation) + { + capture: !0 + })); +} +function On(e) { + var t = k, + r = A; + Ie(null), Se(null); + try { + return e(); + } finally { + Ie(t), Se(r); + } +} +function wl(e, t, r) { + var l = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : r; + e.addEventListener(t, function () { + return On(r); + }); + var i = e.__on_r; + i ? e.__on_r = function () { + i(), l(!0); + } : e.__on_r = function () { + return l(!0); + }, Pn(); +} +var zn = /* @__PURE__ */new Set(), + qt = /* @__PURE__ */new Set(); +function pl(e, t, r) { + var l = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {}; + function i(a) { + var _this = this; + if (l.capture || ft.call(t, a), !a.cancelBubble) return On(function () { + return r == null ? void 0 : r.call(_this, a); + }); + } + return e.startsWith("pointer") || e.startsWith("touch") || e === "wheel" ? Gt(function () { + t.addEventListener(e, i, l); + }) : t.addEventListener(e, i, l), i; +} +function yl(e, t, r, l, i) { + var a = { + capture: l, + passive: i + }, + o = pl(e, t, r, a); + (t === document.body || t === window || t === document) && cl(function () { + t.removeEventListener(e, o, a); + }); +} +function bl(e) { + for (var t = 0; t < e.length; t++) zn.add(e[t]); + var _iterator7 = _createForOfIteratorHelper(qt), + _step7; + try { + for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) { + var r = _step7.value; + r(e); + } + } catch (err) { + _iterator7.e(err); + } finally { + _iterator7.f(); + } +} +function ft(e) { + var M; + var t = this, + r = /** @type {Node} */ + t.ownerDocument, + l = e.type, + i = ((M = e.composedPath) == null ? void 0 : M.call(e)) || [], + a = /** @type {null | Element} */ + i[0] || e.target, + o = 0, + f = e.__root; + if (f) { + var s = i.indexOf(f); + if (s !== -1 && (t === document || t === /** @type {any} */ + window)) { + e.__root = t; + return; + } + var c = i.indexOf(t); + if (c === -1) return; + s <= c && (o = s); + } + if (a = /** @type {Element} */ + i[o] || e.target, a !== t) { + xt(e, "currentTarget", { + configurable: !0, + get: function get() { + return a || r; + } + }); + var v = k, + h = A; + Ie(null), Se(null); + try { + for (var g, m = []; a !== null;) { + var w = a.assignedSlot || a.parentNode || /** @type {any} */ + a.host || null; + try { + var z = a["__" + l]; + if (z != null && (! /** @type {any} */ + a.disabled || + // DOM could've been updated already by the time this is reached, so we check this as well + // -> the target could not have been disabled because it emits the event in the first place + e.target === a)) if (on(z)) { + var _z = z, + _z2 = _toArray(_z), + T = _z2[0], + Y = _z2.slice(1); + T.apply(a, [e].concat(_toConsumableArray(Y))); + } else z.call(a, e); + } catch (F) { + g ? m.push(F) : g = F; + } + if (e.cancelBubble || w === t || w === null) break; + a = w; + } + if (g) { + var _iterator8 = _createForOfIteratorHelper(m), + _step8; + try { + var _loop = function _loop() { + var F = _step8.value; + queueMicrotask(function () { + throw F; + }); + }; + for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) { + _loop(); + } + } catch (err) { + _iterator8.e(err); + } finally { + _iterator8.f(); + } + throw g; + } + } finally { + e.__root = t, delete e.currentTarget, Ie(v), Se(h); + } + } +} +function rr(e) { + var t = document.createElement("template"); + return t.innerHTML = e, t.content; +} +function Ae(e, t) { + var r = /** @type {Effect} */ + A; + r.nodes_start === null && (r.nodes_start = e, r.nodes_end = t); +} +// @__NO_SIDE_EFFECTS__ +function ve(e, t) { + var r = (t & Ei) !== 0, + l = (t & xi) !== 0, + i, + a = !e.startsWith(""); + return function () { + if (D) return Ae(O, null), O; + i === void 0 && (i = rr(a ? e : "" + e), r || (i = /** @type {Node} */ + /* @__PURE__ */me(i))); + var o = /** @type {TemplateNode} */ + l || wn ? document.importNode(i, !0) : i.cloneNode(!0); + if (r) { + var f = /** @type {TemplateNode} */ + /* @__PURE__ */me(o), + s = /** @type {TemplateNode} */ + o.lastChild; + Ae(f, s); + } else Ae(o, o); + return o; + }; +} +// @__NO_SIDE_EFFECTS__ +function El(e, t) { + var r = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "svg"; + var l = !e.startsWith(""), + i = "<".concat(r, ">").concat(l ? e : "" + e, ""), + a; + return function () { + if (D) return Ae(O, null), O; + if (!a) { + var o = /** @type {DocumentFragment} */ + rr(i), + f = /** @type {Element} */ + /* @__PURE__ */me(o); + a = /** @type {Element} */ + /* @__PURE__ */me(f); + } + var s = /** @type {TemplateNode} */ + a.cloneNode(!0); + return Ae(s, s), s; + }; +} +function ee(e, t) { + if (D) { + A.nodes_end = O, Xe(); + return; + } + e !== null && e.before(/** @type {Node} */ + t); +} +function Fn(e, t) { + return Mn(e, t); +} +function xl(e, t) { + var _t$intro; + jt(), t.intro = (_t$intro = t.intro) !== null && _t$intro !== void 0 ? _t$intro : !1; + var r = t.target, + l = D, + i = O; + try { + for (var a = /** @type {TemplateNode} */ + /* @__PURE__ */me(r); a && (a.nodeType !== 8 || /** @type {Comment} */ + a.data !== Wt);) a = /** @type {TemplateNode} */ + /* @__PURE__ */Te(a); + if (!a) throw Je; + Ge(!0), Re(/** @type {Comment} */ + a), Xe(); + var o = Mn(e, altcha_objectSpread(altcha_objectSpread({}, t), {}, { + anchor: a + })); + if (O === null || O.nodeType !== 8 || /** @type {Comment} */ + O.data !== rn) throw Tt(), Je; + return Ge(!1), /** @type {Exports} */ + o; + } catch (o) { + if (o === Je) return t.recover === !1 && Ui(), jt(), Xi(r), Ge(!1), Fn(e, t); + throw o; + } finally { + Ge(l), Re(i); + } +} +var Ye = /* @__PURE__ */new Map(); +function Mn(e, _ref) { + var t = _ref.target, + r = _ref.anchor, + _ref$props = _ref.props, + l = _ref$props === void 0 ? {} : _ref$props, + i = _ref.events, + a = _ref.context, + _ref$intro = _ref.intro, + o = _ref$intro === void 0 ? !0 : _ref$intro; + jt(); + var f = /* @__PURE__ */new Set(), + s = function s(h) { + for (var g = 0; g < h.length; g++) { + var m = h[g]; + if (!f.has(m)) { + f.add(m); + var w = ml(m); + t.addEventListener(m, ft, { + passive: w + }); + var z = Ye.get(m); + z === void 0 ? (document.addEventListener(m, ft, { + passive: w + }), Ye.set(m, 1)) : Ye.set(m, z + 1); + } + } + }; + s(Ii(zn)), qt.add(s); + var c = void 0, + v = vl(function () { + var h = r !== null && r !== void 0 ? r : t.appendChild(Jt()); + return Rt(function () { + if (a) { + Nn({}); + var g = /** @type {ComponentContext} */ + B; + g.c = a; + } + i && (l.$$events = i), D && Ae(/** @type {TemplateNode} */ + h, null), c = e(h, l) || {}, D && (A.nodes_end = O), a && Ln(); + }), function () { + var w; + var _iterator9 = _createForOfIteratorHelper(f), + _step9; + try { + for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) { + var g = _step9.value; + t.removeEventListener(g, ft); + var m = /** @type {number} */ + Ye.get(g); + --m === 0 ? (document.removeEventListener(g, ft), Ye["delete"](g)) : Ye.set(g, m); + } + } catch (err) { + _iterator9.e(err); + } finally { + _iterator9.f(); + } + qt["delete"](s), h !== r && ((w = h.parentNode) == null || w.removeChild(h)); + }; + }); + return Ht.set(c, v), c; +} +var Ht = /* @__PURE__ */new WeakMap(); +function $l(e, t) { + var r = Ht.get(e); + return r ? (Ht["delete"](e), r(t)) : Promise.resolve(); +} +function ke(e, t) { + var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [0, 0], + _ref3 = _slicedToArray(_ref2, 2), + r = _ref3[0], + l = _ref3[1]; + D && r === 0 && Xe(); + var i = e, + a = null, + o = null, + f = W, + s = r > 0 ? Zt : 0, + c = !1; + var v = function v(g) { + var m = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : !0; + c = !0, h(m, g); + }, + h = function h(g, m) { + if (f === (f = g)) return; + var w = !1; + if (D && l !== -1) { + if (r === 0) { + var T = /** @type {Comment} */ + i.data; + T === Wt ? l = 0 : T === tn ? l = 1 / 0 : (l = parseInt(T.substring(1)), l !== l && (l = f ? 1 / 0 : -1)); + } + var z = l > r; + !!f === z && (i = Ki(), Re(i), Ge(!1), w = !0, l = -1); + } + f ? (a ? Hr(a) : m && (a = Rt(function () { + return m(i); + })), o && Bt(o, function () { + o = null; + })) : (o ? Hr(o) : m && (o = Rt(function () { + return m(i, [r + 1, l]); + })), a && Bt(a, function () { + a = null; + })), w && Ge(!0); + }; + tr(function () { + c = !1, t(v), c || h(null, null); + }, s), D && (i = O); +} +function Ze(e, t, r, l, i) { + var a = e, + o = "", + f; + tr(function () { + var _t2; + if (o === (o = (_t2 = t()) !== null && _t2 !== void 0 ? _t2 : "")) { + D && Xe(); + return; + } + f !== void 0 && (we(f), f = void 0), o !== "" && (f = Rt(function () { + if (D) { + O.data; + for (var s = Xe(), c = s; s !== null && (s.nodeType !== 8 || /** @type {Comment} */ + s.data !== "");) c = s, s = /** @type {TemplateNode} */ + /* @__PURE__ */Te(s); + if (s === null) throw Tt(), Je; + Ae(O, c), a = Re(s); + return; + } + var v = o + "", + h = rr(v); + Ae(/** @type {TemplateNode} */ + /* @__PURE__ */me(h), /** @type {TemplateNode} */ + h.lastChild), a.before(h); + })); + }); +} +function kl(e, t, r, l, i) { + var f; + D && Xe(); + var a = (f = t.$$slots) == null ? void 0 : f[r], + o = !1; + a === !0 && (a = t.children, o = !0), a === void 0 || a(e, o ? function () { + return l; + } : l); +} +function Cl(e, t) { + Gt(function () { + var _r$head; + var r = e.getRootNode(), + l = /** @type {ShadowRoot} */ + r.host ? (/** @type {ShadowRoot} */ + r) : /** @type {Document} */(_r$head = r.head) !== null && _r$head !== void 0 ? _r$head : /** @type {Document} */ + r.ownerDocument.head; + if (!l.querySelector("#" + t.hash)) { + var i = document.createElement("style"); + i.id = t.hash, i.textContent = t.code, l.appendChild(i); + } + }); +} +var Zr = _toConsumableArray(" \t\n\r\f\xA0\x0B\uFEFF"); +function Al(e, t, r) { + var l = "" + e; + if (r) { + for (var i in r) if (r[i]) l = l ? l + " " + i : i;else if (l.length) for (var a = i.length, o = 0; (o = l.indexOf(i, o)) >= 0;) { + var f = o + a; + (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; + } + } + return l === "" ? null : l; +} +function Rl(e, t, r, l, i, a) { + var o = e.__className; + if (D || o !== r) { + var f = Al(r, l, a); + (!D || f !== e.getAttribute("class")) && (f == null ? e.removeAttribute("class") : e.className = f), e.__className = r; + } else if (a && i !== a) for (var s in a) { + var c = !!a[s]; + (i == null || c !== !!i[s]) && e.classList.toggle(s, c); + } + return a; +} +var Il = Symbol("is custom element"), + Sl = Symbol("is html"); +function Gr(e) { + if (D) { + var t = !1, + r = function r() { + if (!t) { + if (t = !0, e.hasAttribute("value")) { + var l = e.value; + ie(e, "value", null), e.value = l; + } + if (e.hasAttribute("checked")) { + var i = e.checked; + ie(e, "checked", null), e.checked = i; + } + } + }; + e.__on_r = r, Di(r), Pn(); + } +} +function Tl(e, t) { + var r = Un(e); + r.value === (r.value = // treat null and undefined the same for the initial value + t !== null && t !== void 0 ? t : void 0) || + // @ts-expect-error + // `progress` elements always need their value set when it's `0` + e.value === t && (t !== 0 || e.nodeName !== "PROGRESS") || (e.value = t !== null && t !== void 0 ? t : ""); +} +function ie(e, t, r, l) { + var i = Un(e); + 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)); +} +function Un(e) { + var _e$__attributes; + return ( + /** @type {Record} **/ + // @ts-expect-error + (_e$__attributes = e.__attributes) !== null && _e$__attributes !== void 0 ? _e$__attributes : e.__attributes = altcha_defineProperty(altcha_defineProperty({}, Il, e.nodeName.includes("-")), Sl, e.namespaceURI === $i) + ); +} +var Jr = /* @__PURE__ */new Map(); +function Nl(e) { + var t = Jr.get(e.nodeName); + if (t) return t; + Jr.set(e.nodeName, t = []); + for (var r, l = e, i = Element.prototype; i !== l;) { + r = Si(l); + for (var a in r) r[a].set && t.push(a); + l = sn(l); + } + return t; +} +function Ll(e, t) { + var r = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : t; + wl(e, "change", function (l) { + var i = l ? e.defaultChecked : e.checked; + r(i); + }), + // If we are hydrating and the value has since changed, + // then use the update value from the input instead. + (D && e.defaultChecked !== e.checked || + // If defaultChecked is set, then checked == defaultChecked + Qe(t) == null) && r(e.checked), er(function () { + var l = t(); + e.checked = !!l; + }); +} +function Kr(e, t) { + return e === t || (e == null ? void 0 : e[ut]) === t; +} +function Xr() { + var e = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + var t = arguments.length > 1 ? arguments[1] : undefined; + var r = arguments.length > 2 ? arguments[2] : undefined; + var l = arguments.length > 3 ? arguments[3] : undefined; + return Qt(function () { + var i, a; + return er(function () { + i = a, a = [], Qe(function () { + e !== r.apply(void 0, _toConsumableArray(a)) && (t.apply(void 0, [e].concat(_toConsumableArray(a))), i && Kr(r.apply(void 0, _toConsumableArray(i)), e) && t.apply(void 0, [null].concat(_toConsumableArray(i)))); + }); + }), function () { + Gt(function () { + a && Kr(r.apply(void 0, _toConsumableArray(a)), e) && t.apply(void 0, [null].concat(_toConsumableArray(a))); + }); + }; + }), e; +} +function jn(e) { + B === null && Tn(), Vt(function () { + var t = Qe(e); + if (typeof t == "function") return /** @type {() => void} */t; + }); +} +function Dl(e) { + B === null && Tn(), jn(function () { + return function () { + return Qe(e); + }; + }); +} +var mt = !1; +function Pl(e) { + var t = mt; + try { + return mt = !1, [e(), mt]; + } finally { + mt = t; + } +} +function C(e, t, r, l) { + var _Pl, _Pl2, _ref4; + var be; + var i = (r & wi) !== 0, + a = !0, + o = (r & yi) !== 0, + f = (r & bi) !== 0, + s = !1, + c; + o ? (_Pl = Pl(function () { + return /** @type {V} */e[t]; + }), _Pl2 = _slicedToArray(_Pl, 2), c = _Pl2[0], s = _Pl2[1], _Pl) : c = /** @type {V} */ + e[t]; + var v = ut in e || an in e, + h = o && ((_ref4 = (be = Pe(e, t)) == null ? void 0 : be.set) !== null && _ref4 !== void 0 ? _ref4 : v && t in e && function (N) { + return e[t] = N; + }) || void 0, + g = /** @type {V} */ + l, + m = !0, + w = !1, + z = function z() { + return w = !0, m && (m = !1, f ? g = Qe(/** @type {() => V} */ + l) : g = /** @type {V} */ + l), g; + }; + c === void 0 && l !== void 0 && (h && a && ji(), c = z(), h && h(c)); + var T; + if (T = function T() { + var N = /** @type {V} */ + e[t]; + return N === void 0 ? z() : (m = !0, w = !1, N); + }, (r & pi) === 0) return T; + if (h) { + var Y = e.$$legacy; + return function (N, X) { + return arguments.length > 0 ? ((!X || Y || s) && h(X ? T() : N), N) : T(); + }; + } + var M = !1, + F = /* @__PURE__ */hn(c), + se = /* @__PURE__ */De(function () { + var N = T(), + X = d(F); + return M ? (M = !1, X) : F.v = N; + }); + return i || (se.equals = vn), function (N, X) { + if (arguments.length > 0) { + var U = X ? d(se) : o ? le(N) : N; + return se.equals(U) || (M = !0, P(F, U), w && g !== void 0 && (g = U), Qe(function () { + return d(se); + })), N; + } + return d(se); + }; +} +function Ol(e) { + return new zl(e); +} +var _e, te; +var zl = /*#__PURE__*/function () { + /** + * @param {ComponentConstructorOptions & { + * component: any; + * }} options + */ + function zl(t) { + var _t$intro2, + _this2 = this; + altcha_classCallCheck(this, zl); + /** @type {any} */ + Mt(this, _e); + /** @type {Record} */ + Mt(this, te); + var a; + var r = /* @__PURE__ */new Map(), + l = function l(o, f) { + var s = /* @__PURE__ */hn(f); + return r.set(o, s), s; + }; + var i = new Proxy(altcha_objectSpread(altcha_objectSpread({}, t.props || {}), {}, { + $$events: {} + }), { + get: function get(o, f) { + var _r$get; + return d((_r$get = r.get(f)) !== null && _r$get !== void 0 ? _r$get : l(f, Reflect.get(o, f))); + }, + has: function has(o, f) { + var _r$get2; + return f === an ? !0 : (d((_r$get2 = r.get(f)) !== null && _r$get2 !== void 0 ? _r$get2 : l(f, Reflect.get(o, f))), Reflect.has(o, f)); + }, + set: function set(o, f, s) { + var _r$get3; + return P((_r$get3 = r.get(f)) !== null && _r$get3 !== void 0 ? _r$get3 : l(f, s), s), Reflect.set(o, f, s); + } + }); + Ut(this, te, (t.hydrate ? xl : Fn)(t.component, { + target: t.target, + anchor: t.anchor, + props: i, + context: t.context, + intro: (_t$intro2 = t.intro) !== null && _t$intro2 !== void 0 ? _t$intro2 : !1, + recover: t.recover + })), (!((a = t == null ? void 0 : t.props) != null && a.$$host) || t.sync === !1) && $(), Ut(this, _e, i.$$events); + var _loop2 = function _loop2() { + var o = _Object$keys[_i2]; + o === "$set" || o === "$destroy" || o === "$on" || xt(_this2, o, { + get: function get() { + return H(this, te)[o]; + }, + /** @param {any} value */set: function set(f) { + H(this, te)[o] = f; + }, + enumerable: !0 + }); + }; + for (var _i2 = 0, _Object$keys = Object.keys(H(this, te)); _i2 < _Object$keys.length; _i2++) { + _loop2(); + } + H(this, te).$set = /** @param {Record} next */ + function (o) { + Object.assign(i, o); + }, H(this, te).$destroy = function () { + $l(H(_this2, te)); + }; + } + /** @param {Record} props */ + return altcha_createClass(zl, [{ + key: "$set", + value: function $set(t) { + H(this, te).$set(t); + } + /** + * @param {string} event + * @param {(...args: any[]) => any} callback + * @returns {any} + */ + }, { + key: "$on", + value: function $on(t, r) { + var _this3 = this; + H(this, _e)[t] = H(this, _e)[t] || []; + var l = function l() { + for (var _len = arguments.length, i = new Array(_len), _key = 0; _key < _len; _key++) { + i[_key] = arguments[_key]; + } + return r.call.apply(r, [_this3].concat(i)); + }; + return H(this, _e)[t].push(l), function () { + H(_this3, _e)[t] = H(_this3, _e)[t].filter(/** @param {any} fn */ + function (i) { + return i !== l; + }); + }; + } + }, { + key: "$destroy", + value: function $destroy() { + H(this, te).$destroy(); + } + }]); +}(); +_e = new WeakMap(), te = new WeakMap(); +var Vn; +typeof HTMLElement == "function" && (Vn = /*#__PURE__*/function (_HTMLElement) { + /** + * @param {*} $$componentCtor + * @param {*} $$slots + * @param {*} use_shadow_dom + */ + function Vn(t, r, l) { + var _this4; + altcha_classCallCheck(this, Vn); + _this4 = altcha_callSuper(this, Vn); + /** The Svelte component constructor */ + ne(_this4, "$$ctor"); + /** Slots */ + ne(_this4, "$$s"); + /** @type {any} The Svelte component instance */ + ne(_this4, "$$c"); + /** Whether or not the custom element is connected */ + ne(_this4, "$$cn", !1); + /** @type {Record} Component props data */ + ne(_this4, "$$d", {}); + /** `true` if currently in the process of reflecting component props back to attributes */ + ne(_this4, "$$r", !1); + /** @type {Record} Props definition (name, reflected, type etc) */ + ne(_this4, "$$p_d", {}); + /** @type {Record} Event listeners */ + ne(_this4, "$$l", {}); + /** @type {Map} Event listener unsubscribe functions */ + ne(_this4, "$$l_u", /* @__PURE__ */new Map()); + /** @type {any} The managed render effect for reflecting attributes */ + ne(_this4, "$$me"); + _this4.$$ctor = t, _this4.$$s = r, l && _this4.attachShadow({ + mode: "open" + }); + return _this4; + } + /** + * @param {string} type + * @param {EventListenerOrEventListenerObject} listener + * @param {boolean | AddEventListenerOptions} [options] + */ + altcha_inherits(Vn, _HTMLElement); + return altcha_createClass(Vn, [{ + key: "addEventListener", + value: function addEventListener(t, r, l) { + if (this.$$l[t] = this.$$l[t] || [], this.$$l[t].push(r), this.$$c) { + var i = this.$$c.$on(t, r); + this.$$l_u.set(r, i); + } + altcha_superPropGet(Vn, "addEventListener", this, 3)([t, r, l]); + } + /** + * @param {string} type + * @param {EventListenerOrEventListenerObject} listener + * @param {boolean | AddEventListenerOptions} [options] + */ + }, { + key: "removeEventListener", + value: function removeEventListener(t, r, l) { + if (altcha_superPropGet(Vn, "removeEventListener", this, 3)([t, r, l]), this.$$c) { + var i = this.$$l_u.get(r); + i && (i(), this.$$l_u["delete"](r)); + } + } + }, { + key: "connectedCallback", + value: function () { + var _connectedCallback = altcha_asyncToGenerator(/*#__PURE__*/altcha_regeneratorRuntime().mark(function _callee() { + var _this5 = this; + var t, r, l, _iterator10, _step10, _i4, _iterator11, _step11, _i5, _a, i, _i3, _iterator13, _step13, a, o; + return altcha_regeneratorRuntime().wrap(function _callee$(_context) { + while (1) switch (_context.prev = _context.next) { + case 0: + if (!(this.$$cn = !0, !this.$$c)) { + _context.next = 15; + break; + } + t = function t(i) { + return function (a) { + var o = document.createElement("slot"); + i !== "default" && (o.name = i), ee(a, o); + }; + }; + _context.next = 4; + return Promise.resolve(); + case 4: + if (!(!this.$$cn || this.$$c)) { + _context.next = 6; + break; + } + return _context.abrupt("return"); + case 6: + r = {}, l = Fl(this); + _iterator10 = _createForOfIteratorHelper(this.$$s); + try { + for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) { + _i4 = _step10.value; + _i4 in l && (_i4 === "default" && !this.$$d.children ? (this.$$d.children = t(_i4), r["default"] = !0) : r[_i4] = t(_i4)); + } + } catch (err) { + _iterator10.e(err); + } finally { + _iterator10.f(); + } + _iterator11 = _createForOfIteratorHelper(this.attributes); + try { + for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) { + _i5 = _step11.value; + _a = this.$$g_p(_i5.name); + _a in this.$$d || (this.$$d[_a] = pt(_a, _i5.value, this.$$p_d, "toProp")); + } + } catch (err) { + _iterator11.e(err); + } finally { + _iterator11.f(); + } + for (i in this.$$p_d) !(i in this.$$d) && this[i] !== void 0 && (this.$$d[i] = this[i], delete this[i]); + this.$$c = Ol({ + component: this.$$ctor, + target: this.shadowRoot || this, + props: altcha_objectSpread(altcha_objectSpread({}, this.$$d), {}, { + $$slots: r, + $$host: this + }) + }), this.$$me = dl(function () { + er(function () { + var i; + _this5.$$r = !0; + var _iterator12 = _createForOfIteratorHelper(Et(_this5.$$c)), + _step12; + try { + for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) { + var a = _step12.value; + if (!((i = _this5.$$p_d[a]) != null && i.reflect)) continue; + _this5.$$d[a] = _this5.$$c[a]; + var o = pt(a, _this5.$$d[a], _this5.$$p_d, "toAttribute"); + o == null ? _this5.removeAttribute(_this5.$$p_d[a].attribute || a) : _this5.setAttribute(_this5.$$p_d[a].attribute || a, o); + } + } catch (err) { + _iterator12.e(err); + } finally { + _iterator12.f(); + } + _this5.$$r = !1; + }); + }); + for (_i3 in this.$$l) { + _iterator13 = _createForOfIteratorHelper(this.$$l[_i3]); + try { + for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) { + a = _step13.value; + o = this.$$c.$on(_i3, a); + this.$$l_u.set(a, o); + } + } catch (err) { + _iterator13.e(err); + } finally { + _iterator13.f(); + } + } + this.$$l = {}; + case 15: + case "end": + return _context.stop(); + } + }, _callee, this); + })); + function connectedCallback() { + return _connectedCallback.apply(this, arguments); + } + return connectedCallback; + }() // We don't need this when working within Svelte code, but for compatibility of people using this outside of Svelte + // and setting attributes through setAttribute etc, this is helpful + /** + * @param {string} attr + * @param {string} _oldValue + * @param {string} newValue + */ + }, { + key: "attributeChangedCallback", + value: function attributeChangedCallback(t, r, l) { + var i; + this.$$r || (t = this.$$g_p(t), this.$$d[t] = pt(t, l, this.$$p_d, "toProp"), (i = this.$$c) == null || i.$set(altcha_defineProperty({}, t, this.$$d[t]))); + } + }, { + key: "disconnectedCallback", + value: function disconnectedCallback() { + var _this6 = this; + this.$$cn = !1, Promise.resolve().then(function () { + !_this6.$$cn && _this6.$$c && (_this6.$$c.$destroy(), _this6.$$me(), _this6.$$c = void 0); + }); + } + /** + * @param {string} attribute_name + */ + }, { + key: "$$g_p", + value: function $$g_p(t) { + var _this7 = this; + return Et(this.$$p_d).find(function (r) { + return _this7.$$p_d[r].attribute === t || !_this7.$$p_d[r].attribute && r.toLowerCase() === t; + }) || t; + } + }]); +}(/*#__PURE__*/_wrapNativeSuper(HTMLElement))); +function pt(e, t, r, l) { + var a; + var i = (a = r[e]) == null ? void 0 : a.type; + if (t = i === "Boolean" && typeof t != "boolean" ? t != null : t, !l || !r[e]) return t; + if (l === "toAttribute") switch (i) { + case "Object": + case "Array": + return t == null ? null : JSON.stringify(t); + case "Boolean": + return t ? "" : null; + case "Number": + return t !== null && t !== void 0 ? t : null; + default: + return t; + } else switch (i) { + case "Object": + case "Array": + return t && JSON.parse(t); + case "Boolean": + return t; + // conversion already handled above + case "Number": + return t != null ? +t : t; + default: + return t; + } +} +function Fl(e) { + var t = {}; + return e.childNodes.forEach(function (r) { + t[/** @type {Element} node */ + r.slot || "default"] = !0; + }), t; +} +function Ml(e, t, r, l, i, a) { + var o = /*#__PURE__*/function (_Vn) { + function o() { + var _this8; + altcha_classCallCheck(this, o); + _this8 = altcha_callSuper(this, o, [e, r, i]), _this8.$$p_d = t; + return _this8; + } + altcha_inherits(o, _Vn); + return altcha_createClass(o, null, [{ + key: "observedAttributes", + get: function get() { + return Et(t).map(function (f) { + return (t[f].attribute || f).toLowerCase(); + }); + } + }]); + }(Vn); + return Et(t).forEach(function (f) { + xt(o.prototype, f, { + get: function get() { + return this.$$c && f in this.$$c ? this.$$c[f] : this.$$d[f]; + }, + set: function set(s) { + var h; + s = pt(f, s, t), this.$$d[f] = s; + var c = this.$$c; + if (c) { + var v = (h = Pe(c, f)) == null ? void 0 : h.get; + v ? c[f] = s : c.$set(altcha_defineProperty({}, f, s)); + } + } + }); + }), l.forEach(function (f) { + xt(o.prototype, f, { + get: function get() { + var s; + return (s = this.$$c) == null ? void 0 : s[f]; + } + }); + }), e.element = /** @type {any} */ + o, o; +} +var Bn = new TextEncoder(); +function Ul(e) { + return _toConsumableArray(new Uint8Array(e)).map(function (t) { + return t.toString(16).padStart(2, "0"); + }).join(""); +} +function jl(_x) { + return _jl.apply(this, arguments); +} +function _jl() { + _jl = altcha_asyncToGenerator(/*#__PURE__*/altcha_regeneratorRuntime().mark(function _callee10(e) { + var t, + r, + l, + i, + _args10 = arguments; + return altcha_regeneratorRuntime().wrap(function _callee10$(_context10) { + while (1) switch (_context10.prev = _context10.next) { + case 0: + t = _args10.length > 1 && _args10[1] !== undefined ? _args10[1] : "SHA-256"; + r = _args10.length > 2 && _args10[2] !== undefined ? _args10[2] : 1e5; + l = Date.now().toString(16); + e || (e = Math.round(Math.random() * r)); + _context10.next = 6; + return qn(l, e, t); + case 6: + i = _context10.sent; + return _context10.abrupt("return", { + algorithm: t, + challenge: i, + salt: l, + signature: "" + }); + case 8: + case "end": + return _context10.stop(); + } + }, _callee10); + })); + return _jl.apply(this, arguments); +} +function qn(_x2, _x3, _x4) { + return _qn.apply(this, arguments); +} +function _qn() { + _qn = altcha_asyncToGenerator(/*#__PURE__*/altcha_regeneratorRuntime().mark(function _callee11(e, t, r) { + return altcha_regeneratorRuntime().wrap(function _callee11$(_context11) { + while (1) switch (_context11.prev = _context11.next) { + case 0: + if (!((typeof crypto === "undefined" ? "undefined" : altcha_typeof(crypto)) > "u" || !("subtle" in crypto) || !("digest" in crypto.subtle))) { + _context11.next = 2; + break; + } + throw new Error("Web Crypto is not available. Secure context is required (https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts)."); + case 2: + _context11.t0 = Ul; + _context11.next = 5; + return crypto.subtle.digest(r.toUpperCase(), Bn.encode(e + t)); + case 5: + _context11.t1 = _context11.sent; + return _context11.abrupt("return", (0, _context11.t0)(_context11.t1)); + case 7: + case "end": + return _context11.stop(); + } + }, _callee11); + })); + return _qn.apply(this, arguments); +} +function Vl(e, t) { + var r = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : "SHA-256"; + var l = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1e6; + var i = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; + var a = new AbortController(), + o = Date.now(); + return { + promise: altcha_asyncToGenerator(/*#__PURE__*/altcha_regeneratorRuntime().mark(function _callee2() { + var s; + return altcha_regeneratorRuntime().wrap(function _callee2$(_context2) { + while (1) switch (_context2.prev = _context2.next) { + case 0: + s = i; + case 1: + if (!(s <= l)) { + _context2.next = 13; + break; + } + if (!a.signal.aborted) { + _context2.next = 4; + break; + } + return _context2.abrupt("return", null); + case 4: + _context2.next = 6; + return qn(t, s, r); + case 6: + _context2.t0 = _context2.sent; + _context2.t1 = e; + if (!(_context2.t0 === _context2.t1)) { + _context2.next = 10; + break; + } + return _context2.abrupt("return", { + number: s, + took: Date.now() - o + }); + case 10: + s += 1; + _context2.next = 1; + break; + case 13: + return _context2.abrupt("return", null); + case 14: + case "end": + return _context2.stop(); + } + }, _callee2); + }))(), + controller: a + }; +} +function Bl() { + try { + return Intl.DateTimeFormat().resolvedOptions().timeZone; + } catch (_unused3) {} +} +function ql(e) { + var t = atob(e), + r = new Uint8Array(t.length); + for (var l = 0; l < t.length; l++) r[l] = t.charCodeAt(l); + return r; +} +function Hl(e) { + var t = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 12; + var r = new Uint8Array(t); + for (var l = 0; l < t; l++) r[l] = e % 256, e = Math.floor(e / 256); + return r; +} +function Wl(_x5) { + return _Wl.apply(this, arguments); +} +function _Wl() { + _Wl = altcha_asyncToGenerator(/*#__PURE__*/altcha_regeneratorRuntime().mark(function _callee13(e) { + var t, + r, + l, + i, + a, + o, + f, + s, + c, + v, + _args13 = arguments; + return altcha_regeneratorRuntime().wrap(function _callee13$(_context13) { + while (1) switch (_context13.prev = _context13.next) { + case 0: + t = _args13.length > 1 && _args13[1] !== undefined ? _args13[1] : ""; + r = _args13.length > 2 && _args13[2] !== undefined ? _args13[2] : 1e6; + l = _args13.length > 3 && _args13[3] !== undefined ? _args13[3] : 0; + i = "AES-GCM", a = new AbortController(), o = Date.now(), f = /*#__PURE__*/function () { + var _ref7 = altcha_asyncToGenerator(/*#__PURE__*/altcha_regeneratorRuntime().mark(function _callee12() { + var v, h; + return altcha_regeneratorRuntime().wrap(function _callee12$(_context12) { + while (1) switch (_context12.prev = _context12.next) { + case 0: + v = l; + case 1: + if (!(v <= r)) { + _context12.next = 17; + break; + } + if (!(a.signal.aborted || !s || !c)) { + _context12.next = 4; + break; + } + return _context12.abrupt("return", null); + case 4: + _context12.prev = 4; + _context12.next = 7; + return crypto.subtle.decrypt({ + name: i, + iv: Hl(v) + }, s, c); + case 7: + h = _context12.sent; + if (!h) { + _context12.next = 10; + break; + } + return _context12.abrupt("return", { + clearText: new TextDecoder().decode(h), + took: Date.now() - o + }); + case 10: + _context12.next = 14; + break; + case 12: + _context12.prev = 12; + _context12.t0 = _context12["catch"](4); + case 14: + v += 1; + _context12.next = 1; + break; + case 17: + return _context12.abrupt("return", null); + case 18: + case "end": + return _context12.stop(); + } + }, _callee12, null, [[4, 12]]); + })); + return function f() { + return _ref7.apply(this, arguments); + }; + }(); + s = null, c = null; + _context13.prev = 5; + c = ql(e); + _context13.next = 9; + return crypto.subtle.digest("SHA-256", Bn.encode(t)); + case 9: + v = _context13.sent; + _context13.next = 12; + return crypto.subtle.importKey("raw", v, i, !1, ["decrypt"]); + case 12: + s = _context13.sent; + _context13.next = 18; + break; + case 15: + _context13.prev = 15; + _context13.t0 = _context13["catch"](5); + return _context13.abrupt("return", { + promise: Promise.reject(), + controller: a + }); + case 18: + return _context13.abrupt("return", { + promise: f(), + controller: a + }); + case 19: + case "end": + return _context13.stop(); + } + }, _callee13, null, [[5, 15]]); + })); + return _Wl.apply(this, arguments); +} +var E = /* @__PURE__ */function (e) { + return 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); +var ia = { + hash: "svelte-ddsc3z", + 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}" +}; +function la(e, t) { + var Lr, Dr; + Nn(t, !0), Cl(e, ia); + var 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, function () { + return Math.min(16, navigator.hardwareConcurrency || 8); + }), + tt = C(t, "workerurl", 7, void 0); + var nr = ["SHA-256", "SHA-384", "SHA-512"], + ir = "Visit Altcha.org", + lr = "https://altcha.org/", + rt = function rt(n, u) { + t.$$host.dispatchEvent(new CustomEvent(n, { + detail: u + })); + }, + ar = (Dr = (Lr = document.documentElement.lang) == null ? void 0 : Lr.split("-")) == null ? void 0 : Dr[0], + Dt = /* @__PURE__ */De(function () { + var n; + return i() && new URL(i(), location.origin).host.endsWith(".altcha.org") && !!((n = i()) != null && n.includes("apiKey=ckey_")); + }), + Pt = /* @__PURE__ */De(function () { + return a() ? wr(a()) : void 0; + }), + or = /* @__PURE__ */De(function () { + return X() ? wr(X()) : {}; + }), + Q = /* @__PURE__ */De(function () { + var n; + return altcha_objectSpread({ + ariaLinkLabel: ir, + error: "Verification failed. Try again later.", + expired: "Verification expired. Try again.", + footer: "Protected by ALTCHA"), + label: "I'm not a robot", + verified: "Verified", + verifying: "Verifying...", + waitAlert: "Verifying... please wait." + }, d(or)); + }), + sr = /* @__PURE__ */De(function () { + return z() || "".concat(T(), "_checkbox"); + }); + var 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); + Vt(function () { + Xn(d(Ve)); + }), Vt(function () { + Qn(d(R)); + }), Dl(function () { + 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); + }), jn(function () { + var n; + I("mounted", "1.3.0"), I("workers", Me()), Jn(), I("plugins", xe.length ? xe.map(function (u) { + return 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(function () { + rt("load"); + }); + }); + function fr(n, u) { + return btoa(JSON.stringify({ + algorithm: n.algorithm, + challenge: n.challenge, + number: u.number, + salt: n.salt, + signature: n.signature, + test: U() ? !0 : void 0, + took: u.took + })); + } + function Hn() { + for (var _i6 = 0, _xe = xe; _i6 < _xe.length; _i6++) { + var n = _xe[_i6]; + n.destroy(); + } + } + function ur() { + i() && be() && d(R) === E.VERIFIED ? $e() : lt(E.EXPIRED, d(Q).expired); + } + function Wn() { + return _Wn.apply(this, arguments); + } + function _Wn() { + _Wn = altcha_asyncToGenerator(/*#__PURE__*/altcha_regeneratorRuntime().mark(function _callee3() { + var n, L, u, _, b, S, x, p, q, _L, qe, _L2; + return altcha_regeneratorRuntime().wrap(function _callee3$(_context3) { + while (1) switch (_context3.prev = _context3.next) { + case 0: + if (!M()) { + _context3.next = 2; + break; + } + throw I("mocking error"), new Error("Mocked error."); + case 2: + if (!d(Pt)) { + _context3.next = 4; + break; + } + return _context3.abrupt("return", (I("using provided json data"), d(Pt))); + case 4: + if (!U()) { + _context3.next = 6; + break; + } + return _context3.abrupt("return", (I("generating test challenge", { + test: U() + }), jl(typeof U() != "boolean" ? +U() : void 0))); + case 6: + if (!i() && y) { + L = y.getAttribute("action"); + L != null && L.includes("/form/") && i(L + "/altcha"); + } + if (i()) { + _context3.next = 9; + break; + } + throw new Error("Attribute challengeurl not set."); + case 9: + I("fetching challenge from", i()); + u = null, _ = null; + if (!o()) { + _context3.next = 18; + break; + } + if (!(I("using customfetch"), typeof o() == "string")) { + _context3.next = 17; + break; + } + if (!(u = globalThis[o()] || null, !u)) { + _context3.next = 15; + break; + } + throw new Error("Custom fetch function not found: ".concat(o())); + case 15: + _context3.next = 18; + break; + case 17: + u = o(); + case 18: + b = { + headers: N() !== !1 ? { + "x-altcha-spam-filter": "1" + } : {} + }; + if (!u) { + _context3.next = 27; + break; + } + _context3.next = 22; + return u(i(), b); + case 22: + _ = _context3.sent; + if (!(!_ || !(_ instanceof Response))) { + _context3.next = 25; + break; + } + throw new Error("Custom fetch function did not return a response."); + case 25: + _context3.next = 30; + break; + case 27: + _context3.next = 29; + return fetch(i(), b); + case 29: + _ = _context3.sent; + case 30: + if (!(_.status !== 200)) { + _context3.next = 32; + break; + } + throw new Error("Server responded with ".concat(_.status, ".")); + case 32: + S = _.headers.get("X-Altcha-Config"); + _context3.next = 35; + return _.json(); + case 35: + x = _context3.sent; + p = new URLSearchParams((n = x.salt.split("?")) == null ? void 0 : n[1]); + q = p.get("expires") || p.get("expire"); + if (q) { + _L = new Date(+q * 1e3), qe = isNaN(_L.getTime()) ? 0 : _L.getTime() - Date.now(); + qe > 0 && Ot(qe); + } + if (S) try { + _L2 = JSON.parse(S); + _L2 && altcha_typeof(_L2) == "object" && (_L2.verifyurl && (_L2.verifyurl = new URL(_L2.verifyurl, new URL(i())).toString()), Er(_L2)); + } catch (L) { + I("unable to configure from X-Altcha-Config", L); + } + return _context3.abrupt("return", x); + case 41: + case "end": + return _context3.stop(); + } + }, _callee3); + })); + return _Wn.apply(this, arguments); + } + function Yn(n) { + var _; + var u = y == null ? void 0 : y.querySelector(typeof n == "string" ? "input[name=\"".concat(n, "\"]") : 'input[type="email"]:not([data-no-spamfilter])'); + return ((_ = u == null ? void 0 : u.value) == null ? void 0 : _.slice(u.value.indexOf("@"))) || void 0; + } + function Zn() { + return N() === "ipAddress" ? { + blockedCountries: void 0, + classifier: void 0, + disableRules: void 0, + email: !1, + expectedCountries: void 0, + expectedLanguages: void 0, + fields: !1, + ipAddress: void 0, + text: void 0, + timeZone: void 0 + } : altcha_typeof(N()) == "object" ? N() : { + blockedCountries: void 0, + classifier: void 0, + disableRules: void 0, + email: void 0, + expectedCountries: void 0, + expectedLanguages: void 0, + fields: void 0, + ipAddress: void 0, + text: void 0, + timeZone: void 0 + }; + } + function Gn(n) { + return _toConsumableArray((y == null ? void 0 : y.querySelectorAll(n != null && n.length ? n.map(function (_) { + return "input[name=\"".concat(_, "\"]"); + }).join(", ") : 'input[type="text"]:not([data-no-spamfilter]), textarea:not([data-no-spamfilter])')) || []).reduce(function (_, b) { + var S = b.name, + x = b.value; + return S && x && (_[S] = /\n/.test(x) ? x.replace(new RegExp("(? 0 && arguments[0] !== undefined ? arguments[0] : 20; + if (d(j)) 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) { + var 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)); + if (p ? d(j).style.top = "".concat(_.top - (b.height + u), "px") : d(j).style.top = "".concat(_.bottom + u, "px"), d(j).style.left = "".concat(q, "px"), d(j).setAttribute("data-floating", p ? "top" : "bottom"), d(nt)) { + var L = d(nt).getBoundingClientRect(); + d(nt).style.left = _.left - q + _.width / 2 - L.width / 2 + "px"; + } + } else I("unable to find floating anchor element"); + } + function ei(_x6) { + return _ei.apply(this, arguments); + } + function _ei() { + _ei = altcha_asyncToGenerator(/*#__PURE__*/altcha_regeneratorRuntime().mark(function _callee4(n) { + var u, _Zn, S, x, p, q, L, qe, ot, st, vi, Pr, _, b; + return altcha_regeneratorRuntime().wrap(function _callee4$(_context4) { + while (1) switch (_context4.prev = _context4.next) { + case 0: + if (Ee()) { + _context4.next = 2; + break; + } + throw new Error("Attribute verifyurl not set."); + case 2: + I("requesting server verification from", Ee()); + u = { + payload: n + }; + if (N() !== !1) { + _Zn = Zn(), S = _Zn.blockedCountries, x = _Zn.classifier, p = _Zn.disableRules, q = _Zn.email, L = _Zn.expectedLanguages, qe = _Zn.expectedCountries, ot = _Zn.fields, st = _Zn.ipAddress, vi = _Zn.text, Pr = _Zn.timeZone; + 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(); + } + _context4.next = 7; + return fetch(Ee(), { + body: JSON.stringify(u), + headers: { + "content-type": "application/json" + }, + method: "POST" + }); + case 7: + _ = _context4.sent; + if (!(_.status !== 200)) { + _context4.next = 10; + break; + } + throw new Error("Server responded with ".concat(_.status, ".")); + case 10: + _context4.next = 12; + return _.json(); + case 12: + b = _context4.sent; + if (!(b != null && b.payload && P(Ne, le(b.payload)), rt("serververification", b), l() && b.classification === "BAD")) { + _context4.next = 15; + break; + } + throw new Error("SpamFilter returned negative classification."); + case 15: + case "end": + return _context4.stop(); + } + }, _callee4); + })); + return _ei.apply(this, arguments); + } + function Ot(n) { + I("expire", n), fe && (clearTimeout(fe), fe = null), n < 1 ? ur() : fe = setTimeout(ur, n); + } + function pr(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); + } + function yr(n) { + if (!n.algorithm) throw new Error("Invalid challenge. Property algorithm is missing."); + if (n.signature === void 0) throw new Error("Invalid challenge. Property signature is missing."); + if (!nr.includes(n.algorithm.toUpperCase())) throw new Error("Unknown algorithm value. Allowed values: ".concat(nr.join(", "))); + if (!n.challenge || n.challenge.length < 40) throw new Error("Challenge is too short. Min. 40 chars."); + if (!n.salt || n.salt.length < 10) throw new Error("Salt is too short. Min. 10 chars."); + } + function br(_x7) { + return _br.apply(this, arguments); + } + function _br() { + _br = altcha_asyncToGenerator(/*#__PURE__*/altcha_regeneratorRuntime().mark(function _callee5(n) { + var u, _; + return altcha_regeneratorRuntime().wrap(function _callee5$(_context5) { + while (1) switch (_context5.prev = _context5.next) { + case 0: + u = null; + if (!("Worker" in window)) { + _context5.next = 13; + break; + } + _context5.prev = 2; + _context5.next = 5; + return ti(n, n.maxnumber); + case 5: + u = _context5.sent; + _context5.next = 11; + break; + case 8: + _context5.prev = 8; + _context5.t0 = _context5["catch"](2); + I(_context5.t0); + case 11: + if (!((u == null ? void 0 : u.number) !== void 0 || "obfuscated" in n)) { + _context5.next = 13; + break; + } + return _context5.abrupt("return", { + data: n, + solution: u + }); + case 13: + if (!("obfuscated" in n)) { + _context5.next = 22; + break; + } + _context5.next = 16; + return Wl(n.obfuscated, n.key, n.maxnumber); + case 16: + _ = _context5.sent; + _context5.t1 = n; + _context5.next = 20; + return _.promise; + case 20: + _context5.t2 = _context5.sent; + return _context5.abrupt("return", { + data: _context5.t1, + solution: _context5.t2 + }); + case 22: + _context5.t3 = n; + _context5.next = 25; + return Vl(n.challenge, n.salt, n.algorithm, n.maxnumber || Y()).promise; + case 25: + _context5.t4 = _context5.sent; + return _context5.abrupt("return", { + data: _context5.t3, + solution: _context5.t4 + }); + case 27: + case "end": + return _context5.stop(); + } + }, _callee5, null, [[2, 8]]); + })); + return _br.apply(this, arguments); + } + function ti(_x8) { + return _ti.apply(this, arguments); + } + function _ti() { + _ti = altcha_asyncToGenerator(/*#__PURE__*/altcha_regeneratorRuntime().mark(function _callee6(n) { + var u, + _, + b, + p, + S, + x, + _i10, + _b2, + _p, + _args6 = arguments; + return altcha_regeneratorRuntime().wrap(function _callee6$(_context6) { + while (1) switch (_context6.prev = _context6.next) { + case 0: + u = _args6.length > 1 && _args6[1] !== undefined ? _args6[1] : typeof U() == "number" ? U() : Y(); + _ = _args6.length > 2 && _args6[2] !== undefined ? _args6[2] : Math.ceil(Me()); + b = []; + _ = Math.min(16, Math.max(1, _)); + for (p = 0; p < _; p++) b.push(altchaCreateWorker(tt())); + S = Math.ceil(u / _); + _context6.next = 8; + return Promise.all(b.map(function (p, q) { + var L = q * S; + return new Promise(function (qe) { + p.addEventListener("message", function (ot) { + if (ot.data) for (var _i9 = 0, _b = b; _i9 < _b.length; _i9++) { + var st = _b[_i9]; + st !== p && st.postMessage({ + type: "abort" + }); + } + qe(ot.data); + }), p.postMessage({ + payload: n, + max: L + S, + start: L, + type: "work" + }); + }); + })); + case 8: + x = _context6.sent; + for (_i10 = 0, _b2 = b; _i10 < _b2.length; _i10++) { + _p = _b2[_i10]; + _p.terminate(); + } + return _context6.abrupt("return", x.find(function (p) { + return !!p; + }) || null); + case 11: + case "end": + return _context6.stop(); + } + }, _callee6); + })); + return _ti.apply(this, arguments); + } + function it() { + return _it.apply(this, arguments); + } + function _it() { + _it = altcha_asyncToGenerator(/*#__PURE__*/altcha_regeneratorRuntime().mark(function _callee7() { + var n; + return altcha_regeneratorRuntime().wrap(function _callee7$(_context7) { + while (1) switch (_context7.prev = _context7.next) { + case 0: + if (F()) { + _context7.next = 3; + break; + } + Le(E.ERROR); + return _context7.abrupt("return"); + case 3: + n = xe.find(function (u) { + return u.constructor.pluginName === "obfuscation"; + }); + if (!(!n || !("clarify" in n))) { + _context7.next = 7; + break; + } + Le(E.ERROR), I("Plugin `obfuscation` not found. Import `altcha/plugins/obfuscation` to load it."); + return _context7.abrupt("return"); + case 7: + if (!("clarify" in n && typeof n.clarify == "function")) { + _context7.next = 9; + break; + } + return _context7.abrupt("return", n.clarify()); + case 9: + case "end": + return _context7.stop(); + } + }, _callee7); + })); + return _it.apply(this, arguments); + } + function Er(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(altcha_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); + } + function xr() { + return { + auto: r(), + blockspam: l(), + challengeurl: i(), + debug: f(), + delay: s(), + expire: c(), + floating: v(), + floatinganchor: h(), + floatingoffset: g(), + hidefooter: m(), + hidelogo: w(), + name: T(), + maxnumber: Y(), + mockerror: M(), + obfuscated: F(), + refetchonexpire: be(), + spamfilter: N(), + strings: d(Q), + test: U(), + verifyurl: Ee(), + workers: Me(), + workerurl: tt() + }; + } + function $r() { + return je; + } + function ri(n) { + return xe.find(function (u) { + return u.constructor.pluginName === n; + }); + } + function kr() { + return d(R); + } + function lt() { + var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : E.UNVERIFIED; + var u = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + fe && (clearTimeout(fe), fe = null), P(Ue, !1), P(Ne, null), Le(n, u); + } + function Cr(n) { + je = n; + } + function Le(n) { + var u = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + P(R, le(n)), P(Ve, le(u)), rt("statechange", { + payload: d(Ne), + state: d(R) + }); + } + function $e() { + return _$e.apply(this, arguments); + } + function _$e() { + _$e = altcha_asyncToGenerator(/*#__PURE__*/altcha_regeneratorRuntime().mark(function _callee8() { + return altcha_regeneratorRuntime().wrap(function _callee8$(_context8) { + while (1) switch (_context8.prev = _context8.next) { + case 0: + lt(E.VERIFYING); + _context8.next = 3; + return new Promise(function (n) { + return setTimeout(n, s() || 0); + }); + case 3: + return _context8.abrupt("return", Wn().then(function (n) { + return yr(n), I("challenge", n), br(n); + }).then(function (_ref6) { + var n = _ref6.data, + u = _ref6.solution; + if (I("solution", u), "challenge" in n && u && !("clearText" in u)) if ((u == null ? void 0 : u.number) !== void 0) { + if (Ee()) return ei(fr(n, u)); + P(Ne, le(fr(n, u))), I("payload", d(Ne)); + } else throw I("Unable to find a solution. Ensure that the 'maxnumber' attribute is greater than the randomly generated number."), new Error("Unexpected result returned."); + }).then(function () { + Le(E.VERIFIED), I("verified"), ol().then(function () { + rt("verified", { + payload: d(Ne) + }); + }); + })["catch"](function (n) { + I(n), Le(E.ERROR, n.message); + })); + case 4: + case "end": + return _context8.stop(); + } + }, _callee8); + })); + return _$e.apply(this, arguments); + } + var Ar = na(), + Rr = Br(Ar); + kl(Rr, t, "default", {}); + var at = he(Rr, 2), + zt = G(at), + Ir = G(zt); + { + var ni = function ni(n) { + var u = Yl(); + ee(n, u); + }; + ke(Ir, function (n) { + d(R) === E.VERIFYING && n(ni); + }); + } + var _t = he(Ir, 2); + var Sr; + var Be = G(_t); + Gr(Be), Be.__change = Kn, Z(_t); + var Ft = he(_t, 2), + ii = G(Ft); + { + var li = function li(n) { + var u = Zl(), + _ = Br(u), + b = G(_); + Ze(b, function () { + return d(Q).verified; + }), Z(_); + var S = he(_, 2); + Gr(S), We(function () { + ie(S, "name", T()), Tl(S, d(Ne)); + }), ee(n, u); + }, + ai = function ai(n, u) { + { + var _ = function _(S) { + var x = Gl(), + p = G(x); + Ze(p, function () { + return d(Q).verifying; + }), Z(x), ee(S, x); + }, + b = function b(S) { + var x = Jl(), + p = G(x); + Ze(p, function () { + return d(Q).label; + }), Z(x), We(function () { + return ie(x, "for", d(sr)); + }), ee(S, x); + }; + ke(n, function (S) { + d(R) === E.VERIFYING ? S(_) : S(b, !1); + }, u); + } + }; + ke(ii, function (n) { + d(R) === E.VERIFIED ? n(li) : n(ai, !1); + }); + } + Z(Ft); + var oi = he(Ft, 2); + { + var si = function si(n) { + var u = Kl(), + _ = G(u); + ie(_, "href", lr), Z(u), We(function () { + return ie(_, "aria-label", d(Q).ariaLinkLabel); + }), ee(n, u); + }; + ke(oi, function (n) { + (w() !== !0 || d(Dt)) && n(si); + }); + } + Z(zt); + var Tr = he(zt, 2); + { + var fi = function fi(n) { + var u = ea(), + _ = he(G(u), 2); + { + var b = function b(x) { + var p = Xl(), + q = G(p); + Ze(q, function () { + return d(Q).expired; + }), Z(p), We(function () { + return ie(p, "title", d(Ve)); + }), ee(x, p); + }, + S = function S(x) { + var p = Ql(), + q = G(p); + Ze(q, function () { + return d(Q).error; + }), Z(p), We(function () { + return ie(p, "title", d(Ve)); + }), ee(x, p); + }; + ke(_, function (x) { + d(R) === E.EXPIRED ? x(b) : x(S, !1); + }); + } + Z(u), ee(n, u); + }; + ke(Tr, function (n) { + (d(Ve) || d(R) === E.EXPIRED) && n(fi); + }); + } + var Nr = he(Tr, 2); + { + var ui = function ui(n) { + var u = ta(), + _ = G(u), + b = G(_); + Ze(b, function () { + return d(Q).footer; + }), Z(_), Z(u), ee(n, u); + }; + ke(Nr, function (n) { + d(Q).footer && (m() !== !0 || d(Dt)) && n(ui); + }); + } + var ci = he(Nr, 2); + { + var di = function di(n) { + var u = ra(); + Xr(u, function (_) { + return P(nt, _); + }, function () { + return d(nt); + }), ee(n, u); + }; + ke(ci, function (n) { + v() && n(di); + }); + } + return Z(at), Xr(at, function (n) { + return P(j, n); + }, function () { + return d(j); + }), We(function (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"); + }, [function () { + return { + "altcha-hidden": d(R) === E.VERIFYING + }; + }]), yl("invalid", Be, _r), Ll(Be, function () { + return d(Ue); + }, function (n) { + return P(Ue, n); + }), ee(e, Ar), Ln({ + clarify: it, + configure: Er, + getConfiguration: xr, + getFloatingAnchor: $r, + getPlugin: ri, + getState: kr, + reset: lt, + setFloatingAnchor: Cr, + setState: Le, + verify: $e, + get auto() { + return r(); + }, + set auto(n) { + if (n === void 0) { + n = void 0; + } + r(n), $(); + }, + get blockspam() { + return l(); + }, + set blockspam(n) { + if (n === void 0) { + n = void 0; + } + l(n), $(); + }, + get challengeurl() { + return i(); + }, + set challengeurl(n) { + if (n === void 0) { + n = void 0; + } + i(n), $(); + }, + get challengejson() { + return a(); + }, + set challengejson(n) { + if (n === void 0) { + n = void 0; + } + a(n), $(); + }, + get customfetch() { + return o(); + }, + set customfetch(n) { + if (n === void 0) { + n = void 0; + } + o(n), $(); + }, + get debug() { + return f(); + }, + set debug(n) { + if (n === void 0) { + n = !1; + } + f(n), $(); + }, + get delay() { + return s(); + }, + set delay(n) { + if (n === void 0) { + n = 0; + } + s(n), $(); + }, + get expire() { + return c(); + }, + set expire(n) { + if (n === void 0) { + n = void 0; + } + c(n), $(); + }, + get floating() { + return v(); + }, + set floating(n) { + if (n === void 0) { + n = void 0; + } + v(n), $(); + }, + get floatinganchor() { + return h(); + }, + set floatinganchor(n) { + if (n === void 0) { + n = void 0; + } + h(n), $(); + }, + get floatingoffset() { + return g(); + }, + set floatingoffset(n) { + if (n === void 0) { + n = void 0; + } + g(n), $(); + }, + get hidefooter() { + return m(); + }, + set hidefooter(n) { + if (n === void 0) { + n = !1; + } + m(n), $(); + }, + get hidelogo() { + return w(); + }, + set hidelogo(n) { + if (n === void 0) { + n = !1; + } + w(n), $(); + }, + get id() { + return z(); + }, + set id(n) { + if (n === void 0) { + n = void 0; + } + z(n), $(); + }, + get name() { + return T(); + }, + set name(n) { + if (n === void 0) { + n = "altcha"; + } + T(n), $(); + }, + get maxnumber() { + return Y(); + }, + set maxnumber(n) { + if (n === void 0) { + n = 1e6; + } + Y(n), $(); + }, + get mockerror() { + return M(); + }, + set mockerror(n) { + if (n === void 0) { + n = !1; + } + M(n), $(); + }, + get obfuscated() { + return F(); + }, + set obfuscated(n) { + if (n === void 0) { + n = void 0; + } + F(n), $(); + }, + get plugins() { + return se(); + }, + set plugins(n) { + if (n === void 0) { + n = void 0; + } + se(n), $(); + }, + get refetchonexpire() { + return be(); + }, + set refetchonexpire(n) { + if (n === void 0) { + n = !0; + } + be(n), $(); + }, + get spamfilter() { + return N(); + }, + set spamfilter(n) { + if (n === void 0) { + n = !1; + } + N(n), $(); + }, + get strings() { + return X(); + }, + set strings(n) { + if (n === void 0) { + n = void 0; + } + X(n), $(); + }, + get test() { + return U(); + }, + set test(n) { + if (n === void 0) { + n = !1; + } + U(n), $(); + }, + get verifyurl() { + return Ee(); + }, + set verifyurl(n) { + if (n === void 0) { + n = void 0; + } + Ee(n), $(); + }, + get workers() { + return Me(); + }, + set workers(n) { + if (n === void 0) { + n = Math.min(16, navigator.hardwareConcurrency || 8); + } + Me(n), $(); + }, + get workerurl() { + return tt(); + }, + set workerurl(n) { + if (n === void 0) { + n = void 0; + } + tt(n), $(); + } + }); +} +bl(["change"]); +customElements.define("altcha-widget", Ml(la, { + blockspam: { + type: "Boolean" + }, + debug: { + type: "Boolean" + }, + delay: { + type: "Number" + }, + expire: { + type: "Number" + }, + floatingoffset: { + type: "Number" + }, + hidefooter: { + type: "Boolean" + }, + hidelogo: { + type: "Boolean" + }, + maxnumber: { + type: "Number" + }, + mockerror: { + type: "Boolean" + }, + refetchonexpire: { + type: "Boolean" + }, + test: { + type: "Boolean" + }, + workers: { + type: "Number" + }, + auto: {}, + challengeurl: {}, + challengejson: {}, + customfetch: {}, + floating: {}, + floatinganchor: {}, + id: {}, + name: {}, + obfuscated: {}, + plugins: {}, + spamfilter: {}, + strings: {}, + verifyurl: {}, + workerurl: {} +}, ["default"], ["clarify", "configure", "getConfiguration", "getFloatingAnchor", "getPlugin", "getState", "reset", "setFloatingAnchor", "setState", "verify"], !1)); +globalThis.altchaCreateWorker = function (e) { + return e ? new Worker(new URL(e)) : new _i(); +}; +globalThis.altchaPlugins = globalThis.altchaPlugins || []; + +;// ./static/js/pages/core/contact.js +function contact_typeof(o) { "@babel/helpers - typeof"; return contact_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, contact_typeof(o); } +function contact_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function contact_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, contact_toPropertyKey(o.key), o); } } +function contact_createClass(e, r, t) { return r && contact_defineProperties(e.prototype, r), t && contact_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function contact_callSuper(t, o, e) { return o = contact_getPrototypeOf(o), contact_possibleConstructorReturn(t, contact_isNativeReflectConstruct() ? Reflect.construct(o, e || [], contact_getPrototypeOf(t).constructor) : o.apply(t, e)); } +function contact_possibleConstructorReturn(t, e) { if (e && ("object" == contact_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return contact_assertThisInitialized(t); } +function contact_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function contact_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (contact_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function contact_getPrototypeOf(t) { return contact_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, contact_getPrototypeOf(t); } +function contact_inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && contact_setPrototypeOf(t, e); } +function contact_setPrototypeOf(t, e) { return contact_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, contact_setPrototypeOf(t, e); } +function contact_defineProperty(e, r, t) { return (r = contact_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function contact_toPropertyKey(t) { var i = contact_toPrimitive(t, "string"); return "symbol" == contact_typeof(i) ? i : i + ""; } +function contact_toPrimitive(t, r) { if ("object" != contact_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != contact_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +// internal + +// vendor + +var PageContact = /*#__PURE__*/function (_BasePage) { + function PageContact(router) { + contact_classCallCheck(this, PageContact); + return contact_callSuper(this, PageContact, [router]); + } + contact_inherits(PageContact, _BasePage); + return contact_createClass(PageContact, [{ + key: "initialize", + value: function initialize() { + this.sharedInitialize(); + this.hookupButtonSubmitFormContactUs(); + } + }, { + key: "hookupButtonSubmitFormContactUs", + value: function hookupButtonSubmitFormContactUs() { + var button = document.querySelector('form input[type="submit"]'); + button.classList.add(flagButton); + button.classList.add(flagButtonPrimary); + } + }]); +}(BasePage); +contact_defineProperty(PageContact, "hash", hashPageContact); + +;// ./static/js/pages/core/contact-success.js +function contact_success_typeof(o) { "@babel/helpers - typeof"; return contact_success_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, contact_success_typeof(o); } +function contact_success_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } +function contact_success_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, contact_success_toPropertyKey(o.key), o); } } +function contact_success_createClass(e, r, t) { return r && contact_success_defineProperties(e.prototype, r), t && contact_success_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } +function contact_success_callSuper(t, o, e) { return o = contact_success_getPrototypeOf(o), contact_success_possibleConstructorReturn(t, contact_success_isNativeReflectConstruct() ? Reflect.construct(o, e || [], contact_success_getPrototypeOf(t).constructor) : o.apply(t, e)); } +function contact_success_possibleConstructorReturn(t, e) { if (e && ("object" == contact_success_typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return contact_success_assertThisInitialized(t); } +function contact_success_assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } +function contact_success_isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (contact_success_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } +function contact_success_getPrototypeOf(t) { return contact_success_getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, contact_success_getPrototypeOf(t); } +function contact_success_inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && contact_success_setPrototypeOf(t, e); } +function contact_success_setPrototypeOf(t, e) { return contact_success_setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, contact_success_setPrototypeOf(t, e); } +function contact_success_defineProperty(e, r, t) { return (r = contact_success_toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } +function contact_success_toPropertyKey(t) { var i = contact_success_toPrimitive(t, "string"); return "symbol" == contact_success_typeof(i) ? i : i + ""; } +function contact_success_toPrimitive(t, r) { if ("object" != contact_success_typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != contact_success_typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +// internal + +// vendor + +var PageContactSuccess = /*#__PURE__*/function (_BasePage) { + function PageContactSuccess(router) { + contact_success_classCallCheck(this, PageContactSuccess); + return contact_success_callSuper(this, PageContactSuccess, [router]); + } + contact_success_inherits(PageContactSuccess, _BasePage); + return contact_success_createClass(PageContactSuccess, [{ + key: "initialize", + value: function initialize() { + this.sharedInitialize(); + } + }]); +}(BasePage); +contact_success_defineProperty(PageContactSuccess, "hash", hashPageContactSuccess); + ;// ./static/js/pages/dog/home.js function dog_home_typeof(o) { "@babel/helpers - typeof"; return dog_home_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, dog_home_typeof(o); } function dog_home_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } @@ -1286,9 +4900,9 @@ dog_home_defineProperty(PageDogHome, "hash", hashPageDogHome); ;// ./static/js/lib/business_objects/business_objects.js function business_objects_typeof(o) { "@babel/helpers - typeof"; return business_objects_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, business_objects_typeof(o); } -function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } -function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } -function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } +function business_objects_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = business_objects_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; } +function business_objects_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return business_objects_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? business_objects_arrayLikeToArray(r, a) : void 0; } } +function business_objects_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function business_objects_classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function business_objects_defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, business_objects_toPropertyKey(o.key), o); } } function business_objects_createClass(e, r, t) { return r && business_objects_defineProperties(e.prototype, r), t && business_objects_defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; } @@ -1328,7 +4942,7 @@ var BusinessObjects = /*#__PURE__*/function () { value: function getListObjectsFromIdDictAndCsv(idDict, idCsv) { var listObjects = []; var ids = idCsv.split(','); - var _iterator = _createForOfIteratorHelper(ids), + var _iterator = business_objects_createForOfIteratorHelper(ids), _step; try { for (_iterator.s(); !(_step = _iterator.n()).done;) { @@ -4296,6 +7910,8 @@ function router_toPrimitive(t, r) { if ("object" != router_typeof(t) || !t) retu // Pages // Core + + // Dog @@ -4332,6 +7948,14 @@ var Router = /*#__PURE__*/function () { name: 'PageHome', module: PageHome }; + this.pages[hashPageContact] = { + name: 'PageContact', + module: PageContact + }; + this.pages[hashPageContactSuccess] = { + name: 'PageContactSuccess', + module: PageContactSuccess + }; // Dog this.pages[hashPageDogHome] = { name: 'PageDogHome', @@ -4398,6 +8022,14 @@ var Router = /*#__PURE__*/function () { var isPopState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; return _this.navigateToHash(hashPageHome, isPopState); }; + this.routes[hashPageContact] = function () { + var isPopState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + return _this.navigateToHash(hashPageContact, isPopState); + }; + this.routes[hashPageContactSuccess] = function () { + var isPopState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + return _this.navigateToHash(hashPageContactSuccess, isPopState); + }; // Dog this.routes[hashPageDogHome] = function () { var isPopState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; diff --git a/static/dist/js/main.bundle.js.map b/static/dist/js/main.bundle.js.map index b866df6..c81f98b 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/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.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 /*\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","\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';\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 // 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 // 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","hookupButtonsNavUserAccount","hookupButtonsNavUserLogout","hookupButtonsNavUserLogin","hookupButtonsNavDogHome","hookupButtonsNavDogCommandCategories","hookupButtonsNavDogCommands","hookupButtonsNavDogDogCommandLinks","hookupButtonsNavDogDogs","hookupButtonsNavDogLocations","hookupButtonsNavDogButtonIcons","hookupButtonsNavDogCommandButtonLinks","hookupButtonsNavDogAssessments","hookupButtonsNav","flagNavHome","buttonSelector","hashPageNav","_this","button","navigateToHash","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","PageDogHome","hookupDogHome","getOptionJsonFromObjectJsonAndKeys","objectJson","keyText","keyValue","valueSelected","getOptionJsonFromObjectJson","getObjectText","getListObjectsFromIdDictAndCsv","idDict","idCsv","listObjects","ids","split","_iterator","_createForOfIteratorHelper","_step","id","err","msgError","labelError","idLabelError","TableBasePage","cursorYInitial","rowInitial","placeholder","dragSrcEl","dragSrcRow","hookupTableCellDdls","bind","isPopState","isSinglePageApp","hookupFilters","hookupButtonsSaveCancel","hookupTableMain","saveRecordsTableDirtySinglePageApp","saveRecordsTableDirty","filters","getFormFilters","filtersDefault","callFilterTableContent","sharedHookupFilters","hookupButtonApplyFilters","hookupSearchTextFilter","hookupFilterActive","filterSelector","idFormFilters","flagActiveOnly","filterActiveOld","removeAttribute","parentDiv","isChecked","filterActiveNew","filterActive","svgElement","wasChecked","handleChangeFilter","filterValuePrevious","hookupFilter","filterFlag","handler","areDirtyFilters","tbody","rows","row","dirtyInputs","dirtyInput","isDirtyLabel","initialisedElements","initialisedElement","updateAndToggleShowButtonsSaveCancel","hookupFilterIsNotEmpty","flagIsNotEmpty","_this5","idButtonApplyFilters","flagSearch","hookupFilterDog","attrIdDog","hookupFilterCommandCategory","_this6","attrIdCommandCategory","filterCommandCategory","idCommandCategory","filterCommands","commandsInCategory","command","sortedCommands","sort","b","localeCompare","filterCommand","idCommandPrevious","appendChild","dispatchEvent","Event","hookupFilterCommand","attrIdCommand","hookupFilterLocation","attrIdLocation","filtersJson","callbackLoadTableContent","table","getTableMain","bodyTable","rowsJson","flagRows","every","display_order","loadRowTable","rowJson","getAndLoadFilteredTableContentSinglePageApp","_this7","hookupButtonCancel","_this8","records","getTableRecords","formElement","idTextareaConfirm","callSaveTableContent","flagStatus","flagSuccess","_verbose","flagMessage","_this9","dirtyOnly","record","getJsonRow","_this10","_this11","handleClickAddRowTable","_rowBlank","attrIdRowObject","cloneNode","countRows","initialiseRowNew","prepend","postInitialiseRowNewCallback","_this12","cacheRowBlank","selectorRowNew","flagRowNew","rowBlankTemp","initialiseSliderDisplayOrderRowNew","slidersDisplayOrder","flagDisplayOrder","flagSlider","maxDisplayOrder","slider","Math","max","sliderDisplayOrder","hookupSlidersDisplayOrderTable","selectorDisplayOrder","hookupChangeHandlerTableCells","inputSelector","_this13","handleChangeNestedElementCellTable","input","wasDirtyParentRows","getAllIsDirtyRowsInParentTree","wasDirtyElement","isDirtyElement","cascadeChangedIsDirtyNestedElementCellTable","tr","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","parentNode","removeChild","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","join","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","replace","flagTableMain","head","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","start","handleGlobalClick","initPageCurrent","app","domReady","fn","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}\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 diff --git a/static/js/pages/base.js b/static/js/pages/base.js index d8dacef..1df50c1 100644 --- a/static/js/pages/base.js +++ b/static/js/pages/base.js @@ -61,6 +61,7 @@ export default class BasePage { }); this.hookupButtonsNavHome(); + this.hookupButtonsNavContact(); // this.hookupButtonsNavAdminHome(); this.hookupButtonsNavUserAccount(); this.hookupButtonsNavUserLogout(); @@ -94,6 +95,9 @@ export default class BasePage { this.router.navigateToHash(hashPageNav); }); } + hookupButtonsNavContact() { + this.hookupButtonsNav('.' + flagNavContact, hashPageContact); + } /* hookupButtonsNavAdminHome() { this.hookupButtonsNav('.' + flagNavAdminHome, hashPageAdminHome); diff --git a/static/js/pages/core/contact-success.js b/static/js/pages/core/contact-success.js new file mode 100644 index 0000000..877be19 --- /dev/null +++ b/static/js/pages/core/contact-success.js @@ -0,0 +1,16 @@ +// internal +import BasePage from "../base.js"; +// vendor +import { Altcha } from "../../vendor/altcha.js"; + +export default class PageContactSuccess extends BasePage { + static hash = hashPageContactSuccess; + + constructor(router) { + super(router); + } + + initialize() { + this.sharedInitialize(); + } +} diff --git a/static/js/pages/core/contact.js b/static/js/pages/core/contact.js new file mode 100644 index 0000000..39e4653 --- /dev/null +++ b/static/js/pages/core/contact.js @@ -0,0 +1,23 @@ +// internal +import BasePage from "../base.js"; +// vendor +import { Altcha } from "../../vendor/altcha.js"; + +export default class PageContact extends BasePage { + static hash = hashPageContact; + + constructor(router) { + super(router); + } + + initialize() { + this.sharedInitialize(); + this.hookupButtonSubmitFormContactUs(); + } + + hookupButtonSubmitFormContactUs() { + const button = document.querySelector('form input[type="submit"]'); + button.classList.add(flagButton); + button.classList.add(flagButtonPrimary); + } +} diff --git a/static/js/router.js b/static/js/router.js index 7344f86..c5ca4c8 100644 --- a/static/js/router.js +++ b/static/js/router.js @@ -2,6 +2,8 @@ // Pages // Core import PageHome from './pages/core/home.js'; +import PageContact from './pages/core/contact.js'; +import PageContactSuccess from './pages/core/contact-success.js'; // Dog import PageDogHome from './pages/dog/home.js'; import PageDogCommandCategories from './pages/dog/command_categories.js'; @@ -35,6 +37,8 @@ export default class Router { this.pages = {}; // Core this.pages[hashPageHome] = { name: 'PageHome', module: PageHome }; + this.pages[hashPageContact] = { name: 'PageContact', module: PageContact }; + this.pages[hashPageContactSuccess] = { name: 'PageContactSuccess', module: PageContactSuccess }; // Dog this.pages[hashPageDogHome] = { name: 'PageDogHome', module: PageDogHome }; this.pages[hashPageDogCommandCategories] = { name: 'PageDogCommands', module: PageDogCommandCategories }; @@ -59,6 +63,8 @@ export default class Router { this.routes = {}; // Core this.routes[hashPageHome] = (isPopState = false) => this.navigateToHash(hashPageHome, isPopState); + this.routes[hashPageContact] = (isPopState = false) => this.navigateToHash(hashPageContact, isPopState); + this.routes[hashPageContactSuccess] = (isPopState = false) => this.navigateToHash(hashPageContactSuccess, isPopState); // Dog this.routes[hashPageDogHome] = (isPopState = false) => this.navigateToHash(hashPageDogHome, isPopState); this.routes[hashPageDogCommandCategories] = (isPopState = false) => this.navigateToHash(hashPageDogCommandCategories, isPopState); diff --git a/static/js/test.js b/static/js/test.js new file mode 100644 index 0000000..3eda7b2 --- /dev/null +++ b/static/js/test.js @@ -0,0 +1,23 @@ +document.querySelectorAll('#_r_j_ ul li.bg-card').forEach((li) => { + let ratingElement = li.querySelector('section.grid.gap-x-2.items-center.grid-cols-[60px_1fr].sm:flex.grid-rows-[15px_1fr_1fr].sm:grid-rows-1 span.[&>a]:font-semibold.font-semibold.flex.bg-secondary-soft.text-secondary-altFg.rounded-xl.max-w-fit-content.min-w-14.justify-center.p-2.shrink.text-lg.row-start-2.row-span-2'); + let rating = ratingElement.innerText; + + let nameElement = li.querySelector('section.grid.gap-x-2.items-center.grid-cols-[60px_1fr].sm:flex.grid-rows-[15px_1fr_1fr].sm:grid-rows-1 h3.text-text-neutral-primary.text-base.font-bold.row-span-2.row-start-2.col-start-2'); + let name = nameElement.innerText + + let postedOnElement = li.querySelector('section.grid.gap-x-2.items-center.grid-cols-[60px_1fr].sm:flex.grid-rows-[15px_1fr_1fr].sm:grid-rows-1 p.[&>a]:font-semibold.font-normal.text-neutral-strong.text-xxs.ml-auto.shrink-0.row-start-1.col-start-2'); + let postedOn = contentElement.innerText; + + let contentElement = li.querySelector(''); + + console.log("\nReview"); + console.log(`Rating: ${rating}`); + console.log(`Rating: ${rating}`); + console.log(`Rating: ${rating}`); + console.log(`Rating: ${rating}`); + console.log(`Rating: ${rating}`); + console.log(`Rating: ${rating}`); +}); +/* +html body.flex.h-full.flex-col.bg-main.text-main-fg.antialiased.__variable_605d37.__variable_6549f3.__className_6549f3 main.flex.min-h-screen.flex-col.items-center.justify-between div.flex.size-full.min-h-screen.flex-col.items-center.justify-between.bg-neutral-0 div.fixed.inset-0.flex.z-20.overflow-hidden dialog.fixed.left-0.top-0.z-50.m-0.size-full.max-h-none.max-w-none.bg-main.p-0.backdrop:bg-[#000]/50.backdrop:backdrop-blur-sm.md:bg-transparent.md:px-10.md:py-5 div#_r_j_.max-w-full.max-h-full.self-center.mx-auto.z-40.flex.size-full.flex-col.md:rounded-lg.md:bg-main.md:shadow-xl div.flex.flex-1.overflow-hidden div.flex-1.overflow-y-auto div.flex.flex-1.flex-col.items-center.gap-4.rounded-b-lg.bg-[#F4F3F0].px-4.py-6 ul.grid.w-full.grid-cols-1.gap-4 li.bg-card.rounded-2xl.flex.flex-col.p-4.gap-3.border.border-neutral-200 section.grid.gap-x-2.items-center.grid-cols-[60px_1fr].sm:flex.grid-rows-[15px_1fr_1fr].sm:grid-rows-1 p.[&>a]:font-semibold.font-normal.text-neutral-strong.text-xxs.ml-auto.shrink-0.row-start-1.col-start-2 +*/ \ No newline at end of file diff --git a/templates/layouts/layout.html b/templates/layouts/layout.html index e6dacff..2e1ce91 100644 --- a/templates/layouts/layout.html +++ b/templates/layouts/layout.html @@ -4,17 +4,17 @@ {{ model.title }} - DOG - - + + - - - + diff --git a/templates/layouts/layout_dog.html b/templates/layouts/layout_dog.html new file mode 100644 index 0000000..a8e80b4 --- /dev/null +++ b/templates/layouts/layout_dog.html @@ -0,0 +1,341 @@ + + + + + + {{ model.title }} - DOG + + + + + + + + + + + + + + + + {% block page_head %}{% endblock %} + + + +
+ +
+

{{ model.NAME_COMPANY_SHORT }} - {{ model.title }}

+
+ {# +
+ +
+ #} +
+ + + {% include 'components/common/buttons/_icon_hamburger.html' %} +
+
+ Home +
+
+ Contact +
+ {% if True or model.user.can_admin_dog %} +
+ Dog Home +
+ {% endif %} + {% if model.user.get_is_logged_in() %} + {# +
+ +
+ #} +
+ Logout +
+ {% else %} +
+ +
+ {% endif %} +
+ + +
+ {% block page_body %}{% endblock %} +
+ + + + + + + diff --git a/templates/pages/core/DEPRECATED_home_app.html b/templates/pages/core/DEPRECATED_home_app.html new file mode 100644 index 0000000..2d95272 --- /dev/null +++ b/templates/pages/core/DEPRECATED_home_app.html @@ -0,0 +1,20 @@ + + +{% extends 'layouts/layout.html' %} + +{% block page_body %} + + +
+

Dog Training!

+ {% if not model.user.get_is_logged_in() %} +
+ +
+ {% elif True or model.user.can_admin_dog %} +
+ Dog Home +
+ {% endif %} +
+{% endblock %} \ No newline at end of file diff --git a/templates/pages/core/DEPRECATED_home_portfolio.html b/templates/pages/core/DEPRECATED_home_portfolio.html deleted file mode 100644 index 45f6961..0000000 --- a/templates/pages/core/DEPRECATED_home_portfolio.html +++ /dev/null @@ -1,119 +0,0 @@ - - -{% extends 'layouts/layout.html' %} - -{% block page_head %} - - -{% endblock %} - -{% block page_nav_links %} - Services - Testimonial - Pricing - Contact Us -{% endblock %} - -{% block page_body %} -
-
-
-

Transform Your Business with Modern ERP Solutions

-

UK-based ERPNext specialist providing integrated ERP and e-commerce solutions. 5+ years experience implementing systems for builders merchants and automotive companies.

- Book Consultation -
-
-
- -
-
-

Our Services

-

Comprehensive ERP solutions tailored to your business needs

- -
-
-

Implementation Services

-

Full ERPNext implementation including setup, configuration, and training. We ensure a smooth transition to your new ERP system.

-
- -
-

Integration & Migration

-

Seamlessly migrate your existing data and integrate ERPNext with your current business applications and workflows.

-
- -
-

Hosting Services

-

Secure, reliable cloud hosting with regular backups and maintenance to keep your ERP system running smoothly.

-
- -
-

Custom Extensions

-

Tailored app development and customizations to extend ERPNext functionality according to your specific requirements.

-
-
-
-
- - {# -
-
-

Client Success Story

-

See how we've helped other businesses succeed

- -
-

"The ERPNext implementation has revolutionized our operations. The integrated e-commerce system has streamlined our entire sales process, and the team's support has been exceptional throughout our journey."

-

- 4 Shires Builders Merchants

-
-
-
- #} - -
-
-

Simple, Transparent Pricing

-

Enterprise-grade solutions at SMB-friendly prices

- -
-

Implementation

-
From £10,000
-

One-time setup fee based on business size

-
    -
  • ✓ Full ERP & e-commerce setup
  • -
  • ✓ Product catalogue configuration
  • -
  • ✓ Staff training
  • -
  • ✓ Data migration
  • -
- -

Monthly Support & Hosting

-
£200
-

12-month minimum term, billed annually at £2,400

-
    -
  • ✓ Unlimited support tickets
  • -
  • ✓ Cloud hosting (99.9% uptime)
  • -
  • ✓ Regular maintenance and system updates
  • -
- - Get Custom Quote -
-
-
- -
-
-

Ready to Transform Your Business?

-

Contact us today to discuss your ERP needs

- Book Consultation -
-
- - - - -{% endblock %} \ No newline at end of file diff --git a/templates/pages/core/_contact.html b/templates/pages/core/_contact.html new file mode 100644 index 0000000..5d8a70a --- /dev/null +++ b/templates/pages/core/_contact.html @@ -0,0 +1,77 @@ +{% extends 'layouts/layout.html' %} + +{% block page_head %} + +{% endblock %} + +{% block page_nav_links %} + {# + Contact Form + Contact Details + #} +{% endblock %} + +{% block page_body %} + + {% set form = model.form_contact %} +
+
+

Contact Us

+

Please fill in the form below and we'll get back to you as soon as possible.

+ +
+ {{ form.csrf_token }} + +
+ +
+ {{ form.email(class="form-input", required=True) }} +
+ + +
+ {{ form.contact_name(class="form-input", required=True) }} +
+ + +
+ {{ form.company_name(class="form-input", required=True) }} +
+ + +
+ {{ form.message(class="form-input", required=True) }} +
+
+ + +
+
+ {{ form.altcha.label }} + +
+

This CAPTCHA mechanism is fully GDPR-compliant with no cookies, no fingerprinting, no tracking, and runs in the background so you don't need to do anything!

+
+
+ {{ model.form_contact.submit() }} +
+
+ +
+

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.

+

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.

+

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

+
+
+
+{% endblock %} \ No newline at end of file diff --git a/templates/pages/core/_contact_success.html b/templates/pages/core/_contact_success.html new file mode 100644 index 0000000..000e353 --- /dev/null +++ b/templates/pages/core/_contact_success.html @@ -0,0 +1,22 @@ +{% extends 'layouts/layout.html' %} + +{% block page_head %} + +{% endblock %} + +{% block page_nav_links %} +{% endblock %} + +{% block page_body %} + + {% set form = model.form_contact %} +
+
+

Message Received

+

Thanks for contacting us! We've received your message and will respond within 48 hours.

+
+
+ + +{% endblock %} \ No newline at end of file diff --git a/templates/pages/core/_home.html b/templates/pages/core/_home.html index 2d95272..8fb042a 100644 --- a/templates/pages/core/_home.html +++ b/templates/pages/core/_home.html @@ -2,19 +2,240 @@ {% extends 'layouts/layout.html' %} -{% block page_body %} +{% block page_head %} + +{% endblock %} -
-

Dog Training!

- {% if not model.user.get_is_logged_in() %} -
- +{% block page_nav_links %} +Problem +Solution +Benefits +Social Proof + +Features +FAQs + Contact Us +{% endblock %} + +{% block page_body %} +
+
+
+

Track Every Tail Wag of Progress

+

The UK's first professional dog training management platform that transforms how you document, measure, and showcase training success!

+ Get Early Access +
- {% elif True or model.user.can_admin_dog %} -
- Dog Home +
+
+ + + +
+
+

Still Using Spreadsheets and Paper Notes?

+ +
+

You're not alone. Most UK dog trainers spend hours each week juggling multiple systems, trying to remember which dog knows which commands, and struggling to show clients real progress.

+

What if you could track every command, every session, and every breakthrough in one simple system?

+
+
+
+ +
+
+

Professional Progress Tracking Made Simple

+ +

Finally, a system built specifically for how dog trainers actually work. Document command mastery, track skill progression, and generate professional progress reports that wow your clients.

+
+
    +
  • Command Performance Tracking: Monitor success rates for every command, from basic sit-stay to advanced behaviours
  • +
  • Skill Level Assessment: Automatically track progression through training levels with detailed performance metrics
  • +
  • Professional Progress Reports: Generate impressive client reports that showcase real, measurable improvement
  • +
  • Session History: Never lose track of what you worked on last week or which exercises need reinforcement
  • +
+
+
+
+ +
+
+

More Than Just Software - It's Your Training Partner

+
+

For Your Business:

+
    +
  • ✓ Reduce admin time by 70% with automated progress tracking
  • +
  • ✓ Increase client retention with professional progress reports
  • +
  • ✓ Stand out from competitors with data-driven training insights
  • +
+

For Your Clients:

+
    +
  • ✓ See their dog's journey from first sit to graduation
  • +
  • ✓ Understand exactly what their dog has mastered
  • +
  • ✓ Feel confident in your professional approach
  • +
+

For Your Dogs:

+
    +
  • ✓ Consistent training approach across all sessions
  • +
  • ✓ Targeted practice on areas that need work
  • +
  • ✓ Faster progression through structured tracking
  • +
+
+
+
+ +
+
+

Join Progressive UK Trainers Already Transforming Their Business

+ +
+

+ "I wish I'd had this 5 years ago. What used to take me a full Sunday afternoon now takes 20 minutes. My clients love seeing their dog's progress, and I actually enjoy the business side now." +

    +
  • Tierney G., Dog Trainer, Rugby
  • +
+

+ +
+
+
+ +
+
+

Everything You Need to Run a Modern Training Business

+
+
    +
  • ✓ Detailed command performance tracking
  • +
  • ✓ Multi-level skill progression monitoring
  • +
  • ✓ Professional progress report generation
  • +
  • ✓ Client and dog profile management
  • +
  • ✓ Session planning and note-taking
  • +
  • ✓ Mobile-friendly for field use
  • +
  • ✓ Secure cloud-based storage
  • +
  • ✓ GDPR compliant
  • +
+ Reserve Your Spot Now +

30-day money-back guarantee • Cancel anytime • No setup fees

+
+
+
+ + + +
+
+

Ready to Revolutionise Your Training Business?

+

Join the waitlist for early access to the UK's most comprehensive dog training management platform.

+ Get Early Access Today +

30-day money-back guarantee • Cancel anytime • No setup fees

+
+
+ +
+
+

FAQs

+
+
    +
  • Q: Is this just another scheduling app?: A: No, we're focused on what matters most - tracking and showcasing training progress. While we include scheduling features, our core strength is detailed command performance tracking and professional reporting.
  • +
  • Q: Do my clients need their own accounts?: A: That's up to you! You can generate reports to share, or give clients access to view their dog's progress directly.
  • +
  • Q: How detailed is the progress tracking?: A: As detailed as you need. Track success rates, duration, distractions, environments, and more for every command and behaviour.
  • +
  • Q: Will this work for my training style?: A: Built by trainers, for trainers. Whether you use positive reinforcement, balanced training, or specialised techniques, our flexible system adapts to you.
  • +
+
+
+
+ +
+
+

Stop Losing Track of Training Progress

+

Your expertise deserves professional tools. Join innovative UK trainers who are already transforming how they track, measure, and showcase training success.

+ Join the Waitlist +

Enter your email for updates and exclusive early access

+
+
+ + {% endblock %} \ No newline at end of file diff --git a/templates/pages/dog/_assessment.html b/templates/pages/dog/_assessment.html index e309457..fd2982b 100644 --- a/templates/pages/dog/_assessment.html +++ b/templates/pages/dog/_assessment.html @@ -1,4 +1,4 @@ -{% extends 'layouts/layout.html' %} +{% extends 'layouts/layout_dog.html' %} {% block page_body %} diff --git a/templates/pages/dog/_assessments.html b/templates/pages/dog/_assessments.html index f95fcf0..1bc991c 100644 --- a/templates/pages/dog/_assessments.html +++ b/templates/pages/dog/_assessments.html @@ -1,4 +1,4 @@ -{% extends 'layouts/layout.html' %} +{% extends 'layouts/layout_dog.html' %} {% block page_body %} diff --git a/templates/pages/dog/_button_icons.html b/templates/pages/dog/_button_icons.html index 1f2d5d2..7991222 100644 --- a/templates/pages/dog/_button_icons.html +++ b/templates/pages/dog/_button_icons.html @@ -1,4 +1,4 @@ -{% extends 'layouts/layout.html' %} +{% extends 'layouts/layout_dog.html' %} {% block page_body %} diff --git a/templates/pages/dog/_command_button_links.html b/templates/pages/dog/_command_button_links.html index 4766b42..d111272 100644 --- a/templates/pages/dog/_command_button_links.html +++ b/templates/pages/dog/_command_button_links.html @@ -1,4 +1,4 @@ -{% extends 'layouts/layout.html' %} +{% extends 'layouts/layout_dog.html' %} {% block page_body %} diff --git a/templates/pages/dog/_command_categories.html b/templates/pages/dog/_command_categories.html index 0962ab1..a6851ad 100644 --- a/templates/pages/dog/_command_categories.html +++ b/templates/pages/dog/_command_categories.html @@ -1,4 +1,4 @@ -{% extends 'layouts/layout.html' %} +{% extends 'layouts/layout_dog.html' %} {% block page_body %} diff --git a/templates/pages/dog/_commands.html b/templates/pages/dog/_commands.html index c323429..ec59b1b 100644 --- a/templates/pages/dog/_commands.html +++ b/templates/pages/dog/_commands.html @@ -1,4 +1,4 @@ -{% extends 'layouts/layout.html' %} +{% extends 'layouts/layout_dog.html' %} {% block page_body %} diff --git a/templates/pages/dog/_dog_command_links.html b/templates/pages/dog/_dog_command_links.html index e11eab3..e112678 100644 --- a/templates/pages/dog/_dog_command_links.html +++ b/templates/pages/dog/_dog_command_links.html @@ -1,4 +1,4 @@ -{% extends 'layouts/layout.html' %} +{% extends 'layouts/layout_dog.html' %} {% block page_body %} diff --git a/templates/pages/dog/_home.html b/templates/pages/dog/_home.html index 2798618..cb91528 100644 --- a/templates/pages/dog/_home.html +++ b/templates/pages/dog/_home.html @@ -1,4 +1,4 @@ -{% extends 'layouts/layout.html' %} +{% extends 'layouts/layout_dog.html' %} {% block title %}{{ model.title }}{% endblock %} diff --git a/templates/pages/dog/_locations.html b/templates/pages/dog/_locations.html index 70ec7ea..3552831 100644 --- a/templates/pages/dog/_locations.html +++ b/templates/pages/dog/_locations.html @@ -1,4 +1,4 @@ -{% extends 'layouts/layout.html' %} +{% extends 'layouts/layout_dog.html' %} {% block page_body %} diff --git a/todo.txt b/todo.txt index 7d76ce6..18bc237 100644 --- a/todo.txt +++ b/todo.txt @@ -24,6 +24,7 @@ Features: - Add Is_Handler field to User table and filters - Add Is_Default field to all Lookup tables - Response Quality Metric - add field bigger value measured is better? +- Permissions Fix: diff --git a/webpack.config.js b/webpack.config.js index bf25ae7..acbf10b 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -29,8 +29,12 @@ module.exports = { ], // Core core_home: [ - path.resolve(__dirname, 'static/css/sections/core.css'), - path.resolve(__dirname, 'static/css/pages/core/home.css') + path.resolve(__dirname, 'static/css/sections/core.css'), + path.resolve(__dirname, 'static/css/pages/core/home.css') + ], + core_contact: [ + path.resolve(__dirname, 'static/css/sections/core.css'), + path.resolve(__dirname, 'static/css/pages/core/contact.css') ], core_admin_home: [ path.resolve(__dirname, 'static/css/sections/core.css'),