@ -1868,6 +1882,8 @@ Only <i class="far fa-square"></i> will be displayed if a label is not specified
<p>An <code>options</code> is an array of String type for the options which as actually <ahref="https://en.cppreference.com/w/cpp/container/vector">std::vector</a> for an HTML <codeclass="codehilite"><spanstyle="color: #f8f8f2"><</span><spanstyle="color: #f92672">option</span><spanstyle="color: #f8f8f2">></span></code> tag. It is an initialization list can be used. The option tags will be generated from each entry in the options, the amount of which is the same as the number of items in an <code>options</code>.</p>
<p>A <code>label</code> is an optional string. A label is always arranged on the left side of the drop-down list. Specification of a label will generate an HTML <codeclass="codehilite"><spanstyle="color: #f8f8f2"><</span><spanstyle="color: #f92672">label</span><spanstyle="color: #f8f8f2">></span></code> tag with an id attribute. The select tag and the label are connected by the id attribute.</p>
<p>AutoConnectSubmit generates an HTML <codeclass="codehilite"><spanstyle="color: #f8f8f2"><</span><spanstyle="color: #f92672">input</span><spanstyle="color: #a6e22e">type</span><spanstyle="color: #f92672">=</span><spanstyle="color: #e6db74">"button"</span><spanstyle="color: #f8f8f2">></span></code> tag attached <codeclass="codehilite">onclick</code> attribute. The native code of the <codeclass="codehilite">onclick</code> attribute is the submission of the form with the <strong>POST</strong> method.</p>
@ -1148,7 +1148,7 @@ AutoConnectElements contained in AutoConnectAux object are uniquely identified b
</pre></div>
<h2id="loading-saving-autoconnectelements-with-json">Loading & saving AutoConnectElements with JSON<aclass="headerlink"href="#loading-saving-autoconnectelements-with-json"title="Permanent link">¶</a></h2>
<p>AutoConnect supports reading the custom Web page definitions written in JSON and also supports loading and saving of AutoConnectElements. In both cases, the target object is a <ahref="acjson.html">JSON document for AutoConnect</a>. However, it can not save all AutoConnectElements contained in the page as a custom Web page. (ie. AutoConnectAux)</p>
<p>AutoConnect supports reading the custom Web page definitions written in JSON and also supports loading and saving of AutoConnectAux or AutoConnectElements. In both cases, the target object is a <ahref="acjson.html">JSON document for AutoConnect</a>. However, it can not save all AutoConnectElements contained in the page as a custom Web page. (ie. AutoConnectAux)</p>
<p><imgsrc="images/ac_load_save.svg"></p>
<h3id="loading-autoconnectaux-autoconnectelements-with-json"><iclass="fa fa-upload"></i> Loading AutoConnectAux & AutoConnectElements with JSON<aclass="headerlink"href="#loading-autoconnectaux-autoconnectelements-with-json"title="Permanent link">¶</a></h3>
<p>To load a JSON document as AutoConnectAux use the <ahref="api.html#load"><strong>AutoConnect::load</strong></a> function and load the JSON document of each AutoConnectElement using the <ahref="apiaux.html#loadelement"><strong>AutoConnectAux::loadElement</strong></a> function. Although the functions of both are similar, the structure of the target JSON document is different.</p>
@ -1216,7 +1216,7 @@ AutoConnectElements contained in AutoConnectAux object are uniquely identified b
</pre></div>
<h3id="saving-autoconnectelements-with-json"><iclass="fa fa-download"></i> Saving AutoConnectElements with JSON<aclass="headerlink"href="#saving-autoconnectelements-with-json"title="Permanent link">¶</a></h3>
<p>To save the AutoConnectElement as a JSON document, use the <ahref="apiaux.html#saveelement">AutoConnectAux::saveElement</a> function. It serializes the contents of the object based on the type of the AutoConnectElement. You can persist a serialized AutoConnectElements as a JSON document to a stream.</p>
<p>To save the AutoConnectAux or the AutoConnectElement as a JSON document, use the <ahref="apiaux.html#saveelement">AutoConnectAux::saveElement</a> function. It serializes the contents of the object based on the type of the AutoConnectElement. You can persist a serialized AutoConnectElements as a JSON document to a stream.</p>
<divclass="codehilite"style="background: #272822"><prestyle="line-height: 125%"><span></span><spanstyle="color: #75715e">// Open a parameter file on the SPIFFS.</span>
@ -1252,6 +1252,7 @@ AutoConnectElements contained in AutoConnectAux object are uniquely identified b
<spanstyle="color: #f8f8f2">]</span>
</pre></div>
<p>Above JSON document can be loaded as it is into a custom Web page using the loadElement function. The loadElement function also loads the value of the element, so the saved value can be restored on the custom Web page.</p>
<h2id="custom-field-data-handling">Custom field data handling<aclass="headerlink"href="#custom-field-data-handling"title="Permanent link">¶</a></h2>
<p>A sketch can access variables of AutoConnectElements in the custom Web page. The value entered into the AutoConnectElements on the page is stored in the member variable of each element by AutoConnect whenever GET/POST transmission occurs. </p>
<p>The following diagram shows the flow of the input values of a custom Web page into a sketch and is the basis for actions to manipulate the values of custom Web pages using sketches.</p>
@ -1361,12 +1362,13 @@ AutoConnectElements contained in AutoConnectAux object are uniquely identified b
@ -1385,7 +1387,7 @@ AutoConnectElements contained in AutoConnectAux object are uniquely identified b
</pre></div>
<p>The above example handles in the handler for the values of a custom Web page. An <ahref="api.html#on">AutoConnect::on</a> function registers a handler for the AutoConnectAux page of the specified uri. The argument of the custom Web page handler is an AutoConnectAux of the page itself and the <ahref="https://github.com/Hieromon/PageBuilder#arguments-of-invoked-user-function">PageArgument</a> object.</p>
<p>To retrieve the values entered in a custom Web page you need to access the AutoConnectElement of the page that caused the request to this page and to do this, you use the <ahref="api.html#where">AutoConnect::where</a> function. The <code>AutoConnect::where</code> function returns a pointer to the AutoConnectAux object of the custom Web page that caused the HTTP request.</p>
<p>To retrieve the values entered in a custom Web page you need to access the AutoConnectElement of the page that caused the request to this page and to do this, you use the <ahref="api.html#where">AutoConnect::where</a> function. The <code>AutoConnect::where</code> function returns an uri string of the AutoConnectAux object of the custom Web page that caused the HTTP request.</p>
<divclass="admonition note">
<pclass="admonition-title">The where() function is available for only AutoConnectAux.</p>
<p>The <code>AutoConnect::where</code> function is available only for the AutoConnectAux object. It is invalid for HTTP requests from individual pages registered with the <strong>on</strong> handler of ESP8266WebServer/WebServer for ESP32. In other words, the <code>AutoConnect::where</code> function only returns the last AutoConnecAux page called.</p>
Returns a pointer to the AutoConnectAux object of the custom Web page that caused the request to the page.<br>
Returns an uri string of the AutoConnectAux uri object of the custom Web page that caused the request to the page.<br>
AutoConnect identifies the URI (ie. the referrer URI) that caused the request each time from the client occurs and will save the URI If the request source is a custom Web page of AutoConnectAux. The <strong>where</strong> function returns a pointer of AutoConnectAux which is a URI of a least recent request from the custom Web page.<br>
This function is provided to access the fields (ie. the AutoConnectElements) with a custom Web page handler of a page and is available only for request source that is the custom Web pages. It is invalid for HTTP requests from individual pages registered with the <strong>on</strong> handler of ESP8266WebServer/WebServer for ESP32. In other words, this function only returns the AutoConnecAux page which is a least recently displayed.
<dlclass="apidl">
<dt><strong>Return value</strong></dt>
<dd>A pointer to the AutoConnectAux that caused the request the page.</dd>
<dd>An uri string of the AutoConnectAux that caused the request the page.</dd>
</dl></p>
<p>The <strong>where</strong> function usage is described in the section <ahref="achandling.html#where-to-pick-up-the-values"><em>Where to pick up the values</em></a>.</p>
@ -996,7 +996,7 @@ Add an element to the AutoConnectAux. An added element is displayed on the custo
<dlclass="apidl">
<dt><strong>Parameters</strong></dt>
<dd><spanclass="apidef">addon</span><spanclass="apidesc">Reference of AutoConnectElements. Specifies one of the AutoConnectElements classes.</span></dd>
<dd><spanclass="apidef">addons</span><spanclass="apidesc">An array list of reference of AutoConnectElements. An<ahref="https://en.cppreference.com/w/cpp/language/list_initialization">list initialization</a> of the <ahref="https://en.cppreference.com/w/cpp/container/vector">std::vector</a> can be used for the addons parameter cause the actual definition of type <strong>AutoConnectElementVT</strong> is <code>std::vector<std::reference_wrapper<AutoConnectElement>></code>.</span></dd>
<dd><spanclass="apidef">addons</span><spanclass="apidesc">An array list of reference of AutoConnectElements. The<ahref="https://en.cppreference.com/w/cpp/language/list_initialization">list initialization</a> with braced-init-list of the <ahref="https://en.cppreference.com/w/cpp/container/vector">std::vector</a> can be used for the addons parameter cause the actual definition of type <strong>AutoConnectElementVT</strong> is <code>std::vector<std::reference_wrapper<AutoConnectElement>></code>.</span></dd>
Load specified element from JSON document into AutoConnectAux. The JSON document specified by the loadElement function must be the <ahref="acjson.html#json-object-for-autoconnectelements">AutoConnectElement document structure</a>. When loading from a JSON document that describes multiple elements, its description must be an array syntax.
<dlclass="apidl">
<dt><strong>Parameters</strong></dt>
@ -1070,6 +1076,7 @@ Load specified element from JSON document into AutoConnectAux. The JSON document
<li>Stream : An entity that inherits stream class, generally SPIFFS or SD.
</span></dd>
<dd><spanclass="apidef">name</span><spanclass="apidesc">Specifies the name to be load. If the name is not specified, the loadElement function will load all elements contained in the JSON document.</span></dd>
<dd><spanclass="apidef">names</span><spanclass="apidesc"> Spefifies an array list of String indicating the name of the element to be loaded. The <ahref="https://en.cppreference.com/w/cpp/language/list_initialization">list initialization</a> with braced-init-list of the <ahref="https://en.cppreference.com/w/cpp/container/vector">std::vector</a> can be used.</span></dd>
@ -1180,6 +1187,10 @@ Write elements of AutoConnectAux to the stream. The saveElement function outputs
<pclass="admonition-title">The output format is pretty</p>
<p>The saveElement function outputs a prettified JSON document.</p>
</div>
<divclass="admonition info">
<pclass="admonition-title">It is not complementary with loadElement</p>
<p>The saveElement function which missing the names parameter without name list to be saved that saves an entire AutoConnectAux element, not just AutoConnectElements. Its saved JSON document is not a complementary input to the loadElement function. The JSON document describing AutoConnectAux saved without the names parameter must be loaded by the <ahref="apiaux.html#load">AutoConnectAux::load</a> function or <ahref="api.html#load">AutoConnect::load</a> function.</p>
@ -2586,7 +2628,7 @@ Evaluate the pattern as a regexp and return whether value matches. Always return
<dlclass="apidl">
<dt><strong>Parameters</strong></dt>
<dd><spanclass="apidef">name</span><spanclass="apidesc">The element name.</span></dd>
<dd><spanclass="apidef">values</span><spanclass="apidesc">An array of values of the radio buttons. Specifies an<ahref="https://en.cppreference.com/w/cpp/container/vector">std::vector</a> object.</span></dd>
<dd><spanclass="apidef">values</span><spanclass="apidesc">An array of values of the radio buttons. Specifies a <ahref="https://en.cppreference.com/w/cpp/container/vector">std::vector</a> object.</span></dd>
<dd><spanclass="apidef">name</span><spanclass="apidesc">The element name.</span></dd>
<dd><spanclass="apidef">options</span><spanclass="apidesc">An array of options of the select element. Specifies an<ahref="https://en.cppreference.com/w/cpp/container/vector">std::vector</a> object.</span></dd>
<dd><spanclass="apidef">options</span><spanclass="apidesc">An array of options of the select element. Specifies a <ahref="https://en.cppreference.com/w/cpp/container/vector">std::vector</a> object.</span></dd>
<dd><spanclass="apidef">selected</span><spanclass="apidesc">An option should be pre-selected when the page loads.</span></dd>
</dl></p>
<h3id="public-member-variables_6"><iclass="fa fa-code"></i> Public member variables<aclass="headerlink"href="#public-member-variables_6"title="Permanent link">¶</a></h3>
<p>A <code>selected</code> is an optional value. Specifies 1-based index value of an options array that an option should be pre-selected when the page loads.
<h3id="public-member-functions_6"><iclass="fa fa-code"></i> Public member functions<aclass="headerlink"href="#public-member-functions_6"title="Permanent link">¶</a></h3>
<h4id="098-may-3-2019">[0.9.8] May 3, 2019<aclass="headerlink"href="#098-may-3-2019"title="Permanent link">¶</a></h4>
<ul>
<li>Supports ArduinoJson 6.9.1 or later.</li>
<li>Supports allocating JsonDocument buffer to PSRAM on ESP32 with ArduinoJson 6.10.0 or later.</li>
<li>Supports <ahref="apiaux.html#operator"><strong>operator<code>[]</code></strong></a> as a shortcut for AutoConnectAux::getElement function.</li>
<li>Supports <ahref="apielements.html#ast62"><strong>AutoConnectElement::as<T></strong></a> function to easily coding for conversion from an AutoConnectElement to an actual type.</li>
<li>Supports new element type <ahref="acelements.html#autoconnectfile"><strong>AutoConnectFile</strong></a> and built-in file uploader.</li>
<li>Supports a <ahref="acelements.html#format"><strong>format attribute</strong></a> with the AutoConnectText element.</li>
<li>Fixed blank page responds with Configure new.</li>
<li>Supports a <ahref="acelements.html#format"><strong>format</strong></a> attribute with the AutoConnectText element.</li>
<li>Supports a <ahref="acelements.html#selected"><strong>selected</strong></a> attribute with the AutoConnectSelect element.</li>
<li>Supports multiple element loading with <ahref="apiaux.html#loadelement">AutoConnectAux::loadElement</a>.</li>
<li>Changed menu labels placement in source files structure.</li>
<li>Changed API interface of <ahref="api.html#where">**AutoConnect::where</a> function.</li>
<li>Fixed blank page responds with Configure new.</li>
<li>Fixed loading elements value missing.</li>
<li>Fixed losing elements in saveElement with ArduinoJson V6.</li>
<li>Fixed compile error with older than ESP8266 core 2.5.0.</li>
@ -1095,7 +1095,7 @@ For AutoConnect menus to work properly, call <a href="api.html#handlerequest"><e
<p>To avoid this problem, try <ahref="#1-change-wifi-channel">changing the channel</a>.</p>
<p>ESP32 hardware equips only one RF circuitry for WiFi signal. At the AP_STA mode, ESP32 as an AP attempts connect to another AP on another channel while keeping the connection with the station then the channel switching will occur causes the station may be disconnected. But it may not be just a matter of channel switching causes ESP8266 has the same constraints too. It may be a problem with AutoConnect or the arduino core or SDK issue. This problem will persist until a specific solution.</p>
<h2id="does-not-appear-esp8266ap-in-smartphone"><iclass="fa fa-question-circle"></i> Does not appear esp8266ap in smartphone.<aclass="headerlink"href="#does-not-appear-esp8266ap-in-smartphone"title="Permanent link">¶</a></h2>
<p>Maybe it is successfully connected at the <strong>first WiFi.begin</strong>. ESP8266 remembers the last SSID successfully connected and will use at the next. It means SoftAP will only start up when the first <em>WiFi.begin()</em> fails.</p>
<p>Maybe it is successfully connected at the <ahref="lsbegin.html#autoconnectbegin-logic-sequence"><strong>first WiFi.begin</strong></a>. ESP8266 remembers the last SSID successfully connected and will use at the next. It means SoftAP will only start up when the first <em>WiFi.begin()</em> fails.</p>
<p>The saved SSID would be cleared by <em>WiFi.disconnect()</em> with WIFI_STA mode. If you do not want automatic reconnection, you can erase the memorized SSID with the following simple sketch.</p>
@ -314,6 +314,10 @@ An `options` is an array of String type for the options which as actually [std::
A `label` is an optional string. A label is always arranged on the left side of the drop-down list. Specification of a label will generate an HTML `#!html <label>` tag with an id attribute. The select tag and the label are connected by the id attribute.
### <iclass="fa fa-caret-right"></i> selected
A `selected` is an optional value. Specifies that an option should be pre-selected when the page loads.
## AutoConnectSubmit
AutoConnectSubmit generates an HTML `#!html <input type="button">` tag attached `#!html onclick` attribute. The native code of the `#!html onclick` attribute is the submission of the form with the **POST** method.
## Loading & saving AutoConnectElements with JSON
AutoConnect supports reading the custom Web page definitions written in JSON and also supports loading and saving of AutoConnectElements. In both cases, the target object is a [JSON document for AutoConnect](acjson.md). However, it can not save all AutoConnectElements contained in the page as a custom Web page. (ie. AutoConnectAux)
AutoConnect supports reading the custom Web page definitions written in JSON and also supports loading and saving of AutoConnectAux or AutoConnectElements. In both cases, the target object is a [JSON document for AutoConnect](acjson.md). However, it can not save all AutoConnectElements contained in the page as a custom Web page. (ie. AutoConnectAux)
### <iclass="fa fa-download"></i> Saving AutoConnectElements with JSON
To save the AutoConnectElement as a JSON document, use the [AutoConnectAux::saveElement](apiaux.md#saveelement) function. It serializes the contents of the object based on the type of the AutoConnectElement. You can persist a serialized AutoConnectElements as a JSON document to a stream.
To save the AutoConnectAux or the AutoConnectElement as a JSON document, use the [AutoConnectAux::saveElement](apiaux.md#saveelement) function. It serializes the contents of the object based on the type of the AutoConnectElement. You can persist a serialized AutoConnectElements as a JSON document to a stream.
```cpp
// Open a parameter file on the SPIFFS.
@ -263,6 +263,8 @@ The example above saves `server` and `period` elements from the AutoConnectAux o
]
```
Above JSON document can be loaded as it is into a custom Web page using the loadElement function. The loadElement function also loads the value of the element, so the saved value can be restored on the custom Web page.
## Custom field data handling
A sketch can access variables of AutoConnectElements in the custom Web page. The value entered into the AutoConnectElements on the page is stored in the member variable of each element by AutoConnect whenever GET/POST transmission occurs.
The above example handles in the handler for the values of a custom Web page. An [AutoConnect::on](api.md#on) function registers a handler for the AutoConnectAux page of the specified uri. The argument of the custom Web page handler is an AutoConnectAux of the page itself and the [PageArgument](https://github.com/Hieromon/PageBuilder#arguments-of-invoked-user-function) object.
To retrieve the values entered in a custom Web page you need to access the AutoConnectElement of the page that caused the request to this page and to do this, you use the [AutoConnect::where](api.md#where) function. The `AutoConnect::where` function returns a pointer to the AutoConnectAux object of the custom Web page that caused the HTTP request.
To retrieve the values entered in a custom Web page you need to access the AutoConnectElement of the page that caused the request to this page and to do this, you use the [AutoConnect::where](api.md#where) function. The `AutoConnect::where` function returns an uri string of the AutoConnectAux object of the custom Web page that caused the HTTP request.
!!! note "The where() function is available for only AutoConnectAux."
The `AutoConnect::where` function is available only for the AutoConnectAux object. It is invalid for HTTP requests from individual pages registered with the **on** handler of ESP8266WebServer/WebServer for ESP32. In other words, the `AutoConnect::where` function only returns the last AutoConnecAux page called.
@ -296,14 +296,14 @@ Register the handler function for undefined URL request detected.
### <iclass="fa fa-caret-right"></i> where
```cpp
AutoConenctAux& where(void)
String where(void)
```
Returns a pointer to the AutoConnectAux object of the custom Web page that caused the request to the page.<br>
Returns an uri string of the AutoConnectAux uri object of the custom Web page that caused the request to the page.<br>
AutoConnect identifies the URI (ie. the referrer URI) that caused the request each time from the client occurs and will save the URI If the request source is a custom Web page of AutoConnectAux. The **where** function returns a pointer of AutoConnectAux which is a URI of a least recent request from the custom Web page.<br>
This function is provided to access the fields (ie. the AutoConnectElements) with a custom Web page handler of a page and is available only for request source that is the custom Web pages. It is invalid for HTTP requests from individual pages registered with the **on** handler of ESP8266WebServer/WebServer for ESP32. In other words, this function only returns the AutoConnecAux page which is a least recently displayed.
<dlclass="apidl">
<dt>**Return value**</dt>
<dd>A pointer to the AutoConnectAux that caused the request the page.</dd>
<dd>An uri string of the AutoConnectAux that caused the request the page.</dd>
</dl>
The **where** function usage is described in the section [*Where to pick up the values*](achandling.md#where-to-pick-up-the-values).
@ -39,7 +39,7 @@ Add an element to the AutoConnectAux. An added element is displayed on the custo
<dlclass="apidl">
<dt>**Parameters**</dt>
<dd><spanclass="apidef">addon</span><spanclass="apidesc">Reference of AutoConnectElements. Specifies one of the AutoConnectElements classes.</span></dd>
<dd><spanclass="apidef">addons</span><spanclass="apidesc">An array list of reference of AutoConnectElements. An [list initialization](https://en.cppreference.com/w/cpp/language/list_initialization) of the [std::vector](https://en.cppreference.com/w/cpp/container/vector) can be used for the addons parameter cause the actual definition of type **AutoConnectElementVT** is `std::vector<std::reference_wrapper<AutoConnectElement>>`.</span></dd>
<dd><spanclass="apidef">addons</span><spanclass="apidesc">An array list of reference of AutoConnectElements. The [list initialization](https://en.cppreference.com/w/cpp/language/list_initialization) with braced-init-list of the [std::vector](https://en.cppreference.com/w/cpp/container/vector) can be used for the addons parameter cause the actual definition of type **AutoConnectElementVT** is `std::vector<std::reference_wrapper<AutoConnectElement>>`.</span></dd>
</dl>
### <iclass="fa fa-caret-right"></i> getElement
@ -115,11 +115,20 @@ Load all AutoConnectElements elements from JSON document into AutoConnectAux as
bool loadElement(const String& in, const String& name = String(""))
```
```cpp
bool loadElement(const String& in, std::vector<String> const& names)
```
```cpp
bool loadElement(const __FlashStringHelper* in, const String& name = String(""))
```
```cpp
bool loadElement(const __FlashStringHelper* in, std::vector<String> const& names)
```
```cpp
bool loadElement(Stream& in, const String& name = String(""))
```
```cpp
bool loadElement(Stream& in, std::vector<String> const& names)
```
Load specified element from JSON document into AutoConnectAux. The JSON document specified by the loadElement function must be the [AutoConnectElement document structure](acjson.md#json-object-for-autoconnectelements). When loading from a JSON document that describes multiple elements, its description must be an array syntax.
<dlclass="apidl">
<dt>**Parameters**</dt>
@ -130,6 +139,7 @@ Load specified element from JSON document into AutoConnectAux. The JSON document
- Stream : An entity that inherits stream class, generally SPIFFS or SD.
</span></dd>
<dd><spanclass="apidef">name</span><spanclass="apidesc">Specifies the name to be load. If the name is not specified, the loadElement function will load all elements contained in the JSON document.</span></dd>
<dd><spanclass="apidef">names</span><spanclass="apidesc"> Spefifies an array list of String indicating the name of the element to be loaded. The [list initialization](https://en.cppreference.com/w/cpp/language/list_initialization) with braced-init-list of the [std::vector](https://en.cppreference.com/w/cpp/container/vector) can be used.</span></dd>
@ -243,6 +253,9 @@ Write elements of AutoConnectAux to the stream. The saveElement function outputs
!!! note "The output format is pretty"
The saveElement function outputs a prettified JSON document.
!!! Info "It is not complementary with loadElement"
The saveElement function which missing the names parameter without name list to be saved that saves an entire AutoConnectAux element, not just AutoConnectElements. Its saved JSON document is not a complementary input to the loadElement function. The JSON document describing AutoConnectAux saved without the names parameter must be loaded by the [AutoConnectAux::load](apiaux.md#load) function or [AutoConnect::load](api.md#load) function.
<dd><spanclass="apidef">name</span><spanclass="apidesc">The element name.</span></dd>
<dd><spanclass="apidef">values</span><spanclass="apidesc">An array of values of the radio buttons. Specifies an [std::vector](https://en.cppreference.com/w/cpp/container/vector) object.</span></dd>
<dd><spanclass="apidef">values</span><spanclass="apidesc">An array of values of the radio buttons. Specifies a [std::vector](https://en.cppreference.com/w/cpp/container/vector) object.</span></dd>
<dd><spanclass="apidef">name</span><spanclass="apidesc">The element name.</span></dd>
<dd><spanclass="apidef">options</span><spanclass="apidesc">An array of options of the select element. Specifies an [std::vector](https://en.cppreference.com/w/cpp/container/vector) object.</span></dd>
<dd><spanclass="apidef">options</span><spanclass="apidesc">An array of options of the select element. Specifies a [std::vector](https://en.cppreference.com/w/cpp/container/vector) object.</span></dd>
- Supports allocating JsonDocument buffer to PSRAM on ESP32 with ArduinoJson 6.10.0 or later.
- Supports [**operator`[]`**](apiaux.md#operator) as a shortcut for AutoConnectAux::getElement function.
- Supports [**AutoConnectElement::as<T\>**](apielements.md#ast62) function to easily coding for conversion from an AutoConnectElement to an actual type.
- Supports new element type [**AutoConnectFile**](acelements.md#autoconnectfile) and built-in file uploader.
- Supports a [**format attribute**](acelements.md#format) with the AutoConnectText element.
- Fixed blank page responds with Configure new.
- Supports a [**format**](acelements.md#format) attribute with the AutoConnectText element.
- Supports a [**selected**](acelements.md#selected) attribute with the AutoConnectSelect element.
- Supports multiple element loading with [AutoConnectAux::loadElement](apiaux.md#loadelement).
- Changed menu labels placement in source files structure.
- Changed API interface of [**AutoConnect::where](api.md#where) function.
- Fixed blank page responds with Configure new.
- Fixed loading elements value missing.
- Fixed losing elements in saveElement with ArduinoJson V6.
- Fixed compile error with older than ESP8266 core 2.5.0.