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":"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e;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, "").concat(r, ">"),
+ 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}${r}>`, 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
-
-
+
+
-
-
-
+
+
+
+
+
+
{{ model.NAME_COMPANY_SHORT }} - {{ model.title }}
+
+ {#
+
+
+
+ #}
+
+
+
+ {% include 'components/common/buttons/_icon_hamburger.html' %}
+
+
+
+ {% if True or model.user.can_admin_dog %}
+
+ {% endif %}
+ {% if model.user.get_is_logged_in() %}
+ {#
+
+ #}
+
+ {% else %}
+
+ {% endif %}
+
+
+
+
+ {% block page_body %}{% endblock %}
+
+
+
+
+
+
+
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 @@
+
+
+