/*! elementor - v3.24.0 - 01-10-2024 */ /*! For license information please see editor-modules.min.js.LICENSE.txt */ (()=>{var t={61909:(t,r,o)=>{"use strict";var i=o(38003).__,a=o(73203);Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var l=a(o(7501)),u=a(o(40131)),c=a(o(78983)),d=a(o(42081)),p=a(o(77266)),h=a(o(58724)),v=a(o(71173)),y=a(o(74910)),g=a(o(93231)),m=a(o(42618)),_=a(o(63225)),b=a(o(40871));function _createSuper(t){var r=function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function _createSuperInternal(){var o,i=(0,y.default)(t);if(r){var a=(0,y.default)(this).constructor;o=Reflect.construct(i,arguments,a)}else o=i.apply(this,arguments);return(0,v.default)(this,o)}}var C=function(t){(0,h.default)(Container,t);var r=_createSuper(Container);function Container(t){var o;if((0,c.default)(this,Container),o=r.call(this,t),(0,g.default)((0,p.default)(o),"type",void 0),(0,g.default)((0,p.default)(o),"id",void 0),(0,g.default)((0,p.default)(o),"document",void 0),(0,g.default)((0,p.default)(o),"model",void 0),(0,g.default)((0,p.default)(o),"settings",void 0),(0,g.default)((0,p.default)(o),"view",void 0),(0,g.default)((0,p.default)(o),"parent",void 0),(0,g.default)((0,p.default)(o),"children",new b.default),(0,g.default)((0,p.default)(o),"dynamic",void 0),(0,g.default)((0,p.default)(o),"globals",void 0),(0,g.default)((0,p.default)(o),"label",void 0),(0,g.default)((0,p.default)(o),"controls",{}),(0,g.default)((0,p.default)(o),"repeaters",{}),(0,g.default)((0,p.default)(o),"renderer",void 0),(0,g.default)((0,p.default)(o),"panel",void 0),(0,g.default)((0,p.default)(o),"placeholders",{}),o.validateArgs(t),0===(t=Object.entries(t)).length)throw Error("Container cannot be empty.");return t.forEach((function(t){var r=(0,u.default)(t,2),i=r[0],a=r[1];o[i]=void 0===a?o[i]:a})),void 0===o.renderer&&(o.renderer=(0,p.default)(o)),o.document||(o.document=elementor.documents.getCurrent()),o.dynamic=new Backbone.Model(o.settings.get("__dynamic__")),o.globals=new Backbone.Model(o.settings.get("__globals__")),o.panel=new _.default((0,p.default)(o)),o.initialize(),o}return(0,d.default)(Container,[{key:"initialize",value:function initialize(){this.isViewElement()&&(this.addToParent(),this.handleChildrenRecursive(),this.view.on("destroy",this.removeFromParent.bind(this))),this.handleRepeaterChildren()}},{key:"validateArgs",value:function validateArgs(t){this.requireArgumentType("type","string",t),this.requireArgumentType("id","string",t),this.requireArgumentInstance("settings",Backbone.Model,t),this.requireArgumentInstance("model",Backbone.Model,t),!1!==t.parent&&this.requireArgumentInstance("parent",elementorModules.editor.Container,t)}},{key:"getGroupRelatedControls",value:function getGroupRelatedControls(t){var r=this,o={};return Object.keys(t).forEach((function(t){Object.values(r.controls).forEach((function(i){var a;if(t===i.name)o[i.name]=i;else if(null!==(a=r.controls[t])&&void 0!==a&&a.groupPrefix){var l=r.controls[t].groupPrefix;i.name.toString().startsWith(l)&&(o[i.name]=i)}}))})),o}},{key:"getAffectingControls",value:function getAffectingControls(){var t=this,r={},o=this.settings.getActiveControls();return Object.entries(o).forEach((function(o){var i,a=(0,u.default)(o,2),c=a[0],d=a[1],p=t.settings.get(d.name);if(d.global&&(null==p||!p.length)&&(null!==(i=t.globals.get(d.name))&&void 0!==i&&i.length||t.getGlobalDefault(c).length))return d.global.utilized=!0,void(r[c]=d);if(d.dynamic&&t.dynamic.get(c))return d.dynamic.utilized=!0,void(r[c]=d);p!==d.default&&p&&("object"===(0,l.default)(p)&&Object.values(p).join()===Object.values(d.default).join()||(r[c]=d))})),r}},{key:"getParentAncestry",value:function getParentAncestry(){for(varruntime/helpers/getPrototypeOf */ "../node_modules/@babel/runtime/helpers/getPrototypeOf.js")); var _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ "../node_modules/@babel/runtime/helpers/wrapNativeSuper.js")); function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; } function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } } // TODO: Copied from `assets/dev/js/modules/imports/force-method-implementation.js`; var ForceMethodImplementation = /*#__PURE__*/function (_Error) { (0, _inherits2.default)(ForceMethodImplementation, _Error); var _super = _createSuper(ForceMethodImplementation); function ForceMethodImplementation() { var _this; var info = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; (0, _classCallCheck2.default)(this, ForceMethodImplementation); _this = _super.call(this, "".concat(info.isStatic ? 'static ' : '').concat(info.fullName, "() should be implemented, please provide '").concat(info.functionName || info.fullName, "' functionality.")); Error.captureStackTrace((0, _assertThisInitialized2.default)(_this), ForceMethodImplementation); return _this; } return (0, _createClass2.default)(ForceMethodImplementation); }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error)); exports.ForceMethodImplementation = ForceMethodImplementation; var _default = function _default() { var stack = Error().stack, caller = stack.split('\n')[2].trim(), callerName = caller.startsWith('at new') ? 'constructor' : caller.split(' ')[1], info = {}; info.functionName = callerName; info.fullName = callerName; if (info.functionName.includes('.')) { var parts = info.functionName.split('.'); info.className = parts[0]; info.functionName = parts[1]; } else { info.isStatic = true; } throw new ForceMethodImplementation(info); }; exports["default"] = _default; /***/ }), /***/ "../node_modules/redux-thunk/es/index.js": /*!***********************************************!*\ !*** ../node_modules/redux-thunk/es/index.js ***! \***********************************************/ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); /** A function that accepts a potential "extra argument" value to be injected later, * and returns an instance of the thunk middleware that uses that value */ function createThunkMiddleware(extraArgument) { // Standard Redux middleware definition pattern: // See: https://redux.js.org/tutoria'; } public function get_icon(): string { return 'eicon-site-identity'; } public function get_categories(): array { return [ 'link-in-bio' ]; } public function get_keywords(): array { return [ 'buttons', 'bio', 'widget', 'link in bio' ]; } public function get_image_position_options(): array { return [ '' => esc_html__( 'Default', 'elementor' ), 'center center' => esc_html__( 'Center Center', 'elementor' ), 'center left' => esc_html__( 'Center Left', 'elementor' ), 'center right' => esc_html__( 'Center Right', 'elementor' ), 'top center' => esc_html__( 'Top Center', 'elementor' ), 'top left' => esc_html__( 'Top Left', 'elementor' ), 'top right' => esc_html__( 'Top Right', 'elementor' ), 'bottom center' => esc_html__( 'Bottom Center', 'elementor' ), 'bottom left' => esc_html__( 'Bottom Left', 'elementor' ), 'bottom right' => esc_html__( 'Bottom Right', 'elementor' ), ]; } protected function register_controls(): void { $this->add_content_tab(); $this->add_style_tab(); } protected function render(): void { $render_strategy = new Core_Render( $this ); $render_strategy->render(); } protected function add_image_links_controls() { $config = static::get_configuration(); if ( empty( $config['content']['image_links_section'] ) ) { return; } $this->start_controls_section( 'image_links_section', [ 'label' => esc_html__( 'Image Links', 'elementor' ), 'tab' => Controls_Manager::TAB_CONTENT, ] ); if ( ! empty( $config['content']['image_links_section']['images_max'] ) ) { $this->add_control( 'image_links_alert', [ 'type' => Controls_Manager::ALERT, 'alert_type' => 'info', 'content' => sprintf( __( 'Add up to %d Images', 'elementor' ), $config['content']['image_links_section']['images_max'] ), ] ); } $this->add_icons_per_row_control( 'image_links_per_row', [ '1' => '1', '2' => '2', '3' => '3', ], '2', esc_html__( 'Images Per Row', 'elementor' ), '--e-link-in-bio-image-links-columns', ); $repeater = new Repeater(); $repeater->add_control( 'image_links_image', [ 'label' => esc_html__( 'Choose Image', 'elementor' ), 'type' => Controls_Manager::MEDIA, 'label_block' => true, 'default' => [ 'url' => Utils::get_placeholder_image_src(), ], ] ); $repeater->add_control( 'image_links_url', [ 'label' => esc_html__( 'Link', 'elementor' ), 'type' => Controls_Manager::URL, 'dynamic' => [ 'active' => true, ], 'autocomplete' => true, 'label_block' => true, 'placeholder' => esc_html__( 'Paste URL or type', 'elementor' ), 'default' => [ 'is_external' => true, ], ], ); $this->add_control( 'image_links', [ 'type' => Controls_Manager::REPEATER, 'max_items' => $config['content']['image_links_section']['images_max'] ?? 0, 'fields' => $repeater->get_controls(), 'prevent_empty' => true, 'button_text' => esc_html__( 'Add item', 'elementor' ), 'default' => $config['content']['image_links_section']['images_repeater_defaults'] ?? [], ] ); $this->end_controls_section(); } protected function add_cta_controls() { $config = static::get_configuration(); if ( empty( $config['content']['cta_section'] ) ) { return; } $this->start_controls_section( 'cta_section', [ 'label' => esc_html__( 'CTA Link Buttons', 'elementor' ), 'tab' => Controls_Manager::TAB_CONTENT, ] ); if ( ! empty( $config['content']['cta_section']['cta_max'] ) ) { $this->add_control( 'cta_section_alert', [ 'type' => Controls_Manager::ALERT, 'alert_type' => 'info', 'content' => sprintf( __( 'Add up to %d CTA links', 'elementor' ), $config['content']['cta_section']['cta_max'] ), ] ); } $repeater = new Repeater(); $repeater->add_control( 'cta_link_text', [ 'label' => esc_html__( 'Text', 'elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'label_block' => true, 'default' => esc_html__( 'CTA link', 'elementor' ), 'placeholder' => esc_html__( 'Enter link text', 'elementor' ), ], ); if ( $config['content']['cta_section']['cta_has_image'] ) { $repeater->add_control( 'cta_link_image', [ 'label' => esc_html__( 'Choose Image', 'elementor' ), 'type' => Controls_Manager::MEDIA, 'label_block' => true, 'default' => [ 'url' => Utils::get_placeholder_image_src(), ], ] ); } $repeater->add_control( 'cta_link_type', [ 'label' => esc_html__( 'Link Type', 'elementor' ), 'type' => Controls_Manager::SELECT, 'groups' => [ [ 'label' => '', 'options' => Social_Network_Provider::get_social_networks_text( [ Social_Network_Provider::URL, Social_Network_Provider::FILE_DOWNLOAD, ] ), ], [ 'label' => ' --', 'options' => Social_Network_Provider::get_social_networks_text( [ Social_Network_Provider::EMAIL, Social_Network_Provider::TELEPHONE, Social_Network_Provider::MESSENGER, Social_Network_Provider::WAZE, Social_Network_Provider::WHATSAPP, ] ), ], ], 'default' => Social_Network_Provider::URL, ], ); $repeater->add_control( 'cta_link_file', [ 'label' => esc_html__( 'Choose File', 'elementor' ), 'type' => Controls_Manager::MEDIA, 'label_block' => true, 'media_type' => [ 'application/pdf' ], 'condition' => [ 'cta_link_type' => [ Social_Network_Provider::FILE_DOWNLOAD, ], ], 'ai' => [ 'active' => false, ], ], ); $repeater->add_control( 'cta_link_url', [ 'label' => esc_html__( 'Link', 'elementor' ), 'type' => Controls_Manager::URL, 'dynamic' => [ 'active' => true, ], 'autocomplete' => true, 'label_block' => true, 'condition' => [ 'cta_link_type' => [ Social_Network_Provider::URL, ], ], 'placeholder' => esc_html__( 'Enter your link', 'elementor' ), 'default' => [ 'is_external' => true, ], ], ); $repeater->add_control( 'cta_link_mail', [ 'label' => esc_html__( 'Mail', 'elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'label_block' => true, 'condition' => [ 'cta_link_type' => [ Social_Network_Provider::EMAIL, ], ], 'placeholder' => esc_html__( 'Enter your email', 'elementor' ), ], ); $repeater->add_control( 'cta_link_mail_subject', [ 'label' => esc_html__( 'Subject', 'elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'label_block' => true, 'condition' => [ 'cta_link_type' => [ Social_Network_Provider::EMAIL, ], ], 'placeholder' => esc_html__( 'Subject', 'elementor' ), ], ); $repeater->add_control( 'cta_link_mail_body', [ 'label' => esc_html__( 'Message', 'elementor' ), 'type' => Controls_Manager::TEXTAREA, 'dynamic' => [ 'active' => true, ], 'label_block' => true, 'condition' => [ 'cta_link_type' => [ Social_Network_Provider::EMAIL, ], ], 'placeholder' => esc_html__( 'Message', 'elementor' ), ], ); $repeater->add_control( 'cta_link_number', [ 'label' => esc_html__( 'Number', 'elementor' ), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'label_block' => true, 'condition' => [ 'cta_link_type' => [ Social_Network_Provider::TELEPHONE, Social_Network_Provider::WHATSAPP, ], ], 'placeholder' => esc_html__( 'Enter your number', 'elementor' ), ], ); $repeater->add_control( 'cta_link_location', [ 'label' => esc_html__( 'Location', 'elemen