Add htmax bundle; update package info
This commit is contained in:
@@ -3,11 +3,14 @@
|
|||||||
module Giraffe.Htmx.Common
|
module Giraffe.Htmx.Common
|
||||||
|
|
||||||
/// <summary>The version of htmx embedded in the package</summary>
|
/// <summary>The version of htmx embedded in the package</summary>
|
||||||
let HtmxVersion = "4.0.0-alpha8"
|
let HtmxVersion = "4.0.0-beta4"
|
||||||
|
|
||||||
/// <summary>The path for the provided htmx script</summary>
|
/// <summary>The path for the provided htmx script</summary>
|
||||||
let internal htmxLocalScript = $"/_content/Giraffe.Htmx.Common/htmx.min.js?ver={HtmxVersion}"
|
let internal htmxLocalScript = $"/_content/Giraffe.Htmx.Common/htmx.min.js?ver={HtmxVersion}"
|
||||||
|
|
||||||
|
/// <summary>The path for the provided htmax script</summary>
|
||||||
|
let internal htmaxLocalScript = $"/_content/Giraffe.Htmx.Common/htmax.min.js?ver={HtmxVersion}"
|
||||||
|
|
||||||
/// <summary>Serialize a list of key/value pairs to JSON (very rudimentary)</summary>
|
/// <summary>Serialize a list of key/value pairs to JSON (very rudimentary)</summary>
|
||||||
/// <param name="pairs">The key/value pairs to be serialized to JSON</param>
|
/// <param name="pairs">The key/value pairs to be serialized to JSON</param>
|
||||||
/// <returns>A string with the key/value pairs serialized to JSON</returns>
|
/// <returns>A string with the key/value pairs serialized to JSON</returns>
|
||||||
|
|||||||
Vendored
+1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -3,11 +3,15 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
|
<TargetFrameworks>net8.0;net9.0;net10.0</TargetFrameworks>
|
||||||
<VersionPrefix>4.0.0</VersionPrefix>
|
<VersionPrefix>4.0.0</VersionPrefix>
|
||||||
<VersionSuffix>alpha8</VersionSuffix>
|
<VersionSuffix>beta4</VersionSuffix>
|
||||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||||
<PackageReleaseNotes>Update htmx 4 to alpha8
|
<PackageReleaseNotes>Update htmx 4 to beta4
|
||||||
- [Common] Update provided htmx 4 to 4.0.0-alpha8
|
- [Common] Update provided htmx 4 to 4.0.0-beta4
|
||||||
- [View Engine] Updated script tags to pull htmx 4.0.0-alpha8
|
- [Common] Add htmax bundle to provided version
|
||||||
|
- [Server] Update HX-Target header to return tag and ID (similar to HX-Source)
|
||||||
|
- [Server] Add support for HX-Request-Type header
|
||||||
|
- [View Engine] Add hx-status attribute
|
||||||
|
- [View Engine] Updated script tags to pull htmx 4.0.0-beta4, added "max" bundle links for local and CDN
|
||||||
|
|
||||||
See package and prior alpha release READMEs; v2 to v4 is not an update-and-forget-it release
|
See package and prior alpha release READMEs; v2 to v4 is not an update-and-forget-it release
|
||||||
</PackageReleaseNotes>
|
</PackageReleaseNotes>
|
||||||
|
|||||||
+1
-1
@@ -6,7 +6,7 @@ open Giraffe.Htmx
|
|||||||
/// Test to ensure the version was updated
|
/// Test to ensure the version was updated
|
||||||
let version =
|
let version =
|
||||||
test "HtmxVersion is correct" {
|
test "HtmxVersion is correct" {
|
||||||
Expect.equal HtmxVersion "4.0.0-alpha8" "htmx version incorrect"
|
Expect.equal HtmxVersion "4.0.0-beta4" "htmx version incorrect"
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Tests for the HxSwap module
|
/// Tests for the HxSwap module
|
||||||
|
|||||||
+23
-2
@@ -731,18 +731,39 @@ let script =
|
|||||||
$"""<script src="/_content/Giraffe.Htmx.Common/htmx.min.js?ver={HtmxVersion}"></script>"""
|
$"""<script src="/_content/Giraffe.Htmx.Common/htmx.min.js?ver={HtmxVersion}"></script>"""
|
||||||
"Local script tag is incorrect"
|
"Local script tag is incorrect"
|
||||||
}
|
}
|
||||||
|
test "localMax succeeds" {
|
||||||
|
let html = RenderView.AsString.htmlNode Script.localMax
|
||||||
|
Expect.equal
|
||||||
|
html
|
||||||
|
$"""<script src="/_content/Giraffe.Htmx.Common/htmax.min.js?ver={HtmxVersion}"></script>"""
|
||||||
|
"Local script tag is incorrect"
|
||||||
|
}
|
||||||
test "cdnMinified succeeds" {
|
test "cdnMinified succeeds" {
|
||||||
let html = RenderView.AsString.htmlNode Script.cdnMinified
|
let html = RenderView.AsString.htmlNode Script.cdnMinified
|
||||||
Expect.equal
|
Expect.equal
|
||||||
html
|
html
|
||||||
$"""<script src="https://cdn.jsdelivr.net/npm/htmx.org@{HtmxVersion}/dist/htmx.min.js" integrity="sha384-hUj4cz/Dd2p+Dq0r8A6TAMS1u7gu2bTyisk8xCQX3nodazPP+fRmcAWJrTh4Ycwb" crossorigin="anonymous"></script>"""
|
$"""<script src="https://cdn.jsdelivr.net/npm/htmx.org@{HtmxVersion}/dist/htmx.min.js" integrity="sha384-aWZK1NtOs/aWb/+YZdTM8q2JkWEshlMc9mgZ189numT9bwFhyAyYEoO4nO/2dTXt" crossorigin="anonymous"></script>"""
|
||||||
"CDN minified script tag is incorrect"
|
"CDN minified script tag is incorrect"
|
||||||
}
|
}
|
||||||
test "cdnUnminified succeeds" {
|
test "cdnUnminified succeeds" {
|
||||||
let html = RenderView.AsString.htmlNode Script.cdnUnminified
|
let html = RenderView.AsString.htmlNode Script.cdnUnminified
|
||||||
Expect.equal
|
Expect.equal
|
||||||
html
|
html
|
||||||
$"""<script src="https://cdn.jsdelivr.net/npm/htmx.org@{HtmxVersion}/dist/htmx.js" integrity="sha384-CHKZYHwIgmpkwoWtoPaiFIiMxP1Up7yHcsZ2NeECzLxRTXCO0mqXlujZwdJgFsFC" crossorigin="anonymous"></script>"""
|
$"""<script src="https://cdn.jsdelivr.net/npm/htmx.org@{HtmxVersion}/dist/htmx.js" integrity="sha384-OFLRIZpuqI2wwFozxvDGcuF3TQ36ySMgp44WEthOiR4wFzRkhZbK72HFaBo2C3cx" crossorigin="anonymous"></script>"""
|
||||||
|
"CDN unminified script tag is incorrect"
|
||||||
|
}
|
||||||
|
test "cdnMaxMinified succeeds" {
|
||||||
|
let html = RenderView.AsString.htmlNode Script.cdnMaxMinified
|
||||||
|
Expect.equal
|
||||||
|
html
|
||||||
|
$"""<script src="https://cdn.jsdelivr.net/npm/htmx.org@{HtmxVersion}/dist/htmax.min.js" integrity="sha384-Qoqie5IRtOE79SDFFRSb/yKi+pkzpSnfjgwr1KksyP14OaHkLHar0KrLVxUwlsJF" crossorigin="anonymous"></script>"""
|
||||||
|
"CDN minified script tag is incorrect"
|
||||||
|
}
|
||||||
|
test "cdnMaxUnminified succeeds" {
|
||||||
|
let html = RenderView.AsString.htmlNode Script.cdnMaxUnminified
|
||||||
|
Expect.equal
|
||||||
|
html
|
||||||
|
$"""<script src="https://cdn.jsdelivr.net/npm/htmx.org@{HtmxVersion}/dist/htmax.js" integrity="sha384-gGi3Urue6ZkE4NrJCmXWIZkfNkrt1IrdP3fr0kb/v06GWg3V1RnD9Pg/Ul3qhtAK" crossorigin="anonymous"></script>"""
|
||||||
"CDN unminified script tag is incorrect"
|
"CDN unminified script tag is incorrect"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -1011,18 +1011,35 @@ module Script =
|
|||||||
/// <summary>Script tag to load the package-provided version of htmx</summary>
|
/// <summary>Script tag to load the package-provided version of htmx</summary>
|
||||||
let local = script [ _src htmxLocalScript ] []
|
let local = script [ _src htmxLocalScript ] []
|
||||||
|
|
||||||
|
/// <summary>Script tag to load the package-provided version of the htmx-plus-extensions bundle</summary>
|
||||||
|
let localMax = script [ _src htmaxLocalScript ] []
|
||||||
|
|
||||||
/// <summary>Script tag to load the minified version from jsdelivr.net</summary>
|
/// <summary>Script tag to load the minified version from jsdelivr.net</summary>
|
||||||
/// <remarks>Ensure <c>cdn.jsdelivr.net</c> is in your CSP <c>script-src</c> list (if applicable)</remarks>
|
/// <remarks>Ensure <c>cdn.jsdelivr.net</c> is in your CSP <c>script-src</c> list (if applicable)</remarks>
|
||||||
let cdnMinified =
|
let cdnMinified =
|
||||||
script [ _src "https://cdn.jsdelivr.net/npm/htmx.org@4.0.0-alpha8/dist/htmx.min.js"
|
script [ _src $"https://cdn.jsdelivr.net/npm/htmx.org@{HtmxVersion}/dist/htmx.min.js"
|
||||||
_integrity "sha384-hUj4cz/Dd2p+Dq0r8A6TAMS1u7gu2bTyisk8xCQX3nodazPP+fRmcAWJrTh4Ycwb"
|
_integrity "sha384-aWZK1NtOs/aWb/+YZdTM8q2JkWEshlMc9mgZ189numT9bwFhyAyYEoO4nO/2dTXt"
|
||||||
_crossorigin "anonymous" ] []
|
_crossorigin "anonymous" ] []
|
||||||
|
|
||||||
/// <summary>Script tag to load the unminified version from jsdelivr.net</summary>
|
/// <summary>Script tag to load the unminified version from jsdelivr.net</summary>
|
||||||
/// <remarks>Ensure <c>cdn.jsdelivr.net</c> is in your CSP <c>script-src</c> list (if applicable)</remarks>
|
/// <remarks>Ensure <c>cdn.jsdelivr.net</c> is in your CSP <c>script-src</c> list (if applicable)</remarks>
|
||||||
let cdnUnminified =
|
let cdnUnminified =
|
||||||
script [ _src "https://cdn.jsdelivr.net/npm/htmx.org@4.0.0-alpha8/dist/htmx.js"
|
script [ _src $"https://cdn.jsdelivr.net/npm/htmx.org@{HtmxVersion}/dist/htmx.js"
|
||||||
_integrity "sha384-CHKZYHwIgmpkwoWtoPaiFIiMxP1Up7yHcsZ2NeECzLxRTXCO0mqXlujZwdJgFsFC"
|
_integrity "sha384-OFLRIZpuqI2wwFozxvDGcuF3TQ36ySMgp44WEthOiR4wFzRkhZbK72HFaBo2C3cx"
|
||||||
|
_crossorigin "anonymous" ] []
|
||||||
|
|
||||||
|
/// <summary>Script tag to load the minified htmx-plus-extensions bundle from jsdelivr.net</summary>
|
||||||
|
/// <remarks>Ensure <c>cdn.jsdelivr.net</c> is in your CSP <c>script-src</c> list (if applicable)</remarks>
|
||||||
|
let cdnMaxMinified =
|
||||||
|
script [ _src $"https://cdn.jsdelivr.net/npm/htmx.org@{HtmxVersion}/dist/htmax.min.js"
|
||||||
|
_integrity "sha384-Qoqie5IRtOE79SDFFRSb/yKi+pkzpSnfjgwr1KksyP14OaHkLHar0KrLVxUwlsJF"
|
||||||
|
_crossorigin "anonymous" ] []
|
||||||
|
|
||||||
|
/// <summary>Script tag to load the unminified htmx-plus-extensions bundle from jsdelivr.net</summary>
|
||||||
|
/// <remarks>Ensure <c>cdn.jsdelivr.net</c> is in your CSP <c>script-src</c> list (if applicable)</remarks>
|
||||||
|
let cdnMaxUnminified =
|
||||||
|
script [ _src $"https://cdn.jsdelivr.net/npm/htmx.org@{HtmxVersion}/dist/htmax.js"
|
||||||
|
_integrity "sha384-gGi3Urue6ZkE4NrJCmXWIZkfNkrt1IrdP3fr0kb/v06GWg3V1RnD9Pg/Ul3qhtAK"
|
||||||
_crossorigin "anonymous" ] []
|
_crossorigin "anonymous" ] []
|
||||||
|
|
||||||
/// <summary>Script tag to load the minified version from jsdelivr.net</summary>
|
/// <summary>Script tag to load the minified version from jsdelivr.net</summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user