Implement JQHTML function cache ID system and fix bundle compilation Implement underscore prefix for system tables Fix JS syntax linter to support decorators and grant exception to Task system SPA: Update planning docs and wishlists with remaining features SPA: Document Navigation API abandonment and future enhancements Implement SPA browser integration with History API (Phase 1) Convert contacts view page to SPA action Convert clients pages to SPA actions and document conversion procedure SPA: Merge GET parameters and update documentation Implement SPA route URL generation in JavaScript and PHP Implement SPA bootstrap controller architecture Add SPA routing manual page (rsx:man spa) Add SPA routing documentation to CLAUDE.md Phase 4 Complete: Client-side SPA routing implementation Update get_routes() consumers for unified route structure Complete SPA Phase 3: PHP-side route type detection and is_spa flag Restore unified routes structure and Manifest_Query class Refactor route indexing and add SPA infrastructure Phase 3 Complete: SPA route registration in manifest Implement SPA Phase 2: Extract router code and test decorators Rename Jqhtml_Component to Component and complete SPA foundation setup 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
46 lines
4.7 KiB
JavaScript
Executable File
46 lines
4.7 KiB
JavaScript
Executable File
"use strict";
|
|
|
|
/**
|
|
* Form_Hidden_Field - Hidden input field component
|
|
*
|
|
* Extends Form_Field_Abstract but IS the input element itself (using tag="input" type="hidden").
|
|
* See form_hidden_field.jqhtml for full documentation.
|
|
*
|
|
* JavaScript Responsibilities:
|
|
* - Sets value attribute dynamically in on_create()
|
|
* - Overrides on_ready() to handle that this.$ IS both the widget and the input
|
|
* - Provides val() method for getting/setting the hidden value
|
|
*/
|
|
class Form_Hidden_Field extends Form_Field_Abstract {
|
|
on_create() {
|
|
// Call parent to set up form reference
|
|
super.on_create();
|
|
|
|
// Set initial value attribute (can't be done in Define tag)
|
|
this.$.attr('value', '');
|
|
}
|
|
on_ready() {
|
|
// Override parent on_ready() because this.$ IS the widget and the input
|
|
// Set data-name on this.$ (which is the input element)
|
|
this.$.attr('data-name', this.args.name);
|
|
|
|
// Set name attribute on this.$ for Form_Utils compatibility
|
|
this.$.attr('name', this.args.name);
|
|
}
|
|
|
|
/**
|
|
* val() - Get or set the hidden 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 - this.$ is the input element itself
|
|
return this.$.val();
|
|
} else {
|
|
// Setter - update the input value directly (this.$ is the input)
|
|
this.$.val(value || '');
|
|
}
|
|
}
|
|
}
|
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGb3JtX0hpZGRlbl9GaWVsZCIsIkZvcm1fRmllbGRfQWJzdHJhY3QiLCJvbl9jcmVhdGUiLCIkIiwiYXR0ciIsIm9uX3JlYWR5IiwiYXJncyIsIm5hbWUiLCJ2YWwiLCJ2YWx1ZSIsImFyZ3VtZW50cyIsImxlbmd0aCJdLCJzb3VyY2VzIjpbInJzeC90aGVtZS9jb21wb25lbnRzL2Zvcm1zL2Zvcm1faGlkZGVuX2ZpZWxkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRm9ybV9IaWRkZW5fRmllbGQgLSBIaWRkZW4gaW5wdXQgZmllbGQgY29tcG9uZW50XG4gKlxuICogRXh0ZW5kcyBGb3JtX0ZpZWxkX0Fic3RyYWN0IGJ1dCBJUyB0aGUgaW5wdXQgZWxlbWVudCBpdHNlbGYgKHVzaW5nIHRhZz1cImlucHV0XCIgdHlwZT1cImhpZGRlblwiKS5cbiAqIFNlZSBmb3JtX2hpZGRlbl9maWVsZC5qcWh0bWwgZm9yIGZ1bGwgZG9jdW1lbnRhdGlvbi5cbiAqXG4gKiBKYXZhU2NyaXB0IFJlc3BvbnNpYmlsaXRpZXM6XG4gKiAtIFNldHMgdmFsdWUgYXR0cmlidXRlIGR5bmFtaWNhbGx5IGluIG9uX2NyZWF0ZSgpXG4gKiAtIE92ZXJyaWRlcyBvbl9yZWFkeSgpIHRvIGhhbmRsZSB0aGF0IHRoaXMuJCBJUyBib3RoIHRoZSB3aWRnZXQgYW5kIHRoZSBpbnB1dFxuICogLSBQcm92aWRlcyB2YWwoKSBtZXRob2QgZm9yIGdldHRpbmcvc2V0dGluZyB0aGUgaGlkZGVuIHZhbHVlXG4gKi9cbmNsYXNzIEZvcm1fSGlkZGVuX0ZpZWxkIGV4dGVuZHMgRm9ybV9GaWVsZF9BYnN0cmFjdCB7XG4gICAgb25fY3JlYXRlKCkge1xuICAgICAgICAvLyBDYWxsIHBhcmVudCB0byBzZXQgdXAgZm9ybSByZWZlcmVuY2VcbiAgICAgICAgc3VwZXIub25fY3JlYXRlKCk7XG5cbiAgICAgICAgLy8gU2V0IGluaXRpYWwgdmFsdWUgYXR0cmlidXRlIChjYW4ndCBiZSBkb25lIGluIERlZmluZSB0YWcpXG4gICAgICAgIHRoaXMuJC5hdHRyKCd2YWx1ZScsICcnKTtcbiAgICB9XG5cbiAgICBvbl9yZWFkeSgpIHtcbiAgICAgICAgLy8gT3ZlcnJpZGUgcGFyZW50IG9uX3JlYWR5KCkgYmVjYXVzZSB0aGlzLiQgSVMgdGhlIHdpZGdldCBhbmQgdGhlIGlucHV0XG4gICAgICAgIC8vIFNldCBkYXRhLW5hbWUgb24gdGhpcy4kICh3aGljaCBpcyB0aGUgaW5wdXQgZWxlbWVudClcbiAgICAgICAgdGhpcy4kLmF0dHIoJ2RhdGEtbmFtZScsIHRoaXMuYXJncy5uYW1lKTtcblxuICAgICAgICAvLyBTZXQgbmFtZSBhdHRyaWJ1dGUgb24gdGhpcy4kIGZvciBGb3JtX1V0aWxzIGNvbXBhdGliaWxpdHlcbiAgICAgICAgdGhpcy4kLmF0dHIoJ25hbWUnLCB0aGlzLmFyZ3MubmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogdmFsKCkgLSBHZXQgb3Igc2V0IHRoZSBoaWRkZW4gaW5wdXQgdmFsdWVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW3ZhbHVlXSAtIElmIHByb3ZpZGVkLCBzZXRzIHRoZSB2YWx1ZVxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBjdXJyZW50IHZhbHVlIHdoZW4gY2FsbGVkIGFzIGdldHRlclxuICAgICAqL1xuICAgIHZhbCh2YWx1ZSkge1xuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgLy8gR2V0dGVyIC0gdGhpcy4kIGlzIHRoZSBpbnB1dCBlbGVtZW50IGl0c2VsZlxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuJC52YWwoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIFNldHRlciAtIHVwZGF0ZSB0aGUgaW5wdXQgdmFsdWUgZGlyZWN0bHkgKHRoaXMuJCBpcyB0aGUgaW5wdXQpXG4gICAgICAgICAgICB0aGlzLiQudmFsKHZhbHVlIHx8ICcnKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTUEsaUJBQWlCLFNBQVNDLG1CQUFtQixDQUFDO0VBQ2hEQyxTQUFTQSxDQUFBLEVBQUc7SUFDUjtJQUNBLEtBQUssQ0FBQ0EsU0FBUyxDQUFDLENBQUM7O0lBRWpCO0lBQ0EsSUFBSSxDQUFDQyxDQUFDLENBQUNDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO0VBQzVCO0VBRUFDLFFBQVFBLENBQUEsRUFBRztJQUNQO0lBQ0E7SUFDQSxJQUFJLENBQUNGLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUNFLElBQUksQ0FBQ0MsSUFBSSxDQUFDOztJQUV4QztJQUNBLElBQUksQ0FBQ0osQ0FBQyxDQUFDQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQ0UsSUFBSSxDQUFDQyxJQUFJLENBQUM7RUFDdkM7O0VBRUE7QUFDSjtBQUNBO0FBQ0E7QUFDQTtFQUNJQyxHQUFHQSxDQUFDQyxLQUFLLEVBQUU7SUFDUCxJQUFJQyxTQUFTLENBQUNDLE1BQU0sS0FBSyxDQUFDLEVBQUU7TUFDeEI7TUFDQSxPQUFPLElBQUksQ0FBQ1IsQ0FBQyxDQUFDSyxHQUFHLENBQUMsQ0FBQztJQUN2QixDQUFDLE1BQU07TUFDSDtNQUNBLElBQUksQ0FBQ0wsQ0FBQyxDQUFDSyxHQUFHLENBQUNDLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDM0I7RUFDSjtBQUNKIiwiaWdub3JlTGlzdCI6W119
|