"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} 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=