Refactor filename naming system and apply convention-based renames

Standardize settings file naming and relocate documentation files
Fix code quality violations from rsx:check
Reorganize user_management directory into logical subdirectories
Move Quill Bundle to core and align with Tom Select pattern
Simplify Site Settings page to focus on core site information
Complete Phase 5: Multi-tenant authentication with login flow and site selection
Add route query parameter rule and synchronize filename validation logic
Fix critical bug in UpdateNpmCommand causing missing JavaScript stubs
Implement filename convention rule and resolve VS Code auto-rename conflict
Implement js-sanitizer RPC server to eliminate 900+ Node.js process spawns
Implement RPC server architecture for JavaScript parsing
WIP: Add RPC server infrastructure for JS parsing (partial implementation)
Update jqhtml terminology from destroy to stop, fix datagrid DOM preservation
Add JQHTML-CLASS-01 rule and fix redundant class names
Improve code quality rules and resolve violations
Remove legacy fatal error format in favor of unified 'fatal' error type
Filter internal keys from window.rsxapp output
Update button styling and comprehensive form/modal documentation
Add conditional fly-in animation for modals
Fix non-deterministic bundle compilation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2025-11-13 19:10:02 +00:00
parent fc494c1e08
commit 77b4d10af8
28155 changed files with 2191860 additions and 12967 deletions

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,42 @@
"use strict";
/**
* Textarea - Bootstrap 5 Multi-line Text Input Component
*
* Purpose: Multi-line text input for longer content like descriptions, comments, notes
* Design: Bootstrap .form-control styling (same as Input)
*/
class Textarea extends Jqhtml_Component {
on_ready() {
// Set rows if provided
if (this.args.rows) {
this.$.attr('rows', this.args.rows);
}
// Set placeholder if provided
if (this.args.placeholder) {
this.$.attr('placeholder', this.args.placeholder);
}
// Set value if provided (overrides content())
if (this.args.value) {
this.$.val(this.args.value);
}
// Add custom classes if provided
if (this.args.class) {
this.$.addClass(this.args.class);
}
// Set disabled state if provided
if (this.args.disabled) {
this.$.prop('disabled', true);
}
// Set required attribute if provided
if (this.args.required) {
this.$.prop('required', true);
}
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUZXh0YXJlYSIsIkpxaHRtbF9Db21wb25lbnQiLCJvbl9yZWFkeSIsImFyZ3MiLCJyb3dzIiwiJCIsImF0dHIiLCJwbGFjZWhvbGRlciIsInZhbHVlIiwidmFsIiwiY2xhc3MiLCJhZGRDbGFzcyIsImRpc2FibGVkIiwicHJvcCIsInJlcXVpcmVkIl0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvVGV4dGFyZWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUZXh0YXJlYSAtIEJvb3RzdHJhcCA1IE11bHRpLWxpbmUgVGV4dCBJbnB1dCBDb21wb25lbnRcbiAqXG4gKiBQdXJwb3NlOiBNdWx0aS1saW5lIHRleHQgaW5wdXQgZm9yIGxvbmdlciBjb250ZW50IGxpa2UgZGVzY3JpcHRpb25zLCBjb21tZW50cywgbm90ZXNcbiAqIERlc2lnbjogQm9vdHN0cmFwIC5mb3JtLWNvbnRyb2wgc3R5bGluZyAoc2FtZSBhcyBJbnB1dClcbiAqL1xuY2xhc3MgVGV4dGFyZWEgZXh0ZW5kcyBKcWh0bWxfQ29tcG9uZW50IHtcbiAgICBvbl9yZWFkeSgpIHtcbiAgICAgICAgLy8gU2V0IHJvd3MgaWYgcHJvdmlkZWRcbiAgICAgICAgaWYgKHRoaXMuYXJncy5yb3dzKSB7XG4gICAgICAgICAgICB0aGlzLiQuYXR0cigncm93cycsIHRoaXMuYXJncy5yb3dzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCBwbGFjZWhvbGRlciBpZiBwcm92aWRlZFxuICAgICAgICBpZiAodGhpcy5hcmdzLnBsYWNlaG9sZGVyKSB7XG4gICAgICAgICAgICB0aGlzLiQuYXR0cigncGxhY2Vob2xkZXInLCB0aGlzLmFyZ3MucGxhY2Vob2xkZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gU2V0IHZhbHVlIGlmIHByb3ZpZGVkIChvdmVycmlkZXMgY29udGVudCgpKVxuICAgICAgICBpZiAodGhpcy5hcmdzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLiQudmFsKHRoaXMuYXJncy52YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgY3VzdG9tIGNsYXNzZXMgaWYgcHJvdmlkZWRcbiAgICAgICAgaWYgKHRoaXMuYXJncy5jbGFzcykge1xuICAgICAgICAgICAgdGhpcy4kLmFkZENsYXNzKHRoaXMuYXJncy5jbGFzcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgZGlzYWJsZWQgc3RhdGUgaWYgcHJvdmlkZWRcbiAgICAgICAgaWYgKHRoaXMuYXJncy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy4kLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgcmVxdWlyZWQgYXR0cmlidXRlIGlmIHByb3ZpZGVkXG4gICAgICAgIGlmICh0aGlzLmFyZ3MucmVxdWlyZWQpIHtcbiAgICAgICAgICAgIHRoaXMuJC5wcm9wKCdyZXF1aXJlZCcsIHRydWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU1BLFFBQVEsU0FBU0MsZ0JBQWdCLENBQUM7RUFDcENDLFFBQVFBLENBQUEsRUFBRztJQUNQO0lBQ0EsSUFBSSxJQUFJLENBQUNDLElBQUksQ0FBQ0MsSUFBSSxFQUFFO01BQ2hCLElBQUksQ0FBQ0MsQ0FBQyxDQUFDQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQ0gsSUFBSSxDQUFDQyxJQUFJLENBQUM7SUFDdkM7O0lBRUE7SUFDQSxJQUFJLElBQUksQ0FBQ0QsSUFBSSxDQUFDSSxXQUFXLEVBQUU7TUFDdkIsSUFBSSxDQUFDRixDQUFDLENBQUNDLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDSCxJQUFJLENBQUNJLFdBQVcsQ0FBQztJQUNyRDs7SUFFQTtJQUNBLElBQUksSUFBSSxDQUFDSixJQUFJLENBQUNLLEtBQUssRUFBRTtNQUNqQixJQUFJLENBQUNILENBQUMsQ0FBQ0ksR0FBRyxDQUFDLElBQUksQ0FBQ04sSUFBSSxDQUFDSyxLQUFLLENBQUM7SUFDL0I7O0lBRUE7SUFDQSxJQUFJLElBQUksQ0FBQ0wsSUFBSSxDQUFDTyxLQUFLLEVBQUU7TUFDakIsSUFBSSxDQUFDTCxDQUFDLENBQUNNLFFBQVEsQ0FBQyxJQUFJLENBQUNSLElBQUksQ0FBQ08sS0FBSyxDQUFDO0lBQ3BDOztJQUVBO0lBQ0EsSUFBSSxJQUFJLENBQUNQLElBQUksQ0FBQ1MsUUFBUSxFQUFFO01BQ3BCLElBQUksQ0FBQ1AsQ0FBQyxDQUFDUSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztJQUNqQzs7SUFFQTtJQUNBLElBQUksSUFBSSxDQUFDVixJQUFJLENBQUNXLFFBQVEsRUFBRTtNQUNwQixJQUFJLENBQUNULENBQUMsQ0FBQ1EsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7SUFDakM7RUFDSjtBQUNKIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,18 @@
"use strict";
class Dropdown_Menu extends Jqhtml_Component {
on_ready() {
// Wrap bare text children in <li><a> structure
const $menu = this.$id('menu');
$menu.children().each(function () {
const $child = $(this);
if ($child.prop('tagName') !== 'LI') {
const text = $child.text();
const href = $child.attr('href') || '#';
const $li = $('<li>').append($('<a>').addClass('dropdown-item').attr('href', href).text(text));
$child.replaceWith($li);
}
});
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEcm9wZG93bl9NZW51IiwiSnFodG1sX0NvbXBvbmVudCIsIm9uX3JlYWR5IiwiJG1lbnUiLCIkaWQiLCJjaGlsZHJlbiIsImVhY2giLCIkY2hpbGQiLCIkIiwicHJvcCIsInRleHQiLCJocmVmIiwiYXR0ciIsIiRsaSIsImFwcGVuZCIsImFkZENsYXNzIiwicmVwbGFjZVdpdGgiXSwic291cmNlcyI6WyJyc3gvdGhlbWUvY29tcG9uZW50cy9fYXJjaGl2ZWQvdW5maW5pc2hlZC9Ecm9wZG93bl9NZW51LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIERyb3Bkb3duX01lbnUgZXh0ZW5kcyBKcWh0bWxfQ29tcG9uZW50IHtcbiAgICBvbl9yZWFkeSgpIHtcbiAgICAgICAgLy8gV3JhcCBiYXJlIHRleHQgY2hpbGRyZW4gaW4gPGxpPjxhPiBzdHJ1Y3R1cmVcbiAgICAgICAgY29uc3QgJG1lbnUgPSB0aGlzLiRpZCgnbWVudScpO1xuICAgICAgICAkbWVudS5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCAkY2hpbGQgPSAkKHRoaXMpO1xuICAgICAgICAgICAgaWYgKCRjaGlsZC5wcm9wKCd0YWdOYW1lJykgIT09ICdMSScpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gJGNoaWxkLnRleHQoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBocmVmID0gJGNoaWxkLmF0dHIoJ2hyZWYnKSB8fCAnIyc7XG4gICAgICAgICAgICAgICAgY29uc3QgJGxpID0gJCgnPGxpPicpLmFwcGVuZChcbiAgICAgICAgICAgICAgICAgICAgJCgnPGE+JykuYWRkQ2xhc3MoJ2Ryb3Bkb3duLWl0ZW0nKS5hdHRyKCdocmVmJywgaHJlZikudGV4dCh0ZXh0KVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgJGNoaWxkLnJlcGxhY2VXaXRoKCRsaSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxhQUFhLFNBQVNDLGdCQUFnQixDQUFDO0VBQ3pDQyxRQUFRQSxDQUFBLEVBQUc7SUFDUDtJQUNBLE1BQU1DLEtBQUssR0FBRyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDOUJELEtBQUssQ0FBQ0UsUUFBUSxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLFlBQVc7TUFDN0IsTUFBTUMsTUFBTSxHQUFHQyxDQUFDLENBQUMsSUFBSSxDQUFDO01BQ3RCLElBQUlELE1BQU0sQ0FBQ0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNqQyxNQUFNQyxJQUFJLEdBQUdILE1BQU0sQ0FBQ0csSUFBSSxDQUFDLENBQUM7UUFDMUIsTUFBTUMsSUFBSSxHQUFHSixNQUFNLENBQUNLLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHO1FBQ3ZDLE1BQU1DLEdBQUcsR0FBR0wsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDTSxNQUFNLENBQ3hCTixDQUFDLENBQUMsS0FBSyxDQUFDLENBQUNPLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQ0gsSUFBSSxDQUFDLE1BQU0sRUFBRUQsSUFBSSxDQUFDLENBQUNELElBQUksQ0FBQ0EsSUFBSSxDQUNuRSxDQUFDO1FBQ0RILE1BQU0sQ0FBQ1MsV0FBVyxDQUFDSCxHQUFHLENBQUM7TUFDM0I7SUFDSixDQUFDLENBQUM7RUFDTjtBQUNKIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,28 @@
"use strict";
class Frontend_Settings_Site_Settings {
static init() {
if (!$(".Frontend_Settings_Site_Settings").exists()) return;
// Initialize your component here
console.log('Frontend_Settings_Site_Settings initialized');
// Example: Handle button clicks
$('.btn-action').on('click', function () {
// Handle action
});
// Example: Initialize tooltips
$('[data-bs-toggle="tooltip"]').tooltip();
}
static on_app_ready() {
Frontend_Settings_Site_Settings.init();
}
// static on_jqhtml_ready() {
// // Called after all JQHTML components have loaded and rendered
// // Use this if you need to interact with JQHTML components
// // Otherwise, use on_app_ready() for most initialization
// }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9TZXR0aW5nc19TaXRlX1NldHRpbmdzIiwiaW5pdCIsIiQiLCJleGlzdHMiLCJjb25zb2xlIiwibG9nIiwib24iLCJ0b29sdGlwIiwib25fYXBwX3JlYWR5Il0sInNvdXJjZXMiOlsicnN4L2FwcC9mcm9udGVuZC9zZXR0aW5ncy9zaXRlX3NldHRpbmdzL2Zyb250ZW5kX3NldHRpbmdzX3NpdGVfc2V0dGluZ3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRnJvbnRlbmRfU2V0dGluZ3NfU2l0ZV9TZXR0aW5ncyB7XG4gICAgc3RhdGljIGluaXQoKSB7XG4gICAgICAgIGlmICghJChcIi5Gcm9udGVuZF9TZXR0aW5nc19TaXRlX1NldHRpbmdzXCIpLmV4aXN0cygpKSByZXR1cm47XG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSB5b3VyIGNvbXBvbmVudCBoZXJlXG4gICAgICAgIGNvbnNvbGUubG9nKCdGcm9udGVuZF9TZXR0aW5nc19TaXRlX1NldHRpbmdzIGluaXRpYWxpemVkJyk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSGFuZGxlIGJ1dHRvbiBjbGlja3NcbiAgICAgICAgJCgnLmJ0bi1hY3Rpb24nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBhY3Rpb25cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSW5pdGlhbGl6ZSB0b29sdGlwc1xuICAgICAgICAkKCdbZGF0YS1icy10b2dnbGU9XCJ0b29sdGlwXCJdJykudG9vbHRpcCgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBvbl9hcHBfcmVhZHkoKSB7XG4gICAgICAgIEZyb250ZW5kX1NldHRpbmdzX1NpdGVfU2V0dGluZ3MuaW5pdCgpO1xuICAgIH1cblxuICAgIC8vIHN0YXRpYyBvbl9qcWh0bWxfcmVhZHkoKSB7XG4gICAgLy8gICAgIC8vIENhbGxlZCBhZnRlciBhbGwgSlFIVE1MIGNvbXBvbmVudHMgaGF2ZSBsb2FkZWQgYW5kIHJlbmRlcmVkXG4gICAgLy8gICAgIC8vIFVzZSB0aGlzIGlmIHlvdSBuZWVkIHRvIGludGVyYWN0IHdpdGggSlFIVE1MIGNvbXBvbmVudHNcbiAgICAvLyAgICAgLy8gT3RoZXJ3aXNlLCB1c2Ugb25fYXBwX3JlYWR5KCkgZm9yIG1vc3QgaW5pdGlhbGl6YXRpb25cbiAgICAvLyB9XG59Il0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLCtCQUErQixDQUFDO0VBQ2xDLE9BQU9DLElBQUlBLENBQUEsRUFBRztJQUNWLElBQUksQ0FBQ0MsQ0FBQyxDQUFDLGtDQUFrQyxDQUFDLENBQUNDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7O0lBRXJEO0lBQ0FDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLDZDQUE2QyxDQUFDOztJQUUxRDtJQUNBSCxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUNJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsWUFBVztNQUNwQztJQUFBLENBQ0gsQ0FBQzs7SUFFRjtJQUNBSixDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQ0ssT0FBTyxDQUFDLENBQUM7RUFDN0M7RUFFQSxPQUFPQyxZQUFZQSxDQUFBLEVBQUc7SUFDbEJSLCtCQUErQixDQUFDQyxJQUFJLENBQUMsQ0FBQztFQUMxQzs7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,12 @@
"use strict";
class List extends Jqhtml_Component {
on_ready() {
// Add list-group-item class to each direct child
this.$.children().each(function () {
const $element = $(this);
$element.addClass('list-group-item');
});
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMaXN0IiwiSnFodG1sX0NvbXBvbmVudCIsIm9uX3JlYWR5IiwiJCIsImNoaWxkcmVuIiwiZWFjaCIsIiRlbGVtZW50IiwiYWRkQ2xhc3MiXSwic291cmNlcyI6WyJyc3gvdGhlbWUvY29tcG9uZW50cy9fYXJjaGl2ZWQvdW5maW5pc2hlZC9MaXN0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIExpc3QgZXh0ZW5kcyBKcWh0bWxfQ29tcG9uZW50IHtcbiAgICBvbl9yZWFkeSgpIHtcbiAgICAgICAgLy8gQWRkIGxpc3QtZ3JvdXAtaXRlbSBjbGFzcyB0byBlYWNoIGRpcmVjdCBjaGlsZFxuICAgICAgICB0aGlzLiQuY2hpbGRyZW4oKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKHRoaXMpO1xuICAgICAgICAgICAgJGVsZW1lbnQuYWRkQ2xhc3MoJ2xpc3QtZ3JvdXAtaXRlbScpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsSUFBSSxTQUFTQyxnQkFBZ0IsQ0FBQztFQUNoQ0MsUUFBUUEsQ0FBQSxFQUFHO0lBQ1A7SUFDQSxJQUFJLENBQUNDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLFlBQVc7TUFDOUIsTUFBTUMsUUFBUSxHQUFHSCxDQUFDLENBQUMsSUFBSSxDQUFDO01BQ3hCRyxRQUFRLENBQUNDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQztJQUN4QyxDQUFDLENBQUM7RUFDTjtBQUNKIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,12 @@
"use strict";
/**
* Clients_DataGrid Component
*
* Concrete implementation for clients datagrid.
* All functionality is in DataGrid_Abstract.
*/
class Clients_DataGrid extends DataGrid_Abstract {
// All behavior inherited from DataGrid_Abstract
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDbGllbnRzX0RhdGFHcmlkIiwiRGF0YUdyaWRfQWJzdHJhY3QiXSwic291cmNlcyI6WyJyc3gvYXBwL2Zyb250ZW5kL2NsaWVudHMvaW5kZXgvY2xpZW50c19kYXRhZ3JpZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENsaWVudHNfRGF0YUdyaWQgQ29tcG9uZW50XG4gKlxuICogQ29uY3JldGUgaW1wbGVtZW50YXRpb24gZm9yIGNsaWVudHMgZGF0YWdyaWQuXG4gKiBBbGwgZnVuY3Rpb25hbGl0eSBpcyBpbiBEYXRhR3JpZF9BYnN0cmFjdC5cbiAqL1xuY2xhc3MgQ2xpZW50c19EYXRhR3JpZCBleHRlbmRzIERhdGFHcmlkX0Fic3RyYWN0IHtcbiAgICAvLyBBbGwgYmVoYXZpb3IgaW5oZXJpdGVkIGZyb20gRGF0YUdyaWRfQWJzdHJhY3Rcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQSxnQkFBZ0IsU0FBU0MsaUJBQWlCLENBQUM7RUFDN0M7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,16 @@
"use strict";
/**
* Jqhtml_Component - Base class for JQHTML components in RSX framework
*
* This class wraps the jqhtml.Component from the npm package and provides
* the standard interface for RSX components following the Upper_Case naming convention.
*
* _Base_Jqhtml_Component is imported from npm via Jqhtml_Bundle.
*
* @Instantiatable
*/
class Jqhtml_Component extends _Base_Jqhtml_Component {}
// RSX manifest automatically makes classes global - no manual assignment needed
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJKcWh0bWxfQ29tcG9uZW50IiwiX0Jhc2VfSnFodG1sX0NvbXBvbmVudCJdLCJzb3VyY2VzIjpbImFwcC9SU3BhZGUvSW50ZWdyYXRpb25zL0pxaHRtbC9KcWh0bWxfQ29tcG9uZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSnFodG1sX0NvbXBvbmVudCAtIEJhc2UgY2xhc3MgZm9yIEpRSFRNTCBjb21wb25lbnRzIGluIFJTWCBmcmFtZXdvcmtcbiAqXG4gKiBUaGlzIGNsYXNzIHdyYXBzIHRoZSBqcWh0bWwuQ29tcG9uZW50IGZyb20gdGhlIG5wbSBwYWNrYWdlIGFuZCBwcm92aWRlc1xuICogdGhlIHN0YW5kYXJkIGludGVyZmFjZSBmb3IgUlNYIGNvbXBvbmVudHMgZm9sbG93aW5nIHRoZSBVcHBlcl9DYXNlIG5hbWluZyBjb252ZW50aW9uLlxuICpcbiAqIF9CYXNlX0pxaHRtbF9Db21wb25lbnQgaXMgaW1wb3J0ZWQgZnJvbSBucG0gdmlhIEpxaHRtbF9CdW5kbGUuXG4gKlxuICogQEluc3RhbnRpYXRhYmxlXG4gKi9cbmNsYXNzIEpxaHRtbF9Db21wb25lbnQgZXh0ZW5kcyBfQmFzZV9KcWh0bWxfQ29tcG9uZW50IHt9XG5cbi8vIFJTWCBtYW5pZmVzdCBhdXRvbWF0aWNhbGx5IG1ha2VzIGNsYXNzZXMgZ2xvYmFsIC0gbm8gbWFudWFsIGFzc2lnbm1lbnQgbmVlZGVkXG4iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQSxnQkFBZ0IsU0FBU0Msc0JBQXNCLENBQUM7O0FBRXREIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,21 @@
"use strict";
class Status_Badge extends Jqhtml_Component {
on_ready() {
// Apply color based on content or args
const status = this.args.status || this.$.text().trim().toLowerCase();
// Default color mappings
const color_map = {
'active': 'bg-success',
'pending': 'bg-warning',
'completed': 'bg-primary',
'cancelled': 'bg-danger',
'draft': 'bg-secondary',
'archived': 'bg-dark'
};
const bg_class = this.args.bg_class || color_map[status] || 'bg-secondary';
this.$.addClass(bg_class);
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdGF0dXNfQmFkZ2UiLCJKcWh0bWxfQ29tcG9uZW50Iiwib25fcmVhZHkiLCJzdGF0dXMiLCJhcmdzIiwiJCIsInRleHQiLCJ0cmltIiwidG9Mb3dlckNhc2UiLCJjb2xvcl9tYXAiLCJiZ19jbGFzcyIsImFkZENsYXNzIl0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvU3RhdHVzX0JhZGdlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFN0YXR1c19CYWRnZSBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIG9uX3JlYWR5KCkge1xuICAgICAgICAvLyBBcHBseSBjb2xvciBiYXNlZCBvbiBjb250ZW50IG9yIGFyZ3NcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gdGhpcy5hcmdzLnN0YXR1cyB8fCB0aGlzLiQudGV4dCgpLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgICAgIC8vIERlZmF1bHQgY29sb3IgbWFwcGluZ3NcbiAgICAgICAgY29uc3QgY29sb3JfbWFwID0ge1xuICAgICAgICAgICAgJ2FjdGl2ZSc6ICdiZy1zdWNjZXNzJyxcbiAgICAgICAgICAgICdwZW5kaW5nJzogJ2JnLXdhcm5pbmcnLFxuICAgICAgICAgICAgJ2NvbXBsZXRlZCc6ICdiZy1wcmltYXJ5JyxcbiAgICAgICAgICAgICdjYW5jZWxsZWQnOiAnYmctZGFuZ2VyJyxcbiAgICAgICAgICAgICdkcmFmdCc6ICdiZy1zZWNvbmRhcnknLFxuICAgICAgICAgICAgJ2FyY2hpdmVkJzogJ2JnLWRhcmsnXG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgYmdfY2xhc3MgPSB0aGlzLmFyZ3MuYmdfY2xhc3MgfHwgY29sb3JfbWFwW3N0YXR1c10gfHwgJ2JnLXNlY29uZGFyeSc7XG4gICAgICAgIHRoaXMuJC5hZGRDbGFzcyhiZ19jbGFzcyk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLFlBQVksU0FBU0MsZ0JBQWdCLENBQUM7RUFDeENDLFFBQVFBLENBQUEsRUFBRztJQUNQO0lBQ0EsTUFBTUMsTUFBTSxHQUFHLElBQUksQ0FBQ0MsSUFBSSxDQUFDRCxNQUFNLElBQUksSUFBSSxDQUFDRSxDQUFDLENBQUNDLElBQUksQ0FBQyxDQUFDLENBQUNDLElBQUksQ0FBQyxDQUFDLENBQUNDLFdBQVcsQ0FBQyxDQUFDOztJQUVyRTtJQUNBLE1BQU1DLFNBQVMsR0FBRztNQUNkLFFBQVEsRUFBRSxZQUFZO01BQ3RCLFNBQVMsRUFBRSxZQUFZO01BQ3ZCLFdBQVcsRUFBRSxZQUFZO01BQ3pCLFdBQVcsRUFBRSxXQUFXO01BQ3hCLE9BQU8sRUFBRSxjQUFjO01BQ3ZCLFVBQVUsRUFBRTtJQUNoQixDQUFDO0lBRUQsTUFBTUMsUUFBUSxHQUFHLElBQUksQ0FBQ04sSUFBSSxDQUFDTSxRQUFRLElBQUlELFNBQVMsQ0FBQ04sTUFBTSxDQUFDLElBQUksY0FBYztJQUMxRSxJQUFJLENBQUNFLENBQUMsQ0FBQ00sUUFBUSxDQUFDRCxRQUFRLENBQUM7RUFDN0I7QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,46 @@
"use strict";
class Time_Picker extends Jqhtml_Component {
on_ready() {
const $input = this.$id('input');
if (this.args.value) {
$input.val(this.args.value);
}
if (this.args.name) {
$input.attr('name', this.args.name);
}
if (this.args.min) {
$input.attr('min', this.args.min);
}
if (this.args.max) {
$input.attr('max', this.args.max);
}
if (this.args.step) {
$input.attr('step', this.args.step);
}
if (this.args.disabled) {
$input.prop('disabled', true);
}
if (this.args.readonly) {
$input.prop('readonly', true);
}
if (this.args.required) {
$input.prop('required', true);
}
if (this.args.on_change) {
$input.on('change', e => {
this.args.on_change(e.target.value);
});
}
}
get_value() {
return this.$id('input').val();
}
set_value(value) {
this.$id('input').val(value);
}
focus() {
this.$id('input').focus();
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUaW1lX1BpY2tlciIsIkpxaHRtbF9Db21wb25lbnQiLCJvbl9yZWFkeSIsIiRpbnB1dCIsIiRpZCIsImFyZ3MiLCJ2YWx1ZSIsInZhbCIsIm5hbWUiLCJhdHRyIiwibWluIiwibWF4Iiwic3RlcCIsImRpc2FibGVkIiwicHJvcCIsInJlYWRvbmx5IiwicmVxdWlyZWQiLCJvbl9jaGFuZ2UiLCJvbiIsImUiLCJ0YXJnZXQiLCJnZXRfdmFsdWUiLCJzZXRfdmFsdWUiLCJmb2N1cyJdLCJzb3VyY2VzIjpbInJzeC90aGVtZS9jb21wb25lbnRzL19hcmNoaXZlZC91bmZpbmlzaGVkL1RpbWVfUGlja2VyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFRpbWVfUGlja2VyIGV4dGVuZHMgSnFodG1sX0NvbXBvbmVudCB7XG4gICAgb25fcmVhZHkoKSB7XG4gICAgICAgIGNvbnN0ICRpbnB1dCA9IHRoaXMuJGlkKCdpbnB1dCcpO1xuXG4gICAgICAgIGlmICh0aGlzLmFyZ3MudmFsdWUpIHtcbiAgICAgICAgICAgICRpbnB1dC52YWwodGhpcy5hcmdzLnZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFyZ3MubmFtZSkge1xuICAgICAgICAgICAgJGlucHV0LmF0dHIoJ25hbWUnLCB0aGlzLmFyZ3MubmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hcmdzLm1pbikge1xuICAgICAgICAgICAgJGlucHV0LmF0dHIoJ21pbicsIHRoaXMuYXJncy5taW4pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYXJncy5tYXgpIHtcbiAgICAgICAgICAgICRpbnB1dC5hdHRyKCdtYXgnLCB0aGlzLmFyZ3MubWF4KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFyZ3Muc3RlcCkge1xuICAgICAgICAgICAgJGlucHV0LmF0dHIoJ3N0ZXAnLCB0aGlzLmFyZ3Muc3RlcCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hcmdzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAkaW5wdXQucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmFyZ3MucmVhZG9ubHkpIHtcbiAgICAgICAgICAgICRpbnB1dC5wcm9wKCdyZWFkb25seScsIHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuYXJncy5yZXF1aXJlZCkge1xuICAgICAgICAgICAgJGlucHV0LnByb3AoJ3JlcXVpcmVkJywgdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hcmdzLm9uX2NoYW5nZSkge1xuICAgICAgICAgICAgJGlucHV0Lm9uKCdjaGFuZ2UnLCAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYXJncy5vbl9jaGFuZ2UoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRfdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLiRpZCgnaW5wdXQnKS52YWwoKTtcbiAgICB9XG5cbiAgICBzZXRfdmFsdWUodmFsdWUpIHtcbiAgICAgICAgdGhpcy4kaWQoJ2lucHV0JykudmFsKHZhbHVlKTtcbiAgICB9XG5cbiAgICBmb2N1cygpIHtcbiAgICAgICAgdGhpcy4kaWQoJ2lucHV0JykuZm9jdXMoKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsV0FBVyxTQUFTQyxnQkFBZ0IsQ0FBQztFQUN2Q0MsUUFBUUEsQ0FBQSxFQUFHO0lBQ1AsTUFBTUMsTUFBTSxHQUFHLElBQUksQ0FBQ0MsR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUVoQyxJQUFJLElBQUksQ0FBQ0MsSUFBSSxDQUFDQyxLQUFLLEVBQUU7TUFDakJILE1BQU0sQ0FBQ0ksR0FBRyxDQUFDLElBQUksQ0FBQ0YsSUFBSSxDQUFDQyxLQUFLLENBQUM7SUFDL0I7SUFFQSxJQUFJLElBQUksQ0FBQ0QsSUFBSSxDQUFDRyxJQUFJLEVBQUU7TUFDaEJMLE1BQU0sQ0FBQ00sSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUNKLElBQUksQ0FBQ0csSUFBSSxDQUFDO0lBQ3ZDO0lBRUEsSUFBSSxJQUFJLENBQUNILElBQUksQ0FBQ0ssR0FBRyxFQUFFO01BQ2ZQLE1BQU0sQ0FBQ00sSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUNKLElBQUksQ0FBQ0ssR0FBRyxDQUFDO0lBQ3JDO0lBRUEsSUFBSSxJQUFJLENBQUNMLElBQUksQ0FBQ00sR0FBRyxFQUFFO01BQ2ZSLE1BQU0sQ0FBQ00sSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUNKLElBQUksQ0FBQ00sR0FBRyxDQUFDO0lBQ3JDO0lBRUEsSUFBSSxJQUFJLENBQUNOLElBQUksQ0FBQ08sSUFBSSxFQUFFO01BQ2hCVCxNQUFNLENBQUNNLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDSixJQUFJLENBQUNPLElBQUksQ0FBQztJQUN2QztJQUVBLElBQUksSUFBSSxDQUFDUCxJQUFJLENBQUNRLFFBQVEsRUFBRTtNQUNwQlYsTUFBTSxDQUFDVyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztJQUNqQztJQUVBLElBQUksSUFBSSxDQUFDVCxJQUFJLENBQUNVLFFBQVEsRUFBRTtNQUNwQlosTUFBTSxDQUFDVyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztJQUNqQztJQUVBLElBQUksSUFBSSxDQUFDVCxJQUFJLENBQUNXLFFBQVEsRUFBRTtNQUNwQmIsTUFBTSxDQUFDVyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztJQUNqQztJQUVBLElBQUksSUFBSSxDQUFDVCxJQUFJLENBQUNZLFNBQVMsRUFBRTtNQUNyQmQsTUFBTSxDQUFDZSxFQUFFLENBQUMsUUFBUSxFQUFHQyxDQUFDLElBQUs7UUFDdkIsSUFBSSxDQUFDZCxJQUFJLENBQUNZLFNBQVMsQ0FBQ0UsQ0FBQyxDQUFDQyxNQUFNLENBQUNkLEtBQUssQ0FBQztNQUN2QyxDQUFDLENBQUM7SUFDTjtFQUNKO0VBRUFlLFNBQVNBLENBQUEsRUFBRztJQUNSLE9BQU8sSUFBSSxDQUFDakIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDRyxHQUFHLENBQUMsQ0FBQztFQUNsQztFQUVBZSxTQUFTQSxDQUFDaEIsS0FBSyxFQUFFO0lBQ2IsSUFBSSxDQUFDRixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUNHLEdBQUcsQ0FBQ0QsS0FBSyxDQUFDO0VBQ2hDO0VBRUFpQixLQUFLQSxDQUFBLEVBQUc7SUFDSixJQUFJLENBQUNuQixHQUFHLENBQUMsT0FBTyxDQUFDLENBQUNtQixLQUFLLENBQUMsQ0FBQztFQUM3QjtBQUNKIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,17 @@
"use strict";
/**
* Form_Field
*
* Form field wrapper that adds labels, help text, and required indicators.
* See form_field.jqhtml for full documentation.
*
* Extends Form_Field_Abstract to inherit all core functionality.
* This class exists primarily for template inheritance and any future
* formatted-field-specific behavior.
*/
class Form_Field extends Form_Field_Abstract {
// All functionality inherited from Form_Field_Abstract
// This class provides the formatted visual wrapper via its template
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb3JtX0ZpZWxkIiwiRm9ybV9GaWVsZF9BYnN0cmFjdCJdLCJzb3VyY2VzIjpbInJzeC90aGVtZS9jb21wb25lbnRzL2Zvcm1zL2Zvcm1fZmllbGQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3JtX0ZpZWxkXG4gKlxuICogRm9ybSBmaWVsZCB3cmFwcGVyIHRoYXQgYWRkcyBsYWJlbHMsIGhlbHAgdGV4dCwgYW5kIHJlcXVpcmVkIGluZGljYXRvcnMuXG4gKiBTZWUgZm9ybV9maWVsZC5qcWh0bWwgZm9yIGZ1bGwgZG9jdW1lbnRhdGlvbi5cbiAqXG4gKiBFeHRlbmRzIEZvcm1fRmllbGRfQWJzdHJhY3QgdG8gaW5oZXJpdCBhbGwgY29yZSBmdW5jdGlvbmFsaXR5LlxuICogVGhpcyBjbGFzcyBleGlzdHMgcHJpbWFyaWx5IGZvciB0ZW1wbGF0ZSBpbmhlcml0YW5jZSBhbmQgYW55IGZ1dHVyZVxuICogZm9ybWF0dGVkLWZpZWxkLXNwZWNpZmljIGJlaGF2aW9yLlxuICovXG5jbGFzcyBGb3JtX0ZpZWxkIGV4dGVuZHMgRm9ybV9GaWVsZF9BYnN0cmFjdCB7XG4gICAgLy8gQWxsIGZ1bmN0aW9uYWxpdHkgaW5oZXJpdGVkIGZyb20gRm9ybV9GaWVsZF9BYnN0cmFjdFxuICAgIC8vIFRoaXMgY2xhc3MgcHJvdmlkZXMgdGhlIGZvcm1hdHRlZCB2aXN1YWwgd3JhcHBlciB2aWEgaXRzIHRlbXBsYXRlXG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQSxVQUFVLFNBQVNDLG1CQUFtQixDQUFDO0VBQ3pDO0VBQ0E7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,7 @@
"use strict";
class Button extends Jqhtml_Component {
// Base button component - no special behavior needed
// Bootstrap handles all states (hover, active, focus, disabled)
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCdXR0b24iLCJKcWh0bWxfQ29tcG9uZW50Il0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvYnV0dG9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIEJ1dHRvbiBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIC8vIEJhc2UgYnV0dG9uIGNvbXBvbmVudCAtIG5vIHNwZWNpYWwgYmVoYXZpb3IgbmVlZGVkXG4gICAgLy8gQm9vdHN0cmFwIGhhbmRsZXMgYWxsIHN0YXRlcyAoaG92ZXIsIGFjdGl2ZSwgZm9jdXMsIGRpc2FibGVkKVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLE1BQU0sU0FBU0MsZ0JBQWdCLENBQUM7RUFDbEM7RUFDQTtBQUFBIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,28 @@
"use strict";
class Frontend_Calendar_Event {
static init() {
if (!$(".Frontend_Calendar_Event").exists()) return;
// Initialize your component here
console.log('Frontend_Calendar_Event initialized');
// Example: Handle button clicks
$('.btn-action').on('click', function () {
// Handle action
});
// Example: Initialize tooltips
$('[data-bs-toggle="tooltip"]').tooltip();
}
static on_app_ready() {
Frontend_Calendar_Event.init();
}
// static on_jqhtml_ready() {
// // Called after all JQHTML components have loaded and rendered
// // Use this if you need to interact with JQHTML components
// // Otherwise, use on_app_ready() for most initialization
// }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9DYWxlbmRhcl9FdmVudCIsImluaXQiLCIkIiwiZXhpc3RzIiwiY29uc29sZSIsImxvZyIsIm9uIiwidG9vbHRpcCIsIm9uX2FwcF9yZWFkeSJdLCJzb3VyY2VzIjpbInJzeC9hcHAvZnJvbnRlbmQvY2FsZW5kYXIvZnJvbnRlbmRfY2FsZW5kYXJfZXZlbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRnJvbnRlbmRfQ2FsZW5kYXJfRXZlbnQge1xuICAgIHN0YXRpYyBpbml0KCkge1xuICAgICAgICBpZiAoISQoXCIuRnJvbnRlbmRfQ2FsZW5kYXJfRXZlbnRcIikuZXhpc3RzKCkpIHJldHVybjtcblxuICAgICAgICAvLyBJbml0aWFsaXplIHlvdXIgY29tcG9uZW50IGhlcmVcbiAgICAgICAgY29uc29sZS5sb2coJ0Zyb250ZW5kX0NhbGVuZGFyX0V2ZW50IGluaXRpYWxpemVkJyk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSGFuZGxlIGJ1dHRvbiBjbGlja3NcbiAgICAgICAgJCgnLmJ0bi1hY3Rpb24nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBhY3Rpb25cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSW5pdGlhbGl6ZSB0b29sdGlwc1xuICAgICAgICAkKCdbZGF0YS1icy10b2dnbGU9XCJ0b29sdGlwXCJdJykudG9vbHRpcCgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBvbl9hcHBfcmVhZHkoKSB7XG4gICAgICAgIEZyb250ZW5kX0NhbGVuZGFyX0V2ZW50LmluaXQoKTtcbiAgICB9XG5cbiAgICAvLyBzdGF0aWMgb25fanFodG1sX3JlYWR5KCkge1xuICAgIC8vICAgICAvLyBDYWxsZWQgYWZ0ZXIgYWxsIEpRSFRNTCBjb21wb25lbnRzIGhhdmUgbG9hZGVkIGFuZCByZW5kZXJlZFxuICAgIC8vICAgICAvLyBVc2UgdGhpcyBpZiB5b3UgbmVlZCB0byBpbnRlcmFjdCB3aXRoIEpRSFRNTCBjb21wb25lbnRzXG4gICAgLy8gICAgIC8vIE90aGVyd2lzZSwgdXNlIG9uX2FwcF9yZWFkeSgpIGZvciBtb3N0IGluaXRpYWxpemF0aW9uXG4gICAgLy8gfVxufSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSx1QkFBdUIsQ0FBQztFQUMxQixPQUFPQyxJQUFJQSxDQUFBLEVBQUc7SUFDVixJQUFJLENBQUNDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDQyxNQUFNLENBQUMsQ0FBQyxFQUFFOztJQUU3QztJQUNBQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxxQ0FBcUMsQ0FBQzs7SUFFbEQ7SUFDQUgsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDSSxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVc7TUFDcEM7SUFBQSxDQUNILENBQUM7O0lBRUY7SUFDQUosQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUNLLE9BQU8sQ0FBQyxDQUFDO0VBQzdDO0VBRUEsT0FBT0MsWUFBWUEsQ0FBQSxFQUFHO0lBQ2xCUix1QkFBdUIsQ0FBQ0MsSUFBSSxDQUFDLENBQUM7RUFDbEM7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNKIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,28 @@
"use strict";
class Frontend_Settings_Api {
static init() {
if (!$(".Frontend_Settings_Api").exists()) return;
// Initialize your component here
console.log('Frontend_Settings_Api initialized');
// Example: Handle button clicks
$('.btn-action').on('click', function () {
// Handle action
});
// Example: Initialize tooltips
$('[data-bs-toggle="tooltip"]').tooltip();
}
static on_app_ready() {
Frontend_Settings_Api.init();
}
// static on_jqhtml_ready() {
// // Called after all JQHTML components have loaded and rendered
// // Use this if you need to interact with JQHTML components
// // Otherwise, use on_app_ready() for most initialization
// }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9TZXR0aW5nc19BcGkiLCJpbml0IiwiJCIsImV4aXN0cyIsImNvbnNvbGUiLCJsb2ciLCJvbiIsInRvb2x0aXAiLCJvbl9hcHBfcmVhZHkiXSwic291cmNlcyI6WyJyc3gvYXBwL2Zyb250ZW5kL3NldHRpbmdzL2FwaS9mcm9udGVuZF9zZXR0aW5nc19hcGkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRnJvbnRlbmRfU2V0dGluZ3NfQXBpIHtcbiAgICBzdGF0aWMgaW5pdCgpIHtcbiAgICAgICAgaWYgKCEkKFwiLkZyb250ZW5kX1NldHRpbmdzX0FwaVwiKS5leGlzdHMoKSkgcmV0dXJuO1xuXG4gICAgICAgIC8vIEluaXRpYWxpemUgeW91ciBjb21wb25lbnQgaGVyZVxuICAgICAgICBjb25zb2xlLmxvZygnRnJvbnRlbmRfU2V0dGluZ3NfQXBpIGluaXRpYWxpemVkJyk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSGFuZGxlIGJ1dHRvbiBjbGlja3NcbiAgICAgICAgJCgnLmJ0bi1hY3Rpb24nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBhY3Rpb25cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSW5pdGlhbGl6ZSB0b29sdGlwc1xuICAgICAgICAkKCdbZGF0YS1icy10b2dnbGU9XCJ0b29sdGlwXCJdJykudG9vbHRpcCgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBvbl9hcHBfcmVhZHkoKSB7XG4gICAgICAgIEZyb250ZW5kX1NldHRpbmdzX0FwaS5pbml0KCk7XG4gICAgfVxuXG4gICAgLy8gc3RhdGljIG9uX2pxaHRtbF9yZWFkeSgpIHtcbiAgICAvLyAgICAgLy8gQ2FsbGVkIGFmdGVyIGFsbCBKUUhUTUwgY29tcG9uZW50cyBoYXZlIGxvYWRlZCBhbmQgcmVuZGVyZWRcbiAgICAvLyAgICAgLy8gVXNlIHRoaXMgaWYgeW91IG5lZWQgdG8gaW50ZXJhY3Qgd2l0aCBKUUhUTUwgY29tcG9uZW50c1xuICAgIC8vICAgICAvLyBPdGhlcndpc2UsIHVzZSBvbl9hcHBfcmVhZHkoKSBmb3IgbW9zdCBpbml0aWFsaXphdGlvblxuICAgIC8vIH1cbn0iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEscUJBQXFCLENBQUM7RUFDeEIsT0FBT0MsSUFBSUEsQ0FBQSxFQUFHO0lBQ1YsSUFBSSxDQUFDQyxDQUFDLENBQUMsd0JBQXdCLENBQUMsQ0FBQ0MsTUFBTSxDQUFDLENBQUMsRUFBRTs7SUFFM0M7SUFDQUMsT0FBTyxDQUFDQyxHQUFHLENBQUMsbUNBQW1DLENBQUM7O0lBRWhEO0lBQ0FILENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQ0ksRUFBRSxDQUFDLE9BQU8sRUFBRSxZQUFXO01BQ3BDO0lBQUEsQ0FDSCxDQUFDOztJQUVGO0lBQ0FKLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDSyxPQUFPLENBQUMsQ0FBQztFQUM3QztFQUVBLE9BQU9DLFlBQVlBLENBQUEsRUFBRztJQUNsQlIscUJBQXFCLENBQUNDLElBQUksQ0FBQyxDQUFDO0VBQ2hDOztFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,17 @@
"use strict";
class Top_Nav extends Jqhtml_Component {
on_ready() {
// Wrap children in nav structure
const $nav = this.$id('nav_items');
$nav.children().each(function () {
const $child = $(this);
if ($child.prop('tagName') !== 'LI') {
const $li = $('<li>').addClass('nav-item');
$child.addClass('nav-link');
$child.wrap($li);
}
});
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUb3BfTmF2IiwiSnFodG1sX0NvbXBvbmVudCIsIm9uX3JlYWR5IiwiJG5hdiIsIiRpZCIsImNoaWxkcmVuIiwiZWFjaCIsIiRjaGlsZCIsIiQiLCJwcm9wIiwiJGxpIiwiYWRkQ2xhc3MiLCJ3cmFwIl0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvVG9wX05hdi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBUb3BfTmF2IGV4dGVuZHMgSnFodG1sX0NvbXBvbmVudCB7XG4gICAgb25fcmVhZHkoKSB7XG4gICAgICAgIC8vIFdyYXAgY2hpbGRyZW4gaW4gbmF2IHN0cnVjdHVyZVxuICAgICAgICBjb25zdCAkbmF2ID0gdGhpcy4kaWQoJ25hdl9pdGVtcycpO1xuICAgICAgICAkbmF2LmNoaWxkcmVuKCkuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNvbnN0ICRjaGlsZCA9ICQodGhpcyk7XG4gICAgICAgICAgICBpZiAoJGNoaWxkLnByb3AoJ3RhZ05hbWUnKSAhPT0gJ0xJJykge1xuICAgICAgICAgICAgICAgIGNvbnN0ICRsaSA9ICQoJzxsaT4nKS5hZGRDbGFzcygnbmF2LWl0ZW0nKTtcbiAgICAgICAgICAgICAgICAkY2hpbGQuYWRkQ2xhc3MoJ25hdi1saW5rJyk7XG4gICAgICAgICAgICAgICAgJGNoaWxkLndyYXAoJGxpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLE9BQU8sU0FBU0MsZ0JBQWdCLENBQUM7RUFDbkNDLFFBQVFBLENBQUEsRUFBRztJQUNQO0lBQ0EsTUFBTUMsSUFBSSxHQUFHLElBQUksQ0FBQ0MsR0FBRyxDQUFDLFdBQVcsQ0FBQztJQUNsQ0QsSUFBSSxDQUFDRSxRQUFRLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUMsWUFBVztNQUM1QixNQUFNQyxNQUFNLEdBQUdDLENBQUMsQ0FBQyxJQUFJLENBQUM7TUFDdEIsSUFBSUQsTUFBTSxDQUFDRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLEdBQUcsR0FBR0YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDRyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQzFDSixNQUFNLENBQUNJLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFDM0JKLE1BQU0sQ0FBQ0ssSUFBSSxDQUFDRixHQUFHLENBQUM7TUFDcEI7SUFDSixDQUFDLENBQUM7RUFDTjtBQUNKIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,55 @@
"use strict";
/**
* View_Transitions - Smooth page-to-page transitions using View Transitions API
*
* Enables cross-document view transitions so the browser doesn't paint the new page
* until it's ready, creating smooth animations between pages.
*
* Falls back gracefully if View Transitions API is not available.
*/
class Rsx_View_Transitions {
/**
* Called during framework core init phase
* Checks for View Transitions API support and enables if available
*/
static _on_framework_core_init() {
// Check if View Transitions API is supported
if (!document.startViewTransition) {
console_debug('VIEW_TRANSITIONS', 'View Transitions API not supported, skipping');
return;
}
// Enable cross-document view transitions via CSS
Rsx_View_Transitions._inject_transition_css();
}
/**
* Inject CSS to enable cross-document view transitions
*
* The @view-transition { navigation: auto; } rule tells the browser to:
* 1. Capture a snapshot of the current page before navigation
* 2. Fetch the new page
* 3. Wait until the new page is fully loaded and painted (document.ready)
* 4. Animate smoothly between the two states
*
* This prevents the white flash during navigation and creates app-like transitions.
*/
static _inject_transition_css() {
const style = document.createElement('style');
style.textContent = `
@view-transition {
navigation: auto;
}
/* Disable animation - instant transition */
::view-transition-group(*),
::view-transition-old(*),
::view-transition-new(*) {
animation-duration: 0s;
}
`;
document.head.appendChild(style);
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSc3hfVmlld19UcmFuc2l0aW9ucyIsIl9vbl9mcmFtZXdvcmtfY29yZV9pbml0IiwiZG9jdW1lbnQiLCJzdGFydFZpZXdUcmFuc2l0aW9uIiwiY29uc29sZV9kZWJ1ZyIsIl9pbmplY3RfdHJhbnNpdGlvbl9jc3MiLCJzdHlsZSIsImNyZWF0ZUVsZW1lbnQiLCJ0ZXh0Q29udGVudCIsImhlYWQiLCJhcHBlbmRDaGlsZCJdLCJzb3VyY2VzIjpbImFwcC9SU3BhZGUvQ29yZS9Kcy9Sc3hfVmlld19UcmFuc2l0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFZpZXdfVHJhbnNpdGlvbnMgLSBTbW9vdGggcGFnZS10by1wYWdlIHRyYW5zaXRpb25zIHVzaW5nIFZpZXcgVHJhbnNpdGlvbnMgQVBJXG4gKlxuICogRW5hYmxlcyBjcm9zcy1kb2N1bWVudCB2aWV3IHRyYW5zaXRpb25zIHNvIHRoZSBicm93c2VyIGRvZXNuJ3QgcGFpbnQgdGhlIG5ldyBwYWdlXG4gKiB1bnRpbCBpdCdzIHJlYWR5LCBjcmVhdGluZyBzbW9vdGggYW5pbWF0aW9ucyBiZXR3ZWVuIHBhZ2VzLlxuICpcbiAqIEZhbGxzIGJhY2sgZ3JhY2VmdWxseSBpZiBWaWV3IFRyYW5zaXRpb25zIEFQSSBpcyBub3QgYXZhaWxhYmxlLlxuICovXG5jbGFzcyBSc3hfVmlld19UcmFuc2l0aW9ucyB7XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIGR1cmluZyBmcmFtZXdvcmsgY29yZSBpbml0IHBoYXNlXG4gICAgICogQ2hlY2tzIGZvciBWaWV3IFRyYW5zaXRpb25zIEFQSSBzdXBwb3J0IGFuZCBlbmFibGVzIGlmIGF2YWlsYWJsZVxuICAgICAqL1xuICAgIHN0YXRpYyBfb25fZnJhbWV3b3JrX2NvcmVfaW5pdCgpIHtcbiAgICAgICAgLy8gQ2hlY2sgaWYgVmlldyBUcmFuc2l0aW9ucyBBUEkgaXMgc3VwcG9ydGVkXG4gICAgICAgIGlmICghZG9jdW1lbnQuc3RhcnRWaWV3VHJhbnNpdGlvbikge1xuICAgICAgICAgICAgY29uc29sZV9kZWJ1ZygnVklFV19UUkFOU0lUSU9OUycsICdWaWV3IFRyYW5zaXRpb25zIEFQSSBub3Qgc3VwcG9ydGVkLCBza2lwcGluZycpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRW5hYmxlIGNyb3NzLWRvY3VtZW50IHZpZXcgdHJhbnNpdGlvbnMgdmlhIENTU1xuICAgICAgICBSc3hfVmlld19UcmFuc2l0aW9ucy5faW5qZWN0X3RyYW5zaXRpb25fY3NzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSW5qZWN0IENTUyB0byBlbmFibGUgY3Jvc3MtZG9jdW1lbnQgdmlldyB0cmFuc2l0aW9uc1xuICAgICAqXG4gICAgICogVGhlIEB2aWV3LXRyYW5zaXRpb24geyBuYXZpZ2F0aW9uOiBhdXRvOyB9IHJ1bGUgdGVsbHMgdGhlIGJyb3dzZXIgdG86XG4gICAgICogMS4gQ2FwdHVyZSBhIHNuYXBzaG90IG9mIHRoZSBjdXJyZW50IHBhZ2UgYmVmb3JlIG5hdmlnYXRpb25cbiAgICAgKiAyLiBGZXRjaCB0aGUgbmV3IHBhZ2VcbiAgICAgKiAzLiBXYWl0IHVudGlsIHRoZSBuZXcgcGFnZSBpcyBmdWxseSBsb2FkZWQgYW5kIHBhaW50ZWQgKGRvY3VtZW50LnJlYWR5KVxuICAgICAqIDQuIEFuaW1hdGUgc21vb3RobHkgYmV0d2VlbiB0aGUgdHdvIHN0YXRlc1xuICAgICAqXG4gICAgICogVGhpcyBwcmV2ZW50cyB0aGUgd2hpdGUgZmxhc2ggZHVyaW5nIG5hdmlnYXRpb24gYW5kIGNyZWF0ZXMgYXBwLWxpa2UgdHJhbnNpdGlvbnMuXG4gICAgICovXG4gICAgc3RhdGljIF9pbmplY3RfdHJhbnNpdGlvbl9jc3MoKSB7XG4gICAgICAgIGNvbnN0IHN0eWxlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcblxuICAgICAgICBzdHlsZS50ZXh0Q29udGVudCA9IGBcbiAgICAgICAgICAgIEB2aWV3LXRyYW5zaXRpb24ge1xuICAgICAgICAgICAgICAgIG5hdmlnYXRpb246IGF1dG87XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8qIERpc2FibGUgYW5pbWF0aW9uIC0gaW5zdGFudCB0cmFuc2l0aW9uICovXG4gICAgICAgICAgICA6OnZpZXctdHJhbnNpdGlvbi1ncm91cCgqKSxcbiAgICAgICAgICAgIDo6dmlldy10cmFuc2l0aW9uLW9sZCgqKSxcbiAgICAgICAgICAgIDo6dmlldy10cmFuc2l0aW9uLW5ldygqKSB7XG4gICAgICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAwcztcbiAgICAgICAgICAgIH1cbiAgICAgICAgYDtcblxuICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHN0eWxlKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU1BLG9CQUFvQixDQUFDO0VBQ3ZCO0FBQ0o7QUFDQTtBQUNBO0VBQ0ksT0FBT0MsdUJBQXVCQSxDQUFBLEVBQUc7SUFDN0I7SUFDQSxJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsbUJBQW1CLEVBQUU7TUFDL0JDLGFBQWEsQ0FBQyxrQkFBa0IsRUFBRSw4Q0FBOEMsQ0FBQztNQUNqRjtJQUNKOztJQUVBO0lBQ0FKLG9CQUFvQixDQUFDSyxzQkFBc0IsQ0FBQyxDQUFDO0VBQ2pEOztFQUVBO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDSSxPQUFPQSxzQkFBc0JBLENBQUEsRUFBRztJQUM1QixNQUFNQyxLQUFLLEdBQUdKLFFBQVEsQ0FBQ0ssYUFBYSxDQUFDLE9BQU8sQ0FBQztJQUU3Q0QsS0FBSyxDQUFDRSxXQUFXLEdBQUc7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0lBRUROLFFBQVEsQ0FBQ08sSUFBSSxDQUFDQyxXQUFXLENBQUNKLEtBQUssQ0FBQztFQUNwQztBQUNKIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,28 @@
"use strict";
class Frontend_Settings_Notifications {
static init() {
if (!$(".Frontend_Settings_Notifications").exists()) return;
// Initialize your component here
console.log('Frontend_Settings_Notifications initialized');
// Example: Handle button clicks
$('.btn-action').on('click', function () {
// Handle action
});
// Example: Initialize tooltips
$('[data-bs-toggle="tooltip"]').tooltip();
}
static on_app_ready() {
Frontend_Settings_Notifications.init();
}
// static on_jqhtml_ready() {
// // Called after all JQHTML components have loaded and rendered
// // Use this if you need to interact with JQHTML components
// // Otherwise, use on_app_ready() for most initialization
// }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9TZXR0aW5nc19Ob3RpZmljYXRpb25zIiwiaW5pdCIsIiQiLCJleGlzdHMiLCJjb25zb2xlIiwibG9nIiwib24iLCJ0b29sdGlwIiwib25fYXBwX3JlYWR5Il0sInNvdXJjZXMiOlsicnN4L2FwcC9mcm9udGVuZC9zZXR0aW5ncy9ub3RpZmljYXRpb25zL2Zyb250ZW5kX3NldHRpbmdzX25vdGlmaWNhdGlvbnMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRnJvbnRlbmRfU2V0dGluZ3NfTm90aWZpY2F0aW9ucyB7XG4gICAgc3RhdGljIGluaXQoKSB7XG4gICAgICAgIGlmICghJChcIi5Gcm9udGVuZF9TZXR0aW5nc19Ob3RpZmljYXRpb25zXCIpLmV4aXN0cygpKSByZXR1cm47XG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSB5b3VyIGNvbXBvbmVudCBoZXJlXG4gICAgICAgIGNvbnNvbGUubG9nKCdGcm9udGVuZF9TZXR0aW5nc19Ob3RpZmljYXRpb25zIGluaXRpYWxpemVkJyk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSGFuZGxlIGJ1dHRvbiBjbGlja3NcbiAgICAgICAgJCgnLmJ0bi1hY3Rpb24nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBhY3Rpb25cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSW5pdGlhbGl6ZSB0b29sdGlwc1xuICAgICAgICAkKCdbZGF0YS1icy10b2dnbGU9XCJ0b29sdGlwXCJdJykudG9vbHRpcCgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBvbl9hcHBfcmVhZHkoKSB7XG4gICAgICAgIEZyb250ZW5kX1NldHRpbmdzX05vdGlmaWNhdGlvbnMuaW5pdCgpO1xuICAgIH1cblxuICAgIC8vIHN0YXRpYyBvbl9qcWh0bWxfcmVhZHkoKSB7XG4gICAgLy8gICAgIC8vIENhbGxlZCBhZnRlciBhbGwgSlFIVE1MIGNvbXBvbmVudHMgaGF2ZSBsb2FkZWQgYW5kIHJlbmRlcmVkXG4gICAgLy8gICAgIC8vIFVzZSB0aGlzIGlmIHlvdSBuZWVkIHRvIGludGVyYWN0IHdpdGggSlFIVE1MIGNvbXBvbmVudHNcbiAgICAvLyAgICAgLy8gT3RoZXJ3aXNlLCB1c2Ugb25fYXBwX3JlYWR5KCkgZm9yIG1vc3QgaW5pdGlhbGl6YXRpb25cbiAgICAvLyB9XG59Il0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLCtCQUErQixDQUFDO0VBQ2xDLE9BQU9DLElBQUlBLENBQUEsRUFBRztJQUNWLElBQUksQ0FBQ0MsQ0FBQyxDQUFDLGtDQUFrQyxDQUFDLENBQUNDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7O0lBRXJEO0lBQ0FDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLDZDQUE2QyxDQUFDOztJQUUxRDtJQUNBSCxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUNJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsWUFBVztNQUNwQztJQUFBLENBQ0gsQ0FBQzs7SUFFRjtJQUNBSixDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQ0ssT0FBTyxDQUFDLENBQUM7RUFDN0M7RUFFQSxPQUFPQyxZQUFZQSxDQUFBLEVBQUc7SUFDbEJSLCtCQUErQixDQUFDQyxJQUFJLENBQUMsQ0FBQztFQUMxQzs7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,41 @@
"use strict";
/**
* Save contact handler for Form component
* @param {Object} values - Serialized form values
* @returns {Promise<Object>} Response {success: bool, errors?: {}, redirect?: string}
*/
async function save_contact(values) {
// Check if editing existing contact
const contact_id = $('#contact-id').val();
if (contact_id) {
values.id = contact_id;
}
try {
const response = await Frontend_Contacts_Controller.save(values);
if (response.success) {
// Redirect to contact view or list on success
return {
success: true,
redirect: response.redirect || Rsx.Route('Frontend_Contacts_Controller', 'index')
};
} else {
// Return validation errors
return {
success: false,
errors: response.errors || {
_general: response.message || 'An error occurred'
}
};
}
} catch (error) {
console.error('Save error:', error);
return {
success: false,
errors: {
_general: 'An error occurred while saving. Please try again.'
}
};
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzYXZlX2NvbnRhY3QiLCJ2YWx1ZXMiLCJjb250YWN0X2lkIiwiJCIsInZhbCIsImlkIiwicmVzcG9uc2UiLCJGcm9udGVuZF9Db250YWN0c19Db250cm9sbGVyIiwic2F2ZSIsInN1Y2Nlc3MiLCJyZWRpcmVjdCIsIlJzeCIsIlJvdXRlIiwiZXJyb3JzIiwiX2dlbmVyYWwiLCJtZXNzYWdlIiwiZXJyb3IiLCJjb25zb2xlIl0sInNvdXJjZXMiOlsicnN4L2FwcC9mcm9udGVuZC9jb250YWN0cy9lZGl0L3NhdmVfY29udGFjdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNhdmUgY29udGFjdCBoYW5kbGVyIGZvciBGb3JtIGNvbXBvbmVudFxuICogQHBhcmFtIHtPYmplY3R9IHZhbHVlcyAtIFNlcmlhbGl6ZWQgZm9ybSB2YWx1ZXNcbiAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59IFJlc3BvbnNlIHtzdWNjZXNzOiBib29sLCBlcnJvcnM/OiB7fSwgcmVkaXJlY3Q/OiBzdHJpbmd9XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHNhdmVfY29udGFjdCh2YWx1ZXMpIHtcbiAgICAvLyBDaGVjayBpZiBlZGl0aW5nIGV4aXN0aW5nIGNvbnRhY3RcbiAgICBjb25zdCBjb250YWN0X2lkID0gJCgnI2NvbnRhY3QtaWQnKS52YWwoKTtcbiAgICBpZiAoY29udGFjdF9pZCkge1xuICAgICAgICB2YWx1ZXMuaWQgPSBjb250YWN0X2lkO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgRnJvbnRlbmRfQ29udGFjdHNfQ29udHJvbGxlci5zYXZlKHZhbHVlcyk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIC8vIFJlZGlyZWN0IHRvIGNvbnRhY3QgdmlldyBvciBsaXN0IG9uIHN1Y2Nlc3NcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgICAgICAgICByZWRpcmVjdDogcmVzcG9uc2UucmVkaXJlY3QgfHwgUnN4LlJvdXRlKCdGcm9udGVuZF9Db250YWN0c19Db250cm9sbGVyJywgJ2luZGV4JylcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBSZXR1cm4gdmFsaWRhdGlvbiBlcnJvcnNcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICAgICAgZXJyb3JzOiByZXNwb25zZS5lcnJvcnMgfHwge19nZW5lcmFsOiByZXNwb25zZS5tZXNzYWdlIHx8ICdBbiBlcnJvciBvY2N1cnJlZCd9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignU2F2ZSBlcnJvcjonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yczoge19nZW5lcmFsOiAnQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgc2F2aW5nLiBQbGVhc2UgdHJ5IGFnYWluLid9XG4gICAgICAgIH07XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlQSxZQUFZQSxDQUFDQyxNQUFNLEVBQUU7RUFDaEM7RUFDQSxNQUFNQyxVQUFVLEdBQUdDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQ0MsR0FBRyxDQUFDLENBQUM7RUFDekMsSUFBSUYsVUFBVSxFQUFFO0lBQ1pELE1BQU0sQ0FBQ0ksRUFBRSxHQUFHSCxVQUFVO0VBQzFCO0VBRUEsSUFBSTtJQUNBLE1BQU1JLFFBQVEsR0FBRyxNQUFNQyw0QkFBNEIsQ0FBQ0MsSUFBSSxDQUFDUCxNQUFNLENBQUM7SUFFaEUsSUFBSUssUUFBUSxDQUFDRyxPQUFPLEVBQUU7TUFDbEI7TUFDQSxPQUFPO1FBQ0hBLE9BQU8sRUFBRSxJQUFJO1FBQ2JDLFFBQVEsRUFBRUosUUFBUSxDQUFDSSxRQUFRLElBQUlDLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDLDhCQUE4QixFQUFFLE9BQU87TUFDcEYsQ0FBQztJQUNMLENBQUMsTUFBTTtNQUNIO01BQ0EsT0FBTztRQUNISCxPQUFPLEVBQUUsS0FBSztRQUNkSSxNQUFNLEVBQUVQLFFBQVEsQ0FBQ08sTUFBTSxJQUFJO1VBQUNDLFFBQVEsRUFBRVIsUUFBUSxDQUFDUyxPQUFPLElBQUk7UUFBbUI7TUFDakYsQ0FBQztJQUNMO0VBQ0osQ0FBQyxDQUFDLE9BQU9DLEtBQUssRUFBRTtJQUNaQyxPQUFPLENBQUNELEtBQUssQ0FBQyxhQUFhLEVBQUVBLEtBQUssQ0FBQztJQUNuQyxPQUFPO01BQ0hQLE9BQU8sRUFBRSxLQUFLO01BQ2RJLE1BQU0sRUFBRTtRQUFDQyxRQUFRLEVBQUU7TUFBbUQ7SUFDMUUsQ0FBQztFQUNMO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,12 @@
"use strict";
/**
* Projects_DataGrid Component
*
* Concrete implementation for projects datagrid.
* All functionality is in DataGrid_Abstract.
*/
class Projects_DataGrid extends DataGrid_Abstract {
// All behavior inherited from DataGrid_Abstract
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQcm9qZWN0c19EYXRhR3JpZCIsIkRhdGFHcmlkX0Fic3RyYWN0Il0sInNvdXJjZXMiOlsicnN4L2FwcC9mcm9udGVuZC9wcm9qZWN0cy9pbmRleC9wcm9qZWN0c19kYXRhZ3JpZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFByb2plY3RzX0RhdGFHcmlkIENvbXBvbmVudFxuICpcbiAqIENvbmNyZXRlIGltcGxlbWVudGF0aW9uIGZvciBwcm9qZWN0cyBkYXRhZ3JpZC5cbiAqIEFsbCBmdW5jdGlvbmFsaXR5IGlzIGluIERhdGFHcmlkX0Fic3RyYWN0LlxuICovXG5jbGFzcyBQcm9qZWN0c19EYXRhR3JpZCBleHRlbmRzIERhdGFHcmlkX0Fic3RyYWN0IHtcbiAgICAvLyBBbGwgYmVoYXZpb3IgaW5oZXJpdGVkIGZyb20gRGF0YUdyaWRfQWJzdHJhY3Rcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQSxpQkFBaUIsU0FBU0MsaUJBQWlCLENBQUM7RUFDOUM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,52 @@
"use strict";
/**
* Form_Row_Component - JQHTML Component
*
* Lifecycle methods are called in this order:
* 1. on_create() - Quick UI setup, runs bottom-up through component tree
* 2. on_load() - Fetch data from APIs (parallel execution, no DOM modifications)
* 3. on_ready() - Component fully initialized, runs bottom-up through component tree
*/
class Form_Row_Component extends Jqhtml_Component {
/**
* Called after render, quick UI setup (bottom-up)
* Use for: Initial state, event bindings, showing loading indicators
*/
async on_create() {
// Example: this.$id('loading').show();
// Example: this.$.addClass('initializing');
}
/**
* Fetch data from APIs (parallel, NO DOM modifications)
* Use for: Loading data from server, fetching configurations
* WARNING: Do NOT modify DOM here - only load data
*/
async on_load() {
// Example: this.data.users = await Users_Controller.get_users_api();
// Example: this.data.config = await this.load_config();
// WARNING: Do NOT modify DOM here - only load data
}
/**
* Component fully initialized (bottom-up)
* Use for: Final UI setup, hiding loading indicators, starting animations
*/
async on_ready() {
// Example: this.$id('loading').hide();
// Example: this.setup_event_listeners();
}
/**
* Click handler for the hello button
* Referenced in template via @click=this.on_click_hello
*/
on_click_hello() {
this.$id('inner_html').hide();
this.$id('hello_world').show();
}
// For more information: php artisan rsx:man jqhtml
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb3JtX1Jvd19Db21wb25lbnQiLCJKcWh0bWxfQ29tcG9uZW50Iiwib25fY3JlYXRlIiwib25fbG9hZCIsIm9uX3JlYWR5Iiwib25fY2xpY2tfaGVsbG8iLCIkaWQiLCJoaWRlIiwic2hvdyJdLCJzb3VyY2VzIjpbInJzeC90aGVtZS9jb21wb25lbnRzL19hcmNoaXZlZC91bmZpbmlzaGVkL2Zvcm1fcm93X2NvbXBvbmVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEZvcm1fUm93X0NvbXBvbmVudCAtIEpRSFRNTCBDb21wb25lbnRcbiAqXG4gKiBMaWZlY3ljbGUgbWV0aG9kcyBhcmUgY2FsbGVkIGluIHRoaXMgb3JkZXI6XG4gKiAxLiBvbl9jcmVhdGUoKSAtIFF1aWNrIFVJIHNldHVwLCBydW5zIGJvdHRvbS11cCB0aHJvdWdoIGNvbXBvbmVudCB0cmVlXG4gKiAyLiBvbl9sb2FkKCkgLSBGZXRjaCBkYXRhIGZyb20gQVBJcyAocGFyYWxsZWwgZXhlY3V0aW9uLCBubyBET00gbW9kaWZpY2F0aW9ucylcbiAqIDMuIG9uX3JlYWR5KCkgLSBDb21wb25lbnQgZnVsbHkgaW5pdGlhbGl6ZWQsIHJ1bnMgYm90dG9tLXVwIHRocm91Z2ggY29tcG9uZW50IHRyZWVcbiAqL1xuY2xhc3MgRm9ybV9Sb3dfQ29tcG9uZW50IGV4dGVuZHMgSnFodG1sX0NvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIGFmdGVyIHJlbmRlciwgcXVpY2sgVUkgc2V0dXAgKGJvdHRvbS11cClcbiAgICAgKiBVc2UgZm9yOiBJbml0aWFsIHN0YXRlLCBldmVudCBiaW5kaW5ncywgc2hvd2luZyBsb2FkaW5nIGluZGljYXRvcnNcbiAgICAgKi9cbiAgICBhc3luYyBvbl9jcmVhdGUoKSB7XG4gICAgICAgIC8vIEV4YW1wbGU6IHRoaXMuJGlkKCdsb2FkaW5nJykuc2hvdygpO1xuICAgICAgICAvLyBFeGFtcGxlOiB0aGlzLiQuYWRkQ2xhc3MoJ2luaXRpYWxpemluZycpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZldGNoIGRhdGEgZnJvbSBBUElzIChwYXJhbGxlbCwgTk8gRE9NIG1vZGlmaWNhdGlvbnMpXG4gICAgICogVXNlIGZvcjogTG9hZGluZyBkYXRhIGZyb20gc2VydmVyLCBmZXRjaGluZyBjb25maWd1cmF0aW9uc1xuICAgICAqIFdBUk5JTkc6IERvIE5PVCBtb2RpZnkgRE9NIGhlcmUgLSBvbmx5IGxvYWQgZGF0YVxuICAgICAqL1xuICAgIGFzeW5jIG9uX2xvYWQoKSB7XG4gICAgICAgIC8vIEV4YW1wbGU6IHRoaXMuZGF0YS51c2VycyA9IGF3YWl0IFVzZXJzX0NvbnRyb2xsZXIuZ2V0X3VzZXJzX2FwaSgpO1xuICAgICAgICAvLyBFeGFtcGxlOiB0aGlzLmRhdGEuY29uZmlnID0gYXdhaXQgdGhpcy5sb2FkX2NvbmZpZygpO1xuICAgICAgICAvLyBXQVJOSU5HOiBEbyBOT1QgbW9kaWZ5IERPTSBoZXJlIC0gb25seSBsb2FkIGRhdGFcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDb21wb25lbnQgZnVsbHkgaW5pdGlhbGl6ZWQgKGJvdHRvbS11cClcbiAgICAgKiBVc2UgZm9yOiBGaW5hbCBVSSBzZXR1cCwgaGlkaW5nIGxvYWRpbmcgaW5kaWNhdG9ycywgc3RhcnRpbmcgYW5pbWF0aW9uc1xuICAgICAqL1xuICAgIGFzeW5jIG9uX3JlYWR5KCkge1xuICAgICAgICAvLyBFeGFtcGxlOiB0aGlzLiRpZCgnbG9hZGluZycpLmhpZGUoKTtcbiAgICAgICAgLy8gRXhhbXBsZTogdGhpcy5zZXR1cF9ldmVudF9saXN0ZW5lcnMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGljayBoYW5kbGVyIGZvciB0aGUgaGVsbG8gYnV0dG9uXG4gICAgICogUmVmZXJlbmNlZCBpbiB0ZW1wbGF0ZSB2aWEgQGNsaWNrPXRoaXMub25fY2xpY2tfaGVsbG9cbiAgICAgKi9cbiAgICBvbl9jbGlja19oZWxsbygpIHtcbiAgICAgICAgdGhpcy4kaWQoJ2lubmVyX2h0bWwnKS5oaWRlKCk7XG4gICAgICAgIHRoaXMuJGlkKCdoZWxsb193b3JsZCcpLnNob3coKTtcbiAgICB9XG5cbiAgICAvLyBGb3IgbW9yZSBpbmZvcm1hdGlvbjogcGhwIGFydGlzYW4gcnN4Om1hbiBqcWh0bWxcbn0iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU1BLGtCQUFrQixTQUFTQyxnQkFBZ0IsQ0FBQztFQUM5QztBQUNKO0FBQ0E7QUFDQTtFQUNJLE1BQU1DLFNBQVNBLENBQUEsRUFBRztJQUNkO0lBQ0E7RUFBQTs7RUFHSjtBQUNKO0FBQ0E7QUFDQTtBQUNBO0VBQ0ksTUFBTUMsT0FBT0EsQ0FBQSxFQUFHO0lBQ1o7SUFDQTtJQUNBO0VBQUE7O0VBR0o7QUFDSjtBQUNBO0FBQ0E7RUFDSSxNQUFNQyxRQUFRQSxDQUFBLEVBQUc7SUFDYjtJQUNBO0VBQUE7O0VBR0o7QUFDSjtBQUNBO0FBQ0E7RUFDSUMsY0FBY0EsQ0FBQSxFQUFHO0lBQ2IsSUFBSSxDQUFDQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUNDLElBQUksQ0FBQyxDQUFDO0lBQzdCLElBQUksQ0FBQ0QsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDRSxJQUFJLENBQUMsQ0FBQztFQUNsQzs7RUFFQTtBQUNKIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,20 @@
"use strict";
/**
* Form_Validation_Message - Bootstrap 5 Validation Feedback Component
*
* Purpose: Display validation feedback messages (success/error) below form inputs
* Design: Bootstrap .invalid-feedback (default) or .valid-feedback styling
* Visibility: Only shows when sibling input has .is-valid or .is-invalid class
*/
class Form_Validation_Message extends Jqhtml_Component {
on_ready() {
// Add custom classes if provided (e.g., switching to valid-feedback)
if (this.args.class) {
// Replace default invalid-feedback with provided class
this.$.removeClass('invalid-feedback');
this.$.addClass(this.args.class);
}
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb3JtX1ZhbGlkYXRpb25fTWVzc2FnZSIsIkpxaHRtbF9Db21wb25lbnQiLCJvbl9yZWFkeSIsImFyZ3MiLCJjbGFzcyIsIiQiLCJyZW1vdmVDbGFzcyIsImFkZENsYXNzIl0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvRm9ybV9WYWxpZGF0aW9uX01lc3NhZ2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBGb3JtX1ZhbGlkYXRpb25fTWVzc2FnZSAtIEJvb3RzdHJhcCA1IFZhbGlkYXRpb24gRmVlZGJhY2sgQ29tcG9uZW50XG4gKlxuICogUHVycG9zZTogRGlzcGxheSB2YWxpZGF0aW9uIGZlZWRiYWNrIG1lc3NhZ2VzIChzdWNjZXNzL2Vycm9yKSBiZWxvdyBmb3JtIGlucHV0c1xuICogRGVzaWduOiBCb290c3RyYXAgLmludmFsaWQtZmVlZGJhY2sgKGRlZmF1bHQpIG9yIC52YWxpZC1mZWVkYmFjayBzdHlsaW5nXG4gKiBWaXNpYmlsaXR5OiBPbmx5IHNob3dzIHdoZW4gc2libGluZyBpbnB1dCBoYXMgLmlzLXZhbGlkIG9yIC5pcy1pbnZhbGlkIGNsYXNzXG4gKi9cbmNsYXNzIEZvcm1fVmFsaWRhdGlvbl9NZXNzYWdlIGV4dGVuZHMgSnFodG1sX0NvbXBvbmVudCB7XG4gICAgb25fcmVhZHkoKSB7XG4gICAgICAgIC8vIEFkZCBjdXN0b20gY2xhc3NlcyBpZiBwcm92aWRlZCAoZS5nLiwgc3dpdGNoaW5nIHRvIHZhbGlkLWZlZWRiYWNrKVxuICAgICAgICBpZiAodGhpcy5hcmdzLmNsYXNzKSB7XG4gICAgICAgICAgICAvLyBSZXBsYWNlIGRlZmF1bHQgaW52YWxpZC1mZWVkYmFjayB3aXRoIHByb3ZpZGVkIGNsYXNzXG4gICAgICAgICAgICB0aGlzLiQucmVtb3ZlQ2xhc3MoJ2ludmFsaWQtZmVlZGJhY2snKTtcbiAgICAgICAgICAgIHRoaXMuJC5hZGRDbGFzcyh0aGlzLmFyZ3MuY2xhc3MpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTUEsdUJBQXVCLFNBQVNDLGdCQUFnQixDQUFDO0VBQ25EQyxRQUFRQSxDQUFBLEVBQUc7SUFDUDtJQUNBLElBQUksSUFBSSxDQUFDQyxJQUFJLENBQUNDLEtBQUssRUFBRTtNQUNqQjtNQUNBLElBQUksQ0FBQ0MsQ0FBQyxDQUFDQyxXQUFXLENBQUMsa0JBQWtCLENBQUM7TUFDdEMsSUFBSSxDQUFDRCxDQUFDLENBQUNFLFFBQVEsQ0FBQyxJQUFJLENBQUNKLElBQUksQ0FBQ0MsS0FBSyxDQUFDO0lBQ3BDO0VBQ0o7QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,39 @@
"use strict";
class Activity_Feed extends Jqhtml_Component {
async on_load() {
if (this.args.data_source) {
const response = await fetch(this.args.data_source);
this.data.activities = await response.json();
} else if (this.args.activities) {
this.data.activities = this.args.activities;
}
}
on_ready() {
// Optional: Auto-refresh
if (this.args.auto_refresh) {
this.start_auto_refresh();
}
}
start_auto_refresh() {
const interval = this.args.refresh_interval || 30000; // Default 30 seconds
this.refresh_timer = setInterval(() => {
this.reload_data();
}, interval);
}
stop_auto_refresh() {
if (this.refresh_timer) {
clearInterval(this.refresh_timer);
this.refresh_timer = null;
}
}
async reload_data() {
if (this.args.data_source) {
const response = await fetch(this.args.data_source);
this.data.activities = await response.json();
this.render();
}
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBY3Rpdml0eV9GZWVkIiwiSnFodG1sX0NvbXBvbmVudCIsIm9uX2xvYWQiLCJhcmdzIiwiZGF0YV9zb3VyY2UiLCJyZXNwb25zZSIsImZldGNoIiwiZGF0YSIsImFjdGl2aXRpZXMiLCJqc29uIiwib25fcmVhZHkiLCJhdXRvX3JlZnJlc2giLCJzdGFydF9hdXRvX3JlZnJlc2giLCJpbnRlcnZhbCIsInJlZnJlc2hfaW50ZXJ2YWwiLCJyZWZyZXNoX3RpbWVyIiwic2V0SW50ZXJ2YWwiLCJyZWxvYWRfZGF0YSIsInN0b3BfYXV0b19yZWZyZXNoIiwiY2xlYXJJbnRlcnZhbCIsInJlbmRlciJdLCJzb3VyY2VzIjpbInJzeC90aGVtZS9jb21wb25lbnRzL19hcmNoaXZlZC91bmZpbmlzaGVkL0FjdGl2aXR5X0ZlZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgQWN0aXZpdHlfRmVlZCBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIGFzeW5jIG9uX2xvYWQoKSB7XG4gICAgICAgIGlmICh0aGlzLmFyZ3MuZGF0YV9zb3VyY2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGhpcy5hcmdzLmRhdGFfc291cmNlKTtcbiAgICAgICAgICAgIHRoaXMuZGF0YS5hY3Rpdml0aWVzID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYXJncy5hY3Rpdml0aWVzKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGEuYWN0aXZpdGllcyA9IHRoaXMuYXJncy5hY3Rpdml0aWVzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25fcmVhZHkoKSB7XG4gICAgICAgIC8vIE9wdGlvbmFsOiBBdXRvLXJlZnJlc2hcbiAgICAgICAgaWYgKHRoaXMuYXJncy5hdXRvX3JlZnJlc2gpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRfYXV0b19yZWZyZXNoKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGFydF9hdXRvX3JlZnJlc2goKSB7XG4gICAgICAgIGNvbnN0IGludGVydmFsID0gdGhpcy5hcmdzLnJlZnJlc2hfaW50ZXJ2YWwgfHwgMzAwMDA7IC8vIERlZmF1bHQgMzAgc2Vjb25kc1xuXG4gICAgICAgIHRoaXMucmVmcmVzaF90aW1lciA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVsb2FkX2RhdGEoKTtcbiAgICAgICAgfSwgaW50ZXJ2YWwpO1xuICAgIH1cblxuICAgIHN0b3BfYXV0b19yZWZyZXNoKCkge1xuICAgICAgICBpZiAodGhpcy5yZWZyZXNoX3RpbWVyKSB7XG4gICAgICAgICAgICBjbGVhckludGVydmFsKHRoaXMucmVmcmVzaF90aW1lcik7XG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hfdGltZXIgPSBudWxsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgcmVsb2FkX2RhdGEoKSB7XG4gICAgICAgIGlmICh0aGlzLmFyZ3MuZGF0YV9zb3VyY2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZmV0Y2godGhpcy5hcmdzLmRhdGFfc291cmNlKTtcbiAgICAgICAgICAgIHRoaXMuZGF0YS5hY3Rpdml0aWVzID0gYXdhaXQgcmVzcG9uc2UuanNvbigpO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXIoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxhQUFhLFNBQVNDLGdCQUFnQixDQUFDO0VBQ3pDLE1BQU1DLE9BQU9BLENBQUEsRUFBRztJQUNaLElBQUksSUFBSSxDQUFDQyxJQUFJLENBQUNDLFdBQVcsRUFBRTtNQUN2QixNQUFNQyxRQUFRLEdBQUcsTUFBTUMsS0FBSyxDQUFDLElBQUksQ0FBQ0gsSUFBSSxDQUFDQyxXQUFXLENBQUM7TUFDbkQsSUFBSSxDQUFDRyxJQUFJLENBQUNDLFVBQVUsR0FBRyxNQUFNSCxRQUFRLENBQUNJLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQ04sSUFBSSxDQUFDSyxVQUFVLEVBQUU7TUFDN0IsSUFBSSxDQUFDRCxJQUFJLENBQUNDLFVBQVUsR0FBRyxJQUFJLENBQUNMLElBQUksQ0FBQ0ssVUFBVTtJQUMvQztFQUNKO0VBRUFFLFFBQVFBLENBQUEsRUFBRztJQUNQO0lBQ0EsSUFBSSxJQUFJLENBQUNQLElBQUksQ0FBQ1EsWUFBWSxFQUFFO01BQ3hCLElBQUksQ0FBQ0Msa0JBQWtCLENBQUMsQ0FBQztJQUM3QjtFQUNKO0VBRUFBLGtCQUFrQkEsQ0FBQSxFQUFHO0lBQ2pCLE1BQU1DLFFBQVEsR0FBRyxJQUFJLENBQUNWLElBQUksQ0FBQ1csZ0JBQWdCLElBQUksS0FBSyxDQUFDLENBQUM7O0lBRXRELElBQUksQ0FBQ0MsYUFBYSxHQUFHQyxXQUFXLENBQUMsTUFBTTtNQUNuQyxJQUFJLENBQUNDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RCLENBQUMsRUFBRUosUUFBUSxDQUFDO0VBQ2hCO0VBRUFLLGlCQUFpQkEsQ0FBQSxFQUFHO0lBQ2hCLElBQUksSUFBSSxDQUFDSCxhQUFhLEVBQUU7TUFDcEJJLGFBQWEsQ0FBQyxJQUFJLENBQUNKLGFBQWEsQ0FBQztNQUNqQyxJQUFJLENBQUNBLGFBQWEsR0FBRyxJQUFJO0lBQzdCO0VBQ0o7RUFFQSxNQUFNRSxXQUFXQSxDQUFBLEVBQUc7SUFDaEIsSUFBSSxJQUFJLENBQUNkLElBQUksQ0FBQ0MsV0FBVyxFQUFFO01BQ3ZCLE1BQU1DLFFBQVEsR0FBRyxNQUFNQyxLQUFLLENBQUMsSUFBSSxDQUFDSCxJQUFJLENBQUNDLFdBQVcsQ0FBQztNQUNuRCxJQUFJLENBQUNHLElBQUksQ0FBQ0MsVUFBVSxHQUFHLE1BQU1ILFFBQVEsQ0FBQ0ksSUFBSSxDQUFDLENBQUM7TUFDNUMsSUFBSSxDQUFDVyxNQUFNLENBQUMsQ0FBQztJQUNqQjtFQUNKO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,22 @@
"use strict";
class User_Avatar_Dropdown extends Jqhtml_Component {
on_ready() {
// Ensure proper dropdown item structure
const $menu = this.$id('menu');
$menu.children().each(function () {
const $child = $(this);
if ($child.prop('tagName') !== 'LI') {
const $li = $('<li>');
if ($child.prop('tagName') === 'HR') {
$li.append($('<hr>').addClass('dropdown-divider'));
$child.replaceWith($li);
} else {
$child.addClass('dropdown-item');
$child.wrap($li);
}
}
});
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJVc2VyX0F2YXRhcl9Ecm9wZG93biIsIkpxaHRtbF9Db21wb25lbnQiLCJvbl9yZWFkeSIsIiRtZW51IiwiJGlkIiwiY2hpbGRyZW4iLCJlYWNoIiwiJGNoaWxkIiwiJCIsInByb3AiLCIkbGkiLCJhcHBlbmQiLCJhZGRDbGFzcyIsInJlcGxhY2VXaXRoIiwid3JhcCJdLCJzb3VyY2VzIjpbInJzeC90aGVtZS9jb21wb25lbnRzL19hcmNoaXZlZC91bmZpbmlzaGVkL1VzZXJfQXZhdGFyX0Ryb3Bkb3duLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFVzZXJfQXZhdGFyX0Ryb3Bkb3duIGV4dGVuZHMgSnFodG1sX0NvbXBvbmVudCB7XG4gICAgb25fcmVhZHkoKSB7XG4gICAgICAgIC8vIEVuc3VyZSBwcm9wZXIgZHJvcGRvd24gaXRlbSBzdHJ1Y3R1cmVcbiAgICAgICAgY29uc3QgJG1lbnUgPSB0aGlzLiRpZCgnbWVudScpO1xuICAgICAgICAkbWVudS5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCAkY2hpbGQgPSAkKHRoaXMpO1xuICAgICAgICAgICAgaWYgKCRjaGlsZC5wcm9wKCd0YWdOYW1lJykgIT09ICdMSScpIHtcbiAgICAgICAgICAgICAgICBjb25zdCAkbGkgPSAkKCc8bGk+Jyk7XG4gICAgICAgICAgICAgICAgaWYgKCRjaGlsZC5wcm9wKCd0YWdOYW1lJykgPT09ICdIUicpIHtcbiAgICAgICAgICAgICAgICAgICAgJGxpLmFwcGVuZCgkKCc8aHI+JykuYWRkQ2xhc3MoJ2Ryb3Bkb3duLWRpdmlkZXInKSk7XG4gICAgICAgICAgICAgICAgICAgICRjaGlsZC5yZXBsYWNlV2l0aCgkbGkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICRjaGlsZC5hZGRDbGFzcygnZHJvcGRvd24taXRlbScpO1xuICAgICAgICAgICAgICAgICAgICAkY2hpbGQud3JhcCgkbGkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLG9CQUFvQixTQUFTQyxnQkFBZ0IsQ0FBQztFQUNoREMsUUFBUUEsQ0FBQSxFQUFHO0lBQ1A7SUFDQSxNQUFNQyxLQUFLLEdBQUcsSUFBSSxDQUFDQyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQzlCRCxLQUFLLENBQUNFLFFBQVEsQ0FBQyxDQUFDLENBQUNDLElBQUksQ0FBQyxZQUFXO01BQzdCLE1BQU1DLE1BQU0sR0FBR0MsQ0FBQyxDQUFDLElBQUksQ0FBQztNQUN0QixJQUFJRCxNQUFNLENBQUNFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDakMsTUFBTUMsR0FBRyxHQUFHRixDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3JCLElBQUlELE1BQU0sQ0FBQ0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtVQUNqQ0MsR0FBRyxDQUFDQyxNQUFNLENBQUNILENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQ0ksUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7VUFDbERMLE1BQU0sQ0FBQ00sV0FBVyxDQUFDSCxHQUFHLENBQUM7UUFDM0IsQ0FBQyxNQUFNO1VBQ0hILE1BQU0sQ0FBQ0ssUUFBUSxDQUFDLGVBQWUsQ0FBQztVQUNoQ0wsTUFBTSxDQUFDTyxJQUFJLENBQUNKLEdBQUcsQ0FBQztRQUNwQjtNQUNKO0lBQ0osQ0FBQyxDQUFDO0VBQ047QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,28 @@
"use strict";
class Frontend_Calendar {
static init() {
if (!$(".Frontend_Calendar").exists()) return;
// Initialize your component here
console.log('Frontend_Calendar initialized');
// Example: Handle button clicks
$('.btn-action').on('click', function () {
// Handle action
});
// Example: Initialize tooltips
$('[data-bs-toggle="tooltip"]').tooltip();
}
static on_app_ready() {
Frontend_Calendar.init();
}
// static on_jqhtml_ready() {
// // Called after all JQHTML components have loaded and rendered
// // Use this if you need to interact with JQHTML components
// // Otherwise, use on_app_ready() for most initialization
// }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9DYWxlbmRhciIsImluaXQiLCIkIiwiZXhpc3RzIiwiY29uc29sZSIsImxvZyIsIm9uIiwidG9vbHRpcCIsIm9uX2FwcF9yZWFkeSJdLCJzb3VyY2VzIjpbInJzeC9hcHAvZnJvbnRlbmQvY2FsZW5kYXIvZnJvbnRlbmRfY2FsZW5kYXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRnJvbnRlbmRfQ2FsZW5kYXIge1xuICAgIHN0YXRpYyBpbml0KCkge1xuICAgICAgICBpZiAoISQoXCIuRnJvbnRlbmRfQ2FsZW5kYXJcIikuZXhpc3RzKCkpIHJldHVybjtcblxuICAgICAgICAvLyBJbml0aWFsaXplIHlvdXIgY29tcG9uZW50IGhlcmVcbiAgICAgICAgY29uc29sZS5sb2coJ0Zyb250ZW5kX0NhbGVuZGFyIGluaXRpYWxpemVkJyk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSGFuZGxlIGJ1dHRvbiBjbGlja3NcbiAgICAgICAgJCgnLmJ0bi1hY3Rpb24nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBhY3Rpb25cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSW5pdGlhbGl6ZSB0b29sdGlwc1xuICAgICAgICAkKCdbZGF0YS1icy10b2dnbGU9XCJ0b29sdGlwXCJdJykudG9vbHRpcCgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBvbl9hcHBfcmVhZHkoKSB7XG4gICAgICAgIEZyb250ZW5kX0NhbGVuZGFyLmluaXQoKTtcbiAgICB9XG5cbiAgICAvLyBzdGF0aWMgb25fanFodG1sX3JlYWR5KCkge1xuICAgIC8vICAgICAvLyBDYWxsZWQgYWZ0ZXIgYWxsIEpRSFRNTCBjb21wb25lbnRzIGhhdmUgbG9hZGVkIGFuZCByZW5kZXJlZFxuICAgIC8vICAgICAvLyBVc2UgdGhpcyBpZiB5b3UgbmVlZCB0byBpbnRlcmFjdCB3aXRoIEpRSFRNTCBjb21wb25lbnRzXG4gICAgLy8gICAgIC8vIE90aGVyd2lzZSwgdXNlIG9uX2FwcF9yZWFkeSgpIGZvciBtb3N0IGluaXRpYWxpemF0aW9uXG4gICAgLy8gfVxufSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxpQkFBaUIsQ0FBQztFQUNwQixPQUFPQyxJQUFJQSxDQUFBLEVBQUc7SUFDVixJQUFJLENBQUNDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDQyxNQUFNLENBQUMsQ0FBQyxFQUFFOztJQUV2QztJQUNBQyxPQUFPLENBQUNDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQzs7SUFFNUM7SUFDQUgsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDSSxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVc7TUFDcEM7SUFBQSxDQUNILENBQUM7O0lBRUY7SUFDQUosQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUNLLE9BQU8sQ0FBQyxDQUFDO0VBQzdDO0VBRUEsT0FBT0MsWUFBWUEsQ0FBQSxFQUFHO0lBQ2xCUixpQkFBaUIsQ0FBQ0MsSUFBSSxDQUFDLENBQUM7RUFDNUI7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNKIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,20 @@
"use strict";
class Calendar_Event extends Jqhtml_Component {
on_ready() {
if (this.args.on_click) {
this.$.on('click', () => {
this.args.on_click(this.args);
});
}
// Hover effect
this.$.on('mouseenter', () => {
this.$.addClass('shadow-sm');
});
this.$.on('mouseleave', () => {
this.$.removeClass('shadow-sm');
});
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDYWxlbmRhcl9FdmVudCIsIkpxaHRtbF9Db21wb25lbnQiLCJvbl9yZWFkeSIsImFyZ3MiLCJvbl9jbGljayIsIiQiLCJvbiIsImFkZENsYXNzIiwicmVtb3ZlQ2xhc3MiXSwic291cmNlcyI6WyJyc3gvdGhlbWUvY29tcG9uZW50cy9fYXJjaGl2ZWQvdW5maW5pc2hlZC9DYWxlbmRhcl9FdmVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBDYWxlbmRhcl9FdmVudCBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIG9uX3JlYWR5KCkge1xuICAgICAgICBpZiAodGhpcy5hcmdzLm9uX2NsaWNrKSB7XG4gICAgICAgICAgICB0aGlzLiQub24oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYXJncy5vbl9jbGljayh0aGlzLmFyZ3MpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIb3ZlciBlZmZlY3RcbiAgICAgICAgdGhpcy4kLm9uKCdtb3VzZWVudGVyJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kLmFkZENsYXNzKCdzaGFkb3ctc20nKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy4kLm9uKCdtb3VzZWxlYXZlJywgKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy4kLnJlbW92ZUNsYXNzKCdzaGFkb3ctc20nKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLGNBQWMsU0FBU0MsZ0JBQWdCLENBQUM7RUFDMUNDLFFBQVFBLENBQUEsRUFBRztJQUNQLElBQUksSUFBSSxDQUFDQyxJQUFJLENBQUNDLFFBQVEsRUFBRTtNQUNwQixJQUFJLENBQUNDLENBQUMsQ0FBQ0MsRUFBRSxDQUFDLE9BQU8sRUFBRSxNQUFNO1FBQ3JCLElBQUksQ0FBQ0gsSUFBSSxDQUFDQyxRQUFRLENBQUMsSUFBSSxDQUFDRCxJQUFJLENBQUM7TUFDakMsQ0FBQyxDQUFDO0lBQ047O0lBRUE7SUFDQSxJQUFJLENBQUNFLENBQUMsQ0FBQ0MsRUFBRSxDQUFDLFlBQVksRUFBRSxNQUFNO01BQzFCLElBQUksQ0FBQ0QsQ0FBQyxDQUFDRSxRQUFRLENBQUMsV0FBVyxDQUFDO0lBQ2hDLENBQUMsQ0FBQztJQUVGLElBQUksQ0FBQ0YsQ0FBQyxDQUFDQyxFQUFFLENBQUMsWUFBWSxFQUFFLE1BQU07TUFDMUIsSUFBSSxDQUFDRCxDQUFDLENBQUNHLFdBQVcsQ0FBQyxXQUFXLENBQUM7SUFDbkMsQ0FBQyxDQUFDO0VBQ047QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,22 @@
"use strict";
class Row_Action_Menu extends Jqhtml_Component {
on_ready() {
// Wrap children in dropdown structure
const $menu = this.$id('menu');
$menu.children().each(function () {
const $child = $(this);
if ($child.prop('tagName') !== 'LI') {
if ($child.prop('tagName') === 'HR') {
const $li = $('<li>').append($('<hr>').addClass('dropdown-divider'));
$child.replaceWith($li);
} else {
$child.addClass('dropdown-item');
const $li = $('<li>');
$child.wrap($li);
}
}
});
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSb3dfQWN0aW9uX01lbnUiLCJKcWh0bWxfQ29tcG9uZW50Iiwib25fcmVhZHkiLCIkbWVudSIsIiRpZCIsImNoaWxkcmVuIiwiZWFjaCIsIiRjaGlsZCIsIiQiLCJwcm9wIiwiJGxpIiwiYXBwZW5kIiwiYWRkQ2xhc3MiLCJyZXBsYWNlV2l0aCIsIndyYXAiXSwic291cmNlcyI6WyJyc3gvdGhlbWUvY29tcG9uZW50cy9fYXJjaGl2ZWQvdW5maW5pc2hlZC9Sb3dfQWN0aW9uX01lbnUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgUm93X0FjdGlvbl9NZW51IGV4dGVuZHMgSnFodG1sX0NvbXBvbmVudCB7XG4gICAgb25fcmVhZHkoKSB7XG4gICAgICAgIC8vIFdyYXAgY2hpbGRyZW4gaW4gZHJvcGRvd24gc3RydWN0dXJlXG4gICAgICAgIGNvbnN0ICRtZW51ID0gdGhpcy4kaWQoJ21lbnUnKTtcbiAgICAgICAgJG1lbnUuY2hpbGRyZW4oKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgY29uc3QgJGNoaWxkID0gJCh0aGlzKTtcbiAgICAgICAgICAgIGlmICgkY2hpbGQucHJvcCgndGFnTmFtZScpICE9PSAnTEknKSB7XG4gICAgICAgICAgICAgICAgaWYgKCRjaGlsZC5wcm9wKCd0YWdOYW1lJykgPT09ICdIUicpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgJGxpID0gJCgnPGxpPicpLmFwcGVuZCgkKCc8aHI+JykuYWRkQ2xhc3MoJ2Ryb3Bkb3duLWRpdmlkZXInKSk7XG4gICAgICAgICAgICAgICAgICAgICRjaGlsZC5yZXBsYWNlV2l0aCgkbGkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICRjaGlsZC5hZGRDbGFzcygnZHJvcGRvd24taXRlbScpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCAkbGkgPSAkKCc8bGk+Jyk7XG4gICAgICAgICAgICAgICAgICAgICRjaGlsZC53cmFwKCRsaSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsZUFBZSxTQUFTQyxnQkFBZ0IsQ0FBQztFQUMzQ0MsUUFBUUEsQ0FBQSxFQUFHO0lBQ1A7SUFDQSxNQUFNQyxLQUFLLEdBQUcsSUFBSSxDQUFDQyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQzlCRCxLQUFLLENBQUNFLFFBQVEsQ0FBQyxDQUFDLENBQUNDLElBQUksQ0FBQyxZQUFXO01BQzdCLE1BQU1DLE1BQU0sR0FBR0MsQ0FBQyxDQUFDLElBQUksQ0FBQztNQUN0QixJQUFJRCxNQUFNLENBQUNFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDakMsSUFBSUYsTUFBTSxDQUFDRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFO1VBQ2pDLE1BQU1DLEdBQUcsR0FBR0YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDRyxNQUFNLENBQUNILENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQ0ksUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7VUFDcEVMLE1BQU0sQ0FBQ00sV0FBVyxDQUFDSCxHQUFHLENBQUM7UUFDM0IsQ0FBQyxNQUFNO1VBQ0hILE1BQU0sQ0FBQ0ssUUFBUSxDQUFDLGVBQWUsQ0FBQztVQUNoQyxNQUFNRixHQUFHLEdBQUdGLENBQUMsQ0FBQyxNQUFNLENBQUM7VUFDckJELE1BQU0sQ0FBQ08sSUFBSSxDQUFDSixHQUFHLENBQUM7UUFDcEI7TUFDSjtJQUNKLENBQUMsQ0FBQztFQUNOO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,36 @@
"use strict";
/**
* Add_User_Modal - Modal for adding/inviting new users to site
*
* Displays form to collect user information and create pending invitation.
* Uses Add_User_Modal_Form component for UI and validation.
*
* Returns created user record on success, false on cancel.
*/
class Add_User_Modal extends Modal_Abstract {
/**
* Show add user modal
*
* @returns {Promise<Object|false>} User record on success, false on cancel
*/
static async show() {
const result = await Modal.form({
title: 'Add User',
component: 'Add_User_Modal_Form',
on_submit: async form => {
try {
const values = form.vals();
const result = await Frontend_Settings_User_Management_Controller.add_user(values);
return result; // Close modal, return user data
} catch (error) {
// Render error (form handles both validation and generic errors)
await form.render_error(error);
return false; // Keep modal open
}
}
});
return result || false;
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBZGRfVXNlcl9Nb2RhbCIsIk1vZGFsX0Fic3RyYWN0Iiwic2hvdyIsInJlc3VsdCIsIk1vZGFsIiwiZm9ybSIsInRpdGxlIiwiY29tcG9uZW50Iiwib25fc3VibWl0IiwidmFsdWVzIiwidmFscyIsIkZyb250ZW5kX1NldHRpbmdzX1VzZXJfTWFuYWdlbWVudF9Db250cm9sbGVyIiwiYWRkX3VzZXIiLCJlcnJvciIsInJlbmRlcl9lcnJvciJdLCJzb3VyY2VzIjpbInJzeC9hcHAvZnJvbnRlbmQvc2V0dGluZ3MvdXNlcl9tYW5hZ2VtZW50L2FkZF91c2VyX21vZGFsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQWRkX1VzZXJfTW9kYWwgLSBNb2RhbCBmb3IgYWRkaW5nL2ludml0aW5nIG5ldyB1c2VycyB0byBzaXRlXG4gKlxuICogRGlzcGxheXMgZm9ybSB0byBjb2xsZWN0IHVzZXIgaW5mb3JtYXRpb24gYW5kIGNyZWF0ZSBwZW5kaW5nIGludml0YXRpb24uXG4gKiBVc2VzIEFkZF9Vc2VyX01vZGFsX0Zvcm0gY29tcG9uZW50IGZvciBVSSBhbmQgdmFsaWRhdGlvbi5cbiAqXG4gKiBSZXR1cm5zIGNyZWF0ZWQgdXNlciByZWNvcmQgb24gc3VjY2VzcywgZmFsc2Ugb24gY2FuY2VsLlxuICovXG5jbGFzcyBBZGRfVXNlcl9Nb2RhbCBleHRlbmRzIE1vZGFsX0Fic3RyYWN0IHtcbiAgICAvKipcbiAgICAgKiBTaG93IGFkZCB1c2VyIG1vZGFsXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxPYmplY3R8ZmFsc2U+fSBVc2VyIHJlY29yZCBvbiBzdWNjZXNzLCBmYWxzZSBvbiBjYW5jZWxcbiAgICAgKi9cbiAgICBzdGF0aWMgYXN5bmMgc2hvdygpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgTW9kYWwuZm9ybSh7XG4gICAgICAgICAgICB0aXRsZTogJ0FkZCBVc2VyJyxcbiAgICAgICAgICAgIGNvbXBvbmVudDogJ0FkZF9Vc2VyX01vZGFsX0Zvcm0nLFxuICAgICAgICAgICAgb25fc3VibWl0OiBhc3luYyAoZm9ybSkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlcyA9IGZvcm0udmFscygpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBGcm9udGVuZF9TZXR0aW5nc19Vc2VyX01hbmFnZW1lbnRfQ29udHJvbGxlci5hZGRfdXNlcih2YWx1ZXMpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OyAvLyBDbG9zZSBtb2RhbCwgcmV0dXJuIHVzZXIgZGF0YVxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFJlbmRlciBlcnJvciAoZm9ybSBoYW5kbGVzIGJvdGggdmFsaWRhdGlvbiBhbmQgZ2VuZXJpYyBlcnJvcnMpXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IGZvcm0ucmVuZGVyX2Vycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBLZWVwIG1vZGFsIG9wZW5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gcmVzdWx0IHx8IGZhbHNlO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTUEsY0FBYyxTQUFTQyxjQUFjLENBQUM7RUFDeEM7QUFDSjtBQUNBO0FBQ0E7QUFDQTtFQUNJLGFBQWFDLElBQUlBLENBQUEsRUFBRztJQUNoQixNQUFNQyxNQUFNLEdBQUcsTUFBTUMsS0FBSyxDQUFDQyxJQUFJLENBQUM7TUFDNUJDLEtBQUssRUFBRSxVQUFVO01BQ2pCQyxTQUFTLEVBQUUscUJBQXFCO01BQ2hDQyxTQUFTLEVBQUUsTUFBT0gsSUFBSSxJQUFLO1FBQ3ZCLElBQUk7VUFDQSxNQUFNSSxNQUFNLEdBQUdKLElBQUksQ0FBQ0ssSUFBSSxDQUFDLENBQUM7VUFDMUIsTUFBTVAsTUFBTSxHQUFHLE1BQU1RLDRDQUE0QyxDQUFDQyxRQUFRLENBQUNILE1BQU0sQ0FBQztVQUNsRixPQUFPTixNQUFNLENBQUMsQ0FBQztRQUNuQixDQUFDLENBQUMsT0FBT1UsS0FBSyxFQUFFO1VBQ1o7VUFDQSxNQUFNUixJQUFJLENBQUNTLFlBQVksQ0FBQ0QsS0FBSyxDQUFDO1VBQzlCLE9BQU8sS0FBSyxDQUFDLENBQUM7UUFDbEI7TUFDSjtJQUNKLENBQUMsQ0FBQztJQUVGLE9BQU9WLE1BQU0sSUFBSSxLQUFLO0VBQzFCO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,21 @@
"use strict";
class Breadcrumb_Item extends Jqhtml_Component {
on_create() {
// Read href from HTML attribute if present
const href = this.$.attr('href');
if (href) {
this.args.href = href;
}
// Read active from HTML attribute if present
const active = this.$.attr('active');
if (active !== undefined) {
this.args.active = true;
this.$.addClass('active');
this.$.attr('aria-current', 'page');
this.$.removeAttr('active'); // Remove the attribute after reading
}
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCcmVhZGNydW1iX0l0ZW0iLCJKcWh0bWxfQ29tcG9uZW50Iiwib25fY3JlYXRlIiwiaHJlZiIsIiQiLCJhdHRyIiwiYXJncyIsImFjdGl2ZSIsInVuZGVmaW5lZCIsImFkZENsYXNzIiwicmVtb3ZlQXR0ciJdLCJzb3VyY2VzIjpbInJzeC90aGVtZS9jb21wb25lbnRzL3BhZ2VfZWxlbWVudHMvYnJlYWRjcnVtYl9pdGVtLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIEJyZWFkY3J1bWJfSXRlbSBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIG9uX2NyZWF0ZSgpIHtcbiAgICAgICAgLy8gUmVhZCBocmVmIGZyb20gSFRNTCBhdHRyaWJ1dGUgaWYgcHJlc2VudFxuICAgICAgICBjb25zdCBocmVmID0gdGhpcy4kLmF0dHIoJ2hyZWYnKTtcbiAgICAgICAgaWYgKGhyZWYpIHtcbiAgICAgICAgICAgIHRoaXMuYXJncy5ocmVmID0gaHJlZjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlYWQgYWN0aXZlIGZyb20gSFRNTCBhdHRyaWJ1dGUgaWYgcHJlc2VudFxuICAgICAgICBjb25zdCBhY3RpdmUgPSB0aGlzLiQuYXR0cignYWN0aXZlJyk7XG4gICAgICAgIGlmIChhY3RpdmUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5hcmdzLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLiQuYWRkQ2xhc3MoJ2FjdGl2ZScpO1xuICAgICAgICAgICAgdGhpcy4kLmF0dHIoJ2FyaWEtY3VycmVudCcsICdwYWdlJyk7XG4gICAgICAgICAgICB0aGlzLiQucmVtb3ZlQXR0cignYWN0aXZlJyk7IC8vIFJlbW92ZSB0aGUgYXR0cmlidXRlIGFmdGVyIHJlYWRpbmdcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxlQUFlLFNBQVNDLGdCQUFnQixDQUFDO0VBQzNDQyxTQUFTQSxDQUFBLEVBQUc7SUFDUjtJQUNBLE1BQU1DLElBQUksR0FBRyxJQUFJLENBQUNDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNoQyxJQUFJRixJQUFJLEVBQUU7TUFDTixJQUFJLENBQUNHLElBQUksQ0FBQ0gsSUFBSSxHQUFHQSxJQUFJO0lBQ3pCOztJQUVBO0lBQ0EsTUFBTUksTUFBTSxHQUFHLElBQUksQ0FBQ0gsQ0FBQyxDQUFDQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3BDLElBQUlFLE1BQU0sS0FBS0MsU0FBUyxFQUFFO01BQ3RCLElBQUksQ0FBQ0YsSUFBSSxDQUFDQyxNQUFNLEdBQUcsSUFBSTtNQUN2QixJQUFJLENBQUNILENBQUMsQ0FBQ0ssUUFBUSxDQUFDLFFBQVEsQ0FBQztNQUN6QixJQUFJLENBQUNMLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUM7TUFDbkMsSUFBSSxDQUFDRCxDQUFDLENBQUNNLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ2pDO0VBQ0o7QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,28 @@
"use strict";
class Frontend_Tasks {
static init() {
if (!$(".Frontend_Tasks").exists()) return;
// Initialize your component here
console.log('Frontend_Tasks initialized');
// Example: Handle button clicks
$('.btn-action').on('click', function () {
// Handle action
});
// Example: Initialize tooltips
$('[data-bs-toggle="tooltip"]').tooltip();
}
static on_app_ready() {
Frontend_Tasks.init();
}
// static on_jqhtml_ready() {
// // Called after all JQHTML components have loaded and rendered
// // Use this if you need to interact with JQHTML components
// // Otherwise, use on_app_ready() for most initialization
// }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9UYXNrcyIsImluaXQiLCIkIiwiZXhpc3RzIiwiY29uc29sZSIsImxvZyIsIm9uIiwidG9vbHRpcCIsIm9uX2FwcF9yZWFkeSJdLCJzb3VyY2VzIjpbInJzeC9hcHAvZnJvbnRlbmQvdGFza3MvZnJvbnRlbmRfdGFza3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRnJvbnRlbmRfVGFza3Mge1xuICAgIHN0YXRpYyBpbml0KCkge1xuICAgICAgICBpZiAoISQoXCIuRnJvbnRlbmRfVGFza3NcIikuZXhpc3RzKCkpIHJldHVybjtcblxuICAgICAgICAvLyBJbml0aWFsaXplIHlvdXIgY29tcG9uZW50IGhlcmVcbiAgICAgICAgY29uc29sZS5sb2coJ0Zyb250ZW5kX1Rhc2tzIGluaXRpYWxpemVkJyk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSGFuZGxlIGJ1dHRvbiBjbGlja3NcbiAgICAgICAgJCgnLmJ0bi1hY3Rpb24nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBhY3Rpb25cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSW5pdGlhbGl6ZSB0b29sdGlwc1xuICAgICAgICAkKCdbZGF0YS1icy10b2dnbGU9XCJ0b29sdGlwXCJdJykudG9vbHRpcCgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBvbl9hcHBfcmVhZHkoKSB7XG4gICAgICAgIEZyb250ZW5kX1Rhc2tzLmluaXQoKTtcbiAgICB9XG5cbiAgICAvLyBzdGF0aWMgb25fanFodG1sX3JlYWR5KCkge1xuICAgIC8vICAgICAvLyBDYWxsZWQgYWZ0ZXIgYWxsIEpRSFRNTCBjb21wb25lbnRzIGhhdmUgbG9hZGVkIGFuZCByZW5kZXJlZFxuICAgIC8vICAgICAvLyBVc2UgdGhpcyBpZiB5b3UgbmVlZCB0byBpbnRlcmFjdCB3aXRoIEpRSFRNTCBjb21wb25lbnRzXG4gICAgLy8gICAgIC8vIE90aGVyd2lzZSwgdXNlIG9uX2FwcF9yZWFkeSgpIGZvciBtb3N0IGluaXRpYWxpemF0aW9uXG4gICAgLy8gfVxufSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxjQUFjLENBQUM7RUFDakIsT0FBT0MsSUFBSUEsQ0FBQSxFQUFHO0lBQ1YsSUFBSSxDQUFDQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQ0MsTUFBTSxDQUFDLENBQUMsRUFBRTs7SUFFcEM7SUFDQUMsT0FBTyxDQUFDQyxHQUFHLENBQUMsNEJBQTRCLENBQUM7O0lBRXpDO0lBQ0FILENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQ0ksRUFBRSxDQUFDLE9BQU8sRUFBRSxZQUFXO01BQ3BDO0lBQUEsQ0FDSCxDQUFDOztJQUVGO0lBQ0FKLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDSyxPQUFPLENBQUMsQ0FBQztFQUM3QztFQUVBLE9BQU9DLFlBQVlBLENBQUEsRUFBRztJQUNsQlIsY0FBYyxDQUFDQyxJQUFJLENBQUMsQ0FBQztFQUN6Qjs7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,48 @@
"use strict";
/**
* Rsx_Init - Core framework initialization and environment validation
*/
class Rsx_Init {
/**
* Called via Rsx._rsx_core_boot
* Initializes the core environment and runs basic sanity checks
*/
static _on_framework_core_init() {
if (!Rsx.is_prod()) {
Rsx_Init.__environment_checks();
}
}
/**
* Development environment checks to ensure proper configuration
*/
static __environment_checks() {
// Find all script tags in the DOM
const scripts = document.getElementsByTagName('script');
for (let i = 0; i < scripts.length; i++) {
const script = scripts[i];
// Skip inline scripts (no src attribute)
if (!script.src) {
continue;
}
// Check if script has defer attribute
if (!script.defer) {
const src = script.src || '(inline script)';
const reason = `All script tags used in an RSpade project must have defer attribute. Found script without defer: ${src}`;
// Stop framework boot with reason
Rsx._rsx_core_boot_stop(reason);
// Also log to console for visibility
console.error(`[RSX BOOT STOPPED] ${reason}`);
// Stop checking after first violation
return;
}
}
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSc3hfSW5pdCIsIl9vbl9mcmFtZXdvcmtfY29yZV9pbml0IiwiUnN4IiwiaXNfcHJvZCIsIl9fZW52aXJvbm1lbnRfY2hlY2tzIiwic2NyaXB0cyIsImRvY3VtZW50IiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJpIiwibGVuZ3RoIiwic2NyaXB0Iiwic3JjIiwiZGVmZXIiLCJyZWFzb24iLCJfcnN4X2NvcmVfYm9vdF9zdG9wIiwiY29uc29sZSIsImVycm9yIl0sInNvdXJjZXMiOlsiYXBwL1JTcGFkZS9Db3JlL0pzL1JzeF9Jbml0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUnN4X0luaXQgLSBDb3JlIGZyYW1ld29yayBpbml0aWFsaXphdGlvbiBhbmQgZW52aXJvbm1lbnQgdmFsaWRhdGlvblxuICovXG5jbGFzcyBSc3hfSW5pdCB7XG4gICAgLyoqXG4gICAgICogQ2FsbGVkIHZpYSBSc3guX3JzeF9jb3JlX2Jvb3RcbiAgICAgKiBJbml0aWFsaXplcyB0aGUgY29yZSBlbnZpcm9ubWVudCBhbmQgcnVucyBiYXNpYyBzYW5pdHkgY2hlY2tzXG4gICAgICovXG4gICAgc3RhdGljIF9vbl9mcmFtZXdvcmtfY29yZV9pbml0KCkge1xuICAgICAgICBpZiAoIVJzeC5pc19wcm9kKCkpIHtcbiAgICAgICAgICAgIFJzeF9Jbml0Ll9fZW52aXJvbm1lbnRfY2hlY2tzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXZlbG9wbWVudCBlbnZpcm9ubWVudCBjaGVja3MgdG8gZW5zdXJlIHByb3BlciBjb25maWd1cmF0aW9uXG4gICAgICovXG4gICAgc3RhdGljIF9fZW52aXJvbm1lbnRfY2hlY2tzKCkge1xuICAgICAgICAvLyBGaW5kIGFsbCBzY3JpcHQgdGFncyBpbiB0aGUgRE9NXG4gICAgICAgIGNvbnN0IHNjcmlwdHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0Jyk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzY3JpcHRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBzY3JpcHRzW2ldO1xuXG4gICAgICAgICAgICAvLyBTa2lwIGlubGluZSBzY3JpcHRzIChubyBzcmMgYXR0cmlidXRlKVxuICAgICAgICAgICAgaWYgKCFzY3JpcHQuc3JjKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHNjcmlwdCBoYXMgZGVmZXIgYXR0cmlidXRlXG4gICAgICAgICAgICBpZiAoIXNjcmlwdC5kZWZlcikge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNyYyA9IHNjcmlwdC5zcmMgfHwgJyhpbmxpbmUgc2NyaXB0KSc7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVhc29uID0gYEFsbCBzY3JpcHQgdGFncyB1c2VkIGluIGFuIFJTcGFkZSBwcm9qZWN0IG11c3QgaGF2ZSBkZWZlciBhdHRyaWJ1dGUuIEZvdW5kIHNjcmlwdCB3aXRob3V0IGRlZmVyOiAke3NyY31gO1xuXG4gICAgICAgICAgICAgICAgLy8gU3RvcCBmcmFtZXdvcmsgYm9vdCB3aXRoIHJlYXNvblxuICAgICAgICAgICAgICAgIFJzeC5fcnN4X2NvcmVfYm9vdF9zdG9wKHJlYXNvbik7XG5cbiAgICAgICAgICAgICAgICAvLyBBbHNvIGxvZyB0byBjb25zb2xlIGZvciB2aXNpYmlsaXR5XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihgW1JTWCBCT09UIFNUT1BQRURdICR7cmVhc29ufWApO1xuXG4gICAgICAgICAgICAgICAgLy8gU3RvcCBjaGVja2luZyBhZnRlciBmaXJzdCB2aW9sYXRpb25cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59Il0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBLE1BQU1BLFFBQVEsQ0FBQztFQUNYO0FBQ0o7QUFDQTtBQUNBO0VBQ0ksT0FBT0MsdUJBQXVCQSxDQUFBLEVBQUc7SUFDN0IsSUFBSSxDQUFDQyxHQUFHLENBQUNDLE9BQU8sQ0FBQyxDQUFDLEVBQUU7TUFDaEJILFFBQVEsQ0FBQ0ksb0JBQW9CLENBQUMsQ0FBQztJQUNuQztFQUNKOztFQUVBO0FBQ0o7QUFDQTtFQUNJLE9BQU9BLG9CQUFvQkEsQ0FBQSxFQUFHO0lBQzFCO0lBQ0EsTUFBTUMsT0FBTyxHQUFHQyxRQUFRLENBQUNDLG9CQUFvQixDQUFDLFFBQVEsQ0FBQztJQUV2RCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR0gsT0FBTyxDQUFDSSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO01BQ3JDLE1BQU1FLE1BQU0sR0FBR0wsT0FBTyxDQUFDRyxDQUFDLENBQUM7O01BRXpCO01BQ0EsSUFBSSxDQUFDRSxNQUFNLENBQUNDLEdBQUcsRUFBRTtRQUNiO01BQ0o7O01BRUE7TUFDQSxJQUFJLENBQUNELE1BQU0sQ0FBQ0UsS0FBSyxFQUFFO1FBQ2YsTUFBTUQsR0FBRyxHQUFHRCxNQUFNLENBQUNDLEdBQUcsSUFBSSxpQkFBaUI7UUFDM0MsTUFBTUUsTUFBTSxHQUFHLG9HQUFvR0YsR0FBRyxFQUFFOztRQUV4SDtRQUNBVCxHQUFHLENBQUNZLG1CQUFtQixDQUFDRCxNQUFNLENBQUM7O1FBRS9CO1FBQ0FFLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDLHNCQUFzQkgsTUFBTSxFQUFFLENBQUM7O1FBRTdDO1FBQ0E7TUFDSjtJQUNKO0VBQ0o7QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,28 @@
"use strict";
class Frontend_Settings_Audit {
static init() {
if (!$(".Frontend_Settings_Audit").exists()) return;
// Initialize your component here
console.log('Frontend_Settings_Audit initialized');
// Example: Handle button clicks
$('.btn-action').on('click', function () {
// Handle action
});
// Example: Initialize tooltips
$('[data-bs-toggle="tooltip"]').tooltip();
}
static on_app_ready() {
Frontend_Settings_Audit.init();
}
// static on_jqhtml_ready() {
// // Called after all JQHTML components have loaded and rendered
// // Use this if you need to interact with JQHTML components
// // Otherwise, use on_app_ready() for most initialization
// }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9TZXR0aW5nc19BdWRpdCIsImluaXQiLCIkIiwiZXhpc3RzIiwiY29uc29sZSIsImxvZyIsIm9uIiwidG9vbHRpcCIsIm9uX2FwcF9yZWFkeSJdLCJzb3VyY2VzIjpbInJzeC9hcHAvZnJvbnRlbmQvc2V0dGluZ3MvYXVkaXQvZnJvbnRlbmRfc2V0dGluZ3NfYXVkaXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRnJvbnRlbmRfU2V0dGluZ3NfQXVkaXQge1xuICAgIHN0YXRpYyBpbml0KCkge1xuICAgICAgICBpZiAoISQoXCIuRnJvbnRlbmRfU2V0dGluZ3NfQXVkaXRcIikuZXhpc3RzKCkpIHJldHVybjtcblxuICAgICAgICAvLyBJbml0aWFsaXplIHlvdXIgY29tcG9uZW50IGhlcmVcbiAgICAgICAgY29uc29sZS5sb2coJ0Zyb250ZW5kX1NldHRpbmdzX0F1ZGl0IGluaXRpYWxpemVkJyk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSGFuZGxlIGJ1dHRvbiBjbGlja3NcbiAgICAgICAgJCgnLmJ0bi1hY3Rpb24nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBhY3Rpb25cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSW5pdGlhbGl6ZSB0b29sdGlwc1xuICAgICAgICAkKCdbZGF0YS1icy10b2dnbGU9XCJ0b29sdGlwXCJdJykudG9vbHRpcCgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBvbl9hcHBfcmVhZHkoKSB7XG4gICAgICAgIEZyb250ZW5kX1NldHRpbmdzX0F1ZGl0LmluaXQoKTtcbiAgICB9XG5cbiAgICAvLyBzdGF0aWMgb25fanFodG1sX3JlYWR5KCkge1xuICAgIC8vICAgICAvLyBDYWxsZWQgYWZ0ZXIgYWxsIEpRSFRNTCBjb21wb25lbnRzIGhhdmUgbG9hZGVkIGFuZCByZW5kZXJlZFxuICAgIC8vICAgICAvLyBVc2UgdGhpcyBpZiB5b3UgbmVlZCB0byBpbnRlcmFjdCB3aXRoIEpRSFRNTCBjb21wb25lbnRzXG4gICAgLy8gICAgIC8vIE90aGVyd2lzZSwgdXNlIG9uX2FwcF9yZWFkeSgpIGZvciBtb3N0IGluaXRpYWxpemF0aW9uXG4gICAgLy8gfVxufSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSx1QkFBdUIsQ0FBQztFQUMxQixPQUFPQyxJQUFJQSxDQUFBLEVBQUc7SUFDVixJQUFJLENBQUNDLENBQUMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDQyxNQUFNLENBQUMsQ0FBQyxFQUFFOztJQUU3QztJQUNBQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxxQ0FBcUMsQ0FBQzs7SUFFbEQ7SUFDQUgsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDSSxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVc7TUFDcEM7SUFBQSxDQUNILENBQUM7O0lBRUY7SUFDQUosQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUNLLE9BQU8sQ0FBQyxDQUFDO0VBQzdDO0VBRUEsT0FBT0MsWUFBWUEsQ0FBQSxFQUFHO0lBQ2xCUix1QkFBdUIsQ0FBQ0MsSUFBSSxDQUFDLENBQUM7RUFDbEM7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNKIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,11 @@
"use strict";
class Frontend_Contacts_Edit {
static init() {
// No initialization needed - submit button automatically wired by Rsx_Form
}
static on_app_ready() {
Frontend_Contacts_Edit.init();
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9Db250YWN0c19FZGl0IiwiaW5pdCIsIm9uX2FwcF9yZWFkeSJdLCJzb3VyY2VzIjpbInJzeC9hcHAvZnJvbnRlbmQvY29udGFjdHMvZWRpdC9mcm9udGVuZF9jb250YWN0c19lZGl0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIEZyb250ZW5kX0NvbnRhY3RzX0VkaXQge1xuICAgIHN0YXRpYyBpbml0KCkge1xuICAgICAgICAvLyBObyBpbml0aWFsaXphdGlvbiBuZWVkZWQgLSBzdWJtaXQgYnV0dG9uIGF1dG9tYXRpY2FsbHkgd2lyZWQgYnkgUnN4X0Zvcm1cbiAgICB9XG5cbiAgICBzdGF0aWMgb25fYXBwX3JlYWR5KCkge1xuICAgICAgICBGcm9udGVuZF9Db250YWN0c19FZGl0LmluaXQoKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsc0JBQXNCLENBQUM7RUFDekIsT0FBT0MsSUFBSUEsQ0FBQSxFQUFHO0lBQ1Y7RUFBQTtFQUdKLE9BQU9DLFlBQVlBLENBQUEsRUFBRztJQUNsQkYsc0JBQXNCLENBQUNDLElBQUksQ0FBQyxDQUFDO0VBQ2pDO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,8 @@
"use strict";
class Code_Block extends Jqhtml_Component {
on_ready() {
// No special behavior (syntax highlighting could be added later)
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb2RlX0Jsb2NrIiwiSnFodG1sX0NvbXBvbmVudCIsIm9uX3JlYWR5Il0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvQ29kZV9CbG9jay5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBDb2RlX0Jsb2NrIGV4dGVuZHMgSnFodG1sX0NvbXBvbmVudCB7XG4gICAgb25fcmVhZHkoKSB7XG4gICAgICAgIC8vIE5vIHNwZWNpYWwgYmVoYXZpb3IgKHN5bnRheCBoaWdobGlnaHRpbmcgY291bGQgYmUgYWRkZWQgbGF0ZXIpXG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLFVBQVUsU0FBU0MsZ0JBQWdCLENBQUM7RUFDdENDLFFBQVFBLENBQUEsRUFBRztJQUNQO0VBQUE7QUFFUiIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,48 @@
"use strict";
class Frontend_Clients_View {
static init() {
if (!$(".Frontend_Clients_View").exists()) return;
console_debug('CLIENT', 'Frontend_Clients_View initialized');
// Handle delete button
$('#delete-client-btn').on('click', async function () {
const $element = $(this);
const client_id = $element.data('client-id');
const confirmed = await Modal.confirm('Delete Client', 'Are you sure you want to delete this client?\n\nThis action can be undone by restoring the client.', 'Delete', 'Cancel');
if (confirmed) {
const result = await Frontend_Clients_Controller.delete({
id: client_id
});
if (result.success) {
// Reload the page to show deleted status
location.reload();
} else {
alert(result.message || 'Failed to delete client');
}
}
});
// Handle restore button
$('#restore-client-btn').on('click', async function () {
const $element = $(this);
const client_id = $element.data('client-id');
const confirmed = await Modal.confirm('Restore Client', 'Are you sure you want to restore this client?', 'Restore', 'Cancel');
if (confirmed) {
const result = await Frontend_Clients_Controller.restore({
id: client_id
});
if (result.success) {
// Reload the page to show restored status
location.reload();
} else {
alert(result.message || 'Failed to restore client');
}
}
});
}
static on_app_ready() {
Frontend_Clients_View.init();
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9DbGllbnRzX1ZpZXciLCJpbml0IiwiJCIsImV4aXN0cyIsImNvbnNvbGVfZGVidWciLCJvbiIsIiRlbGVtZW50IiwiY2xpZW50X2lkIiwiZGF0YSIsImNvbmZpcm1lZCIsIk1vZGFsIiwiY29uZmlybSIsInJlc3VsdCIsIkZyb250ZW5kX0NsaWVudHNfQ29udHJvbGxlciIsImRlbGV0ZSIsImlkIiwic3VjY2VzcyIsImxvY2F0aW9uIiwicmVsb2FkIiwiYWxlcnQiLCJtZXNzYWdlIiwicmVzdG9yZSIsIm9uX2FwcF9yZWFkeSJdLCJzb3VyY2VzIjpbInJzeC9hcHAvZnJvbnRlbmQvY2xpZW50cy92aWV3L2Zyb250ZW5kX2NsaWVudHNfdmlldy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBGcm9udGVuZF9DbGllbnRzX1ZpZXcge1xuICAgIHN0YXRpYyBpbml0KCkge1xuICAgICAgICBpZiAoISQoXCIuRnJvbnRlbmRfQ2xpZW50c19WaWV3XCIpLmV4aXN0cygpKSByZXR1cm47XG5cbiAgICAgICAgY29uc29sZV9kZWJ1ZygnQ0xJRU5UJywgJ0Zyb250ZW5kX0NsaWVudHNfVmlldyBpbml0aWFsaXplZCcpO1xuXG4gICAgICAgIC8vIEhhbmRsZSBkZWxldGUgYnV0dG9uXG4gICAgICAgICQoJyNkZWxldGUtY2xpZW50LWJ0bicpLm9uKCdjbGljaycsIGFzeW5jIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgY29uc3QgJGVsZW1lbnQgPSAkKHRoaXMpO1xuICAgICAgICAgICAgY29uc3QgY2xpZW50X2lkID0gJGVsZW1lbnQuZGF0YSgnY2xpZW50LWlkJyk7XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbmZpcm1lZCA9IGF3YWl0IE1vZGFsLmNvbmZpcm0oXG4gICAgICAgICAgICAgICAgJ0RlbGV0ZSBDbGllbnQnLFxuICAgICAgICAgICAgICAgICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIHRoaXMgY2xpZW50P1xcblxcblRoaXMgYWN0aW9uIGNhbiBiZSB1bmRvbmUgYnkgcmVzdG9yaW5nIHRoZSBjbGllbnQuJyxcbiAgICAgICAgICAgICAgICAnRGVsZXRlJyxcbiAgICAgICAgICAgICAgICAnQ2FuY2VsJ1xuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgaWYgKGNvbmZpcm1lZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IEZyb250ZW5kX0NsaWVudHNfQ29udHJvbGxlci5kZWxldGUoeyBpZDogY2xpZW50X2lkIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFJlbG9hZCB0aGUgcGFnZSB0byBzaG93IGRlbGV0ZWQgc3RhdHVzXG4gICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0KHJlc3VsdC5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gZGVsZXRlIGNsaWVudCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gSGFuZGxlIHJlc3RvcmUgYnV0dG9uXG4gICAgICAgICQoJyNyZXN0b3JlLWNsaWVudC1idG4nKS5vbignY2xpY2snLCBhc3luYyBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNvbnN0ICRlbGVtZW50ID0gJCh0aGlzKTtcbiAgICAgICAgICAgIGNvbnN0IGNsaWVudF9pZCA9ICRlbGVtZW50LmRhdGEoJ2NsaWVudC1pZCcpO1xuXG4gICAgICAgICAgICBjb25zdCBjb25maXJtZWQgPSBhd2FpdCBNb2RhbC5jb25maXJtKFxuICAgICAgICAgICAgICAgICdSZXN0b3JlIENsaWVudCcsXG4gICAgICAgICAgICAgICAgJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byByZXN0b3JlIHRoaXMgY2xpZW50PycsXG4gICAgICAgICAgICAgICAgJ1Jlc3RvcmUnLFxuICAgICAgICAgICAgICAgICdDYW5jZWwnXG4gICAgICAgICAgICApO1xuXG4gICAgICAgICAgICBpZiAoY29uZmlybWVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgRnJvbnRlbmRfQ2xpZW50c19Db250cm9sbGVyLnJlc3RvcmUoeyBpZDogY2xpZW50X2lkIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFJlbG9hZCB0aGUgcGFnZSB0byBzaG93IHJlc3RvcmVkIHN0YXR1c1xuICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBhbGVydChyZXN1bHQubWVzc2FnZSB8fCAnRmFpbGVkIHRvIHJlc3RvcmUgY2xpZW50Jyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgb25fYXBwX3JlYWR5KCkge1xuICAgICAgICBGcm9udGVuZF9DbGllbnRzX1ZpZXcuaW5pdCgpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxxQkFBcUIsQ0FBQztFQUN4QixPQUFPQyxJQUFJQSxDQUFBLEVBQUc7SUFDVixJQUFJLENBQUNDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDQyxNQUFNLENBQUMsQ0FBQyxFQUFFO0lBRTNDQyxhQUFhLENBQUMsUUFBUSxFQUFFLG1DQUFtQyxDQUFDOztJQUU1RDtJQUNBRixDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQ0csRUFBRSxDQUFDLE9BQU8sRUFBRSxrQkFBaUI7TUFDakQsTUFBTUMsUUFBUSxHQUFHSixDQUFDLENBQUMsSUFBSSxDQUFDO01BQ3hCLE1BQU1LLFNBQVMsR0FBR0QsUUFBUSxDQUFDRSxJQUFJLENBQUMsV0FBVyxDQUFDO01BRTVDLE1BQU1DLFNBQVMsR0FBRyxNQUFNQyxLQUFLLENBQUNDLE9BQU8sQ0FDakMsZUFBZSxFQUNmLG9HQUFvRyxFQUNwRyxRQUFRLEVBQ1IsUUFDSixDQUFDO01BRUQsSUFBSUYsU0FBUyxFQUFFO1FBQ1gsTUFBTUcsTUFBTSxHQUFHLE1BQU1DLDJCQUEyQixDQUFDQyxNQUFNLENBQUM7VUFBRUMsRUFBRSxFQUFFUjtRQUFVLENBQUMsQ0FBQztRQUUxRSxJQUFJSyxNQUFNLENBQUNJLE9BQU8sRUFBRTtVQUNoQjtVQUNBQyxRQUFRLENBQUNDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JCLENBQUMsTUFBTTtVQUNIQyxLQUFLLENBQUNQLE1BQU0sQ0FBQ1EsT0FBTyxJQUFJLHlCQUF5QixDQUFDO1FBQ3REO01BQ0o7SUFDSixDQUFDLENBQUM7O0lBRUY7SUFDQWxCLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDRyxFQUFFLENBQUMsT0FBTyxFQUFFLGtCQUFpQjtNQUNsRCxNQUFNQyxRQUFRLEdBQUdKLENBQUMsQ0FBQyxJQUFJLENBQUM7TUFDeEIsTUFBTUssU0FBUyxHQUFHRCxRQUFRLENBQUNFLElBQUksQ0FBQyxXQUFXLENBQUM7TUFFNUMsTUFBTUMsU0FBUyxHQUFHLE1BQU1DLEtBQUssQ0FBQ0MsT0FBTyxDQUNqQyxnQkFBZ0IsRUFDaEIsK0NBQStDLEVBQy9DLFNBQVMsRUFDVCxRQUNKLENBQUM7TUFFRCxJQUFJRixTQUFTLEVBQUU7UUFDWCxNQUFNRyxNQUFNLEdBQUcsTUFBTUMsMkJBQTJCLENBQUNRLE9BQU8sQ0FBQztVQUFFTixFQUFFLEVBQUVSO1FBQVUsQ0FBQyxDQUFDO1FBRTNFLElBQUlLLE1BQU0sQ0FBQ0ksT0FBTyxFQUFFO1VBQ2hCO1VBQ0FDLFFBQVEsQ0FBQ0MsTUFBTSxDQUFDLENBQUM7UUFDckIsQ0FBQyxNQUFNO1VBQ0hDLEtBQUssQ0FBQ1AsTUFBTSxDQUFDUSxPQUFPLElBQUksMEJBQTBCLENBQUM7UUFDdkQ7TUFDSjtJQUNKLENBQUMsQ0FBQztFQUNOO0VBRUEsT0FBT0UsWUFBWUEsQ0FBQSxFQUFHO0lBQ2xCdEIscUJBQXFCLENBQUNDLElBQUksQ0FBQyxDQUFDO0VBQ2hDO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,12 @@
"use strict";
class Three_Column_Layout extends Jqhtml_Component {
on_ready() {
// Wrap each direct child in responsive column classes
this.$.children().each(function () {
const $element = $(this);
$element.addClass('col-12 col-md-6 col-xl-4 mb-4');
});
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUaHJlZV9Db2x1bW5fTGF5b3V0IiwiSnFodG1sX0NvbXBvbmVudCIsIm9uX3JlYWR5IiwiJCIsImNoaWxkcmVuIiwiZWFjaCIsIiRlbGVtZW50IiwiYWRkQ2xhc3MiXSwic291cmNlcyI6WyJyc3gvdGhlbWUvY29tcG9uZW50cy9fYXJjaGl2ZWQvdW5maW5pc2hlZC9UaHJlZV9Db2x1bW5fTGF5b3V0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFRocmVlX0NvbHVtbl9MYXlvdXQgZXh0ZW5kcyBKcWh0bWxfQ29tcG9uZW50IHtcbiAgICBvbl9yZWFkeSgpIHtcbiAgICAgICAgLy8gV3JhcCBlYWNoIGRpcmVjdCBjaGlsZCBpbiByZXNwb25zaXZlIGNvbHVtbiBjbGFzc2VzXG4gICAgICAgIHRoaXMuJC5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjb25zdCAkZWxlbWVudCA9ICQodGhpcyk7XG4gICAgICAgICAgICAkZWxlbWVudC5hZGRDbGFzcygnY29sLTEyIGNvbC1tZC02IGNvbC14bC00IG1iLTQnKTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLG1CQUFtQixTQUFTQyxnQkFBZ0IsQ0FBQztFQUMvQ0MsUUFBUUEsQ0FBQSxFQUFHO0lBQ1A7SUFDQSxJQUFJLENBQUNDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLFlBQVc7TUFDOUIsTUFBTUMsUUFBUSxHQUFHSCxDQUFDLENBQUMsSUFBSSxDQUFDO01BQ3hCRyxRQUFRLENBQUNDLFFBQVEsQ0FBQywrQkFBK0IsQ0FBQztJQUN0RCxDQUFDLENBQUM7RUFDTjtBQUNKIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,28 @@
"use strict";
class Frontend_Tasks_Add {
static init() {
if (!$(".Frontend_Tasks_Add").exists()) return;
// Initialize your component here
console.log('Frontend_Tasks_Add initialized');
// Example: Handle button clicks
$('.btn-action').on('click', function () {
// Handle action
});
// Example: Initialize tooltips
$('[data-bs-toggle="tooltip"]').tooltip();
}
static on_app_ready() {
Frontend_Tasks_Add.init();
}
// static on_jqhtml_ready() {
// // Called after all JQHTML components have loaded and rendered
// // Use this if you need to interact with JQHTML components
// // Otherwise, use on_app_ready() for most initialization
// }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9UYXNrc19BZGQiLCJpbml0IiwiJCIsImV4aXN0cyIsImNvbnNvbGUiLCJsb2ciLCJvbiIsInRvb2x0aXAiLCJvbl9hcHBfcmVhZHkiXSwic291cmNlcyI6WyJyc3gvYXBwL2Zyb250ZW5kL3Rhc2tzL2Zyb250ZW5kX3Rhc2tzX2FkZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBGcm9udGVuZF9UYXNrc19BZGQge1xuICAgIHN0YXRpYyBpbml0KCkge1xuICAgICAgICBpZiAoISQoXCIuRnJvbnRlbmRfVGFza3NfQWRkXCIpLmV4aXN0cygpKSByZXR1cm47XG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSB5b3VyIGNvbXBvbmVudCBoZXJlXG4gICAgICAgIGNvbnNvbGUubG9nKCdGcm9udGVuZF9UYXNrc19BZGQgaW5pdGlhbGl6ZWQnKTtcblxuICAgICAgICAvLyBFeGFtcGxlOiBIYW5kbGUgYnV0dG9uIGNsaWNrc1xuICAgICAgICAkKCcuYnRuLWFjdGlvbicpLm9uKCdjbGljaycsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgLy8gSGFuZGxlIGFjdGlvblxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBFeGFtcGxlOiBJbml0aWFsaXplIHRvb2x0aXBzXG4gICAgICAgICQoJ1tkYXRhLWJzLXRvZ2dsZT1cInRvb2x0aXBcIl0nKS50b29sdGlwKCk7XG4gICAgfVxuXG4gICAgc3RhdGljIG9uX2FwcF9yZWFkeSgpIHtcbiAgICAgICAgRnJvbnRlbmRfVGFza3NfQWRkLmluaXQoKTtcbiAgICB9XG5cbiAgICAvLyBzdGF0aWMgb25fanFodG1sX3JlYWR5KCkge1xuICAgIC8vICAgICAvLyBDYWxsZWQgYWZ0ZXIgYWxsIEpRSFRNTCBjb21wb25lbnRzIGhhdmUgbG9hZGVkIGFuZCByZW5kZXJlZFxuICAgIC8vICAgICAvLyBVc2UgdGhpcyBpZiB5b3UgbmVlZCB0byBpbnRlcmFjdCB3aXRoIEpRSFRNTCBjb21wb25lbnRzXG4gICAgLy8gICAgIC8vIE90aGVyd2lzZSwgdXNlIG9uX2FwcF9yZWFkeSgpIGZvciBtb3N0IGluaXRpYWxpemF0aW9uXG4gICAgLy8gfVxufSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxrQkFBa0IsQ0FBQztFQUNyQixPQUFPQyxJQUFJQSxDQUFBLEVBQUc7SUFDVixJQUFJLENBQUNDLENBQUMsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDQyxNQUFNLENBQUMsQ0FBQyxFQUFFOztJQUV4QztJQUNBQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxnQ0FBZ0MsQ0FBQzs7SUFFN0M7SUFDQUgsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDSSxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVc7TUFDcEM7SUFBQSxDQUNILENBQUM7O0lBRUY7SUFDQUosQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUNLLE9BQU8sQ0FBQyxDQUFDO0VBQzdDO0VBRUEsT0FBT0MsWUFBWUEsQ0FBQSxFQUFHO0lBQ2xCUixrQkFBa0IsQ0FBQ0MsSUFBSSxDQUFDLENBQUM7RUFDN0I7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNKIiwiaWdub3JlTGlzdCI6W119

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,13 @@
"use strict";
/**
* Card - Bootstrap 5 Content Container Component
*
* Purpose: Primary content container using Bootstrap .card class
* Design: Pure Bootstrap - border-0 with shadow for modern Volt aesthetic
*/
class Card extends Jqhtml_Component {
// Card is a pure container component - no lifecycle methods needed
// All styling comes from Bootstrap classes: card, border-0, shadow
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDYXJkIiwiSnFodG1sX0NvbXBvbmVudCJdLCJzb3VyY2VzIjpbInJzeC90aGVtZS9jb21wb25lbnRzL19hcmNoaXZlZC91bmZpbmlzaGVkL0NhcmQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDYXJkIC0gQm9vdHN0cmFwIDUgQ29udGVudCBDb250YWluZXIgQ29tcG9uZW50XG4gKlxuICogUHVycG9zZTogUHJpbWFyeSBjb250ZW50IGNvbnRhaW5lciB1c2luZyBCb290c3RyYXAgLmNhcmQgY2xhc3NcbiAqIERlc2lnbjogUHVyZSBCb290c3RyYXAgLSBib3JkZXItMCB3aXRoIHNoYWRvdyBmb3IgbW9kZXJuIFZvbHQgYWVzdGhldGljXG4gKi9cbmNsYXNzIENhcmQgZXh0ZW5kcyBKcWh0bWxfQ29tcG9uZW50IHtcbiAgICAvLyBDYXJkIGlzIGEgcHVyZSBjb250YWluZXIgY29tcG9uZW50IC0gbm8gbGlmZWN5Y2xlIG1ldGhvZHMgbmVlZGVkXG4gICAgLy8gQWxsIHN0eWxpbmcgY29tZXMgZnJvbSBCb290c3RyYXAgY2xhc3NlczogY2FyZCwgYm9yZGVyLTAsIHNoYWRvd1xufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU1BLElBQUksU0FBU0MsZ0JBQWdCLENBQUM7RUFDaEM7RUFDQTtBQUFBIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,6 @@
"use strict";
class Chart_Component extends Jqhtml_Component {
// Placeholder component - no functionality yet
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDaGFydF9Db21wb25lbnQiLCJKcWh0bWxfQ29tcG9uZW50Il0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvQ2hhcnRfQ29tcG9uZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIENoYXJ0X0NvbXBvbmVudCBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIC8vIFBsYWNlaG9sZGVyIGNvbXBvbmVudCAtIG5vIGZ1bmN0aW9uYWxpdHkgeWV0XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsZUFBZSxTQUFTQyxnQkFBZ0IsQ0FBQztFQUMzQztBQUFBIiwiaWdub3JlTGlzdCI6W119

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,48 @@
"use strict";
class Checkbox_Input extends Form_Input_Abstract {
on_create() {
this.data.checked = false;
this.checked_value = this.args.checked_value || '1';
this.unchecked_value = this.args.unchecked_value || '0';
}
on_ready() {
// Connect label clicks to checkbox
const $input = this.$id('input');
const $label = this.$id('label');
if ($label.exists()) {
const input_id = $input.attr('id');
$label.attr('for', input_id);
}
}
/**
* val() - Get or set the checkbox state
* @param {string|boolean} [value] - If provided, sets the checked state
* @returns {string} The checked_value or unchecked_value when called as getter
*/
val(value) {
if (arguments.length === 0) {
// Getter
const is_checked = this.$id('input').prop('checked');
return is_checked ? this.checked_value : this.unchecked_value;
} else {
// Setter - accepts boolean, checked_value, or unchecked_value
let should_check = false;
if (typeof value === 'boolean') {
should_check = value;
} else if (value === this.checked_value || value === '1' || value === 1 || value === true) {
should_check = true;
}
this.data.checked = should_check;
if (this.$id('input').exists()) {
this.$id('input').prop('checked', should_check);
}
}
}
async seed() {
// Randomly check or uncheck
this.val(Math.random() > 0.5);
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDaGVja2JveF9JbnB1dCIsIkZvcm1fSW5wdXRfQWJzdHJhY3QiLCJvbl9jcmVhdGUiLCJkYXRhIiwiY2hlY2tlZCIsImNoZWNrZWRfdmFsdWUiLCJhcmdzIiwidW5jaGVja2VkX3ZhbHVlIiwib25fcmVhZHkiLCIkaW5wdXQiLCIkaWQiLCIkbGFiZWwiLCJleGlzdHMiLCJpbnB1dF9pZCIsImF0dHIiLCJ2YWwiLCJ2YWx1ZSIsImFyZ3VtZW50cyIsImxlbmd0aCIsImlzX2NoZWNrZWQiLCJwcm9wIiwic2hvdWxkX2NoZWNrIiwic2VlZCIsIk1hdGgiLCJyYW5kb20iXSwic291cmNlcyI6WyJyc3gvdGhlbWUvY29tcG9uZW50cy9pbnB1dHMvY2hlY2tib3hfaW5wdXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgQ2hlY2tib3hfSW5wdXQgZXh0ZW5kcyBGb3JtX0lucHV0X0Fic3RyYWN0IHtcbiAgICBvbl9jcmVhdGUoKSB7XG4gICAgICAgIHRoaXMuZGF0YS5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuY2hlY2tlZF92YWx1ZSA9IHRoaXMuYXJncy5jaGVja2VkX3ZhbHVlIHx8ICcxJztcbiAgICAgICAgdGhpcy51bmNoZWNrZWRfdmFsdWUgPSB0aGlzLmFyZ3MudW5jaGVja2VkX3ZhbHVlIHx8ICcwJztcbiAgICB9XG5cbiAgICBvbl9yZWFkeSgpIHtcbiAgICAgICAgLy8gQ29ubmVjdCBsYWJlbCBjbGlja3MgdG8gY2hlY2tib3hcbiAgICAgICAgY29uc3QgJGlucHV0ID0gdGhpcy4kaWQoJ2lucHV0Jyk7XG4gICAgICAgIGNvbnN0ICRsYWJlbCA9IHRoaXMuJGlkKCdsYWJlbCcpO1xuXG4gICAgICAgIGlmICgkbGFiZWwuZXhpc3RzKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGlucHV0X2lkID0gJGlucHV0LmF0dHIoJ2lkJyk7XG4gICAgICAgICAgICAkbGFiZWwuYXR0cignZm9yJywgaW5wdXRfaWQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdmFsKCkgLSBHZXQgb3Igc2V0IHRoZSBjaGVja2JveCBzdGF0ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfGJvb2xlYW59IFt2YWx1ZV0gLSBJZiBwcm92aWRlZCwgc2V0cyB0aGUgY2hlY2tlZCBzdGF0ZVxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBjaGVja2VkX3ZhbHVlIG9yIHVuY2hlY2tlZF92YWx1ZSB3aGVuIGNhbGxlZCBhcyBnZXR0ZXJcbiAgICAgKi9cbiAgICB2YWwodmFsdWUpIHtcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIC8vIEdldHRlclxuICAgICAgICAgICAgY29uc3QgaXNfY2hlY2tlZCA9IHRoaXMuJGlkKCdpbnB1dCcpLnByb3AoJ2NoZWNrZWQnKTtcbiAgICAgICAgICAgIHJldHVybiBpc19jaGVja2VkID8gdGhpcy5jaGVja2VkX3ZhbHVlIDogdGhpcy51bmNoZWNrZWRfdmFsdWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBTZXR0ZXIgLSBhY2NlcHRzIGJvb2xlYW4sIGNoZWNrZWRfdmFsdWUsIG9yIHVuY2hlY2tlZF92YWx1ZVxuICAgICAgICAgICAgbGV0IHNob3VsZF9jaGVjayA9IGZhbHNlO1xuXG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgICAgICBzaG91bGRfY2hlY2sgPSB2YWx1ZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IHRoaXMuY2hlY2tlZF92YWx1ZSB8fCB2YWx1ZSA9PT0gJzEnIHx8IHZhbHVlID09PSAxIHx8IHZhbHVlID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgc2hvdWxkX2NoZWNrID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5kYXRhLmNoZWNrZWQgPSBzaG91bGRfY2hlY2s7XG4gICAgICAgICAgICBpZiAodGhpcy4kaWQoJ2lucHV0JykuZXhpc3RzKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRpZCgnaW5wdXQnKS5wcm9wKCdjaGVja2VkJywgc2hvdWxkX2NoZWNrKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIHNlZWQoKSB7XG4gICAgICAgIC8vIFJhbmRvbWx5IGNoZWNrIG9yIHVuY2hlY2tcbiAgICAgICAgdGhpcy52YWwoTWF0aC5yYW5kb20oKSA+IDAuNSk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLGNBQWMsU0FBU0MsbUJBQW1CLENBQUM7RUFDN0NDLFNBQVNBLENBQUEsRUFBRztJQUNSLElBQUksQ0FBQ0MsSUFBSSxDQUFDQyxPQUFPLEdBQUcsS0FBSztJQUN6QixJQUFJLENBQUNDLGFBQWEsR0FBRyxJQUFJLENBQUNDLElBQUksQ0FBQ0QsYUFBYSxJQUFJLEdBQUc7SUFDbkQsSUFBSSxDQUFDRSxlQUFlLEdBQUcsSUFBSSxDQUFDRCxJQUFJLENBQUNDLGVBQWUsSUFBSSxHQUFHO0VBQzNEO0VBRUFDLFFBQVFBLENBQUEsRUFBRztJQUNQO0lBQ0EsTUFBTUMsTUFBTSxHQUFHLElBQUksQ0FBQ0MsR0FBRyxDQUFDLE9BQU8sQ0FBQztJQUNoQyxNQUFNQyxNQUFNLEdBQUcsSUFBSSxDQUFDRCxHQUFHLENBQUMsT0FBTyxDQUFDO0lBRWhDLElBQUlDLE1BQU0sQ0FBQ0MsTUFBTSxDQUFDLENBQUMsRUFBRTtNQUNqQixNQUFNQyxRQUFRLEdBQUdKLE1BQU0sQ0FBQ0ssSUFBSSxDQUFDLElBQUksQ0FBQztNQUNsQ0gsTUFBTSxDQUFDRyxJQUFJLENBQUMsS0FBSyxFQUFFRCxRQUFRLENBQUM7SUFDaEM7RUFDSjs7RUFFQTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0VBQ0lFLEdBQUdBLENBQUNDLEtBQUssRUFBRTtJQUNQLElBQUlDLFNBQVMsQ0FBQ0MsTUFBTSxLQUFLLENBQUMsRUFBRTtNQUN4QjtNQUNBLE1BQU1DLFVBQVUsR0FBRyxJQUFJLENBQUNULEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQ1UsSUFBSSxDQUFDLFNBQVMsQ0FBQztNQUNwRCxPQUFPRCxVQUFVLEdBQUcsSUFBSSxDQUFDZCxhQUFhLEdBQUcsSUFBSSxDQUFDRSxlQUFlO0lBQ2pFLENBQUMsTUFBTTtNQUNIO01BQ0EsSUFBSWMsWUFBWSxHQUFHLEtBQUs7TUFFeEIsSUFBSSxPQUFPTCxLQUFLLEtBQUssU0FBUyxFQUFFO1FBQzVCSyxZQUFZLEdBQUdMLEtBQUs7TUFDeEIsQ0FBQyxNQUFNLElBQUlBLEtBQUssS0FBSyxJQUFJLENBQUNYLGFBQWEsSUFBSVcsS0FBSyxLQUFLLEdBQUcsSUFBSUEsS0FBSyxLQUFLLENBQUMsSUFBSUEsS0FBSyxLQUFLLElBQUksRUFBRTtRQUN2RkssWUFBWSxHQUFHLElBQUk7TUFDdkI7TUFFQSxJQUFJLENBQUNsQixJQUFJLENBQUNDLE9BQU8sR0FBR2lCLFlBQVk7TUFDaEMsSUFBSSxJQUFJLENBQUNYLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQ0UsTUFBTSxDQUFDLENBQUMsRUFBRTtRQUM1QixJQUFJLENBQUNGLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQ1UsSUFBSSxDQUFDLFNBQVMsRUFBRUMsWUFBWSxDQUFDO01BQ25EO0lBQ0o7RUFDSjtFQUVBLE1BQU1DLElBQUlBLENBQUEsRUFBRztJQUNUO0lBQ0EsSUFBSSxDQUFDUCxHQUFHLENBQUNRLElBQUksQ0FBQ0MsTUFBTSxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7RUFDakM7QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,20 @@
"use strict";
/**
* Quill Editor - Utility Functions
*
* Provides utility functions for working with Quill editor.
*/
/**
* Ensures Quill is loaded before executing callback
* @param {Function} callback - Function to call when Quill is ready
*/
function quill_ready(callback) {
if (typeof window.Quill !== 'undefined') {
callback();
} else {
setTimeout(() => quill_ready(callback), 50);
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJxdWlsbF9yZWFkeSIsImNhbGxiYWNrIiwid2luZG93IiwiUXVpbGwiLCJzZXRUaW1lb3V0Il0sInNvdXJjZXMiOlsicnN4L3RoZW1lL3F1aWxsL3F1aWxsX2Nkbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFF1aWxsIEVkaXRvciAtIFV0aWxpdHkgRnVuY3Rpb25zXG4gKlxuICogUHJvdmlkZXMgdXRpbGl0eSBmdW5jdGlvbnMgZm9yIHdvcmtpbmcgd2l0aCBRdWlsbCBlZGl0b3IuXG4gKi9cblxuLyoqXG4gKiBFbnN1cmVzIFF1aWxsIGlzIGxvYWRlZCBiZWZvcmUgZXhlY3V0aW5nIGNhbGxiYWNrXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBjYWxsYmFjayAtIEZ1bmN0aW9uIHRvIGNhbGwgd2hlbiBRdWlsbCBpcyByZWFkeVxuICovXG5mdW5jdGlvbiBxdWlsbF9yZWFkeShjYWxsYmFjaykge1xuICAgIGlmICh0eXBlb2Ygd2luZG93LlF1aWxsICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjYWxsYmFjaygpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcXVpbGxfcmVhZHkoY2FsbGJhY2spLCA1MCk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTQSxXQUFXQSxDQUFDQyxRQUFRLEVBQUU7RUFDM0IsSUFBSSxPQUFPQyxNQUFNLENBQUNDLEtBQUssS0FBSyxXQUFXLEVBQUU7SUFDckNGLFFBQVEsQ0FBQyxDQUFDO0VBQ2QsQ0FBQyxNQUFNO0lBQ0hHLFVBQVUsQ0FBQyxNQUFNSixXQUFXLENBQUNDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUMvQztBQUNKIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,8 @@
"use strict";
class Blockquote extends Jqhtml_Component {
on_ready() {
// No special behavior
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCbG9ja3F1b3RlIiwiSnFodG1sX0NvbXBvbmVudCIsIm9uX3JlYWR5Il0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvQmxvY2txdW90ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBCbG9ja3F1b3RlIGV4dGVuZHMgSnFodG1sX0NvbXBvbmVudCB7XG4gICAgb25fcmVhZHkoKSB7XG4gICAgICAgIC8vIE5vIHNwZWNpYWwgYmVoYXZpb3JcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsVUFBVSxTQUFTQyxnQkFBZ0IsQ0FBQztFQUN0Q0MsUUFBUUEsQ0FBQSxFQUFHO0lBQ1A7RUFBQTtBQUVSIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,14 @@
"use strict";
class Frontend_Projects {
static init() {
if (!$(".Frontend_Projects").exists()) return;
// Initialize your component here
console.log('Frontend_Projects initialized');
}
static on_app_ready() {
Frontend_Projects.init();
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9Qcm9qZWN0cyIsImluaXQiLCIkIiwiZXhpc3RzIiwiY29uc29sZSIsImxvZyIsIm9uX2FwcF9yZWFkeSJdLCJzb3VyY2VzIjpbInJzeC9hcHAvZnJvbnRlbmQvcHJvamVjdHMvZnJvbnRlbmRfcHJvamVjdHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRnJvbnRlbmRfUHJvamVjdHMge1xuICAgIHN0YXRpYyBpbml0KCkge1xuICAgICAgICBpZiAoISQoXCIuRnJvbnRlbmRfUHJvamVjdHNcIikuZXhpc3RzKCkpIHJldHVybjtcblxuICAgICAgICAvLyBJbml0aWFsaXplIHlvdXIgY29tcG9uZW50IGhlcmVcbiAgICAgICAgY29uc29sZS5sb2coJ0Zyb250ZW5kX1Byb2plY3RzIGluaXRpYWxpemVkJyk7XG4gICAgfVxuXG4gICAgc3RhdGljIG9uX2FwcF9yZWFkeSgpIHtcbiAgICAgICAgRnJvbnRlbmRfUHJvamVjdHMuaW5pdCgpO1xuICAgIH1cbn0iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsaUJBQWlCLENBQUM7RUFDcEIsT0FBT0MsSUFBSUEsQ0FBQSxFQUFHO0lBQ1YsSUFBSSxDQUFDQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQ0MsTUFBTSxDQUFDLENBQUMsRUFBRTs7SUFFdkM7SUFDQUMsT0FBTyxDQUFDQyxHQUFHLENBQUMsK0JBQStCLENBQUM7RUFDaEQ7RUFFQSxPQUFPQyxZQUFZQSxDQUFBLEVBQUc7SUFDbEJOLGlCQUFpQixDQUFDQyxJQUFJLENBQUMsQ0FBQztFQUM1QjtBQUNKIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,41 @@
"use strict";
/**
* Add_User_Form
*
* Modal form component for inviting users to the current site.
* See add_user_form.jqhtml for full documentation.
*
* JavaScript Responsibilities:
* - Implements vals() method for form data extraction
* - Provides default role_id (Member = 3)
*/
class Add_User_Form extends Jqhtml_Component {
/**
* Get or set form values
* @param {Object} [values] - If provided, populates form with these values
* @returns {Object|null} - Form values if getting, null if setting
*/
// vals(values) {
// const form = this.$.find('form');
// if (values) {
// // Setter - populate form
// form.find('[name="email"]').val(values.email || '');
// form.find('[name="first_name"]').val(values.first_name || '');
// form.find('[name="last_name"]').val(values.last_name || '');
// form.find('[name="role_id"]').val(values.role_id || 3); // Default to Member
// form.find('[name="phone"]').val(values.phone || '');
// return null;
// } else {
// // Getter - extract form values
// return {
// email: form.find('[name="email"]').val(),
// first_name: form.find('[name="first_name"]').val(),
// last_name: form.find('[name="last_name"]').val(),
// role_id: parseInt(form.find('[name="role_id"]').val()) || 3,
// phone: form.find('[name="phone"]').val()
// };
// }
// }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBZGRfVXNlcl9Gb3JtIiwiSnFodG1sX0NvbXBvbmVudCJdLCJzb3VyY2VzIjpbInJzeC9hcHAvZnJvbnRlbmQvc2V0dGluZ3MvdXNlcl9tYW5hZ2VtZW50L2FkZF91c2VyX2Zvcm0uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBZGRfVXNlcl9Gb3JtXG4gKlxuICogTW9kYWwgZm9ybSBjb21wb25lbnQgZm9yIGludml0aW5nIHVzZXJzIHRvIHRoZSBjdXJyZW50IHNpdGUuXG4gKiBTZWUgYWRkX3VzZXJfZm9ybS5qcWh0bWwgZm9yIGZ1bGwgZG9jdW1lbnRhdGlvbi5cbiAqXG4gKiBKYXZhU2NyaXB0IFJlc3BvbnNpYmlsaXRpZXM6XG4gKiAtIEltcGxlbWVudHMgdmFscygpIG1ldGhvZCBmb3IgZm9ybSBkYXRhIGV4dHJhY3Rpb25cbiAqIC0gUHJvdmlkZXMgZGVmYXVsdCByb2xlX2lkIChNZW1iZXIgPSAzKVxuICovXG5jbGFzcyBBZGRfVXNlcl9Gb3JtIGV4dGVuZHMgSnFodG1sX0NvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICogR2V0IG9yIHNldCBmb3JtIHZhbHVlc1xuICAgICAqIEBwYXJhbSB7T2JqZWN0fSBbdmFsdWVzXSAtIElmIHByb3ZpZGVkLCBwb3B1bGF0ZXMgZm9ybSB3aXRoIHRoZXNlIHZhbHVlc1xuICAgICAqIEByZXR1cm5zIHtPYmplY3R8bnVsbH0gLSBGb3JtIHZhbHVlcyBpZiBnZXR0aW5nLCBudWxsIGlmIHNldHRpbmdcbiAgICAgKi9cbiAgICAvLyB2YWxzKHZhbHVlcykge1xuICAgIC8vICAgICBjb25zdCBmb3JtID0gdGhpcy4kLmZpbmQoJ2Zvcm0nKTtcbiAgICAvLyAgICAgaWYgKHZhbHVlcykge1xuICAgIC8vICAgICAgICAgLy8gU2V0dGVyIC0gcG9wdWxhdGUgZm9ybVxuICAgIC8vICAgICAgICAgZm9ybS5maW5kKCdbbmFtZT1cImVtYWlsXCJdJykudmFsKHZhbHVlcy5lbWFpbCB8fCAnJyk7XG4gICAgLy8gICAgICAgICBmb3JtLmZpbmQoJ1tuYW1lPVwiZmlyc3RfbmFtZVwiXScpLnZhbCh2YWx1ZXMuZmlyc3RfbmFtZSB8fCAnJyk7XG4gICAgLy8gICAgICAgICBmb3JtLmZpbmQoJ1tuYW1lPVwibGFzdF9uYW1lXCJdJykudmFsKHZhbHVlcy5sYXN0X25hbWUgfHwgJycpO1xuICAgIC8vICAgICAgICAgZm9ybS5maW5kKCdbbmFtZT1cInJvbGVfaWRcIl0nKS52YWwodmFsdWVzLnJvbGVfaWQgfHwgMyk7IC8vIERlZmF1bHQgdG8gTWVtYmVyXG4gICAgLy8gICAgICAgICBmb3JtLmZpbmQoJ1tuYW1lPVwicGhvbmVcIl0nKS52YWwodmFsdWVzLnBob25lIHx8ICcnKTtcbiAgICAvLyAgICAgICAgIHJldHVybiBudWxsO1xuICAgIC8vICAgICB9IGVsc2Uge1xuICAgIC8vICAgICAgICAgLy8gR2V0dGVyIC0gZXh0cmFjdCBmb3JtIHZhbHVlc1xuICAgIC8vICAgICAgICAgcmV0dXJuIHtcbiAgICAvLyAgICAgICAgICAgICBlbWFpbDogZm9ybS5maW5kKCdbbmFtZT1cImVtYWlsXCJdJykudmFsKCksXG4gICAgLy8gICAgICAgICAgICAgZmlyc3RfbmFtZTogZm9ybS5maW5kKCdbbmFtZT1cImZpcnN0X25hbWVcIl0nKS52YWwoKSxcbiAgICAvLyAgICAgICAgICAgICBsYXN0X25hbWU6IGZvcm0uZmluZCgnW25hbWU9XCJsYXN0X25hbWVcIl0nKS52YWwoKSxcbiAgICAvLyAgICAgICAgICAgICByb2xlX2lkOiBwYXJzZUludChmb3JtLmZpbmQoJ1tuYW1lPVwicm9sZV9pZFwiXScpLnZhbCgpKSB8fCAzLFxuICAgIC8vICAgICAgICAgICAgIHBob25lOiBmb3JtLmZpbmQoJ1tuYW1lPVwicGhvbmVcIl0nKS52YWwoKVxuICAgIC8vICAgICAgICAgfTtcbiAgICAvLyAgICAgfVxuICAgIC8vIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU1BLGFBQWEsU0FBU0MsZ0JBQWdCLENBQUM7RUFDekM7QUFDSjtBQUNBO0FBQ0E7QUFDQTtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUFBIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,28 @@
"use strict";
class Frontend_Invoices_View {
static init() {
if (!$(".Frontend_Invoices_View").exists()) return;
// Initialize your component here
console.log('Frontend_Invoices_View initialized');
// Example: Handle button clicks
$('.btn-action').on('click', function () {
// Handle action
});
// Example: Initialize tooltips
$('[data-bs-toggle="tooltip"]').tooltip();
}
static on_app_ready() {
Frontend_Invoices_View.init();
}
// static on_jqhtml_ready() {
// // Called after all JQHTML components have loaded and rendered
// // Use this if you need to interact with JQHTML components
// // Otherwise, use on_app_ready() for most initialization
// }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9JbnZvaWNlc19WaWV3IiwiaW5pdCIsIiQiLCJleGlzdHMiLCJjb25zb2xlIiwibG9nIiwib24iLCJ0b29sdGlwIiwib25fYXBwX3JlYWR5Il0sInNvdXJjZXMiOlsicnN4L2FwcC9mcm9udGVuZC9pbnZvaWNlcy9mcm9udGVuZF9pbnZvaWNlc192aWV3LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIEZyb250ZW5kX0ludm9pY2VzX1ZpZXcge1xuICAgIHN0YXRpYyBpbml0KCkge1xuICAgICAgICBpZiAoISQoXCIuRnJvbnRlbmRfSW52b2ljZXNfVmlld1wiKS5leGlzdHMoKSkgcmV0dXJuO1xuXG4gICAgICAgIC8vIEluaXRpYWxpemUgeW91ciBjb21wb25lbnQgaGVyZVxuICAgICAgICBjb25zb2xlLmxvZygnRnJvbnRlbmRfSW52b2ljZXNfVmlldyBpbml0aWFsaXplZCcpO1xuXG4gICAgICAgIC8vIEV4YW1wbGU6IEhhbmRsZSBidXR0b24gY2xpY2tzXG4gICAgICAgICQoJy5idG4tYWN0aW9uJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgYWN0aW9uXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEV4YW1wbGU6IEluaXRpYWxpemUgdG9vbHRpcHNcbiAgICAgICAgJCgnW2RhdGEtYnMtdG9nZ2xlPVwidG9vbHRpcFwiXScpLnRvb2x0aXAoKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgb25fYXBwX3JlYWR5KCkge1xuICAgICAgICBGcm9udGVuZF9JbnZvaWNlc19WaWV3LmluaXQoKTtcbiAgICB9XG5cbiAgICAvLyBzdGF0aWMgb25fanFodG1sX3JlYWR5KCkge1xuICAgIC8vICAgICAvLyBDYWxsZWQgYWZ0ZXIgYWxsIEpRSFRNTCBjb21wb25lbnRzIGhhdmUgbG9hZGVkIGFuZCByZW5kZXJlZFxuICAgIC8vICAgICAvLyBVc2UgdGhpcyBpZiB5b3UgbmVlZCB0byBpbnRlcmFjdCB3aXRoIEpRSFRNTCBjb21wb25lbnRzXG4gICAgLy8gICAgIC8vIE90aGVyd2lzZSwgdXNlIG9uX2FwcF9yZWFkeSgpIGZvciBtb3N0IGluaXRpYWxpemF0aW9uXG4gICAgLy8gfVxufSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxzQkFBc0IsQ0FBQztFQUN6QixPQUFPQyxJQUFJQSxDQUFBLEVBQUc7SUFDVixJQUFJLENBQUNDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDQyxNQUFNLENBQUMsQ0FBQyxFQUFFOztJQUU1QztJQUNBQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxvQ0FBb0MsQ0FBQzs7SUFFakQ7SUFDQUgsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDSSxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVc7TUFDcEM7SUFBQSxDQUNILENBQUM7O0lBRUY7SUFDQUosQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUNLLE9BQU8sQ0FBQyxDQUFDO0VBQzdDO0VBRUEsT0FBT0MsWUFBWUEsQ0FBQSxFQUFHO0lBQ2xCUixzQkFBc0IsQ0FBQ0MsSUFBSSxDQUFDLENBQUM7RUFDakM7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNKIiwiaWdub3JlTGlzdCI6W119

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,31 @@
"use strict";
/*
* Date and time utility functions for the RSpade framework.
* These functions handle date/time conversions and Unix timestamps.
*/
// ============================================================================
// DATE/TIME UTILITIES
// ============================================================================
/**
* Gets the current Unix timestamp (seconds since epoch)
* @returns {number} Current Unix timestamp in seconds
* @todo Calculate based on server time at page render
* @todo Move to a date library
*/
function unix_time() {
return Math.round(new Date().getTime() / 1000);
}
/**
* Converts a date string to Unix timestamp
* @param {string} str_date - Date string (Y-m-d H:i:s format)
* @returns {number} Unix timestamp in seconds
*/
function ymdhis_to_unix(str_date) {
const date = new Date(str_date);
return date.getTime() / 1000;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1bml4X3RpbWUiLCJNYXRoIiwicm91bmQiLCJEYXRlIiwiZ2V0VGltZSIsInltZGhpc190b191bml4Iiwic3RyX2RhdGUiLCJkYXRlIl0sInNvdXJjZXMiOlsiYXBwL1JTcGFkZS9Db3JlL0pzL2RhdGV0aW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBEYXRlIGFuZCB0aW1lIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB0aGUgUlNwYWRlIGZyYW1ld29yay5cbiAqIFRoZXNlIGZ1bmN0aW9ucyBoYW5kbGUgZGF0ZS90aW1lIGNvbnZlcnNpb25zIGFuZCBVbml4IHRpbWVzdGFtcHMuXG4gKi9cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gREFURS9USU1FIFVUSUxJVElFU1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vKipcbiAqIEdldHMgdGhlIGN1cnJlbnQgVW5peCB0aW1lc3RhbXAgKHNlY29uZHMgc2luY2UgZXBvY2gpXG4gKiBAcmV0dXJucyB7bnVtYmVyfSBDdXJyZW50IFVuaXggdGltZXN0YW1wIGluIHNlY29uZHNcbiAqIEB0b2RvIENhbGN1bGF0ZSBiYXNlZCBvbiBzZXJ2ZXIgdGltZSBhdCBwYWdlIHJlbmRlclxuICogQHRvZG8gTW92ZSB0byBhIGRhdGUgbGlicmFyeVxuICovXG5mdW5jdGlvbiB1bml4X3RpbWUoKSB7XG4gICAgcmV0dXJuIE1hdGgucm91bmQobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwKTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhIGRhdGUgc3RyaW5nIHRvIFVuaXggdGltZXN0YW1wXG4gKiBAcGFyYW0ge3N0cmluZ30gc3RyX2RhdGUgLSBEYXRlIHN0cmluZyAoWS1tLWQgSDppOnMgZm9ybWF0KVxuICogQHJldHVybnMge251bWJlcn0gVW5peCB0aW1lc3RhbXAgaW4gc2Vjb25kc1xuICovXG5mdW5jdGlvbiB5bWRoaXNfdG9fdW5peChzdHJfZGF0ZSkge1xuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShzdHJfZGF0ZSk7XG4gICAgcmV0dXJuIGRhdGUuZ2V0VGltZSgpIC8gMTAwMDtcbn0iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLFNBQVNBLENBQUEsRUFBRztFQUNqQixPQUFPQyxJQUFJLENBQUNDLEtBQUssQ0FBQyxJQUFJQyxJQUFJLENBQUMsQ0FBQyxDQUFDQyxPQUFPLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQztBQUNsRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0MsY0FBY0EsQ0FBQ0MsUUFBUSxFQUFFO0VBQzlCLE1BQU1DLElBQUksR0FBRyxJQUFJSixJQUFJLENBQUNHLFFBQVEsQ0FBQztFQUMvQixPQUFPQyxJQUFJLENBQUNILE9BQU8sQ0FBQyxDQUFDLEdBQUcsSUFBSTtBQUNoQyIsImlnbm9yZUxpc3QiOltdfQ==

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,28 @@
"use strict";
class Frontend_Projects_View {
static init() {
if (!$(".Frontend_Projects_View").exists()) return;
// Initialize your component here
console.log('Frontend_Projects_View initialized');
// Example: Handle button clicks
$('.btn-action').on('click', function () {
// Handle action
});
// Example: Initialize tooltips
$('[data-bs-toggle="tooltip"]').tooltip();
}
static on_app_ready() {
Frontend_Projects_View.init();
}
// static on_jqhtml_ready() {
// // Called after all JQHTML components have loaded and rendered
// // Use this if you need to interact with JQHTML components
// // Otherwise, use on_app_ready() for most initialization
// }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9Qcm9qZWN0c19WaWV3IiwiaW5pdCIsIiQiLCJleGlzdHMiLCJjb25zb2xlIiwibG9nIiwib24iLCJ0b29sdGlwIiwib25fYXBwX3JlYWR5Il0sInNvdXJjZXMiOlsicnN4L2FwcC9mcm9udGVuZC9wcm9qZWN0cy9mcm9udGVuZF9wcm9qZWN0c192aWV3LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIEZyb250ZW5kX1Byb2plY3RzX1ZpZXcge1xuICAgIHN0YXRpYyBpbml0KCkge1xuICAgICAgICBpZiAoISQoXCIuRnJvbnRlbmRfUHJvamVjdHNfVmlld1wiKS5leGlzdHMoKSkgcmV0dXJuO1xuXG4gICAgICAgIC8vIEluaXRpYWxpemUgeW91ciBjb21wb25lbnQgaGVyZVxuICAgICAgICBjb25zb2xlLmxvZygnRnJvbnRlbmRfUHJvamVjdHNfVmlldyBpbml0aWFsaXplZCcpO1xuXG4gICAgICAgIC8vIEV4YW1wbGU6IEhhbmRsZSBidXR0b24gY2xpY2tzXG4gICAgICAgICQoJy5idG4tYWN0aW9uJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgYWN0aW9uXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEV4YW1wbGU6IEluaXRpYWxpemUgdG9vbHRpcHNcbiAgICAgICAgJCgnW2RhdGEtYnMtdG9nZ2xlPVwidG9vbHRpcFwiXScpLnRvb2x0aXAoKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgb25fYXBwX3JlYWR5KCkge1xuICAgICAgICBGcm9udGVuZF9Qcm9qZWN0c19WaWV3LmluaXQoKTtcbiAgICB9XG5cbiAgICAvLyBzdGF0aWMgb25fanFodG1sX3JlYWR5KCkge1xuICAgIC8vICAgICAvLyBDYWxsZWQgYWZ0ZXIgYWxsIEpRSFRNTCBjb21wb25lbnRzIGhhdmUgbG9hZGVkIGFuZCByZW5kZXJlZFxuICAgIC8vICAgICAvLyBVc2UgdGhpcyBpZiB5b3UgbmVlZCB0byBpbnRlcmFjdCB3aXRoIEpRSFRNTCBjb21wb25lbnRzXG4gICAgLy8gICAgIC8vIE90aGVyd2lzZSwgdXNlIG9uX2FwcF9yZWFkeSgpIGZvciBtb3N0IGluaXRpYWxpemF0aW9uXG4gICAgLy8gfVxufSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxzQkFBc0IsQ0FBQztFQUN6QixPQUFPQyxJQUFJQSxDQUFBLEVBQUc7SUFDVixJQUFJLENBQUNDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDQyxNQUFNLENBQUMsQ0FBQyxFQUFFOztJQUU1QztJQUNBQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxvQ0FBb0MsQ0FBQzs7SUFFakQ7SUFDQUgsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDSSxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVc7TUFDcEM7SUFBQSxDQUNILENBQUM7O0lBRUY7SUFDQUosQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUNLLE9BQU8sQ0FBQyxDQUFDO0VBQzdDO0VBRUEsT0FBT0MsWUFBWUEsQ0FBQSxFQUFHO0lBQ2xCUixzQkFBc0IsQ0FBQ0MsSUFBSSxDQUFDLENBQUM7RUFDakM7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNKIiwiaWdub3JlTGlzdCI6W119

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,28 @@
"use strict";
class Frontend_Dashboard {
static init() {
if (!$(".Frontend_Dashboard").exists()) return;
// Initialize your component here
console.log('Frontend_Dashboard initialized');
// Example: Handle button clicks
$('.btn-action').on('click', function () {
// Handle action
});
// Example: Initialize tooltips
$('[data-bs-toggle="tooltip"]').tooltip();
}
static on_app_ready() {
Frontend_Dashboard.init();
}
// static on_jqhtml_ready() {
// // Called after all JQHTML components have loaded and rendered
// // Use this if you need to interact with JQHTML components
// // Otherwise, use on_app_ready() for most initialization
// }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9EYXNoYm9hcmQiLCJpbml0IiwiJCIsImV4aXN0cyIsImNvbnNvbGUiLCJsb2ciLCJvbiIsInRvb2x0aXAiLCJvbl9hcHBfcmVhZHkiXSwic291cmNlcyI6WyJyc3gvYXBwL2Zyb250ZW5kL2Rhc2hib2FyZC9mcm9udGVuZF9kYXNoYm9hcmQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRnJvbnRlbmRfRGFzaGJvYXJkIHtcbiAgICBzdGF0aWMgaW5pdCgpIHtcbiAgICAgICAgaWYgKCEkKFwiLkZyb250ZW5kX0Rhc2hib2FyZFwiKS5leGlzdHMoKSkgcmV0dXJuO1xuXG4gICAgICAgIC8vIEluaXRpYWxpemUgeW91ciBjb21wb25lbnQgaGVyZVxuICAgICAgICBjb25zb2xlLmxvZygnRnJvbnRlbmRfRGFzaGJvYXJkIGluaXRpYWxpemVkJyk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSGFuZGxlIGJ1dHRvbiBjbGlja3NcbiAgICAgICAgJCgnLmJ0bi1hY3Rpb24nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBhY3Rpb25cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSW5pdGlhbGl6ZSB0b29sdGlwc1xuICAgICAgICAkKCdbZGF0YS1icy10b2dnbGU9XCJ0b29sdGlwXCJdJykudG9vbHRpcCgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBvbl9hcHBfcmVhZHkoKSB7XG4gICAgICAgIEZyb250ZW5kX0Rhc2hib2FyZC5pbml0KCk7XG4gICAgfVxuXG4gICAgLy8gc3RhdGljIG9uX2pxaHRtbF9yZWFkeSgpIHtcbiAgICAvLyAgICAgLy8gQ2FsbGVkIGFmdGVyIGFsbCBKUUhUTUwgY29tcG9uZW50cyBoYXZlIGxvYWRlZCBhbmQgcmVuZGVyZWRcbiAgICAvLyAgICAgLy8gVXNlIHRoaXMgaWYgeW91IG5lZWQgdG8gaW50ZXJhY3Qgd2l0aCBKUUhUTUwgY29tcG9uZW50c1xuICAgIC8vICAgICAvLyBPdGhlcndpc2UsIHVzZSBvbl9hcHBfcmVhZHkoKSBmb3IgbW9zdCBpbml0aWFsaXphdGlvblxuICAgIC8vIH1cbn0iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsa0JBQWtCLENBQUM7RUFDckIsT0FBT0MsSUFBSUEsQ0FBQSxFQUFHO0lBQ1YsSUFBSSxDQUFDQyxDQUFDLENBQUMscUJBQXFCLENBQUMsQ0FBQ0MsTUFBTSxDQUFDLENBQUMsRUFBRTs7SUFFeEM7SUFDQUMsT0FBTyxDQUFDQyxHQUFHLENBQUMsZ0NBQWdDLENBQUM7O0lBRTdDO0lBQ0FILENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQ0ksRUFBRSxDQUFDLE9BQU8sRUFBRSxZQUFXO01BQ3BDO0lBQUEsQ0FDSCxDQUFDOztJQUVGO0lBQ0FKLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDSyxPQUFPLENBQUMsQ0FBQztFQUM3QztFQUVBLE9BQU9DLFlBQVlBLENBQUEsRUFBRztJQUNsQlIsa0JBQWtCLENBQUNDLElBQUksQ0FBQyxDQUFDO0VBQzdCOztFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,12 @@
"use strict";
/**
* Contacts_DataGrid Component
*
* Concrete implementation for contacts datagrid.
* All functionality is in DataGrid_Abstract.
*/
class Contacts_DataGrid extends DataGrid_Abstract {
// All behavior inherited from DataGrid_Abstract
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDb250YWN0c19EYXRhR3JpZCIsIkRhdGFHcmlkX0Fic3RyYWN0Il0sInNvdXJjZXMiOlsicnN4L2FwcC9mcm9udGVuZC9jb250YWN0cy9pbmRleC9jb250YWN0c19kYXRhZ3JpZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvbnRhY3RzX0RhdGFHcmlkIENvbXBvbmVudFxuICpcbiAqIENvbmNyZXRlIGltcGxlbWVudGF0aW9uIGZvciBjb250YWN0cyBkYXRhZ3JpZC5cbiAqIEFsbCBmdW5jdGlvbmFsaXR5IGlzIGluIERhdGFHcmlkX0Fic3RyYWN0LlxuICovXG5jbGFzcyBDb250YWN0c19EYXRhR3JpZCBleHRlbmRzIERhdGFHcmlkX0Fic3RyYWN0IHtcbiAgICAvLyBBbGwgYmVoYXZpb3IgaW5oZXJpdGVkIGZyb20gRGF0YUdyaWRfQWJzdHJhY3Rcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQSxpQkFBaUIsU0FBU0MsaUJBQWlCLENBQUM7RUFDOUM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,28 @@
"use strict";
class Frontend_Settings_User_Settings {
static init() {
if (!$(".Frontend_Settings_User_Settings").exists()) return;
// Initialize your component here
console.log('Frontend_Settings_User_Settings initialized');
// Example: Handle button clicks
$('.btn-action').on('click', function () {
// Handle action
});
// Example: Initialize tooltips
$('[data-bs-toggle="tooltip"]').tooltip();
}
static on_app_ready() {
Frontend_Settings_User_Settings.init();
}
// static on_jqhtml_ready() {
// // Called after all JQHTML components have loaded and rendered
// // Use this if you need to interact with JQHTML components
// // Otherwise, use on_app_ready() for most initialization
// }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9TZXR0aW5nc19Vc2VyX1NldHRpbmdzIiwiaW5pdCIsIiQiLCJleGlzdHMiLCJjb25zb2xlIiwibG9nIiwib24iLCJ0b29sdGlwIiwib25fYXBwX3JlYWR5Il0sInNvdXJjZXMiOlsicnN4L2FwcC9mcm9udGVuZC9zZXR0aW5ncy91c2VyX3NldHRpbmdzL2Zyb250ZW5kX3NldHRpbmdzX3VzZXJfc2V0dGluZ3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRnJvbnRlbmRfU2V0dGluZ3NfVXNlcl9TZXR0aW5ncyB7XG4gICAgc3RhdGljIGluaXQoKSB7XG4gICAgICAgIGlmICghJChcIi5Gcm9udGVuZF9TZXR0aW5nc19Vc2VyX1NldHRpbmdzXCIpLmV4aXN0cygpKSByZXR1cm47XG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSB5b3VyIGNvbXBvbmVudCBoZXJlXG4gICAgICAgIGNvbnNvbGUubG9nKCdGcm9udGVuZF9TZXR0aW5nc19Vc2VyX1NldHRpbmdzIGluaXRpYWxpemVkJyk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSGFuZGxlIGJ1dHRvbiBjbGlja3NcbiAgICAgICAgJCgnLmJ0bi1hY3Rpb24nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBhY3Rpb25cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSW5pdGlhbGl6ZSB0b29sdGlwc1xuICAgICAgICAkKCdbZGF0YS1icy10b2dnbGU9XCJ0b29sdGlwXCJdJykudG9vbHRpcCgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBvbl9hcHBfcmVhZHkoKSB7XG4gICAgICAgIEZyb250ZW5kX1NldHRpbmdzX1VzZXJfU2V0dGluZ3MuaW5pdCgpO1xuICAgIH1cblxuICAgIC8vIHN0YXRpYyBvbl9qcWh0bWxfcmVhZHkoKSB7XG4gICAgLy8gICAgIC8vIENhbGxlZCBhZnRlciBhbGwgSlFIVE1MIGNvbXBvbmVudHMgaGF2ZSBsb2FkZWQgYW5kIHJlbmRlcmVkXG4gICAgLy8gICAgIC8vIFVzZSB0aGlzIGlmIHlvdSBuZWVkIHRvIGludGVyYWN0IHdpdGggSlFIVE1MIGNvbXBvbmVudHNcbiAgICAvLyAgICAgLy8gT3RoZXJ3aXNlLCB1c2Ugb25fYXBwX3JlYWR5KCkgZm9yIG1vc3QgaW5pdGlhbGl6YXRpb25cbiAgICAvLyB9XG59Il0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLCtCQUErQixDQUFDO0VBQ2xDLE9BQU9DLElBQUlBLENBQUEsRUFBRztJQUNWLElBQUksQ0FBQ0MsQ0FBQyxDQUFDLGtDQUFrQyxDQUFDLENBQUNDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7O0lBRXJEO0lBQ0FDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLDZDQUE2QyxDQUFDOztJQUUxRDtJQUNBSCxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUNJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsWUFBVztNQUNwQztJQUFBLENBQ0gsQ0FBQzs7SUFFRjtJQUNBSixDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQ0ssT0FBTyxDQUFDLENBQUM7RUFDN0M7RUFFQSxPQUFPQyxZQUFZQSxDQUFBLEVBQUc7SUFDbEJSLCtCQUErQixDQUFDQyxJQUFJLENBQUMsQ0FBQztFQUMxQzs7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,27 @@
"use strict";
class Client_Selector_Input extends Ajax_Select_Input {
async on_load() {
// Load clients via Ajax endpoint if data not provided
if (!this.args.data) {
this.data.select_values = await Frontend_Contacts_Controller.get_clients();
} else {
// Use parent on_load for custom data endpoints
await super.on_load();
}
}
on_create() {
// Set default placeholder if not provided
if (!this.args.placeholder) {
this.args.placeholder = 'Select Client...';
}
// Call parent to initialize Ajax_Select_Input
super.on_create();
}
on_ready() {
// Call parent to initialize Tom Select
super.on_ready();
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJDbGllbnRfU2VsZWN0b3JfSW5wdXQiLCJBamF4X1NlbGVjdF9JbnB1dCIsIm9uX2xvYWQiLCJhcmdzIiwiZGF0YSIsInNlbGVjdF92YWx1ZXMiLCJGcm9udGVuZF9Db250YWN0c19Db250cm9sbGVyIiwiZ2V0X2NsaWVudHMiLCJvbl9jcmVhdGUiLCJwbGFjZWhvbGRlciIsIm9uX3JlYWR5Il0sInNvdXJjZXMiOlsicnN4L2FwcC9mcm9udGVuZC9jb250YWN0cy9lZGl0L2Zvcm0vY2xpZW50X3NlbGVjdG9yX2lucHV0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIENsaWVudF9TZWxlY3Rvcl9JbnB1dCBleHRlbmRzIEFqYXhfU2VsZWN0X0lucHV0IHtcbiAgICBhc3luYyBvbl9sb2FkKCkge1xuICAgICAgICAvLyBMb2FkIGNsaWVudHMgdmlhIEFqYXggZW5kcG9pbnQgaWYgZGF0YSBub3QgcHJvdmlkZWRcbiAgICAgICAgaWYgKCF0aGlzLmFyZ3MuZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5kYXRhLnNlbGVjdF92YWx1ZXMgPSBhd2FpdCBGcm9udGVuZF9Db250YWN0c19Db250cm9sbGVyLmdldF9jbGllbnRzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBVc2UgcGFyZW50IG9uX2xvYWQgZm9yIGN1c3RvbSBkYXRhIGVuZHBvaW50c1xuICAgICAgICAgICAgYXdhaXQgc3VwZXIub25fbG9hZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25fY3JlYXRlKCkge1xuICAgICAgICAvLyBTZXQgZGVmYXVsdCBwbGFjZWhvbGRlciBpZiBub3QgcHJvdmlkZWRcbiAgICAgICAgaWYgKCF0aGlzLmFyZ3MucGxhY2Vob2xkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuYXJncy5wbGFjZWhvbGRlciA9ICdTZWxlY3QgQ2xpZW50Li4uJztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIENhbGwgcGFyZW50IHRvIGluaXRpYWxpemUgQWpheF9TZWxlY3RfSW5wdXRcbiAgICAgICAgc3VwZXIub25fY3JlYXRlKCk7XG4gICAgfVxuXG4gICAgb25fcmVhZHkoKSB7XG4gICAgICAgIC8vIENhbGwgcGFyZW50IHRvIGluaXRpYWxpemUgVG9tIFNlbGVjdFxuICAgICAgICBzdXBlci5vbl9yZWFkeSgpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxxQkFBcUIsU0FBU0MsaUJBQWlCLENBQUM7RUFDbEQsTUFBTUMsT0FBT0EsQ0FBQSxFQUFHO0lBQ1o7SUFDQSxJQUFJLENBQUMsSUFBSSxDQUFDQyxJQUFJLENBQUNDLElBQUksRUFBRTtNQUNqQixJQUFJLENBQUNBLElBQUksQ0FBQ0MsYUFBYSxHQUFHLE1BQU1DLDRCQUE0QixDQUFDQyxXQUFXLENBQUMsQ0FBQztJQUM5RSxDQUFDLE1BQU07TUFDSDtNQUNBLE1BQU0sS0FBSyxDQUFDTCxPQUFPLENBQUMsQ0FBQztJQUN6QjtFQUNKO0VBRUFNLFNBQVNBLENBQUEsRUFBRztJQUNSO0lBQ0EsSUFBSSxDQUFDLElBQUksQ0FBQ0wsSUFBSSxDQUFDTSxXQUFXLEVBQUU7TUFDeEIsSUFBSSxDQUFDTixJQUFJLENBQUNNLFdBQVcsR0FBRyxrQkFBa0I7SUFDOUM7O0lBRUE7SUFDQSxLQUFLLENBQUNELFNBQVMsQ0FBQyxDQUFDO0VBQ3JCO0VBRUFFLFFBQVFBLENBQUEsRUFBRztJQUNQO0lBQ0EsS0FBSyxDQUFDQSxRQUFRLENBQUMsQ0FBQztFQUNwQjtBQUNKIiwiaWdub3JlTGlzdCI6W119

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,28 @@
"use strict";
class Frontend_Settings_Api_Keys {
static init() {
if (!$(".Frontend_Settings_Api_Keys").exists()) return;
// Initialize your component here
console.log('Frontend_Settings_Api_Keys initialized');
// Example: Handle button clicks
$('.btn-action').on('click', function () {
// Handle action
});
// Example: Initialize tooltips
$('[data-bs-toggle="tooltip"]').tooltip();
}
static on_app_ready() {
Frontend_Settings_Api_Keys.init();
}
// static on_jqhtml_ready() {
// // Called after all JQHTML components have loaded and rendered
// // Use this if you need to interact with JQHTML components
// // Otherwise, use on_app_ready() for most initialization
// }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9TZXR0aW5nc19BcGlfS2V5cyIsImluaXQiLCIkIiwiZXhpc3RzIiwiY29uc29sZSIsImxvZyIsIm9uIiwidG9vbHRpcCIsIm9uX2FwcF9yZWFkeSJdLCJzb3VyY2VzIjpbInJzeC9hcHAvZnJvbnRlbmQvc2V0dGluZ3MvYXBpX2tleXMvZnJvbnRlbmRfc2V0dGluZ3NfYXBpX2tleXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRnJvbnRlbmRfU2V0dGluZ3NfQXBpX0tleXMge1xuICAgIHN0YXRpYyBpbml0KCkge1xuICAgICAgICBpZiAoISQoXCIuRnJvbnRlbmRfU2V0dGluZ3NfQXBpX0tleXNcIikuZXhpc3RzKCkpIHJldHVybjtcblxuICAgICAgICAvLyBJbml0aWFsaXplIHlvdXIgY29tcG9uZW50IGhlcmVcbiAgICAgICAgY29uc29sZS5sb2coJ0Zyb250ZW5kX1NldHRpbmdzX0FwaV9LZXlzIGluaXRpYWxpemVkJyk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSGFuZGxlIGJ1dHRvbiBjbGlja3NcbiAgICAgICAgJCgnLmJ0bi1hY3Rpb24nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBhY3Rpb25cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSW5pdGlhbGl6ZSB0b29sdGlwc1xuICAgICAgICAkKCdbZGF0YS1icy10b2dnbGU9XCJ0b29sdGlwXCJdJykudG9vbHRpcCgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBvbl9hcHBfcmVhZHkoKSB7XG4gICAgICAgIEZyb250ZW5kX1NldHRpbmdzX0FwaV9LZXlzLmluaXQoKTtcbiAgICB9XG5cbiAgICAvLyBzdGF0aWMgb25fanFodG1sX3JlYWR5KCkge1xuICAgIC8vICAgICAvLyBDYWxsZWQgYWZ0ZXIgYWxsIEpRSFRNTCBjb21wb25lbnRzIGhhdmUgbG9hZGVkIGFuZCByZW5kZXJlZFxuICAgIC8vICAgICAvLyBVc2UgdGhpcyBpZiB5b3UgbmVlZCB0byBpbnRlcmFjdCB3aXRoIEpRSFRNTCBjb21wb25lbnRzXG4gICAgLy8gICAgIC8vIE90aGVyd2lzZSwgdXNlIG9uX2FwcF9yZWFkeSgpIGZvciBtb3N0IGluaXRpYWxpemF0aW9uXG4gICAgLy8gfVxufSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSwwQkFBMEIsQ0FBQztFQUM3QixPQUFPQyxJQUFJQSxDQUFBLEVBQUc7SUFDVixJQUFJLENBQUNDLENBQUMsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDQyxNQUFNLENBQUMsQ0FBQyxFQUFFOztJQUVoRDtJQUNBQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyx3Q0FBd0MsQ0FBQzs7SUFFckQ7SUFDQUgsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDSSxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVc7TUFDcEM7SUFBQSxDQUNILENBQUM7O0lBRUY7SUFDQUosQ0FBQyxDQUFDLDRCQUE0QixDQUFDLENBQUNLLE9BQU8sQ0FBQyxDQUFDO0VBQzdDO0VBRUEsT0FBT0MsWUFBWUEsQ0FBQSxFQUFHO0lBQ2xCUiwwQkFBMEIsQ0FBQ0MsSUFBSSxDQUFDLENBQUM7RUFDckM7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNKIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,45 @@
"use strict";
/**
* Save client handler for Form component
* @param {Object} values - Serialized form values
* @returns {Promise<Object>} Response {success: bool, errors?: {}, redirect?: string}
*/
async function save_client(values) {
// Check if editing existing client
const client_id = $('#client-id').val();
if (client_id) {
values.id = client_id;
}
// TODO: Collect additional fields not yet in Form component (tags, etc.)
// For now, just submit the basic fields from the Form component
try {
const response = await Frontend_Clients_Controller.save(values);
if (response.success) {
// Redirect to clients list on success
return {
success: true,
redirect: Rsx.Route('Frontend_Clients_Controller', 'index')
};
} else {
// Return validation errors
return {
success: false,
errors: response.errors || {
_general: response.message || 'An error occurred'
}
};
}
} catch (error) {
console.error('Save error:', error);
return {
success: false,
errors: {
_general: 'An error occurred while saving. Please try again.'
}
};
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzYXZlX2NsaWVudCIsInZhbHVlcyIsImNsaWVudF9pZCIsIiQiLCJ2YWwiLCJpZCIsInJlc3BvbnNlIiwiRnJvbnRlbmRfQ2xpZW50c19Db250cm9sbGVyIiwic2F2ZSIsInN1Y2Nlc3MiLCJyZWRpcmVjdCIsIlJzeCIsIlJvdXRlIiwiZXJyb3JzIiwiX2dlbmVyYWwiLCJtZXNzYWdlIiwiZXJyb3IiLCJjb25zb2xlIl0sInNvdXJjZXMiOlsicnN4L2FwcC9mcm9udGVuZC9jbGllbnRzL2VkaXQvc2F2ZV9jbGllbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBTYXZlIGNsaWVudCBoYW5kbGVyIGZvciBGb3JtIGNvbXBvbmVudFxuICogQHBhcmFtIHtPYmplY3R9IHZhbHVlcyAtIFNlcmlhbGl6ZWQgZm9ybSB2YWx1ZXNcbiAqIEByZXR1cm5zIHtQcm9taXNlPE9iamVjdD59IFJlc3BvbnNlIHtzdWNjZXNzOiBib29sLCBlcnJvcnM/OiB7fSwgcmVkaXJlY3Q/OiBzdHJpbmd9XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHNhdmVfY2xpZW50KHZhbHVlcykge1xuICAgIC8vIENoZWNrIGlmIGVkaXRpbmcgZXhpc3RpbmcgY2xpZW50XG4gICAgY29uc3QgY2xpZW50X2lkID0gJCgnI2NsaWVudC1pZCcpLnZhbCgpO1xuICAgIGlmIChjbGllbnRfaWQpIHtcbiAgICAgICAgdmFsdWVzLmlkID0gY2xpZW50X2lkO1xuICAgIH1cblxuICAgIC8vIFRPRE86IENvbGxlY3QgYWRkaXRpb25hbCBmaWVsZHMgbm90IHlldCBpbiBGb3JtIGNvbXBvbmVudCAodGFncywgZXRjLilcbiAgICAvLyBGb3Igbm93LCBqdXN0IHN1Ym1pdCB0aGUgYmFzaWMgZmllbGRzIGZyb20gdGhlIEZvcm0gY29tcG9uZW50XG5cbiAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IEZyb250ZW5kX0NsaWVudHNfQ29udHJvbGxlci5zYXZlKHZhbHVlcyk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIC8vIFJlZGlyZWN0IHRvIGNsaWVudHMgbGlzdCBvbiBzdWNjZXNzXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgICAgICAgICAgcmVkaXJlY3Q6IFJzeC5Sb3V0ZSgnRnJvbnRlbmRfQ2xpZW50c19Db250cm9sbGVyJywgJ2luZGV4JylcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBSZXR1cm4gdmFsaWRhdGlvbiBlcnJvcnNcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgc3VjY2VzczogZmFsc2UsXG4gICAgICAgICAgICAgICAgZXJyb3JzOiByZXNwb25zZS5lcnJvcnMgfHwge19nZW5lcmFsOiByZXNwb25zZS5tZXNzYWdlIHx8ICdBbiBlcnJvciBvY2N1cnJlZCd9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignU2F2ZSBlcnJvcjonLCBlcnJvcik7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdWNjZXNzOiBmYWxzZSxcbiAgICAgICAgICAgIGVycm9yczoge19nZW5lcmFsOiAnQW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgc2F2aW5nLiBQbGVhc2UgdHJ5IGFnYWluLid9XG4gICAgICAgIH07XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlQSxXQUFXQSxDQUFDQyxNQUFNLEVBQUU7RUFDL0I7RUFDQSxNQUFNQyxTQUFTLEdBQUdDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQ0MsR0FBRyxDQUFDLENBQUM7RUFDdkMsSUFBSUYsU0FBUyxFQUFFO0lBQ1hELE1BQU0sQ0FBQ0ksRUFBRSxHQUFHSCxTQUFTO0VBQ3pCOztFQUVBO0VBQ0E7O0VBRUEsSUFBSTtJQUNBLE1BQU1JLFFBQVEsR0FBRyxNQUFNQywyQkFBMkIsQ0FBQ0MsSUFBSSxDQUFDUCxNQUFNLENBQUM7SUFFL0QsSUFBSUssUUFBUSxDQUFDRyxPQUFPLEVBQUU7TUFDbEI7TUFDQSxPQUFPO1FBQ0hBLE9BQU8sRUFBRSxJQUFJO1FBQ2JDLFFBQVEsRUFBRUMsR0FBRyxDQUFDQyxLQUFLLENBQUMsNkJBQTZCLEVBQUUsT0FBTztNQUM5RCxDQUFDO0lBQ0wsQ0FBQyxNQUFNO01BQ0g7TUFDQSxPQUFPO1FBQ0hILE9BQU8sRUFBRSxLQUFLO1FBQ2RJLE1BQU0sRUFBRVAsUUFBUSxDQUFDTyxNQUFNLElBQUk7VUFBQ0MsUUFBUSxFQUFFUixRQUFRLENBQUNTLE9BQU8sSUFBSTtRQUFtQjtNQUNqRixDQUFDO0lBQ0w7RUFDSixDQUFDLENBQUMsT0FBT0MsS0FBSyxFQUFFO0lBQ1pDLE9BQU8sQ0FBQ0QsS0FBSyxDQUFDLGFBQWEsRUFBRUEsS0FBSyxDQUFDO0lBQ25DLE9BQU87TUFDSFAsT0FBTyxFQUFFLEtBQUs7TUFDZEksTUFBTSxFQUFFO1FBQUNDLFFBQVEsRUFBRTtNQUFtRDtJQUMxRSxDQUFDO0VBQ0w7QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,61 @@
"use strict";
class Frontend_Settings_User_Management_View {
static init() {
if (!$('.Frontend_Settings_User_Management_View').exists()) return;
// Handle Edit User button click
$('#btn_edit_user').on('click', async function () {
await Frontend_Settings_User_Management_View.handle_edit_user();
});
// Handle Resend Invite button click
$('#btn_resend_invite').on('click', async function () {
await Frontend_Settings_User_Management_View.handle_resend_invite();
});
}
/**
* Edit user workflow: show edit modal, refresh page on save
*/
static async handle_edit_user() {
var _window$rsxapp$page_d;
// Get user ID from page data
const user_id = (_window$rsxapp$page_d = window.rsxapp.page_data) === null || _window$rsxapp$page_d === void 0 ? void 0 : _window$rsxapp$page_d.user_id;
if (!user_id) {
await Modal.error('User ID not found');
return;
}
// Show edit user modal
const result = await Edit_User_Modal.show(user_id);
if (result) {
// Refresh page to show updated user information
location.reload();
}
}
/**
* Resend invite workflow: call send invite modal
*/
static async handle_resend_invite() {
var _window$rsxapp$page_d2;
// Get user ID from page data
const user_id = (_window$rsxapp$page_d2 = window.rsxapp.page_data) === null || _window$rsxapp$page_d2 === void 0 ? void 0 : _window$rsxapp$page_d2.user_id;
if (!user_id) {
await Modal.error('User ID not found');
return;
}
// Show send invite modal
const result = await Send_User_Invite_Modal.show(user_id);
if (result) {
// Refresh page to show updated invite status
location.reload();
}
}
static on_app_ready() {
Frontend_Settings_User_Management_View.init();
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9TZXR0aW5nc19Vc2VyX01hbmFnZW1lbnRfVmlldyIsImluaXQiLCIkIiwiZXhpc3RzIiwib24iLCJoYW5kbGVfZWRpdF91c2VyIiwiaGFuZGxlX3Jlc2VuZF9pbnZpdGUiLCJfd2luZG93JHJzeGFwcCRwYWdlX2QiLCJ1c2VyX2lkIiwid2luZG93IiwicnN4YXBwIiwicGFnZV9kYXRhIiwiTW9kYWwiLCJlcnJvciIsInJlc3VsdCIsIkVkaXRfVXNlcl9Nb2RhbCIsInNob3ciLCJsb2NhdGlvbiIsInJlbG9hZCIsIl93aW5kb3ckcnN4YXBwJHBhZ2VfZDIiLCJTZW5kX1VzZXJfSW52aXRlX01vZGFsIiwib25fYXBwX3JlYWR5Il0sInNvdXJjZXMiOlsicnN4L2FwcC9mcm9udGVuZC9zZXR0aW5ncy91c2VyX21hbmFnZW1lbnQvZnJvbnRlbmRfc2V0dGluZ3NfdXNlcl9tYW5hZ2VtZW50X3ZpZXcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRnJvbnRlbmRfU2V0dGluZ3NfVXNlcl9NYW5hZ2VtZW50X1ZpZXcge1xuICAgIHN0YXRpYyBpbml0KCkge1xuICAgICAgICBpZiAoISQoJy5Gcm9udGVuZF9TZXR0aW5nc19Vc2VyX01hbmFnZW1lbnRfVmlldycpLmV4aXN0cygpKSByZXR1cm47XG5cbiAgICAgICAgLy8gSGFuZGxlIEVkaXQgVXNlciBidXR0b24gY2xpY2tcbiAgICAgICAgJCgnI2J0bl9lZGl0X3VzZXInKS5vbignY2xpY2snLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBhd2FpdCBGcm9udGVuZF9TZXR0aW5nc19Vc2VyX01hbmFnZW1lbnRfVmlldy5oYW5kbGVfZWRpdF91c2VyKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEhhbmRsZSBSZXNlbmQgSW52aXRlIGJ1dHRvbiBjbGlja1xuICAgICAgICAkKCcjYnRuX3Jlc2VuZF9pbnZpdGUnKS5vbignY2xpY2snLCBhc3luYyBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICBhd2FpdCBGcm9udGVuZF9TZXR0aW5nc19Vc2VyX01hbmFnZW1lbnRfVmlldy5oYW5kbGVfcmVzZW5kX2ludml0ZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBFZGl0IHVzZXIgd29ya2Zsb3c6IHNob3cgZWRpdCBtb2RhbCwgcmVmcmVzaCBwYWdlIG9uIHNhdmVcbiAgICAgKi9cbiAgICBzdGF0aWMgYXN5bmMgaGFuZGxlX2VkaXRfdXNlcigpIHtcbiAgICAgICAgLy8gR2V0IHVzZXIgSUQgZnJvbSBwYWdlIGRhdGFcbiAgICAgICAgY29uc3QgdXNlcl9pZCA9IHdpbmRvdy5yc3hhcHAucGFnZV9kYXRhPy51c2VyX2lkO1xuXG4gICAgICAgIGlmICghdXNlcl9pZCkge1xuICAgICAgICAgICAgYXdhaXQgTW9kYWwuZXJyb3IoJ1VzZXIgSUQgbm90IGZvdW5kJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTaG93IGVkaXQgdXNlciBtb2RhbFxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBFZGl0X1VzZXJfTW9kYWwuc2hvdyh1c2VyX2lkKTtcblxuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAvLyBSZWZyZXNoIHBhZ2UgdG8gc2hvdyB1cGRhdGVkIHVzZXIgaW5mb3JtYXRpb25cbiAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVzZW5kIGludml0ZSB3b3JrZmxvdzogY2FsbCBzZW5kIGludml0ZSBtb2RhbFxuICAgICAqL1xuICAgIHN0YXRpYyBhc3luYyBoYW5kbGVfcmVzZW5kX2ludml0ZSgpIHtcbiAgICAgICAgLy8gR2V0IHVzZXIgSUQgZnJvbSBwYWdlIGRhdGFcbiAgICAgICAgY29uc3QgdXNlcl9pZCA9IHdpbmRvdy5yc3hhcHAucGFnZV9kYXRhPy51c2VyX2lkO1xuXG4gICAgICAgIGlmICghdXNlcl9pZCkge1xuICAgICAgICAgICAgYXdhaXQgTW9kYWwuZXJyb3IoJ1VzZXIgSUQgbm90IGZvdW5kJyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTaG93IHNlbmQgaW52aXRlIG1vZGFsXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IFNlbmRfVXNlcl9JbnZpdGVfTW9kYWwuc2hvdyh1c2VyX2lkKTtcblxuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAvLyBSZWZyZXNoIHBhZ2UgdG8gc2hvdyB1cGRhdGVkIGludml0ZSBzdGF0dXNcbiAgICAgICAgICAgIGxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIG9uX2FwcF9yZWFkeSgpIHtcbiAgICAgICAgRnJvbnRlbmRfU2V0dGluZ3NfVXNlcl9NYW5hZ2VtZW50X1ZpZXcuaW5pdCgpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxzQ0FBc0MsQ0FBQztFQUN6QyxPQUFPQyxJQUFJQSxDQUFBLEVBQUc7SUFDVixJQUFJLENBQUNDLENBQUMsQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFDQyxNQUFNLENBQUMsQ0FBQyxFQUFFOztJQUU1RDtJQUNBRCxDQUFDLENBQUMsZ0JBQWdCLENBQUMsQ0FBQ0UsRUFBRSxDQUFDLE9BQU8sRUFBRSxrQkFBa0I7TUFDOUMsTUFBTUosc0NBQXNDLENBQUNLLGdCQUFnQixDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDOztJQUVGO0lBQ0FILENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDRSxFQUFFLENBQUMsT0FBTyxFQUFFLGtCQUFrQjtNQUNsRCxNQUFNSixzQ0FBc0MsQ0FBQ00sb0JBQW9CLENBQUMsQ0FBQztJQUN2RSxDQUFDLENBQUM7RUFDTjs7RUFFQTtBQUNKO0FBQ0E7RUFDSSxhQUFhRCxnQkFBZ0JBLENBQUEsRUFBRztJQUFBLElBQUFFLHFCQUFBO0lBQzVCO0lBQ0EsTUFBTUMsT0FBTyxJQUFBRCxxQkFBQSxHQUFHRSxNQUFNLENBQUNDLE1BQU0sQ0FBQ0MsU0FBUyxjQUFBSixxQkFBQSx1QkFBdkJBLHFCQUFBLENBQXlCQyxPQUFPO0lBRWhELElBQUksQ0FBQ0EsT0FBTyxFQUFFO01BQ1YsTUFBTUksS0FBSyxDQUFDQyxLQUFLLENBQUMsbUJBQW1CLENBQUM7TUFDdEM7SUFDSjs7SUFFQTtJQUNBLE1BQU1DLE1BQU0sR0FBRyxNQUFNQyxlQUFlLENBQUNDLElBQUksQ0FBQ1IsT0FBTyxDQUFDO0lBRWxELElBQUlNLE1BQU0sRUFBRTtNQUNSO01BQ0FHLFFBQVEsQ0FBQ0MsTUFBTSxDQUFDLENBQUM7SUFDckI7RUFDSjs7RUFFQTtBQUNKO0FBQ0E7RUFDSSxhQUFhWixvQkFBb0JBLENBQUEsRUFBRztJQUFBLElBQUFhLHNCQUFBO0lBQ2hDO0lBQ0EsTUFBTVgsT0FBTyxJQUFBVyxzQkFBQSxHQUFHVixNQUFNLENBQUNDLE1BQU0sQ0FBQ0MsU0FBUyxjQUFBUSxzQkFBQSx1QkFBdkJBLHNCQUFBLENBQXlCWCxPQUFPO0lBRWhELElBQUksQ0FBQ0EsT0FBTyxFQUFFO01BQ1YsTUFBTUksS0FBSyxDQUFDQyxLQUFLLENBQUMsbUJBQW1CLENBQUM7TUFDdEM7SUFDSjs7SUFFQTtJQUNBLE1BQU1DLE1BQU0sR0FBRyxNQUFNTSxzQkFBc0IsQ0FBQ0osSUFBSSxDQUFDUixPQUFPLENBQUM7SUFFekQsSUFBSU0sTUFBTSxFQUFFO01BQ1I7TUFDQUcsUUFBUSxDQUFDQyxNQUFNLENBQUMsQ0FBQztJQUNyQjtFQUNKO0VBRUEsT0FBT0csWUFBWUEsQ0FBQSxFQUFHO0lBQ2xCckIsc0NBQXNDLENBQUNDLElBQUksQ0FBQyxDQUFDO0VBQ2pEO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,6 @@
"use strict";
class Page_Section extends Jqhtml_Component {
// Content section with spacing - no special behavior needed
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQYWdlX1NlY3Rpb24iLCJKcWh0bWxfQ29tcG9uZW50Il0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvcGFnZV9zZWN0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFBhZ2VfU2VjdGlvbiBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIC8vIENvbnRlbnQgc2VjdGlvbiB3aXRoIHNwYWNpbmcgLSBubyBzcGVjaWFsIGJlaGF2aW9yIG5lZWRlZFxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLFlBQVksU0FBU0MsZ0JBQWdCLENBQUM7RUFDeEM7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,33 @@
"use strict";
/**
* Select_Dropdown - Bootstrap 5 Dropdown Selection Component
*
* Purpose: Dropdown menu for selecting one option from a list
* Design: Bootstrap .form-select styling with dropdown arrow
* Content: Contains <option> elements
*/
class Select_Dropdown extends Jqhtml_Component {
on_ready() {
// Set value if provided
if (this.args.value) {
this.$.val(this.args.value);
}
// Add custom classes if provided
if (this.args.class) {
this.$.addClass(this.args.class);
}
// Set disabled state if provided
if (this.args.disabled) {
this.$.prop('disabled', true);
}
// Set required attribute if provided
if (this.args.required) {
this.$.prop('required', true);
}
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZWxlY3RfRHJvcGRvd24iLCJKcWh0bWxfQ29tcG9uZW50Iiwib25fcmVhZHkiLCJhcmdzIiwidmFsdWUiLCIkIiwidmFsIiwiY2xhc3MiLCJhZGRDbGFzcyIsImRpc2FibGVkIiwicHJvcCIsInJlcXVpcmVkIl0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvU2VsZWN0X0Ryb3Bkb3duLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU2VsZWN0X0Ryb3Bkb3duIC0gQm9vdHN0cmFwIDUgRHJvcGRvd24gU2VsZWN0aW9uIENvbXBvbmVudFxuICpcbiAqIFB1cnBvc2U6IERyb3Bkb3duIG1lbnUgZm9yIHNlbGVjdGluZyBvbmUgb3B0aW9uIGZyb20gYSBsaXN0XG4gKiBEZXNpZ246IEJvb3RzdHJhcCAuZm9ybS1zZWxlY3Qgc3R5bGluZyB3aXRoIGRyb3Bkb3duIGFycm93XG4gKiBDb250ZW50OiBDb250YWlucyA8b3B0aW9uPiBlbGVtZW50c1xuICovXG5jbGFzcyBTZWxlY3RfRHJvcGRvd24gZXh0ZW5kcyBKcWh0bWxfQ29tcG9uZW50IHtcbiAgICBvbl9yZWFkeSgpIHtcbiAgICAgICAgLy8gU2V0IHZhbHVlIGlmIHByb3ZpZGVkXG4gICAgICAgIGlmICh0aGlzLmFyZ3MudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuJC52YWwodGhpcy5hcmdzLnZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEFkZCBjdXN0b20gY2xhc3NlcyBpZiBwcm92aWRlZFxuICAgICAgICBpZiAodGhpcy5hcmdzLmNsYXNzKSB7XG4gICAgICAgICAgICB0aGlzLiQuYWRkQ2xhc3ModGhpcy5hcmdzLmNsYXNzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCBkaXNhYmxlZCBzdGF0ZSBpZiBwcm92aWRlZFxuICAgICAgICBpZiAodGhpcy5hcmdzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLiQucHJvcCgnZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCByZXF1aXJlZCBhdHRyaWJ1dGUgaWYgcHJvdmlkZWRcbiAgICAgICAgaWYgKHRoaXMuYXJncy5yZXF1aXJlZCkge1xuICAgICAgICAgICAgdGhpcy4kLnByb3AoJ3JlcXVpcmVkJywgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQSxlQUFlLFNBQVNDLGdCQUFnQixDQUFDO0VBQzNDQyxRQUFRQSxDQUFBLEVBQUc7SUFDUDtJQUNBLElBQUksSUFBSSxDQUFDQyxJQUFJLENBQUNDLEtBQUssRUFBRTtNQUNqQixJQUFJLENBQUNDLENBQUMsQ0FBQ0MsR0FBRyxDQUFDLElBQUksQ0FBQ0gsSUFBSSxDQUFDQyxLQUFLLENBQUM7SUFDL0I7O0lBRUE7SUFDQSxJQUFJLElBQUksQ0FBQ0QsSUFBSSxDQUFDSSxLQUFLLEVBQUU7TUFDakIsSUFBSSxDQUFDRixDQUFDLENBQUNHLFFBQVEsQ0FBQyxJQUFJLENBQUNMLElBQUksQ0FBQ0ksS0FBSyxDQUFDO0lBQ3BDOztJQUVBO0lBQ0EsSUFBSSxJQUFJLENBQUNKLElBQUksQ0FBQ00sUUFBUSxFQUFFO01BQ3BCLElBQUksQ0FBQ0osQ0FBQyxDQUFDSyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztJQUNqQzs7SUFFQTtJQUNBLElBQUksSUFBSSxDQUFDUCxJQUFJLENBQUNRLFFBQVEsRUFBRTtNQUNwQixJQUFJLENBQUNOLENBQUMsQ0FBQ0ssSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7SUFDakM7RUFDSjtBQUNKIiwiaWdub3JlTGlzdCI6W119

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,14 @@
"use strict";
class Frontend_Clients {
static init() {
if (!$('.Frontend_Clients').exists()) return;
// Initialize your component here
console.log('Frontend_Clients initialized');
}
static on_app_ready() {
Frontend_Clients.init();
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9DbGllbnRzIiwiaW5pdCIsIiQiLCJleGlzdHMiLCJjb25zb2xlIiwibG9nIiwib25fYXBwX3JlYWR5Il0sInNvdXJjZXMiOlsicnN4L2FwcC9mcm9udGVuZC9jbGllbnRzL2Zyb250ZW5kX2NsaWVudHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRnJvbnRlbmRfQ2xpZW50cyB7XG4gICAgc3RhdGljIGluaXQoKSB7XG4gICAgICAgIGlmICghJCgnLkZyb250ZW5kX0NsaWVudHMnKS5leGlzdHMoKSkgcmV0dXJuO1xuXG4gICAgICAgIC8vIEluaXRpYWxpemUgeW91ciBjb21wb25lbnQgaGVyZVxuICAgICAgICBjb25zb2xlLmxvZygnRnJvbnRlbmRfQ2xpZW50cyBpbml0aWFsaXplZCcpO1xuICAgIH1cblxuICAgIHN0YXRpYyBvbl9hcHBfcmVhZHkoKSB7XG4gICAgICAgIEZyb250ZW5kX0NsaWVudHMuaW5pdCgpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxnQkFBZ0IsQ0FBQztFQUNuQixPQUFPQyxJQUFJQSxDQUFBLEVBQUc7SUFDVixJQUFJLENBQUNDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDQyxNQUFNLENBQUMsQ0FBQyxFQUFFOztJQUV0QztJQUNBQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyw4QkFBOEIsQ0FBQztFQUMvQztFQUVBLE9BQU9DLFlBQVlBLENBQUEsRUFBRztJQUNsQk4sZ0JBQWdCLENBQUNDLElBQUksQ0FBQyxDQUFDO0VBQzNCO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,8 @@
"use strict";
class Tag_Group extends Jqhtml_Component {
on_ready() {
// No special behavior needed
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUYWdfR3JvdXAiLCJKcWh0bWxfQ29tcG9uZW50Iiwib25fcmVhZHkiXSwic291cmNlcyI6WyJyc3gvdGhlbWUvY29tcG9uZW50cy9fYXJjaGl2ZWQvdW5maW5pc2hlZC9UYWdfR3JvdXAuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgVGFnX0dyb3VwIGV4dGVuZHMgSnFodG1sX0NvbXBvbmVudCB7XG4gICAgb25fcmVhZHkoKSB7XG4gICAgICAgIC8vIE5vIHNwZWNpYWwgYmVoYXZpb3IgbmVlZGVkXG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLFNBQVMsU0FBU0MsZ0JBQWdCLENBQUM7RUFDckNDLFFBQVFBLENBQUEsRUFBRztJQUNQO0VBQUE7QUFFUiIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,16 @@
"use strict";
class Loading_Skeleton extends Jqhtml_Component {
on_ready() {
// Apply lines from args
if (this.args.lines) {
this.$.empty();
for (let i = 0; i < this.args.lines; i++) {
const width = 12 - i * 2;
const $span = $('<span>').addClass(`placeholder col-${Math.max(width, 6)}`);
this.$.append($span);
}
}
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMb2FkaW5nX1NrZWxldG9uIiwiSnFodG1sX0NvbXBvbmVudCIsIm9uX3JlYWR5IiwiYXJncyIsImxpbmVzIiwiJCIsImVtcHR5IiwiaSIsIndpZHRoIiwiJHNwYW4iLCJhZGRDbGFzcyIsIk1hdGgiLCJtYXgiLCJhcHBlbmQiXSwic291cmNlcyI6WyJyc3gvdGhlbWUvY29tcG9uZW50cy9fYXJjaGl2ZWQvdW5maW5pc2hlZC9Mb2FkaW5nX1NrZWxldG9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIExvYWRpbmdfU2tlbGV0b24gZXh0ZW5kcyBKcWh0bWxfQ29tcG9uZW50IHtcbiAgICBvbl9yZWFkeSgpIHtcbiAgICAgICAgLy8gQXBwbHkgbGluZXMgZnJvbSBhcmdzXG4gICAgICAgIGlmICh0aGlzLmFyZ3MubGluZXMpIHtcbiAgICAgICAgICAgIHRoaXMuJC5lbXB0eSgpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmFyZ3MubGluZXM7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHdpZHRoID0gMTIgLSAoaSAqIDIpO1xuICAgICAgICAgICAgICAgIGNvbnN0ICRzcGFuID0gJCgnPHNwYW4+JykuYWRkQ2xhc3MoYHBsYWNlaG9sZGVyIGNvbC0ke01hdGgubWF4KHdpZHRoLCA2KX1gKTtcbiAgICAgICAgICAgICAgICB0aGlzLiQuYXBwZW5kKCRzcGFuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxnQkFBZ0IsU0FBU0MsZ0JBQWdCLENBQUM7RUFDNUNDLFFBQVFBLENBQUEsRUFBRztJQUNQO0lBQ0EsSUFBSSxJQUFJLENBQUNDLElBQUksQ0FBQ0MsS0FBSyxFQUFFO01BQ2pCLElBQUksQ0FBQ0MsQ0FBQyxDQUFDQyxLQUFLLENBQUMsQ0FBQztNQUNkLEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHLElBQUksQ0FBQ0osSUFBSSxDQUFDQyxLQUFLLEVBQUVHLENBQUMsRUFBRSxFQUFFO1FBQ3RDLE1BQU1DLEtBQUssR0FBRyxFQUFFLEdBQUlELENBQUMsR0FBRyxDQUFFO1FBQzFCLE1BQU1FLEtBQUssR0FBR0osQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDSyxRQUFRLENBQUMsbUJBQW1CQyxJQUFJLENBQUNDLEdBQUcsQ0FBQ0osS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0UsSUFBSSxDQUFDSCxDQUFDLENBQUNRLE1BQU0sQ0FBQ0osS0FBSyxDQUFDO01BQ3hCO0lBQ0o7RUFDSjtBQUNKIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,35 @@
"use strict";
class Text_Input extends Form_Input_Abstract {
on_create() {
this.data.value = '';
}
/**
* val() - Get or set the input value
* @param {string} [value] - If provided, sets the value
* @returns {string} The current value when called as getter
*/
val(value) {
if (arguments.length === 0) {
// Getter
return this.$id('input').val();
} else {
// Setter
this.data.value = value || '';
if (this.$id('input').exists()) {
this.$id('input').val(this.data.value);
}
}
}
async seed() {
if (this.args.seeder) {
// TODO: Implement Rsx_Random_Values endpoint
// let value = await Rsx_Random_Values[this.args.seeder]();
// For now, just use placeholder text
let value = 'Test ' + (this.args.seeder || 'Value');
this.val(value);
}
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUZXh0X0lucHV0IiwiRm9ybV9JbnB1dF9BYnN0cmFjdCIsIm9uX2NyZWF0ZSIsImRhdGEiLCJ2YWx1ZSIsInZhbCIsImFyZ3VtZW50cyIsImxlbmd0aCIsIiRpZCIsImV4aXN0cyIsInNlZWQiLCJhcmdzIiwic2VlZGVyIl0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvaW5wdXRzL3RleHRfaW5wdXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgVGV4dF9JbnB1dCBleHRlbmRzIEZvcm1fSW5wdXRfQWJzdHJhY3Qge1xuICAgIG9uX2NyZWF0ZSgpIHtcbiAgICAgICAgdGhpcy5kYXRhLnZhbHVlID0gJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdmFsKCkgLSBHZXQgb3Igc2V0IHRoZSBpbnB1dCB2YWx1ZVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbdmFsdWVdIC0gSWYgcHJvdmlkZWQsIHNldHMgdGhlIHZhbHVlXG4gICAgICogQHJldHVybnMge3N0cmluZ30gVGhlIGN1cnJlbnQgdmFsdWUgd2hlbiBjYWxsZWQgYXMgZ2V0dGVyXG4gICAgICovXG4gICAgdmFsKHZhbHVlKSB7XG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAvLyBHZXR0ZXJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLiRpZCgnaW5wdXQnKS52YWwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFNldHRlclxuICAgICAgICAgICAgdGhpcy5kYXRhLnZhbHVlID0gdmFsdWUgfHwgJyc7XG4gICAgICAgICAgICBpZiAodGhpcy4kaWQoJ2lucHV0JykuZXhpc3RzKCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRpZCgnaW5wdXQnKS52YWwodGhpcy5kYXRhLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIHNlZWQoKSB7XG4gICAgICAgIGlmICh0aGlzLmFyZ3Muc2VlZGVyKSB7XG4gICAgICAgICAgICAvLyBUT0RPOiBJbXBsZW1lbnQgUnN4X1JhbmRvbV9WYWx1ZXMgZW5kcG9pbnRcbiAgICAgICAgICAgIC8vIGxldCB2YWx1ZSA9IGF3YWl0IFJzeF9SYW5kb21fVmFsdWVzW3RoaXMuYXJncy5zZWVkZXJdKCk7XG4gICAgICAgICAgICAvLyBGb3Igbm93LCBqdXN0IHVzZSBwbGFjZWhvbGRlciB0ZXh0XG4gICAgICAgICAgICBsZXQgdmFsdWUgPSAnVGVzdCAnICsgKHRoaXMuYXJncy5zZWVkZXIgfHwgJ1ZhbHVlJyk7XG4gICAgICAgICAgICB0aGlzLnZhbCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsVUFBVSxTQUFTQyxtQkFBbUIsQ0FBQztFQUN6Q0MsU0FBU0EsQ0FBQSxFQUFHO0lBQ1IsSUFBSSxDQUFDQyxJQUFJLENBQUNDLEtBQUssR0FBRyxFQUFFO0VBQ3hCOztFQUVBO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7RUFDSUMsR0FBR0EsQ0FBQ0QsS0FBSyxFQUFFO0lBQ1AsSUFBSUUsU0FBUyxDQUFDQyxNQUFNLEtBQUssQ0FBQyxFQUFFO01BQ3hCO01BQ0EsT0FBTyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQ0gsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQyxNQUFNO01BQ0g7TUFDQSxJQUFJLENBQUNGLElBQUksQ0FBQ0MsS0FBSyxHQUFHQSxLQUFLLElBQUksRUFBRTtNQUM3QixJQUFJLElBQUksQ0FBQ0ksR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDQyxNQUFNLENBQUMsQ0FBQyxFQUFFO1FBQzVCLElBQUksQ0FBQ0QsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDSCxHQUFHLENBQUMsSUFBSSxDQUFDRixJQUFJLENBQUNDLEtBQUssQ0FBQztNQUMxQztJQUNKO0VBQ0o7RUFFQSxNQUFNTSxJQUFJQSxDQUFBLEVBQUc7SUFDVCxJQUFJLElBQUksQ0FBQ0MsSUFBSSxDQUFDQyxNQUFNLEVBQUU7TUFDbEI7TUFDQTtNQUNBO01BQ0EsSUFBSVIsS0FBSyxHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUNPLElBQUksQ0FBQ0MsTUFBTSxJQUFJLE9BQU8sQ0FBQztNQUNuRCxJQUFJLENBQUNQLEdBQUcsQ0FBQ0QsS0FBSyxDQUFDO0lBQ25CO0VBQ0o7QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,11 @@
"use strict";
class Link extends Jqhtml_Component {
on_ready() {
// Support $href attribute for dynamic URLs
if (this.args.href) {
this.$.attr('href', this.args.href);
}
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMaW5rIiwiSnFodG1sX0NvbXBvbmVudCIsIm9uX3JlYWR5IiwiYXJncyIsImhyZWYiLCIkIiwiYXR0ciJdLCJzb3VyY2VzIjpbInJzeC90aGVtZS9jb21wb25lbnRzL19hcmNoaXZlZC91bmZpbmlzaGVkL2xpbmsuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgTGluayBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIG9uX3JlYWR5KCkge1xuICAgICAgICAvLyBTdXBwb3J0ICRocmVmIGF0dHJpYnV0ZSBmb3IgZHluYW1pYyBVUkxzXG4gICAgICAgIGlmICh0aGlzLmFyZ3MuaHJlZikge1xuICAgICAgICAgICAgdGhpcy4kLmF0dHIoJ2hyZWYnLCB0aGlzLmFyZ3MuaHJlZik7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsSUFBSSxTQUFTQyxnQkFBZ0IsQ0FBQztFQUNoQ0MsUUFBUUEsQ0FBQSxFQUFHO0lBQ1A7SUFDQSxJQUFJLElBQUksQ0FBQ0MsSUFBSSxDQUFDQyxJQUFJLEVBQUU7TUFDaEIsSUFBSSxDQUFDQyxDQUFDLENBQUNDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDSCxJQUFJLENBQUNDLElBQUksQ0FBQztJQUN2QztFQUNKO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,28 @@
"use strict";
class Frontend_Settings_Import {
static init() {
if (!$(".Frontend_Settings_Import").exists()) return;
// Initialize your component here
console.log('Frontend_Settings_Import initialized');
// Example: Handle button clicks
$('.btn-action').on('click', function () {
// Handle action
});
// Example: Initialize tooltips
$('[data-bs-toggle="tooltip"]').tooltip();
}
static on_app_ready() {
Frontend_Settings_Import.init();
}
// static on_jqhtml_ready() {
// // Called after all JQHTML components have loaded and rendered
// // Use this if you need to interact with JQHTML components
// // Otherwise, use on_app_ready() for most initialization
// }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9TZXR0aW5nc19JbXBvcnQiLCJpbml0IiwiJCIsImV4aXN0cyIsImNvbnNvbGUiLCJsb2ciLCJvbiIsInRvb2x0aXAiLCJvbl9hcHBfcmVhZHkiXSwic291cmNlcyI6WyJyc3gvYXBwL2Zyb250ZW5kL3NldHRpbmdzL2ltcG9ydC9mcm9udGVuZF9zZXR0aW5nc19pbXBvcnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRnJvbnRlbmRfU2V0dGluZ3NfSW1wb3J0IHtcbiAgICBzdGF0aWMgaW5pdCgpIHtcbiAgICAgICAgaWYgKCEkKFwiLkZyb250ZW5kX1NldHRpbmdzX0ltcG9ydFwiKS5leGlzdHMoKSkgcmV0dXJuO1xuXG4gICAgICAgIC8vIEluaXRpYWxpemUgeW91ciBjb21wb25lbnQgaGVyZVxuICAgICAgICBjb25zb2xlLmxvZygnRnJvbnRlbmRfU2V0dGluZ3NfSW1wb3J0IGluaXRpYWxpemVkJyk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSGFuZGxlIGJ1dHRvbiBjbGlja3NcbiAgICAgICAgJCgnLmJ0bi1hY3Rpb24nKS5vbignY2xpY2snLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIC8vIEhhbmRsZSBhY3Rpb25cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRXhhbXBsZTogSW5pdGlhbGl6ZSB0b29sdGlwc1xuICAgICAgICAkKCdbZGF0YS1icy10b2dnbGU9XCJ0b29sdGlwXCJdJykudG9vbHRpcCgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBvbl9hcHBfcmVhZHkoKSB7XG4gICAgICAgIEZyb250ZW5kX1NldHRpbmdzX0ltcG9ydC5pbml0KCk7XG4gICAgfVxuXG4gICAgLy8gc3RhdGljIG9uX2pxaHRtbF9yZWFkeSgpIHtcbiAgICAvLyAgICAgLy8gQ2FsbGVkIGFmdGVyIGFsbCBKUUhUTUwgY29tcG9uZW50cyBoYXZlIGxvYWRlZCBhbmQgcmVuZGVyZWRcbiAgICAvLyAgICAgLy8gVXNlIHRoaXMgaWYgeW91IG5lZWQgdG8gaW50ZXJhY3Qgd2l0aCBKUUhUTUwgY29tcG9uZW50c1xuICAgIC8vICAgICAvLyBPdGhlcndpc2UsIHVzZSBvbl9hcHBfcmVhZHkoKSBmb3IgbW9zdCBpbml0aWFsaXphdGlvblxuICAgIC8vIH1cbn0iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsd0JBQXdCLENBQUM7RUFDM0IsT0FBT0MsSUFBSUEsQ0FBQSxFQUFHO0lBQ1YsSUFBSSxDQUFDQyxDQUFDLENBQUMsMkJBQTJCLENBQUMsQ0FBQ0MsTUFBTSxDQUFDLENBQUMsRUFBRTs7SUFFOUM7SUFDQUMsT0FBTyxDQUFDQyxHQUFHLENBQUMsc0NBQXNDLENBQUM7O0lBRW5EO0lBQ0FILENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQ0ksRUFBRSxDQUFDLE9BQU8sRUFBRSxZQUFXO01BQ3BDO0lBQUEsQ0FDSCxDQUFDOztJQUVGO0lBQ0FKLENBQUMsQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDSyxPQUFPLENBQUMsQ0FBQztFQUM3QztFQUVBLE9BQU9DLFlBQVlBLENBQUEsRUFBRztJQUNsQlIsd0JBQXdCLENBQUNDLElBQUksQ0FBQyxDQUFDO0VBQ25DOztFQUVBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,28 @@
"use strict";
/**
* Decorator function that marks a function as a decorator implementation.
*
* When a function has @decorator in its JSDoc comment, it whitelists that function
* to be used as a decorator on other methods throughout the codebase.
*
* The function itself performs no operation - it simply returns its input unchanged.
* Its purpose is purely as a marker for the manifest validation system.
*
* Usage:
* // /**
* // * My custom decorator implementation
* // * @decorator
* // *\/
* function my_custom_decorator(target, key, descriptor) {
* // Decorator implementation
* }
*
* This allows my_custom_decorator to be used as @my_custom_decorator on static methods.
*
* TODO: This is probably no longer necessary? maybe?
*/
function decorator(value) {
return value;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZWNvcmF0b3IiLCJ2YWx1ZSJdLCJzb3VyY2VzIjpbImFwcC9SU3BhZGUvQ29yZS9Kcy9kZWNvcmF0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWNvcmF0b3IgZnVuY3Rpb24gdGhhdCBtYXJrcyBhIGZ1bmN0aW9uIGFzIGEgZGVjb3JhdG9yIGltcGxlbWVudGF0aW9uLlxuICpcbiAqIFdoZW4gYSBmdW5jdGlvbiBoYXMgQGRlY29yYXRvciBpbiBpdHMgSlNEb2MgY29tbWVudCwgaXQgd2hpdGVsaXN0cyB0aGF0IGZ1bmN0aW9uXG4gKiB0byBiZSB1c2VkIGFzIGEgZGVjb3JhdG9yIG9uIG90aGVyIG1ldGhvZHMgdGhyb3VnaG91dCB0aGUgY29kZWJhc2UuXG4gKlxuICogVGhlIGZ1bmN0aW9uIGl0c2VsZiBwZXJmb3JtcyBubyBvcGVyYXRpb24gLSBpdCBzaW1wbHkgcmV0dXJucyBpdHMgaW5wdXQgdW5jaGFuZ2VkLlxuICogSXRzIHB1cnBvc2UgaXMgcHVyZWx5IGFzIGEgbWFya2VyIGZvciB0aGUgbWFuaWZlc3QgdmFsaWRhdGlvbiBzeXN0ZW0uXG4gKlxuICogVXNhZ2U6XG4gKiAgIC8vIC8qKlxuICogICAvLyAgKiBNeSBjdXN0b20gZGVjb3JhdG9yIGltcGxlbWVudGF0aW9uXG4gKiAgIC8vICAqIEBkZWNvcmF0b3JcbiAqICAgLy8gICpcXC9cbiAqICAgZnVuY3Rpb24gbXlfY3VzdG9tX2RlY29yYXRvcih0YXJnZXQsIGtleSwgZGVzY3JpcHRvcikge1xuICogICAgICAgLy8gRGVjb3JhdG9yIGltcGxlbWVudGF0aW9uXG4gKiAgIH1cbiAqXG4gKiBUaGlzIGFsbG93cyBteV9jdXN0b21fZGVjb3JhdG9yIHRvIGJlIHVzZWQgYXMgQG15X2N1c3RvbV9kZWNvcmF0b3Igb24gc3RhdGljIG1ldGhvZHMuXG4gKlxuICogVE9ETzogVGhpcyBpcyBwcm9iYWJseSBubyBsb25nZXIgbmVjZXNzYXJ5PyBtYXliZT9cbiAqL1xuZnVuY3Rpb24gZGVjb3JhdG9yKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBU0EsU0FBU0EsQ0FBQ0MsS0FBSyxFQUFFO0VBQ3RCLE9BQU9BLEtBQUs7QUFDaEIiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,52 @@
"use strict";
/**
* Form_Actions_Component - JQHTML Component
*
* Lifecycle methods are called in this order:
* 1. on_create() - Quick UI setup, runs bottom-up through component tree
* 2. on_load() - Fetch data from APIs (parallel execution, no DOM modifications)
* 3. on_ready() - Component fully initialized, runs bottom-up through component tree
*/
class Form_Actions_Component extends Jqhtml_Component {
/**
* Called after render, quick UI setup (bottom-up)
* Use for: Initial state, event bindings, showing loading indicators
*/
async on_create() {
// Example: this.$id('loading').show();
// Example: this.$.addClass('initializing');
}
/**
* Fetch data from APIs (parallel, NO DOM modifications)
* Use for: Loading data from server, fetching configurations
* WARNING: Do NOT modify DOM here - only load data
*/
async on_load() {
// Example: this.data.users = await Users_Controller.get_users_api();
// Example: this.data.config = await this.load_config();
// WARNING: Do NOT modify DOM here - only load data
}
/**
* Component fully initialized (bottom-up)
* Use for: Final UI setup, hiding loading indicators, starting animations
*/
async on_ready() {
// Example: this.$id('loading').hide();
// Example: this.setup_event_listeners();
}
/**
* Click handler for the hello button
* Referenced in template via @click=this.on_click_hello
*/
on_click_hello() {
this.$id('inner_html').hide();
this.$id('hello_world').show();
}
// For more information: php artisan rsx:man jqhtml
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb3JtX0FjdGlvbnNfQ29tcG9uZW50IiwiSnFodG1sX0NvbXBvbmVudCIsIm9uX2NyZWF0ZSIsIm9uX2xvYWQiLCJvbl9yZWFkeSIsIm9uX2NsaWNrX2hlbGxvIiwiJGlkIiwiaGlkZSIsInNob3ciXSwic291cmNlcyI6WyJyc3gvdGhlbWUvY29tcG9uZW50cy9fYXJjaGl2ZWQvdW5maW5pc2hlZC9mb3JtX2FjdGlvbnNfY29tcG9uZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm9ybV9BY3Rpb25zX0NvbXBvbmVudCAtIEpRSFRNTCBDb21wb25lbnRcbiAqXG4gKiBMaWZlY3ljbGUgbWV0aG9kcyBhcmUgY2FsbGVkIGluIHRoaXMgb3JkZXI6XG4gKiAxLiBvbl9jcmVhdGUoKSAtIFF1aWNrIFVJIHNldHVwLCBydW5zIGJvdHRvbS11cCB0aHJvdWdoIGNvbXBvbmVudCB0cmVlXG4gKiAyLiBvbl9sb2FkKCkgLSBGZXRjaCBkYXRhIGZyb20gQVBJcyAocGFyYWxsZWwgZXhlY3V0aW9uLCBubyBET00gbW9kaWZpY2F0aW9ucylcbiAqIDMuIG9uX3JlYWR5KCkgLSBDb21wb25lbnQgZnVsbHkgaW5pdGlhbGl6ZWQsIHJ1bnMgYm90dG9tLXVwIHRocm91Z2ggY29tcG9uZW50IHRyZWVcbiAqL1xuY2xhc3MgRm9ybV9BY3Rpb25zX0NvbXBvbmVudCBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIENhbGxlZCBhZnRlciByZW5kZXIsIHF1aWNrIFVJIHNldHVwIChib3R0b20tdXApXG4gICAgICogVXNlIGZvcjogSW5pdGlhbCBzdGF0ZSwgZXZlbnQgYmluZGluZ3MsIHNob3dpbmcgbG9hZGluZyBpbmRpY2F0b3JzXG4gICAgICovXG4gICAgYXN5bmMgb25fY3JlYXRlKCkge1xuICAgICAgICAvLyBFeGFtcGxlOiB0aGlzLiRpZCgnbG9hZGluZycpLnNob3coKTtcbiAgICAgICAgLy8gRXhhbXBsZTogdGhpcy4kLmFkZENsYXNzKCdpbml0aWFsaXppbmcnKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBGZXRjaCBkYXRhIGZyb20gQVBJcyAocGFyYWxsZWwsIE5PIERPTSBtb2RpZmljYXRpb25zKVxuICAgICAqIFVzZSBmb3I6IExvYWRpbmcgZGF0YSBmcm9tIHNlcnZlciwgZmV0Y2hpbmcgY29uZmlndXJhdGlvbnNcbiAgICAgKiBXQVJOSU5HOiBEbyBOT1QgbW9kaWZ5IERPTSBoZXJlIC0gb25seSBsb2FkIGRhdGFcbiAgICAgKi9cbiAgICBhc3luYyBvbl9sb2FkKCkge1xuICAgICAgICAvLyBFeGFtcGxlOiB0aGlzLmRhdGEudXNlcnMgPSBhd2FpdCBVc2Vyc19Db250cm9sbGVyLmdldF91c2Vyc19hcGkoKTtcbiAgICAgICAgLy8gRXhhbXBsZTogdGhpcy5kYXRhLmNvbmZpZyA9IGF3YWl0IHRoaXMubG9hZF9jb25maWcoKTtcbiAgICAgICAgLy8gV0FSTklORzogRG8gTk9UIG1vZGlmeSBET00gaGVyZSAtIG9ubHkgbG9hZCBkYXRhXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ29tcG9uZW50IGZ1bGx5IGluaXRpYWxpemVkIChib3R0b20tdXApXG4gICAgICogVXNlIGZvcjogRmluYWwgVUkgc2V0dXAsIGhpZGluZyBsb2FkaW5nIGluZGljYXRvcnMsIHN0YXJ0aW5nIGFuaW1hdGlvbnNcbiAgICAgKi9cbiAgICBhc3luYyBvbl9yZWFkeSgpIHtcbiAgICAgICAgLy8gRXhhbXBsZTogdGhpcy4kaWQoJ2xvYWRpbmcnKS5oaWRlKCk7XG4gICAgICAgIC8vIEV4YW1wbGU6IHRoaXMuc2V0dXBfZXZlbnRfbGlzdGVuZXJzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xpY2sgaGFuZGxlciBmb3IgdGhlIGhlbGxvIGJ1dHRvblxuICAgICAqIFJlZmVyZW5jZWQgaW4gdGVtcGxhdGUgdmlhIEBjbGljaz10aGlzLm9uX2NsaWNrX2hlbGxvXG4gICAgICovXG4gICAgb25fY2xpY2tfaGVsbG8oKSB7XG4gICAgICAgIHRoaXMuJGlkKCdpbm5lcl9odG1sJykuaGlkZSgpO1xuICAgICAgICB0aGlzLiRpZCgnaGVsbG9fd29ybGQnKS5zaG93KCk7XG4gICAgfVxuXG4gICAgLy8gRm9yIG1vcmUgaW5mb3JtYXRpb246IHBocCBhcnRpc2FuIHJzeDptYW4ganFodG1sXG59Il0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQSxzQkFBc0IsU0FBU0MsZ0JBQWdCLENBQUM7RUFDbEQ7QUFDSjtBQUNBO0FBQ0E7RUFDSSxNQUFNQyxTQUFTQSxDQUFBLEVBQUc7SUFDZDtJQUNBO0VBQUE7O0VBR0o7QUFDSjtBQUNBO0FBQ0E7QUFDQTtFQUNJLE1BQU1DLE9BQU9BLENBQUEsRUFBRztJQUNaO0lBQ0E7SUFDQTtFQUFBOztFQUdKO0FBQ0o7QUFDQTtBQUNBO0VBQ0ksTUFBTUMsUUFBUUEsQ0FBQSxFQUFHO0lBQ2I7SUFDQTtFQUFBOztFQUdKO0FBQ0o7QUFDQTtBQUNBO0VBQ0lDLGNBQWNBLENBQUEsRUFBRztJQUNiLElBQUksQ0FBQ0MsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDQyxJQUFJLENBQUMsQ0FBQztJQUM3QixJQUFJLENBQUNELEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQ0UsSUFBSSxDQUFDLENBQUM7RUFDbEM7O0VBRUE7QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,14 @@
"use strict";
class Search_Bar extends Jqhtml_Component {
on_ready() {
// Bind search event
const $input = this.$id('input');
$input.on('input', e => {
if (this.args.on_search) {
this.args.on_search(e.target.value);
}
});
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZWFyY2hfQmFyIiwiSnFodG1sX0NvbXBvbmVudCIsIm9uX3JlYWR5IiwiJGlucHV0IiwiJGlkIiwib24iLCJlIiwiYXJncyIsIm9uX3NlYXJjaCIsInRhcmdldCIsInZhbHVlIl0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvU2VhcmNoX0Jhci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBTZWFyY2hfQmFyIGV4dGVuZHMgSnFodG1sX0NvbXBvbmVudCB7XG4gICAgb25fcmVhZHkoKSB7XG4gICAgICAgIC8vIEJpbmQgc2VhcmNoIGV2ZW50XG4gICAgICAgIGNvbnN0ICRpbnB1dCA9IHRoaXMuJGlkKCdpbnB1dCcpO1xuICAgICAgICAkaW5wdXQub24oJ2lucHV0JywgKGUpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmFyZ3Mub25fc2VhcmNoKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcmdzLm9uX3NlYXJjaChlLnRhcmdldC52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxVQUFVLFNBQVNDLGdCQUFnQixDQUFDO0VBQ3RDQyxRQUFRQSxDQUFBLEVBQUc7SUFDUDtJQUNBLE1BQU1DLE1BQU0sR0FBRyxJQUFJLENBQUNDLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFDaENELE1BQU0sQ0FBQ0UsRUFBRSxDQUFDLE9BQU8sRUFBR0MsQ0FBQyxJQUFLO01BQ3RCLElBQUksSUFBSSxDQUFDQyxJQUFJLENBQUNDLFNBQVMsRUFBRTtRQUNyQixJQUFJLENBQUNELElBQUksQ0FBQ0MsU0FBUyxDQUFDRixDQUFDLENBQUNHLE1BQU0sQ0FBQ0MsS0FBSyxDQUFDO01BQ3ZDO0lBQ0osQ0FBQyxDQUFDO0VBQ047QUFDSiIsImlnbm9yZUxpc3QiOltdfQ==

View File

@@ -0,0 +1,26 @@
"use strict";
class Sidebar_Nav extends Jqhtml_Component {
on_ready() {
// Auto-wrap children in nav structure if needed
const $nav_items = this.$id('nav_items');
$nav_items.children().each(function () {
const $child = $(this);
if ($child.prop('tagName') !== 'LI') {
const $li = $('<li>').addClass('nav-item');
$child.addClass('nav-link');
$child.wrap($li);
}
});
// Set active state based on current URL
const current_path = window.location.pathname;
$nav_items.find('a.nav-link').each(function () {
const $link = $(this);
if ($link.attr('href') === current_path) {
$link.addClass('active');
}
});
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTaWRlYmFyX05hdiIsIkpxaHRtbF9Db21wb25lbnQiLCJvbl9yZWFkeSIsIiRuYXZfaXRlbXMiLCIkaWQiLCJjaGlsZHJlbiIsImVhY2giLCIkY2hpbGQiLCIkIiwicHJvcCIsIiRsaSIsImFkZENsYXNzIiwid3JhcCIsImN1cnJlbnRfcGF0aCIsIndpbmRvdyIsImxvY2F0aW9uIiwicGF0aG5hbWUiLCJmaW5kIiwiJGxpbmsiLCJhdHRyIl0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvU2lkZWJhcl9OYXYuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgU2lkZWJhcl9OYXYgZXh0ZW5kcyBKcWh0bWxfQ29tcG9uZW50IHtcbiAgICBvbl9yZWFkeSgpIHtcbiAgICAgICAgLy8gQXV0by13cmFwIGNoaWxkcmVuIGluIG5hdiBzdHJ1Y3R1cmUgaWYgbmVlZGVkXG4gICAgICAgIGNvbnN0ICRuYXZfaXRlbXMgPSB0aGlzLiRpZCgnbmF2X2l0ZW1zJyk7XG4gICAgICAgICRuYXZfaXRlbXMuY2hpbGRyZW4oKS5lYWNoKGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgY29uc3QgJGNoaWxkID0gJCh0aGlzKTtcbiAgICAgICAgICAgIGlmICgkY2hpbGQucHJvcCgndGFnTmFtZScpICE9PSAnTEknKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgJGxpID0gJCgnPGxpPicpLmFkZENsYXNzKCduYXYtaXRlbScpO1xuICAgICAgICAgICAgICAgICRjaGlsZC5hZGRDbGFzcygnbmF2LWxpbmsnKTtcbiAgICAgICAgICAgICAgICAkY2hpbGQud3JhcCgkbGkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTZXQgYWN0aXZlIHN0YXRlIGJhc2VkIG9uIGN1cnJlbnQgVVJMXG4gICAgICAgIGNvbnN0IGN1cnJlbnRfcGF0aCA9IHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTtcbiAgICAgICAgJG5hdl9pdGVtcy5maW5kKCdhLm5hdi1saW5rJykuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNvbnN0ICRsaW5rID0gJCh0aGlzKTtcbiAgICAgICAgICAgIGlmICgkbGluay5hdHRyKCdocmVmJykgPT09IGN1cnJlbnRfcGF0aCkge1xuICAgICAgICAgICAgICAgICRsaW5rLmFkZENsYXNzKCdhY3RpdmUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLFdBQVcsU0FBU0MsZ0JBQWdCLENBQUM7RUFDdkNDLFFBQVFBLENBQUEsRUFBRztJQUNQO0lBQ0EsTUFBTUMsVUFBVSxHQUFHLElBQUksQ0FBQ0MsR0FBRyxDQUFDLFdBQVcsQ0FBQztJQUN4Q0QsVUFBVSxDQUFDRSxRQUFRLENBQUMsQ0FBQyxDQUFDQyxJQUFJLENBQUMsWUFBVztNQUNsQyxNQUFNQyxNQUFNLEdBQUdDLENBQUMsQ0FBQyxJQUFJLENBQUM7TUFDdEIsSUFBSUQsTUFBTSxDQUFDRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxFQUFFO1FBQ2pDLE1BQU1DLEdBQUcsR0FBR0YsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDRyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQzFDSixNQUFNLENBQUNJLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFDM0JKLE1BQU0sQ0FBQ0ssSUFBSSxDQUFDRixHQUFHLENBQUM7TUFDcEI7SUFDSixDQUFDLENBQUM7O0lBRUY7SUFDQSxNQUFNRyxZQUFZLEdBQUdDLE1BQU0sQ0FBQ0MsUUFBUSxDQUFDQyxRQUFRO0lBQzdDYixVQUFVLENBQUNjLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQ1gsSUFBSSxDQUFDLFlBQVc7TUFDMUMsTUFBTVksS0FBSyxHQUFHVixDQUFDLENBQUMsSUFBSSxDQUFDO01BQ3JCLElBQUlVLEtBQUssQ0FBQ0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLTixZQUFZLEVBQUU7UUFDckNLLEtBQUssQ0FBQ1AsUUFBUSxDQUFDLFFBQVEsQ0FBQztNQUM1QjtJQUNKLENBQUMsQ0FBQztFQUNOO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,8 @@
"use strict";
class Mobile_Header extends Jqhtml_Component {
on_ready() {
// No special behavior
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNb2JpbGVfSGVhZGVyIiwiSnFodG1sX0NvbXBvbmVudCIsIm9uX3JlYWR5Il0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvTW9iaWxlX0hlYWRlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBNb2JpbGVfSGVhZGVyIGV4dGVuZHMgSnFodG1sX0NvbXBvbmVudCB7XG4gICAgb25fcmVhZHkoKSB7XG4gICAgICAgIC8vIE5vIHNwZWNpYWwgYmVoYXZpb3JcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsYUFBYSxTQUFTQyxnQkFBZ0IsQ0FBQztFQUN6Q0MsUUFBUUEsQ0FBQSxFQUFHO0lBQ1A7RUFBQTtBQUVSIiwiaWdub3JlTGlzdCI6W119

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,31 @@
"use strict";
class Frontend_Settings_User_Management {
static init() {
if (!$('.Frontend_Settings_User_Management').exists()) return;
// Handle Add User button click
$('#btn_add_user').on('click', async function () {
await Frontend_Settings_User_Management.handle_add_user();
});
}
/**
* Add user workflow: show add modal, refresh grid, show invite modal
*/
static async handle_add_user() {
// Show add user modal
const user = await Add_User_Modal.show();
if (user) {
// Refresh the user list
$('.Users_DataGrid').component().reload();
// Show send invite modal
await Send_User_Invite_Modal.show(user.id);
}
}
static on_app_ready() {
Frontend_Settings_User_Management.init();
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9TZXR0aW5nc19Vc2VyX01hbmFnZW1lbnQiLCJpbml0IiwiJCIsImV4aXN0cyIsIm9uIiwiaGFuZGxlX2FkZF91c2VyIiwidXNlciIsIkFkZF9Vc2VyX01vZGFsIiwic2hvdyIsImNvbXBvbmVudCIsInJlbG9hZCIsIlNlbmRfVXNlcl9JbnZpdGVfTW9kYWwiLCJpZCIsIm9uX2FwcF9yZWFkeSJdLCJzb3VyY2VzIjpbInJzeC9hcHAvZnJvbnRlbmQvc2V0dGluZ3MvdXNlcl9tYW5hZ2VtZW50L2Zyb250ZW5kX3NldHRpbmdzX3VzZXJfbWFuYWdlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBGcm9udGVuZF9TZXR0aW5nc19Vc2VyX01hbmFnZW1lbnQge1xuICAgIHN0YXRpYyBpbml0KCkge1xuICAgICAgICBpZiAoISQoJy5Gcm9udGVuZF9TZXR0aW5nc19Vc2VyX01hbmFnZW1lbnQnKS5leGlzdHMoKSkgcmV0dXJuO1xuXG4gICAgICAgIC8vIEhhbmRsZSBBZGQgVXNlciBidXR0b24gY2xpY2tcbiAgICAgICAgJCgnI2J0bl9hZGRfdXNlcicpLm9uKCdjbGljaycsIGFzeW5jIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGF3YWl0IEZyb250ZW5kX1NldHRpbmdzX1VzZXJfTWFuYWdlbWVudC5oYW5kbGVfYWRkX3VzZXIoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIHVzZXIgd29ya2Zsb3c6IHNob3cgYWRkIG1vZGFsLCByZWZyZXNoIGdyaWQsIHNob3cgaW52aXRlIG1vZGFsXG4gICAgICovXG4gICAgc3RhdGljIGFzeW5jIGhhbmRsZV9hZGRfdXNlcigpIHtcbiAgICAgICAgLy8gU2hvdyBhZGQgdXNlciBtb2RhbFxuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgQWRkX1VzZXJfTW9kYWwuc2hvdygpO1xuXG4gICAgICAgIGlmICh1c2VyKSB7XG4gICAgICAgICAgICAvLyBSZWZyZXNoIHRoZSB1c2VyIGxpc3RcbiAgICAgICAgICAgICQoJy5Vc2Vyc19EYXRhR3JpZCcpLmNvbXBvbmVudCgpLnJlbG9hZCgpO1xuXG4gICAgICAgICAgICAvLyBTaG93IHNlbmQgaW52aXRlIG1vZGFsXG4gICAgICAgICAgICBhd2FpdCBTZW5kX1VzZXJfSW52aXRlX01vZGFsLnNob3codXNlci5pZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzdGF0aWMgb25fYXBwX3JlYWR5KCkge1xuICAgICAgICBGcm9udGVuZF9TZXR0aW5nc19Vc2VyX01hbmFnZW1lbnQuaW5pdCgpO1xuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxpQ0FBaUMsQ0FBQztFQUNwQyxPQUFPQyxJQUFJQSxDQUFBLEVBQUc7SUFDVixJQUFJLENBQUNDLENBQUMsQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDQyxNQUFNLENBQUMsQ0FBQyxFQUFFOztJQUV2RDtJQUNBRCxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUNFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCO01BQzdDLE1BQU1KLGlDQUFpQyxDQUFDSyxlQUFlLENBQUMsQ0FBQztJQUM3RCxDQUFDLENBQUM7RUFDTjs7RUFFQTtBQUNKO0FBQ0E7RUFDSSxhQUFhQSxlQUFlQSxDQUFBLEVBQUc7SUFDM0I7SUFDQSxNQUFNQyxJQUFJLEdBQUcsTUFBTUMsY0FBYyxDQUFDQyxJQUFJLENBQUMsQ0FBQztJQUV4QyxJQUFJRixJQUFJLEVBQUU7TUFDTjtNQUNBSixDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQ08sU0FBUyxDQUFDLENBQUMsQ0FBQ0MsTUFBTSxDQUFDLENBQUM7O01BRXpDO01BQ0EsTUFBTUMsc0JBQXNCLENBQUNILElBQUksQ0FBQ0YsSUFBSSxDQUFDTSxFQUFFLENBQUM7SUFDOUM7RUFDSjtFQUVBLE9BQU9DLFlBQVlBLENBQUEsRUFBRztJQUNsQmIsaUNBQWlDLENBQUNDLElBQUksQ0FBQyxDQUFDO0VBQzVDO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,7 @@
"use strict";
class Button_Group extends Jqhtml_Component {
// Container for grouped buttons with connected borders
// Bootstrap btn-group handles all visual grouping
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJCdXR0b25fR3JvdXAiLCJKcWh0bWxfQ29tcG9uZW50Il0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvYnV0dG9uX2dyb3VwLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIEJ1dHRvbl9Hcm91cCBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIC8vIENvbnRhaW5lciBmb3IgZ3JvdXBlZCBidXR0b25zIHdpdGggY29ubmVjdGVkIGJvcmRlcnNcbiAgICAvLyBCb290c3RyYXAgYnRuLWdyb3VwIGhhbmRsZXMgYWxsIHZpc3VhbCBncm91cGluZ1xufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLFlBQVksU0FBU0MsZ0JBQWdCLENBQUM7RUFDeEM7RUFDQTtBQUFBIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,21 @@
"use strict";
class Tabs extends Jqhtml_Component {
on_ready() {
// Wrap children in nav-item structure
this.$.children().each(function () {
const $child = $(this);
if ($child.prop('tagName') !== 'LI') {
const $li = $('<li>').addClass('nav-item');
$child.addClass('nav-link');
$child.wrap($li);
}
});
// Set first tab as active if none active
if (this.$.find('.nav-link.active').length === 0) {
this.$.find('.nav-link').first().addClass('active');
}
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUYWJzIiwiSnFodG1sX0NvbXBvbmVudCIsIm9uX3JlYWR5IiwiJCIsImNoaWxkcmVuIiwiZWFjaCIsIiRjaGlsZCIsInByb3AiLCIkbGkiLCJhZGRDbGFzcyIsIndyYXAiLCJmaW5kIiwibGVuZ3RoIiwiZmlyc3QiXSwic291cmNlcyI6WyJyc3gvdGhlbWUvY29tcG9uZW50cy9fYXJjaGl2ZWQvdW5maW5pc2hlZC9UYWJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIFRhYnMgZXh0ZW5kcyBKcWh0bWxfQ29tcG9uZW50IHtcbiAgICBvbl9yZWFkeSgpIHtcbiAgICAgICAgLy8gV3JhcCBjaGlsZHJlbiBpbiBuYXYtaXRlbSBzdHJ1Y3R1cmVcbiAgICAgICAgdGhpcy4kLmNoaWxkcmVuKCkuZWFjaChmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGNvbnN0ICRjaGlsZCA9ICQodGhpcyk7XG4gICAgICAgICAgICBpZiAoJGNoaWxkLnByb3AoJ3RhZ05hbWUnKSAhPT0gJ0xJJykge1xuICAgICAgICAgICAgICAgIGNvbnN0ICRsaSA9ICQoJzxsaT4nKS5hZGRDbGFzcygnbmF2LWl0ZW0nKTtcbiAgICAgICAgICAgICAgICAkY2hpbGQuYWRkQ2xhc3MoJ25hdi1saW5rJyk7XG4gICAgICAgICAgICAgICAgJGNoaWxkLndyYXAoJGxpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU2V0IGZpcnN0IHRhYiBhcyBhY3RpdmUgaWYgbm9uZSBhY3RpdmVcbiAgICAgICAgaWYgKHRoaXMuJC5maW5kKCcubmF2LWxpbmsuYWN0aXZlJykubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLiQuZmluZCgnLm5hdi1saW5rJykuZmlyc3QoKS5hZGRDbGFzcygnYWN0aXZlJyk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsSUFBSSxTQUFTQyxnQkFBZ0IsQ0FBQztFQUNoQ0MsUUFBUUEsQ0FBQSxFQUFHO0lBQ1A7SUFDQSxJQUFJLENBQUNDLENBQUMsQ0FBQ0MsUUFBUSxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLFlBQVc7TUFDOUIsTUFBTUMsTUFBTSxHQUFHSCxDQUFDLENBQUMsSUFBSSxDQUFDO01BQ3RCLElBQUlHLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUNqQyxNQUFNQyxHQUFHLEdBQUdMLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQ00sUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUMxQ0gsTUFBTSxDQUFDRyxRQUFRLENBQUMsVUFBVSxDQUFDO1FBQzNCSCxNQUFNLENBQUNJLElBQUksQ0FBQ0YsR0FBRyxDQUFDO01BQ3BCO0lBQ0osQ0FBQyxDQUFDOztJQUVGO0lBQ0EsSUFBSSxJQUFJLENBQUNMLENBQUMsQ0FBQ1EsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUNDLE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDOUMsSUFBSSxDQUFDVCxDQUFDLENBQUNRLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQ0UsS0FBSyxDQUFDLENBQUMsQ0FBQ0osUUFBUSxDQUFDLFFBQVEsQ0FBQztJQUN2RDtFQUNKO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,41 @@
"use strict";
class Avatar extends Jqhtml_Component {
on_ready() {
// Set src from args
if (this.args.src) {
this.$.attr('src', this.args.src);
}
// Set size (xs, sm, md, lg, xl)
const size = this.args.size || 'md';
const size_map = {
'xs': '24px',
'sm': '32px',
'md': '48px',
'lg': '64px',
'xl': '96px'
};
this.$.css({
'width': size_map[size],
'height': size_map[size],
'object-fit': 'cover'
});
// Alternative rendering: show initials when no image source provided
if (!this.args.src && this.args.name) {
this.show_initials(this.args.name);
}
}
show_initials(name) {
// Convert img to div with initials
const initials = name.split(' ').map(n => n[0]).join('').toUpperCase().slice(0, 2);
const $div = $('<div>').addClass('rounded-circle d-flex align-items-center justify-content-center bg-primary text-white fw-bold').css({
'width': this.$.css('width'),
'height': this.$.css('height')
}).text(initials);
this.$.replaceWith($div);
this.$ = $div;
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBdmF0YXIiLCJKcWh0bWxfQ29tcG9uZW50Iiwib25fcmVhZHkiLCJhcmdzIiwic3JjIiwiJCIsImF0dHIiLCJzaXplIiwic2l6ZV9tYXAiLCJjc3MiLCJuYW1lIiwic2hvd19pbml0aWFscyIsImluaXRpYWxzIiwic3BsaXQiLCJtYXAiLCJuIiwiam9pbiIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCIkZGl2IiwiYWRkQ2xhc3MiLCJ0ZXh0IiwicmVwbGFjZVdpdGgiXSwic291cmNlcyI6WyJyc3gvdGhlbWUvY29tcG9uZW50cy9fYXJjaGl2ZWQvdW5maW5pc2hlZC9BdmF0YXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgQXZhdGFyIGV4dGVuZHMgSnFodG1sX0NvbXBvbmVudCB7XG4gICAgb25fcmVhZHkoKSB7XG4gICAgICAgIC8vIFNldCBzcmMgZnJvbSBhcmdzXG4gICAgICAgIGlmICh0aGlzLmFyZ3Muc3JjKSB7XG4gICAgICAgICAgICB0aGlzLiQuYXR0cignc3JjJywgdGhpcy5hcmdzLnNyYyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgc2l6ZSAoeHMsIHNtLCBtZCwgbGcsIHhsKVxuICAgICAgICBjb25zdCBzaXplID0gdGhpcy5hcmdzLnNpemUgfHwgJ21kJztcbiAgICAgICAgY29uc3Qgc2l6ZV9tYXAgPSB7XG4gICAgICAgICAgICAneHMnOiAnMjRweCcsXG4gICAgICAgICAgICAnc20nOiAnMzJweCcsXG4gICAgICAgICAgICAnbWQnOiAnNDhweCcsXG4gICAgICAgICAgICAnbGcnOiAnNjRweCcsXG4gICAgICAgICAgICAneGwnOiAnOTZweCdcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLiQuY3NzKHtcbiAgICAgICAgICAgICd3aWR0aCc6IHNpemVfbWFwW3NpemVdLFxuICAgICAgICAgICAgJ2hlaWdodCc6IHNpemVfbWFwW3NpemVdLFxuICAgICAgICAgICAgJ29iamVjdC1maXQnOiAnY292ZXInXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEFsdGVybmF0aXZlIHJlbmRlcmluZzogc2hvdyBpbml0aWFscyB3aGVuIG5vIGltYWdlIHNvdXJjZSBwcm92aWRlZFxuICAgICAgICBpZiAoIXRoaXMuYXJncy5zcmMgJiYgdGhpcy5hcmdzLm5hbWUpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd19pbml0aWFscyh0aGlzLmFyZ3MubmFtZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzaG93X2luaXRpYWxzKG5hbWUpIHtcbiAgICAgICAgLy8gQ29udmVydCBpbWcgdG8gZGl2IHdpdGggaW5pdGlhbHNcbiAgICAgICAgY29uc3QgaW5pdGlhbHMgPSBuYW1lLnNwbGl0KCcgJykubWFwKG4gPT4gblswXSkuam9pbignJykudG9VcHBlckNhc2UoKS5zbGljZSgwLCAyKTtcbiAgICAgICAgY29uc3QgJGRpdiA9ICQoJzxkaXY+JylcbiAgICAgICAgICAgIC5hZGRDbGFzcygncm91bmRlZC1jaXJjbGUgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGJnLXByaW1hcnkgdGV4dC13aGl0ZSBmdy1ib2xkJylcbiAgICAgICAgICAgIC5jc3Moe1xuICAgICAgICAgICAgICAgICd3aWR0aCc6IHRoaXMuJC5jc3MoJ3dpZHRoJyksXG4gICAgICAgICAgICAgICAgJ2hlaWdodCc6IHRoaXMuJC5jc3MoJ2hlaWdodCcpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRleHQoaW5pdGlhbHMpO1xuXG4gICAgICAgIHRoaXMuJC5yZXBsYWNlV2l0aCgkZGl2KTtcbiAgICAgICAgdGhpcy4kID0gJGRpdjtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsTUFBTSxTQUFTQyxnQkFBZ0IsQ0FBQztFQUNsQ0MsUUFBUUEsQ0FBQSxFQUFHO0lBQ1A7SUFDQSxJQUFJLElBQUksQ0FBQ0MsSUFBSSxDQUFDQyxHQUFHLEVBQUU7TUFDZixJQUFJLENBQUNDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUNILElBQUksQ0FBQ0MsR0FBRyxDQUFDO0lBQ3JDOztJQUVBO0lBQ0EsTUFBTUcsSUFBSSxHQUFHLElBQUksQ0FBQ0osSUFBSSxDQUFDSSxJQUFJLElBQUksSUFBSTtJQUNuQyxNQUFNQyxRQUFRLEdBQUc7TUFDYixJQUFJLEVBQUUsTUFBTTtNQUNaLElBQUksRUFBRSxNQUFNO01BQ1osSUFBSSxFQUFFLE1BQU07TUFDWixJQUFJLEVBQUUsTUFBTTtNQUNaLElBQUksRUFBRTtJQUNWLENBQUM7SUFFRCxJQUFJLENBQUNILENBQUMsQ0FBQ0ksR0FBRyxDQUFDO01BQ1AsT0FBTyxFQUFFRCxRQUFRLENBQUNELElBQUksQ0FBQztNQUN2QixRQUFRLEVBQUVDLFFBQVEsQ0FBQ0QsSUFBSSxDQUFDO01BQ3hCLFlBQVksRUFBRTtJQUNsQixDQUFDLENBQUM7O0lBRUY7SUFDQSxJQUFJLENBQUMsSUFBSSxDQUFDSixJQUFJLENBQUNDLEdBQUcsSUFBSSxJQUFJLENBQUNELElBQUksQ0FBQ08sSUFBSSxFQUFFO01BQ2xDLElBQUksQ0FBQ0MsYUFBYSxDQUFDLElBQUksQ0FBQ1IsSUFBSSxDQUFDTyxJQUFJLENBQUM7SUFDdEM7RUFDSjtFQUVBQyxhQUFhQSxDQUFDRCxJQUFJLEVBQUU7SUFDaEI7SUFDQSxNQUFNRSxRQUFRLEdBQUdGLElBQUksQ0FBQ0csS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxHQUFHLENBQUNDLENBQUMsSUFBSUEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQ0MsV0FBVyxDQUFDLENBQUMsQ0FBQ0MsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEYsTUFBTUMsSUFBSSxHQUFHZCxDQUFDLENBQUMsT0FBTyxDQUFDLENBQ2xCZSxRQUFRLENBQUMsK0ZBQStGLENBQUMsQ0FDekdYLEdBQUcsQ0FBQztNQUNELE9BQU8sRUFBRSxJQUFJLENBQUNKLENBQUMsQ0FBQ0ksR0FBRyxDQUFDLE9BQU8sQ0FBQztNQUM1QixRQUFRLEVBQUUsSUFBSSxDQUFDSixDQUFDLENBQUNJLEdBQUcsQ0FBQyxRQUFRO0lBQ2pDLENBQUMsQ0FBQyxDQUNEWSxJQUFJLENBQUNULFFBQVEsQ0FBQztJQUVuQixJQUFJLENBQUNQLENBQUMsQ0FBQ2lCLFdBQVcsQ0FBQ0gsSUFBSSxDQUFDO0lBQ3hCLElBQUksQ0FBQ2QsQ0FBQyxHQUFHYyxJQUFJO0VBQ2pCO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,44 @@
"use strict";
/**
* Radio_Button - Bootstrap 5 Radio Input Component
*
* Purpose: Radio button for mutually exclusive selections within a group
* Design: Bootstrap .form-check-input styling with circular shape
* CRITICAL: All radios in same group must have same "name" attribute
* Wrapper: Typically used within <div class="form-check"> and <fieldset>
*/
class Radio_Button extends Jqhtml_Component {
on_ready() {
// Set name attribute (CRITICAL for grouping)
if (this.args.name) {
this.$.attr('name', this.args.name);
}
// Set checked state if provided
if (this.args.checked) {
this.$.prop('checked', true);
}
// Set value if provided
if (this.args.value) {
this.$.val(this.args.value);
}
// Add custom classes if provided
if (this.args.class) {
this.$.addClass(this.args.class);
}
// Set disabled state if provided
if (this.args.disabled) {
this.$.prop('disabled', true);
}
// Set required attribute if provided
if (this.args.required) {
this.$.prop('required', true);
}
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSYWRpb19CdXR0b24iLCJKcWh0bWxfQ29tcG9uZW50Iiwib25fcmVhZHkiLCJhcmdzIiwibmFtZSIsIiQiLCJhdHRyIiwiY2hlY2tlZCIsInByb3AiLCJ2YWx1ZSIsInZhbCIsImNsYXNzIiwiYWRkQ2xhc3MiLCJkaXNhYmxlZCIsInJlcXVpcmVkIl0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvUmFkaW9fQnV0dG9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmFkaW9fQnV0dG9uIC0gQm9vdHN0cmFwIDUgUmFkaW8gSW5wdXQgQ29tcG9uZW50XG4gKlxuICogUHVycG9zZTogUmFkaW8gYnV0dG9uIGZvciBtdXR1YWxseSBleGNsdXNpdmUgc2VsZWN0aW9ucyB3aXRoaW4gYSBncm91cFxuICogRGVzaWduOiBCb290c3RyYXAgLmZvcm0tY2hlY2staW5wdXQgc3R5bGluZyB3aXRoIGNpcmN1bGFyIHNoYXBlXG4gKiBDUklUSUNBTDogQWxsIHJhZGlvcyBpbiBzYW1lIGdyb3VwIG11c3QgaGF2ZSBzYW1lIFwibmFtZVwiIGF0dHJpYnV0ZVxuICogV3JhcHBlcjogVHlwaWNhbGx5IHVzZWQgd2l0aGluIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrXCI+IGFuZCA8ZmllbGRzZXQ+XG4gKi9cbmNsYXNzIFJhZGlvX0J1dHRvbiBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIG9uX3JlYWR5KCkge1xuICAgICAgICAvLyBTZXQgbmFtZSBhdHRyaWJ1dGUgKENSSVRJQ0FMIGZvciBncm91cGluZylcbiAgICAgICAgaWYgKHRoaXMuYXJncy5uYW1lKSB7XG4gICAgICAgICAgICB0aGlzLiQuYXR0cignbmFtZScsIHRoaXMuYXJncy5uYW1lKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCBjaGVja2VkIHN0YXRlIGlmIHByb3ZpZGVkXG4gICAgICAgIGlmICh0aGlzLmFyZ3MuY2hlY2tlZCkge1xuICAgICAgICAgICAgdGhpcy4kLnByb3AoJ2NoZWNrZWQnLCB0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNldCB2YWx1ZSBpZiBwcm92aWRlZFxuICAgICAgICBpZiAodGhpcy5hcmdzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLiQudmFsKHRoaXMuYXJncy52YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBBZGQgY3VzdG9tIGNsYXNzZXMgaWYgcHJvdmlkZWRcbiAgICAgICAgaWYgKHRoaXMuYXJncy5jbGFzcykge1xuICAgICAgICAgICAgdGhpcy4kLmFkZENsYXNzKHRoaXMuYXJncy5jbGFzcyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgZGlzYWJsZWQgc3RhdGUgaWYgcHJvdmlkZWRcbiAgICAgICAgaWYgKHRoaXMuYXJncy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy4kLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgcmVxdWlyZWQgYXR0cmlidXRlIGlmIHByb3ZpZGVkXG4gICAgICAgIGlmICh0aGlzLmFyZ3MucmVxdWlyZWQpIHtcbiAgICAgICAgICAgIHRoaXMuJC5wcm9wKCdyZXF1aXJlZCcsIHRydWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQSxZQUFZLFNBQVNDLGdCQUFnQixDQUFDO0VBQ3hDQyxRQUFRQSxDQUFBLEVBQUc7SUFDUDtJQUNBLElBQUksSUFBSSxDQUFDQyxJQUFJLENBQUNDLElBQUksRUFBRTtNQUNoQixJQUFJLENBQUNDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUNILElBQUksQ0FBQ0MsSUFBSSxDQUFDO0lBQ3ZDOztJQUVBO0lBQ0EsSUFBSSxJQUFJLENBQUNELElBQUksQ0FBQ0ksT0FBTyxFQUFFO01BQ25CLElBQUksQ0FBQ0YsQ0FBQyxDQUFDRyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQztJQUNoQzs7SUFFQTtJQUNBLElBQUksSUFBSSxDQUFDTCxJQUFJLENBQUNNLEtBQUssRUFBRTtNQUNqQixJQUFJLENBQUNKLENBQUMsQ0FBQ0ssR0FBRyxDQUFDLElBQUksQ0FBQ1AsSUFBSSxDQUFDTSxLQUFLLENBQUM7SUFDL0I7O0lBRUE7SUFDQSxJQUFJLElBQUksQ0FBQ04sSUFBSSxDQUFDUSxLQUFLLEVBQUU7TUFDakIsSUFBSSxDQUFDTixDQUFDLENBQUNPLFFBQVEsQ0FBQyxJQUFJLENBQUNULElBQUksQ0FBQ1EsS0FBSyxDQUFDO0lBQ3BDOztJQUVBO0lBQ0EsSUFBSSxJQUFJLENBQUNSLElBQUksQ0FBQ1UsUUFBUSxFQUFFO01BQ3BCLElBQUksQ0FBQ1IsQ0FBQyxDQUFDRyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztJQUNqQzs7SUFFQTtJQUNBLElBQUksSUFBSSxDQUFDTCxJQUFJLENBQUNXLFFBQVEsRUFBRTtNQUNwQixJQUFJLENBQUNULENBQUMsQ0FBQ0csSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7SUFDakM7RUFDSjtBQUNKIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,8 @@
"use strict";
class Empty_State extends Jqhtml_Component {
on_ready() {
// No special behavior
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFbXB0eV9TdGF0ZSIsIkpxaHRtbF9Db21wb25lbnQiLCJvbl9yZWFkeSJdLCJzb3VyY2VzIjpbInJzeC90aGVtZS9jb21wb25lbnRzL19hcmNoaXZlZC91bmZpbmlzaGVkL0VtcHR5X1N0YXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIEVtcHR5X1N0YXRlIGV4dGVuZHMgSnFodG1sX0NvbXBvbmVudCB7XG4gICAgb25fcmVhZHkoKSB7XG4gICAgICAgIC8vIE5vIHNwZWNpYWwgYmVoYXZpb3JcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsV0FBVyxTQUFTQyxnQkFBZ0IsQ0FBQztFQUN2Q0MsUUFBUUEsQ0FBQSxFQUFHO0lBQ1A7RUFBQTtBQUVSIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,25 @@
"use strict";
class Form_Field_Group extends Jqhtml_Component {
on_ready() {
// Optional: Add collapsible functionality
if (this.args.collapsible) {
this.make_collapsible();
}
}
make_collapsible() {
const $header = this.$.find('.card-header');
const $body = this.$.find('.card-body');
const collapse_id = 'collapse_' + Math.random().toString(36).substr(2, 9);
$body.attr('id', collapse_id).addClass('collapse show');
const $toggle = $('<button>').attr('type', 'button').addClass('btn btn-link btn-sm float-end text-decoration-none').attr('data-bs-toggle', 'collapse').attr('data-bs-target', '#' + collapse_id).html('<i class="bi bi-chevron-up"></i>');
$header.find('h5').append($toggle);
$body.on('show.bs.collapse', () => {
$toggle.html('<i class="bi bi-chevron-up"></i>');
});
$body.on('hide.bs.collapse', () => {
$toggle.html('<i class="bi bi-chevron-down"></i>');
});
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb3JtX0ZpZWxkX0dyb3VwIiwiSnFodG1sX0NvbXBvbmVudCIsIm9uX3JlYWR5IiwiYXJncyIsImNvbGxhcHNpYmxlIiwibWFrZV9jb2xsYXBzaWJsZSIsIiRoZWFkZXIiLCIkIiwiZmluZCIsIiRib2R5IiwiY29sbGFwc2VfaWQiLCJNYXRoIiwicmFuZG9tIiwidG9TdHJpbmciLCJzdWJzdHIiLCJhdHRyIiwiYWRkQ2xhc3MiLCIkdG9nZ2xlIiwiaHRtbCIsImFwcGVuZCIsIm9uIl0sInNvdXJjZXMiOlsicnN4L3RoZW1lL2NvbXBvbmVudHMvX2FyY2hpdmVkL3VuZmluaXNoZWQvRm9ybV9GaWVsZF9Hcm91cC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBGb3JtX0ZpZWxkX0dyb3VwIGV4dGVuZHMgSnFodG1sX0NvbXBvbmVudCB7XG4gICAgb25fcmVhZHkoKSB7XG4gICAgICAgIC8vIE9wdGlvbmFsOiBBZGQgY29sbGFwc2libGUgZnVuY3Rpb25hbGl0eVxuICAgICAgICBpZiAodGhpcy5hcmdzLmNvbGxhcHNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLm1ha2VfY29sbGFwc2libGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG1ha2VfY29sbGFwc2libGUoKSB7XG4gICAgICAgIGNvbnN0ICRoZWFkZXIgPSB0aGlzLiQuZmluZCgnLmNhcmQtaGVhZGVyJyk7XG4gICAgICAgIGNvbnN0ICRib2R5ID0gdGhpcy4kLmZpbmQoJy5jYXJkLWJvZHknKTtcbiAgICAgICAgY29uc3QgY29sbGFwc2VfaWQgPSAnY29sbGFwc2VfJyArIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA5KTtcblxuICAgICAgICAkYm9keS5hdHRyKCdpZCcsIGNvbGxhcHNlX2lkKS5hZGRDbGFzcygnY29sbGFwc2Ugc2hvdycpO1xuXG4gICAgICAgIGNvbnN0ICR0b2dnbGUgPSAkKCc8YnV0dG9uPicpXG4gICAgICAgICAgICAuYXR0cigndHlwZScsICdidXR0b24nKVxuICAgICAgICAgICAgLmFkZENsYXNzKCdidG4gYnRuLWxpbmsgYnRuLXNtIGZsb2F0LWVuZCB0ZXh0LWRlY29yYXRpb24tbm9uZScpXG4gICAgICAgICAgICAuYXR0cignZGF0YS1icy10b2dnbGUnLCAnY29sbGFwc2UnKVxuICAgICAgICAgICAgLmF0dHIoJ2RhdGEtYnMtdGFyZ2V0JywgJyMnICsgY29sbGFwc2VfaWQpXG4gICAgICAgICAgICAuaHRtbCgnPGkgY2xhc3M9XCJiaSBiaS1jaGV2cm9uLXVwXCI+PC9pPicpO1xuXG4gICAgICAgICRoZWFkZXIuZmluZCgnaDUnKS5hcHBlbmQoJHRvZ2dsZSk7XG5cbiAgICAgICAgJGJvZHkub24oJ3Nob3cuYnMuY29sbGFwc2UnLCAoKSA9PiB7XG4gICAgICAgICAgICAkdG9nZ2xlLmh0bWwoJzxpIGNsYXNzPVwiYmkgYmktY2hldnJvbi11cFwiPjwvaT4nKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgJGJvZHkub24oJ2hpZGUuYnMuY29sbGFwc2UnLCAoKSA9PiB7XG4gICAgICAgICAgICAkdG9nZ2xlLmh0bWwoJzxpIGNsYXNzPVwiYmkgYmktY2hldnJvbi1kb3duXCI+PC9pPicpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBQUEsTUFBTUEsZ0JBQWdCLFNBQVNDLGdCQUFnQixDQUFDO0VBQzVDQyxRQUFRQSxDQUFBLEVBQUc7SUFDUDtJQUNBLElBQUksSUFBSSxDQUFDQyxJQUFJLENBQUNDLFdBQVcsRUFBRTtNQUN2QixJQUFJLENBQUNDLGdCQUFnQixDQUFDLENBQUM7SUFDM0I7RUFDSjtFQUVBQSxnQkFBZ0JBLENBQUEsRUFBRztJQUNmLE1BQU1DLE9BQU8sR0FBRyxJQUFJLENBQUNDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUMzQyxNQUFNQyxLQUFLLEdBQUcsSUFBSSxDQUFDRixDQUFDLENBQUNDLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDdkMsTUFBTUUsV0FBVyxHQUFHLFdBQVcsR0FBR0MsSUFBSSxDQUFDQyxNQUFNLENBQUMsQ0FBQyxDQUFDQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUNDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXpFTCxLQUFLLENBQUNNLElBQUksQ0FBQyxJQUFJLEVBQUVMLFdBQVcsQ0FBQyxDQUFDTSxRQUFRLENBQUMsZUFBZSxDQUFDO0lBRXZELE1BQU1DLE9BQU8sR0FBR1YsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUN4QlEsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FDdEJDLFFBQVEsQ0FBQyxvREFBb0QsQ0FBQyxDQUM5REQsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFVBQVUsQ0FBQyxDQUNsQ0EsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsR0FBR0wsV0FBVyxDQUFDLENBQ3pDUSxJQUFJLENBQUMsa0NBQWtDLENBQUM7SUFFN0NaLE9BQU8sQ0FBQ0UsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDVyxNQUFNLENBQUNGLE9BQU8sQ0FBQztJQUVsQ1IsS0FBSyxDQUFDVyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsTUFBTTtNQUMvQkgsT0FBTyxDQUFDQyxJQUFJLENBQUMsa0NBQWtDLENBQUM7SUFDcEQsQ0FBQyxDQUFDO0lBRUZULEtBQUssQ0FBQ1csRUFBRSxDQUFDLGtCQUFrQixFQUFFLE1BQU07TUFDL0JILE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLG9DQUFvQyxDQUFDO0lBQ3RELENBQUMsQ0FBQztFQUNOO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,28 @@
"use strict";
class Frontend_Reports_Time {
static init() {
if (!$(".Frontend_Reports_Time").exists()) return;
// Initialize your component here
console.log('Frontend_Reports_Time initialized');
// Example: Handle button clicks
$('.btn-action').on('click', function () {
// Handle action
});
// Example: Initialize tooltips
$('[data-bs-toggle="tooltip"]').tooltip();
}
static on_app_ready() {
Frontend_Reports_Time.init();
}
// static on_jqhtml_ready() {
// // Called after all JQHTML components have loaded and rendered
// // Use this if you need to interact with JQHTML components
// // Otherwise, use on_app_ready() for most initialization
// }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9SZXBvcnRzX1RpbWUiLCJpbml0IiwiJCIsImV4aXN0cyIsImNvbnNvbGUiLCJsb2ciLCJvbiIsInRvb2x0aXAiLCJvbl9hcHBfcmVhZHkiXSwic291cmNlcyI6WyJyc3gvYXBwL2Zyb250ZW5kL3JlcG9ydHMvZnJvbnRlbmRfcmVwb3J0c190aW1lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNsYXNzIEZyb250ZW5kX1JlcG9ydHNfVGltZSB7XG4gICAgc3RhdGljIGluaXQoKSB7XG4gICAgICAgIGlmICghJChcIi5Gcm9udGVuZF9SZXBvcnRzX1RpbWVcIikuZXhpc3RzKCkpIHJldHVybjtcblxuICAgICAgICAvLyBJbml0aWFsaXplIHlvdXIgY29tcG9uZW50IGhlcmVcbiAgICAgICAgY29uc29sZS5sb2coJ0Zyb250ZW5kX1JlcG9ydHNfVGltZSBpbml0aWFsaXplZCcpO1xuXG4gICAgICAgIC8vIEV4YW1wbGU6IEhhbmRsZSBidXR0b24gY2xpY2tzXG4gICAgICAgICQoJy5idG4tYWN0aW9uJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgYWN0aW9uXG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEV4YW1wbGU6IEluaXRpYWxpemUgdG9vbHRpcHNcbiAgICAgICAgJCgnW2RhdGEtYnMtdG9nZ2xlPVwidG9vbHRpcFwiXScpLnRvb2x0aXAoKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgb25fYXBwX3JlYWR5KCkge1xuICAgICAgICBGcm9udGVuZF9SZXBvcnRzX1RpbWUuaW5pdCgpO1xuICAgIH1cblxuICAgIC8vIHN0YXRpYyBvbl9qcWh0bWxfcmVhZHkoKSB7XG4gICAgLy8gICAgIC8vIENhbGxlZCBhZnRlciBhbGwgSlFIVE1MIGNvbXBvbmVudHMgaGF2ZSBsb2FkZWQgYW5kIHJlbmRlcmVkXG4gICAgLy8gICAgIC8vIFVzZSB0aGlzIGlmIHlvdSBuZWVkIHRvIGludGVyYWN0IHdpdGggSlFIVE1MIGNvbXBvbmVudHNcbiAgICAvLyAgICAgLy8gT3RoZXJ3aXNlLCB1c2Ugb25fYXBwX3JlYWR5KCkgZm9yIG1vc3QgaW5pdGlhbGl6YXRpb25cbiAgICAvLyB9XG59Il0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLHFCQUFxQixDQUFDO0VBQ3hCLE9BQU9DLElBQUlBLENBQUEsRUFBRztJQUNWLElBQUksQ0FBQ0MsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUNDLE1BQU0sQ0FBQyxDQUFDLEVBQUU7O0lBRTNDO0lBQ0FDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLG1DQUFtQyxDQUFDOztJQUVoRDtJQUNBSCxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUNJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsWUFBVztNQUNwQztJQUFBLENBQ0gsQ0FBQzs7SUFFRjtJQUNBSixDQUFDLENBQUMsNEJBQTRCLENBQUMsQ0FBQ0ssT0FBTyxDQUFDLENBQUM7RUFDN0M7RUFFQSxPQUFPQyxZQUFZQSxDQUFBLEVBQUc7SUFDbEJSLHFCQUFxQixDQUFDQyxJQUFJLENBQUMsQ0FBQztFQUNoQzs7RUFFQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0FBQ0oiLCJpZ25vcmVMaXN0IjpbXX0=

View File

@@ -0,0 +1,6 @@
"use strict";
class Overdue_Indicator extends Jqhtml_Component {
// Pure Bootstrap styling - no JavaScript needed
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPdmVyZHVlX0luZGljYXRvciIsIkpxaHRtbF9Db21wb25lbnQiXSwic291cmNlcyI6WyJyc3gvdGhlbWUvY29tcG9uZW50cy9fYXJjaGl2ZWQvdW5maW5pc2hlZC9PdmVyZHVlX0luZGljYXRvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjbGFzcyBPdmVyZHVlX0luZGljYXRvciBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIC8vIFB1cmUgQm9vdHN0cmFwIHN0eWxpbmcgLSBubyBKYXZhU2NyaXB0IG5lZWRlZFxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLGlCQUFpQixTQUFTQyxnQkFBZ0IsQ0FBQztFQUM3QztBQUFBIiwiaWdub3JlTGlzdCI6W119

View File

@@ -0,0 +1,28 @@
"use strict";
class Frontend_Contacts {
static init() {
if (!$('.Frontend_Contacts').exists()) return;
// Initialize your component here
console.log('Frontend_Contacts initialized');
// // Example: Handle button clicks
// $('.btn-action').on('click', function() {
// // Handle action
// });
// // Example: Initialize tooltips
// $('[data-bs-toggle="tooltip"]').tooltip();
}
static on_app_ready() {
Frontend_Contacts.init();
}
// static on_jqhtml_ready() {
// // Called after all JQHTML components have loaded and rendered
// // Use this if you need to interact with JQHTML components
// // Otherwise, use on_app_ready() for most initialization
// }
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGcm9udGVuZF9Db250YWN0cyIsImluaXQiLCIkIiwiZXhpc3RzIiwiY29uc29sZSIsImxvZyIsIm9uX2FwcF9yZWFkeSJdLCJzb3VyY2VzIjpbInJzeC9hcHAvZnJvbnRlbmQvY29udGFjdHMvZnJvbnRlbmRfY29udGFjdHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgRnJvbnRlbmRfQ29udGFjdHMge1xuICAgIHN0YXRpYyBpbml0KCkge1xuICAgICAgICBpZiAoISQoJy5Gcm9udGVuZF9Db250YWN0cycpLmV4aXN0cygpKSByZXR1cm47XG5cbiAgICAgICAgLy8gSW5pdGlhbGl6ZSB5b3VyIGNvbXBvbmVudCBoZXJlXG4gICAgICAgIGNvbnNvbGUubG9nKCdGcm9udGVuZF9Db250YWN0cyBpbml0aWFsaXplZCcpO1xuXG4gICAgICAgIC8vIC8vIEV4YW1wbGU6IEhhbmRsZSBidXR0b24gY2xpY2tzXG4gICAgICAgIC8vICQoJy5idG4tYWN0aW9uJykub24oJ2NsaWNrJywgZnVuY3Rpb24oKSB7XG4gICAgICAgIC8vICAgICAvLyBIYW5kbGUgYWN0aW9uXG4gICAgICAgIC8vIH0pO1xuXG4gICAgICAgIC8vIC8vIEV4YW1wbGU6IEluaXRpYWxpemUgdG9vbHRpcHNcbiAgICAgICAgLy8gJCgnW2RhdGEtYnMtdG9nZ2xlPVwidG9vbHRpcFwiXScpLnRvb2x0aXAoKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgb25fYXBwX3JlYWR5KCkge1xuICAgICAgICBGcm9udGVuZF9Db250YWN0cy5pbml0KCk7XG4gICAgfVxuXG4gICAgLy8gc3RhdGljIG9uX2pxaHRtbF9yZWFkeSgpIHtcbiAgICAvLyAgICAgLy8gQ2FsbGVkIGFmdGVyIGFsbCBKUUhUTUwgY29tcG9uZW50cyBoYXZlIGxvYWRlZCBhbmQgcmVuZGVyZWRcbiAgICAvLyAgICAgLy8gVXNlIHRoaXMgaWYgeW91IG5lZWQgdG8gaW50ZXJhY3Qgd2l0aCBKUUhUTUwgY29tcG9uZW50c1xuICAgIC8vICAgICAvLyBPdGhlcndpc2UsIHVzZSBvbl9hcHBfcmVhZHkoKSBmb3IgbW9zdCBpbml0aWFsaXphdGlvblxuICAgIC8vIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxNQUFNQSxpQkFBaUIsQ0FBQztFQUNwQixPQUFPQyxJQUFJQSxDQUFBLEVBQUc7SUFDVixJQUFJLENBQUNDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDQyxNQUFNLENBQUMsQ0FBQyxFQUFFOztJQUV2QztJQUNBQyxPQUFPLENBQUNDLEdBQUcsQ0FBQywrQkFBK0IsQ0FBQzs7SUFFNUM7SUFDQTtJQUNBO0lBQ0E7O0lBRUE7SUFDQTtFQUNKO0VBRUEsT0FBT0MsWUFBWUEsQ0FBQSxFQUFHO0lBQ2xCTixpQkFBaUIsQ0FBQ0MsSUFBSSxDQUFDLENBQUM7RUFDNUI7O0VBRUE7RUFDQTtFQUNBO0VBQ0E7RUFDQTtBQUNKIiwiaWdub3JlTGlzdCI6W119

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,20 @@
"use strict";
class Popover extends Jqhtml_Component {
on_ready() {
// Set popover content from args
if (this.args.title) {
this.$.attr('data-bs-title', this.args.title);
}
if (this.args.content) {
this.$.attr('data-bs-content', this.args.content);
}
// Set trigger (hover, click, focus)
this.$.attr('data-bs-trigger', this.args.trigger || 'click');
// Initialize Bootstrap popover
new bootstrap.Popover(this.$[0]);
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJQb3BvdmVyIiwiSnFodG1sX0NvbXBvbmVudCIsIm9uX3JlYWR5IiwiYXJncyIsInRpdGxlIiwiJCIsImF0dHIiLCJjb250ZW50IiwidHJpZ2dlciIsImJvb3RzdHJhcCJdLCJzb3VyY2VzIjpbInJzeC90aGVtZS9jb21wb25lbnRzL19hcmNoaXZlZC91bmZpbmlzaGVkL1BvcG92ZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiY2xhc3MgUG9wb3ZlciBleHRlbmRzIEpxaHRtbF9Db21wb25lbnQge1xuICAgIG9uX3JlYWR5KCkge1xuICAgICAgICAvLyBTZXQgcG9wb3ZlciBjb250ZW50IGZyb20gYXJnc1xuICAgICAgICBpZiAodGhpcy5hcmdzLnRpdGxlKSB7XG4gICAgICAgICAgICB0aGlzLiQuYXR0cignZGF0YS1icy10aXRsZScsIHRoaXMuYXJncy50aXRsZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5hcmdzLmNvbnRlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuJC5hdHRyKCdkYXRhLWJzLWNvbnRlbnQnLCB0aGlzLmFyZ3MuY29udGVudCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBTZXQgdHJpZ2dlciAoaG92ZXIsIGNsaWNrLCBmb2N1cylcbiAgICAgICAgdGhpcy4kLmF0dHIoJ2RhdGEtYnMtdHJpZ2dlcicsIHRoaXMuYXJncy50cmlnZ2VyIHx8ICdjbGljaycpO1xuXG4gICAgICAgIC8vIEluaXRpYWxpemUgQm9vdHN0cmFwIHBvcG92ZXJcbiAgICAgICAgbmV3IGJvb3RzdHJhcC5Qb3BvdmVyKHRoaXMuJFswXSk7XG4gICAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOztBQUFBLE1BQU1BLE9BQU8sU0FBU0MsZ0JBQWdCLENBQUM7RUFDbkNDLFFBQVFBLENBQUEsRUFBRztJQUNQO0lBQ0EsSUFBSSxJQUFJLENBQUNDLElBQUksQ0FBQ0MsS0FBSyxFQUFFO01BQ2pCLElBQUksQ0FBQ0MsQ0FBQyxDQUFDQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQ0gsSUFBSSxDQUFDQyxLQUFLLENBQUM7SUFDakQ7SUFFQSxJQUFJLElBQUksQ0FBQ0QsSUFBSSxDQUFDSSxPQUFPLEVBQUU7TUFDbkIsSUFBSSxDQUFDRixDQUFDLENBQUNDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUNILElBQUksQ0FBQ0ksT0FBTyxDQUFDO0lBQ3JEOztJQUVBO0lBQ0EsSUFBSSxDQUFDRixDQUFDLENBQUNDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUNILElBQUksQ0FBQ0ssT0FBTyxJQUFJLE9BQU8sQ0FBQzs7SUFFNUQ7SUFDQSxJQUFJQyxTQUFTLENBQUNULE9BQU8sQ0FBQyxJQUFJLENBQUNLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztFQUNwQztBQUNKIiwiaWdub3JlTGlzdCI6W119

Some files were not shown because too many files have changed in this diff Show More