@dnncommunity/dnn-elements 0.24.0-beta.7 → 0.24.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/dnn-autocomplete.cjs.entry.js +5 -4
- package/dist/cjs/dnn-autocomplete.cjs.entry.js.map +1 -1
- package/dist/cjs/dnn-checkbox.cjs.entry.js +4 -1
- package/dist/cjs/dnn-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/dnn-chevron.cjs.entry.js +1 -1
- package/dist/cjs/dnn-collapsible.cjs.entry.js +1 -1
- package/dist/cjs/dnn-color-input.cjs.entry.js +14 -14
- package/dist/cjs/dnn-color-picker.cjs.entry.js +3 -3
- package/dist/cjs/dnn-dropzone.cjs.entry.js +9 -9
- package/dist/cjs/dnn-fieldset.cjs.entry.js +4 -4
- package/dist/cjs/dnn-image-cropper.cjs.entry.js +2 -2
- package/dist/cjs/dnn-input.cjs.entry.js +7 -7
- package/dist/cjs/dnn-modal.cjs.entry.js +2 -2
- package/dist/cjs/dnn-monaco-editor.cjs.entry.js +1 -1
- package/dist/cjs/dnn-permissions-grid.cjs.entry.js +10 -10
- package/dist/cjs/dnn-permissions-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/dnn-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/dnn-richtext.cjs.entry.js +2 -2
- package/dist/cjs/dnn-searchbox.cjs.entry.js +1 -1
- package/dist/cjs/dnn-select.cjs.entry.js +2 -2
- package/dist/cjs/dnn-sort-icon.cjs.entry.js +4 -4
- package/dist/cjs/dnn-tab_2.cjs.entry.js +3 -3
- package/dist/cjs/dnn-textarea.cjs.entry.js +3 -1
- package/dist/cjs/dnn-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/dnn-toggle.cjs.entry.js +2 -2
- package/dist/cjs/dnn-treeview-item.cjs.entry.js +2 -2
- package/dist/cjs/dnn-vertical-overflow-menu.cjs.entry.js +2 -2
- package/dist/cjs/dnn-vertical-splitview.cjs.entry.js +4 -4
- package/dist/cjs/dnn.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/dnn-autocomplete/dnn-autocomplete.js +5 -4
- package/dist/collection/components/dnn-autocomplete/dnn-autocomplete.js.map +1 -1
- package/dist/collection/components/dnn-checkbox/dnn-checkbox.js +14 -2
- package/dist/collection/components/dnn-checkbox/dnn-checkbox.js.map +1 -1
- package/dist/collection/components/dnn-chevron/dnn-chevron.js +1 -1
- package/dist/collection/components/dnn-collapsible/dnn-collapsible.js +1 -1
- package/dist/collection/components/dnn-color-input/dnn-color-input.js +14 -14
- package/dist/collection/components/dnn-color-picker/dnn-color-picker.js +3 -3
- package/dist/collection/components/dnn-dropzone/dnn-dropzone.js +9 -9
- package/dist/collection/components/dnn-fieldset/dnn-fieldset.js +4 -4
- package/dist/collection/components/dnn-image-cropper/dnn-image-cropper.js +2 -2
- package/dist/collection/components/dnn-input/dnn-input.js +7 -7
- package/dist/collection/components/dnn-modal/dnn-modal.js +2 -2
- package/dist/collection/components/dnn-monaco-editor/dnn-monaco-editor.js +1 -1
- package/dist/collection/components/dnn-permissions-grid/dnn-permissions-grid.css +1 -1
- package/dist/collection/components/dnn-permissions-grid/dnn-permissions-grid.js +9 -9
- package/dist/collection/components/dnn-permissions-grid/dnn-permissions-grid.js.map +1 -1
- package/dist/collection/components/dnn-progress-bar/dnn-progress-bar.js +1 -1
- package/dist/collection/components/dnn-richtext/dnn-richtext.js +2 -2
- package/dist/collection/components/dnn-searchbox/dnn-searchbox.js +1 -1
- package/dist/collection/components/dnn-select/dnn-select.js +2 -2
- package/dist/collection/components/dnn-sort-icon/dnn-sort-icon.js +4 -4
- package/dist/collection/components/dnn-tab/dnn-tab.js +2 -2
- package/dist/collection/components/dnn-tabs/dnn-tabs.js +1 -1
- package/dist/collection/components/dnn-textarea/dnn-textarea.js +3 -1
- package/dist/collection/components/dnn-textarea/dnn-textarea.js.map +1 -1
- package/dist/collection/components/dnn-toggle/dnn-toggle.js +2 -2
- package/dist/collection/components/dnn-treeview-item/dnn-treeview-item.js +2 -2
- package/dist/collection/components/dnn-vertical-overflow-menu/dnn-vertical-overflow-menu.js +2 -2
- package/dist/collection/components/dnn-vertical-splitview/dnn-vertical-splitview.js +4 -4
- package/dist/dnn/dnn.esm.js +1 -1
- package/dist/dnn/dnn.esm.js.map +1 -1
- package/dist/dnn/{p-6e54915d.entry.js → p-03d3f2b1.entry.js} +2 -2
- package/dist/dnn/{p-96c850a8.entry.js → p-15c86eb3.entry.js} +2 -2
- package/dist/dnn/{p-350e4008.entry.js → p-16db9c38.entry.js} +2 -2
- package/dist/dnn/p-27dc2d8f.entry.js +2 -0
- package/dist/dnn/p-27dc2d8f.entry.js.map +1 -0
- package/dist/dnn/p-45e1c385.entry.js +2 -0
- package/dist/dnn/{p-2486e9db.entry.js.map → p-45e1c385.entry.js.map} +1 -1
- package/dist/dnn/{p-4574844c.entry.js → p-52ae7b31.entry.js} +2 -2
- package/dist/dnn/{p-90dd4620.entry.js → p-576364af.entry.js} +2 -2
- package/dist/dnn/{p-07a78c58.entry.js → p-5a244627.entry.js} +2 -2
- package/dist/dnn/{p-70b71aeb.entry.js → p-5b8e0904.entry.js} +2 -2
- package/dist/dnn/{p-50b6bb3f.entry.js → p-6643b369.entry.js} +2 -2
- package/dist/dnn/{p-7c4bcd14.entry.js → p-6659a086.entry.js} +2 -2
- package/dist/dnn/{p-8564bc60.entry.js → p-672fb82d.entry.js} +2 -2
- package/dist/dnn/{p-61dfb826.entry.js → p-69d5f883.entry.js} +2 -2
- package/dist/dnn/p-6e2adf25.entry.js +2 -0
- package/dist/dnn/p-6e2adf25.entry.js.map +1 -0
- package/dist/dnn/{p-b96b7c4a.entry.js → p-73fddf11.entry.js} +2 -2
- package/dist/dnn/p-9a06ad79.entry.js +2 -0
- package/dist/dnn/p-a6982c8d.entry.js +2 -0
- package/dist/dnn/p-a6982c8d.entry.js.map +1 -0
- package/dist/dnn/{p-9ecfe643.entry.js → p-af925605.entry.js} +2 -2
- package/dist/dnn/{p-d7d6dffb.entry.js → p-bc1dd08b.entry.js} +2 -2
- package/dist/dnn/{p-21c5ef07.entry.js → p-cfbd1373.entry.js} +2 -2
- package/dist/dnn/{p-b553c159.entry.js → p-d67edea7.entry.js} +2 -2
- package/dist/dnn/{p-e23840d6.entry.js → p-dcf4505a.entry.js} +2 -2
- package/dist/dnn/p-ea2d6fd2.entry.js +2 -0
- package/dist/dnn/p-ea2d6fd2.entry.js.map +1 -0
- package/dist/dnn/{p-3b3475e0.entry.js → p-f107355e.entry.js} +2 -2
- package/dist/esm/dnn-autocomplete.entry.js +5 -4
- package/dist/esm/dnn-autocomplete.entry.js.map +1 -1
- package/dist/esm/dnn-checkbox.entry.js +4 -1
- package/dist/esm/dnn-checkbox.entry.js.map +1 -1
- package/dist/esm/dnn-chevron.entry.js +1 -1
- package/dist/esm/dnn-collapsible.entry.js +1 -1
- package/dist/esm/dnn-color-input.entry.js +14 -14
- package/dist/esm/dnn-color-picker.entry.js +3 -3
- package/dist/esm/dnn-dropzone.entry.js +9 -9
- package/dist/esm/dnn-fieldset.entry.js +4 -4
- package/dist/esm/dnn-image-cropper.entry.js +2 -2
- package/dist/esm/dnn-input.entry.js +7 -7
- package/dist/esm/dnn-modal.entry.js +2 -2
- package/dist/esm/dnn-monaco-editor.entry.js +1 -1
- package/dist/esm/dnn-permissions-grid.entry.js +10 -10
- package/dist/esm/dnn-permissions-grid.entry.js.map +1 -1
- package/dist/esm/dnn-progress-bar.entry.js +1 -1
- package/dist/esm/dnn-richtext.entry.js +2 -2
- package/dist/esm/dnn-searchbox.entry.js +1 -1
- package/dist/esm/dnn-select.entry.js +2 -2
- package/dist/esm/dnn-sort-icon.entry.js +4 -4
- package/dist/esm/dnn-tab_2.entry.js +3 -3
- package/dist/esm/dnn-textarea.entry.js +3 -1
- package/dist/esm/dnn-textarea.entry.js.map +1 -1
- package/dist/esm/dnn-toggle.entry.js +2 -2
- package/dist/esm/dnn-treeview-item.entry.js +2 -2
- package/dist/esm/dnn-vertical-overflow-menu.entry.js +2 -2
- package/dist/esm/dnn-vertical-splitview.entry.js +4 -4
- package/dist/esm/dnn.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/dnn-checkbox/dnn-checkbox.d.ts +2 -1
- package/dist/types/components/dnn-textarea/dnn-textarea.d.ts +1 -0
- package/dist/types/components.d.ts +12 -0
- package/package.json +1 -1
- package/dist/dnn/p-2486e9db.entry.js +0 -2
- package/dist/dnn/p-3d1d6321.entry.js +0 -2
- package/dist/dnn/p-3d1d6321.entry.js.map +0 -1
- package/dist/dnn/p-3d55d879.entry.js +0 -2
- package/dist/dnn/p-3d55d879.entry.js.map +0 -1
- package/dist/dnn/p-5b15b44a.entry.js +0 -2
- package/dist/dnn/p-b5241c09.entry.js +0 -2
- package/dist/dnn/p-b5241c09.entry.js.map +0 -1
- package/dist/dnn/p-ec753af4.entry.js +0 -2
- package/dist/dnn/p-ec753af4.entry.js.map +0 -1
- /package/dist/dnn/{p-6e54915d.entry.js.map → p-03d3f2b1.entry.js.map} +0 -0
- /package/dist/dnn/{p-96c850a8.entry.js.map → p-15c86eb3.entry.js.map} +0 -0
- /package/dist/dnn/{p-350e4008.entry.js.map → p-16db9c38.entry.js.map} +0 -0
- /package/dist/dnn/{p-4574844c.entry.js.map → p-52ae7b31.entry.js.map} +0 -0
- /package/dist/dnn/{p-90dd4620.entry.js.map → p-576364af.entry.js.map} +0 -0
- /package/dist/dnn/{p-07a78c58.entry.js.map → p-5a244627.entry.js.map} +0 -0
- /package/dist/dnn/{p-70b71aeb.entry.js.map → p-5b8e0904.entry.js.map} +0 -0
- /package/dist/dnn/{p-50b6bb3f.entry.js.map → p-6643b369.entry.js.map} +0 -0
- /package/dist/dnn/{p-7c4bcd14.entry.js.map → p-6659a086.entry.js.map} +0 -0
- /package/dist/dnn/{p-8564bc60.entry.js.map → p-672fb82d.entry.js.map} +0 -0
- /package/dist/dnn/{p-61dfb826.entry.js.map → p-69d5f883.entry.js.map} +0 -0
- /package/dist/dnn/{p-b96b7c4a.entry.js.map → p-73fddf11.entry.js.map} +0 -0
- /package/dist/dnn/{p-5b15b44a.entry.js.map → p-9a06ad79.entry.js.map} +0 -0
- /package/dist/dnn/{p-9ecfe643.entry.js.map → p-af925605.entry.js.map} +0 -0
- /package/dist/dnn/{p-d7d6dffb.entry.js.map → p-bc1dd08b.entry.js.map} +0 -0
- /package/dist/dnn/{p-21c5ef07.entry.js.map → p-cfbd1373.entry.js.map} +0 -0
- /package/dist/dnn/{p-b553c159.entry.js.map → p-d67edea7.entry.js.map} +0 -0
- /package/dist/dnn/{p-e23840d6.entry.js.map → p-dcf4505a.entry.js.map} +0 -0
- /package/dist/dnn/{p-3b3475e0.entry.js.map → p-f107355e.entry.js.map} +0 -0
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
const index = require('./index-97332e7c.js');
|
|
6
6
|
|
|
7
|
-
const dnnPermissionsGridCss = ":host{display:block}.add-role-row{display:flex;gap:1em;align-items:center;flex-wrap:wrap}.add-role-row label{margin-right:0.5em}.search-user{display:flex;gap:1em;margin-top:1em}.search-user .search-control{position:relative}.search-user .search-control dnn-collapsible{position:absolute;left:0;top:calc(100% - 2px);width:100%;box-shadow:0px 4px 4px}.search-user .search-control dnn-collapsible .dropdown{background-color:white;border:1px solid lightgray;display:flex;flex-direction:column}.search-user .search-control dnn-collapsible .dropdown button{background-color:transparent;border:none;border-bottom:1px solid lightgray;padding:0.25em;margin:0;text-align:left}table{border:1px solid lightgray;border-collapse:collapse;margin-top:1em}table thead{text-align:center}table thead tr{border-bottom:1px solid lightgray}table thead th{background-color:lightgray;padding:0.25em 0.5em}table thead th:first-child{border-right:1px solid lightgray}table tbody tr{border-bottom:1px dotted lightgray}table tbody tr th{text-align:left;border-right:1px solid lightgray;padding:0 0.5em}table tbody tr td{text-align:center}table tbody tr td
|
|
7
|
+
const dnnPermissionsGridCss = ":host{display:block}.add-role-row{display:flex;gap:1em;align-items:center;flex-wrap:wrap}.add-role-row label{margin-right:0.5em}.search-user{display:flex;gap:1em;margin-top:1em}.search-user .search-control{position:relative}.search-user .search-control dnn-collapsible{position:absolute;left:0;top:calc(100% - 2px);width:100%;box-shadow:0px 4px 4px}.search-user .search-control dnn-collapsible .dropdown{background-color:white;border:1px solid lightgray;display:flex;flex-direction:column}.search-user .search-control dnn-collapsible .dropdown button{background-color:transparent;border:none;border-bottom:1px solid lightgray;padding:0.25em;margin:0;text-align:left}table{border:1px solid lightgray;border-collapse:collapse;margin-top:1em}table thead{text-align:center}table thead tr{border-bottom:1px solid lightgray}table thead th{background-color:lightgray;padding:0.25em 0.5em}table thead th:first-child{border-right:1px solid lightgray}table tbody tr{border-bottom:1px dotted lightgray}table tbody tr th{text-align:left;border-right:1px solid lightgray;padding:0 0.5em}table tbody tr td{text-align:center}table tbody tr td label .hidden{display:none}table tbody tr td button{background-color:transparent;border:0;padding:0;margin:0;margin-right:1em}";
|
|
8
8
|
const DnnPermissionsGridStyle0 = dnnPermissionsGridCss;
|
|
9
9
|
|
|
10
10
|
const DnnPermissionsGrid = class {
|
|
@@ -116,12 +116,12 @@ const DnnPermissionsGrid = class {
|
|
|
116
116
|
return (index.h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, index.h("g", { fill: "none" }, index.h("path", { d: "M0 0h24v24H0V0z" }), index.h("path", { d: "M0 0h24v24H0V0z", opacity: ".87" })), index.h("path", { d: "M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z" })));
|
|
117
117
|
}
|
|
118
118
|
const checked = item == undefined ? "intermediate" : item.allowAccess ? "checked" : "unchecked";
|
|
119
|
-
return (index.h("dnn-checkbox", { "use-intermediate": true, checked: checked, onCheckedchange: e => this.handleRoleChanged(e.detail, rolePermission, permissionDefinition) }, index.h("div", { slot: "intermediateicon" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, index.h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), index.h("path", { d: "M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z" }))), index.h("div", { slot: "uncheckedicon" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, index.h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), index.h("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z" })))
|
|
119
|
+
return (index.h("label", null, index.h("span", { class: "hidden" }, permissionDefinition.permissionName), index.h("dnn-checkbox", { "use-intermediate": true, checked: checked, onCheckedchange: e => this.handleRoleChanged(e.detail, rolePermission, permissionDefinition) }, index.h("div", { slot: "intermediateicon" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, index.h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), index.h("path", { d: "M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z" }))), index.h("div", { slot: "uncheckedicon" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, index.h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), index.h("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z" }))))));
|
|
120
120
|
}
|
|
121
121
|
renderUserCheckBox(userPermission, permissionDefinition) {
|
|
122
122
|
const item = userPermission.permissions.filter(permission => permission.permissionId == permissionDefinition.permissionId)[0];
|
|
123
123
|
const checked = item == undefined ? "intermediate" : item.allowAccess ? "checked" : "unchecked";
|
|
124
|
-
return (index.h("dnn-checkbox", { "use-intermediate": true, checked: checked, onCheckedchange: e => this.handleUserChanged(e.detail, userPermission, permissionDefinition) }, index.h("div", { slot: "intermediateicon" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, index.h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), index.h("path", { d: "M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z" }))), index.h("div", { slot: "uncheckedicon" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, index.h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), index.h("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z" })))
|
|
124
|
+
return (index.h("label", null, index.h("span", { class: "hidden" }, permissionDefinition.permissionName), index.h("dnn-checkbox", { "use-intermediate": true, checked: checked, onCheckedchange: e => this.handleUserChanged(e.detail, userPermission, permissionDefinition) }, index.h("div", { slot: "intermediateicon" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, index.h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), index.h("path", { d: "M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z" }))), index.h("div", { slot: "uncheckedicon" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, index.h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), index.h("path", { d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z" }))))));
|
|
125
125
|
}
|
|
126
126
|
handleRoleChanged(checked, rolePermission, permissionDefinition) {
|
|
127
127
|
switch (checked) {
|
|
@@ -309,13 +309,13 @@ const DnnPermissionsGrid = class {
|
|
|
309
309
|
}
|
|
310
310
|
render() {
|
|
311
311
|
const filteredRoles = this.getRoles();
|
|
312
|
-
return (index.h(index.Host, { key: '
|
|
313
|
-
index.h("div", { key: '
|
|
314
|
-
index.h("dnn-button", { key: '
|
|
315
|
-
]), index.h("table", { key: '
|
|
316
|
-
index.h("button", { onClick: () => this.removeRole(rolePermission) }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, index.h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), index.h("path", { d: "M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z" })))))))), index.h("div", { key: '
|
|
317
|
-
index.h("dnn-button", { key: '
|
|
318
|
-
index.h("table", { key: '
|
|
312
|
+
return (index.h(index.Host, { key: 'cf72a4f914f45cc67dc2c3eda77f9edde7f60270', tabIndex: this.focused ? -1 : 0, onFocus: () => this.rolesDropdown.focus(), onBlur: () => this.rolesDropdown.blur() }, index.h("div", { key: '8c4ebce85c93f4f08c4ad24f0b6223de8dc6449c', class: "add-role-row" }, index.h("div", { key: '585768e943955c909194a25dba06a8b84ae4e7be', class: "dropdown" }, index.h("label", { key: 'e9823e0e553a3ae23384e79354696de2c649bea2' }, this.localResx.FilterByGroup, " :"), index.h("select", { key: '5a8cc2742a103bd024243708b18c069b43e70674', ref: el => this.rolesDropdown = el, onChange: e => this.handleRoleGroupChanged(e.target), onFocus: () => this.focused = true, onBlur: () => this.focused = false }, index.h("option", { key: 'daa1a622f34c7b08145b8486201ffaacbb129b78', value: -2, selected: this.selectedRoleGroupId == -2 }, this.localResx.AllRoles), index.h("option", { key: '039fb0a46c56712dccc0d76b3a8872ff8b2d06db', value: -1, selected: this.selectedRoleGroupId == -1 }, this.localResx.GlobalRoles), this.roleGroups.map(roleGroup => index.h("option", { value: roleGroup.id, selected: this.selectedRoleGroupId == roleGroup.id }, roleGroup.name)))), filteredRoles && filteredRoles.length > 0 && [
|
|
313
|
+
index.h("div", { key: '1db52ea02ecf75268ec9996fbd68ea7726733679', class: "dropdown" }, index.h("label", { key: '7fa52a0247951ca88ad80cbf810e7810688dc918' }, this.localResx.SelectRole, " :"), index.h("select", { key: 'cf7baac0e6c22c33ddcac117f05046b942ad6d4e', ref: el => this.roleDropDown = el }, this.getRoles().map(role => index.h("option", { value: role.RoleId }, role.RoleName)))),
|
|
314
|
+
index.h("dnn-button", { key: 'b95196cf538d86c255440a5a88a7f85f019b6632', type: "primary", onClick: () => this.addRole() }, this.localResx.Add)
|
|
315
|
+
]), index.h("table", { key: '51110cb5293a2b753f808572418210094bdc1f7d', class: "roles-table" }, index.h("caption", { key: '2c1abc3f0fe54307b48be57e7f9b61939b4822b3' }, this.localResx.RolePermissions), index.h("thead", { key: 'b7e89b31ba60e0b0c866f2c4f83f5df98d6f83b3' }, index.h("tr", { key: '4f2c16c8425483d7dc1aba76cedd20083dcf9dc3' }, index.h("th", { key: '4c0910460873ecab0b9f55352be83c56c575f6a6' }, this.localResx.Role), this.permissions.permissionDefinitions.map(permissionDefinition => index.h("th", null, permissionDefinition.permissionName)), index.h("th", { key: 'a41f294b08733b13d2f75032d9b99891727a6b21' }, "\u00A0"))), index.h("tbody", { key: '66367d43acd71c2660ee7e38a383c2cc4cdeff2b' }, this.permissions.rolePermissions.map(rolePermission => index.h("tr", null, index.h("th", null, rolePermission.roleName), this.permissions.permissionDefinitions.map(permissionDefinition => index.h("td", null, this.renderRoleCheckBox(rolePermission, permissionDefinition))), index.h("td", null, !rolePermission.default &&
|
|
316
|
+
index.h("button", { onClick: () => this.removeRole(rolePermission) }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, index.h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), index.h("path", { d: "M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z" })))))))), index.h("div", { key: '96d18900b0c2e1915b49dbae8dfca84ce22f9224', class: "search-user" }, index.h("div", { key: 'cd5f5916d43a53a827654226fb2ca5cf2842d2fd', class: "search-control" }, index.h("dnn-searchbox", { key: '47a8f6b69fba9e87806a02c2101d8eac0d65cfb7', placeholder: this.localResx.User, debounced: true, onQueryChanged: e => this.handleQueryChanged(e.detail), onKeyDown: e => this.handleSearchUserFieldKeyDown(e), query: this.userQuery }), index.h("dnn-collapsible", { key: '21e8ecd420d7a4174a1e8633a00ff609c88391d3', ref: el => this.userCollapsible = el }, index.h("div", { key: 'e8996049d1743358d16515c6e7a62fbf1c3449f4', class: "dropdown" }, this.getFilteredUsers().map(searchedUser => index.h("button", { onKeyDown: e => this.handleSearchedUserKeyDown(e), onClick: () => this.handleUserPicked(searchedUser) }, searchedUser.displayName))))), this.pickedUser &&
|
|
317
|
+
index.h("dnn-button", { key: '5a3159e4b75a1eaf7e04d76a5e7c207efbcb4bbd', onClick: () => this.addUser() }, this.localResx.Add)), this.permissions.userPermissions && this.permissions.userPermissions.length > 0 &&
|
|
318
|
+
index.h("table", { key: '1c67fd050abc84cc1d46c2f22ac54b72536c059c', class: "users-table" }, index.h("caption", { key: '5a94b92f18104a0307e2282945f36855d055c09a' }, this.localResx.UserPermissions), index.h("thead", { key: '85447eb661dae9d68aa076275b4bc6a3d710d86c' }, index.h("tr", { key: '896a922a18c02b682a48ee613088bf3140291d02' }, index.h("th", { key: 'd6606accc9147704a1e71a401550b161f76a132c' }, this.localResx.User), this.permissions.permissionDefinitions.map(permissionDefinition => index.h("th", null, permissionDefinition.permissionName)), index.h("th", { key: '87d8b97ab435a913177f828afa637740ba4a2d7b' }, "\u00A0"))), index.h("tbody", { key: '8649339d5206c4d2c096d97705fa84c56735a8d1' }, this.permissions.userPermissions.map(userPermission => index.h("tr", null, index.h("th", null, userPermission.displayName), this.permissions.permissionDefinitions.map(permissionDefinition => index.h("td", null, this.renderUserCheckBox(userPermission, permissionDefinition))), index.h("td", null, index.h("button", { onClick: () => this.removeUser(userPermission) }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, index.h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), index.h("path", { d: "M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z" }))))))))));
|
|
319
319
|
}
|
|
320
320
|
static get watchers() { return {
|
|
321
321
|
"foundUsers": ["handleFoundUsersChanged"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"dnn-permissions-grid.entry.cjs.js","mappings":"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","names":["h","Host"],"sources":["src/components/dnn-permissions-grid/dnn-permissions-grid.scss?tag=dnn-permissions-grid&encapsulation=shadow","src/components/dnn-permissions-grid/dnn-permissions-grid.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.add-role-row{\n display: flex;\n gap: 1em;\n align-items: center;\n flex-wrap: wrap;\n label{\n margin-right:0.5em;\n }\n}\n.search-user{\n display: flex;\n gap: 1em;\n margin-top: 1em;\n .search-control{\n position: relative;\n dnn-collapsible{\n position: absolute;\n left: 0;\n top: calc(100% - 2px);\n width: 100%;\n box-shadow: 0px 4px 4px;\n .dropdown{\n background-color: white;\n border: 1px solid lightgray;\n display: flex;\n flex-direction: column;\n button{\n background-color: transparent;\n border: none;\n border-bottom: 1px solid lightgray;\n padding: 0.25em;\n margin: 0;\n text-align: left;\n }\n }\n }\n }\n}\ntable{\n border: 1px solid lightgray;\n border-collapse: collapse;\n margin-top: 1em;\n thead{\n text-align: center;\n tr{\n border-bottom: 1px solid lightgray;\n }\n th{\n background-color: lightgray;\n padding: 0.25em 0.5em;\n &:first-child{\n border-right: 1px solid lightgray;\n }\n }\n }\n tbody{\n tr{\n border-bottom: 1px dotted lightgray;\n th{\n text-align: left;\n border-right: 1px solid lightgray;\n padding: 0 0.5em;\n }\n td{\n text-align: center;\n dnn-checkbox{\n span{\n display: none;\n }\n }\n button{\n background-color: transparent;\n border: 0;\n padding: 0;\n margin: 0;\n margin-right: 1em;\n }\n }\n }\n }\n}","import { Component, Host, h, Prop, State, Event, EventEmitter, Watch } from '@stencil/core';\nimport { ILocalization } from './localization-interface';\nimport { IPermissionDefinition, IPermissions, IRolePermission, IUserPermission } from './permissions-interface';\nimport { IRoleGroup } from './role-group-interface';\nimport { IRole } from './role-interface';\nimport { ISearchedUser } from './searched-user-interface';\n\n@Component({\n tag: 'dnn-permissions-grid',\n styleUrl: 'dnn-permissions-grid.scss',\n shadow: true,\n})\nexport class DnnPermissionsGrid {\n\n /** The list of permissions. */\n @Prop({mutable: true}) permissions!: IPermissions;\n\n /** The list of role groups. */\n @Prop() roleGroups!: IRoleGroup[];\n\n /** The list of possible roles. */\n @Prop() roles!: IRole[];\n\n /** Optionally allows localizing the component strings. */\n @Prop() resx: ILocalization;\n\n /** The list of users to show under the search users field when a search is performed. */\n @Prop() foundUsers: ISearchedUser[] = [];\n\n /** Fires when searching for users to add to the permissions. Emits the search query. */\n @Event() userSearchQueryChanged: EventEmitter<string>;\n \n /** Fires when any permissions have changed, can be used for instance to have linked permissions. */\n @Event() permissionsChanged: EventEmitter<IPermissions>;\n\n @State() selectedRoleGroupId = -1;\n @State() userQuery: string;\n @State() pickedUser: ISearchedUser;\n @State() localResx: ILocalization;\n @State() focused = false;\n \n \n @Watch(\"foundUsers\")\n handleFoundUsersChanged(newValue: ISearchedUser[]){\n if (newValue?.length > 0){\n setTimeout(() => {\n this.userCollapsible.expanded = true;\n }, 100);\n }\n }\n \n @Watch(\"resx\")\n resxChanged(){\n this.mergeResx();\n }\n \n componentWillLoad() {\n document.addEventListener(\"click\", this.dismissUserResults.bind(this));\n this.mergeResx();\n }\n \n disconnectedCallback() {\n document.removeEventListener(\"click\", this.disconnectedCallback.bind(this));\n }\n \n private roleDropDown: HTMLSelectElement;\n private userCollapsible: HTMLDnnCollapsibleElement;\n private rolesDropdown: HTMLSelectElement;\n private defaultResx: ILocalization = {\n Add: \"Add\",\n AllRoles: \"All Roles\",\n FilterByGroup: \"Filter By Group\",\n GlobalRoles: \"Global Roles\",\n Role: \"Role\",\n RolePermissions: \"Role Permissions\",\n SelectRole: \"Select Role\",\n User: \"User\",\n UserPermissions: \"User Permissions\",\n };\n\n private mergeResx(): void {\n this.localResx = {...this.defaultResx, ...this.resx};\n }\n\n private dismissUserResults(e: MouseEvent){\n const dropdownRect = this.roleDropDown.getBoundingClientRect();\n if (\n e.pageX > dropdownRect.right ||\n e.pageX < dropdownRect.left ||\n e.pageY > dropdownRect.bottom ||\n e.pageY < dropdownRect.top){\n this.userCollapsible.expanded = false;\n }\n } \n\n private handleRoleGroupChanged(dropdown: HTMLSelectElement): void {\n const index = dropdown.selectedIndex;\n const value = Number.parseInt(dropdown.options[index].value);\n this.selectedRoleGroupId = value;\n }\n\n private addRole(): void {\n const roleId = Number.parseInt(this.roleDropDown.options[this.roleDropDown.selectedIndex].value);\n const role = this.roles.filter(r => r.RoleId == roleId)[0];\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions,\n {\n default: false,\n locked: false,\n permissions: [],\n roleId: role.RoleId,\n roleName: role.RoleName,\n }\n ]\n }\n this.permissionsChanged.emit(this.permissions);\n }\n\n private addUser(): void {\n if (this.pickedUser != undefined){\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions,\n {\n displayName: this.pickedUser.displayName,\n permissions: [],\n userId: this.pickedUser.userId,\n },\n ],\n };\n this.pickedUser = undefined;\n this.userQuery = \"\";\n this.permissionsChanged.emit(this.permissions);\n }\n }\n\n private getRoles(){\n const filteredRoles = this.roles.filter(role => \n !this.permissions.rolePermissions.some(rp => rp.roleId == role.RoleId))\n if (this.selectedRoleGroupId == -2){\n // All Roles\n return filteredRoles;\n }\n\n if (this.selectedRoleGroupId == -1){\n // Global Roles\n return filteredRoles.filter(role => role.IsSystemRole);\n }\n \n return filteredRoles.filter(role => role.RoleGroupId == this.selectedRoleGroupId);\n }\n\n private renderRoleCheckBox(rolePermission: IRolePermission, permissionDefinition: IPermissionDefinition) {\n const item = rolePermission.permissions.filter(permission => permission.permissionId == permissionDefinition.permissionId)[0];\n if (rolePermission.locked){\n return(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><g fill=\"none\"><path d=\"M0 0h24v24H0V0z\"/><path d=\"M0 0h24v24H0V0z\" opacity=\".87\"/></g><path d=\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"/></svg>\n )\n }\n\n const checked = item == undefined ? \"intermediate\" : item.allowAccess ? \"checked\" : \"unchecked\";\n return(\n <dnn-checkbox\n use-intermediate\n checked={checked}\n onCheckedchange={e => this.handleRoleChanged(e.detail, rolePermission, permissionDefinition)}\n >\n <div slot=\"intermediateicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"/></svg>\n </div>\n <div slot=\"uncheckedicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z\"/></svg>\n </div>\n <span>{permissionDefinition.permissionName}</span>\n </dnn-checkbox>\n )\n }\n\n private renderUserCheckBox(userPermission: IUserPermission, permissionDefinition: IPermissionDefinition) {\n const item = userPermission.permissions.filter(permission => permission.permissionId == permissionDefinition.permissionId)[0];\n\n const checked = item == undefined ? \"intermediate\" : item.allowAccess ? \"checked\" : \"unchecked\";\n return(\n <dnn-checkbox\n use-intermediate\n checked={checked}\n onCheckedchange={e => this.handleUserChanged(e.detail, userPermission, permissionDefinition)}\n >\n <div slot=\"intermediateicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"/></svg>\n </div>\n <div slot=\"uncheckedicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z\"/></svg>\n </div>\n <span>{permissionDefinition.permissionName}</span>\n </dnn-checkbox>\n )\n }\n \n private handleRoleChanged(\n checked: \"checked\" | \"unchecked\" | \"intermediate\",\n rolePermission: IRolePermission,\n permissionDefinition: IPermissionDefinition\n ): void {\n switch (checked) {\n case \"unchecked\":\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions.map(r => {\n if (r.roleId != rolePermission.roleId){\n return r;\n }\n\n const newRolePermission = Object.assign({}, r);\n newRolePermission.permissions = [\n ...newRolePermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n {\n allowAccess: false,\n fullControl: false,\n permissionCode: permissionDefinition.permissionCode,\n permissionId: permissionDefinition.permissionId,\n permissionKey: permissionDefinition.permissionKey,\n permissionName: permissionDefinition.permissionName,\n view: false,\n },\n ];\n return newRolePermission;\n }),\n ],\n };\n break;\n case \"checked\":\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions.map(r => {\n if (r.roleId != rolePermission.roleId){\n return r;\n }\n\n const newRolePermission = Object.assign({}, r);\n newRolePermission.permissions = [\n ...newRolePermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n {\n allowAccess: true,\n fullControl: false,\n permissionCode: permissionDefinition.permissionCode,\n permissionId: permissionDefinition.permissionId,\n permissionKey: permissionDefinition.permissionKey,\n permissionName: permissionDefinition.permissionName,\n view: false,\n },\n ];\n return newRolePermission;\n }),\n ],\n };\n break;\n case \"intermediate\":\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions.map(r => {\n if (r.roleId != rolePermission.roleId){\n return r;\n }\n\n const newRolePermission = Object.assign({}, r);\n newRolePermission.permissions = [\n ...newRolePermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n ];\n return newRolePermission;\n }),\n ],\n };\n break;\n default:\n break;\n }\n this.permissionsChanged.emit(this.permissions);\n }\n\n private handleUserChanged(\n checked: \"checked\" | \"unchecked\" | \"intermediate\",\n userPermission: IUserPermission,\n permissionDefinition: IPermissionDefinition\n ): void {\n switch (checked) {\n case \"unchecked\":\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions.map(u => {\n if (u.userId != userPermission.userId){\n return u;\n }\n\n const newUserPermission = Object.assign({}, u);\n newUserPermission.permissions = [\n ...newUserPermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n {\n allowAccess: false,\n fullControl: false,\n permissionCode: permissionDefinition.permissionCode,\n permissionId: permissionDefinition.permissionId,\n permissionKey: permissionDefinition.permissionKey,\n permissionName: permissionDefinition.permissionName,\n view: false,\n },\n ];\n return newUserPermission;\n }),\n ],\n };\n break;\n case \"checked\":\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions.map(u => {\n if (u.userId != userPermission.userId){\n return u;\n }\n\n const newUserPermission = Object.assign({}, u);\n newUserPermission.permissions = [\n ...newUserPermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n {\n allowAccess: true,\n fullControl: false,\n permissionCode: permissionDefinition.permissionCode,\n permissionId: permissionDefinition.permissionId,\n permissionKey: permissionDefinition.permissionKey,\n permissionName: permissionDefinition.permissionName,\n view: false,\n },\n ];\n return newUserPermission;\n }),\n ],\n };\n break;\n case \"intermediate\":\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions.map(u => {\n if (u.userId != userPermission.userId){\n return u;\n }\n\n const newUserPermission = Object.assign({}, u);\n newUserPermission.permissions = [\n ...newUserPermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n ];\n return newUserPermission;\n }),\n ],\n };\n break;\n default:\n break;\n }\n this.permissionsChanged.emit(this.permissions);\n }\n\n private removeRole(rolePermission: IRolePermission): void {\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions.filter(rp => rp.roleId != rolePermission.roleId),\n ],\n };\n this.permissionsChanged.emit();\n }\n\n private removeUser(userPermission: IUserPermission): void {\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions.filter(up => up.userId != userPermission.userId),\n ]\n };\n this.permissionsChanged.emit(this.permissions);\n }\n\n private handleQueryChanged(query: string): void {\n this.userQuery = query;\n if (query == undefined || query.length == 0){\n this.userCollapsible.expanded = false;\n this.pickedUser = undefined;\n this.foundUsers = [];\n return;\n }\n this.userSearchQueryChanged.emit(query);\n }\n\n private handleSearchUserFieldKeyDown(e: KeyboardEvent): void {\n if (e.key != \"ArrowDown\"){\n return;\n }\n\n e.preventDefault();\n const firstButton = this.userCollapsible.querySelector(\"button\");\n if (firstButton != undefined){\n firstButton.focus();\n }\n }\n\n private handleSearchedUserKeyDown(e: KeyboardEvent): void {\n const button = e.target as HTMLButtonElement;\n \n switch(e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n const nextButton = button.nextElementSibling as HTMLButtonElement;\n nextButton?.focus();\n break;\n case \"ArrowUp\":\n e.preventDefault();\n const previousButton = button.previousElementSibling as HTMLButtonElement;\n previousButton?.focus();\n break;\n default:\n break;\n }\n }\n\n private handleUserPicked(searchedUser: ISearchedUser): void {\n this.userQuery = searchedUser.displayName;\n this.pickedUser = searchedUser;\n }\n\n private getFilteredUsers() {\n return this.foundUsers.filter(fu => !this.permissions.userPermissions.some(up => up.userId == fu.userId))\n }\n \n render() {\n const filteredRoles = this.getRoles();\n return (\n <Host\n tabIndex={this.focused ? -1 : 0}\n onFocus={() => this.rolesDropdown.focus()}\n onBlur={() => this.rolesDropdown.blur()}\n >\n <div class=\"add-role-row\">\n <div class=\"dropdown\">\n <label>{this.localResx.FilterByGroup} :</label>\n <select\n ref={el => this.rolesDropdown = el}\n onChange={e => this.handleRoleGroupChanged(e.target as HTMLSelectElement)}\n onFocus={() => this.focused = true}\n onBlur={() => this.focused = false}\n >\n <option\n value={-2}\n selected={this.selectedRoleGroupId == -2}\n >\n {this.localResx.AllRoles}\n </option>\n <option\n value={-1}\n selected={this.selectedRoleGroupId == -1}\n >\n {this.localResx.GlobalRoles}\n </option>\n {this.roleGroups.map(roleGroup =>\n <option\n value={roleGroup.id}\n selected={this.selectedRoleGroupId == roleGroup.id}\n >\n {roleGroup.name}\n </option>\n )}\n </select>\n </div>\n {filteredRoles && filteredRoles.length > 0 && [\n <div class=\"dropdown\">\n <label>{this.localResx.SelectRole} :</label>\n <select ref={el => this.roleDropDown = el}>\n {this.getRoles().map(role =>\n <option value={role.RoleId}\n >\n {role.RoleName}\n </option>\n )}\n </select>\n </div>,\n <dnn-button\n type=\"primary\"\n onClick={() => this.addRole()}\n >\n {this.localResx.Add}\n </dnn-button>\n ]\n }\n </div>\n <table class=\"roles-table\">\n <caption>{this.localResx.RolePermissions}</caption>\n <thead>\n <tr>\n <th>{this.localResx.Role}</th>\n {this.permissions.permissionDefinitions.map(permissionDefinition =>\n <th>{permissionDefinition.permissionName}</th>\n )}\n <th> </th>\n </tr>\n </thead>\n <tbody>\n {this.permissions.rolePermissions.map(rolePermission =>\n <tr>\n <th>{rolePermission.roleName}</th>\n {this.permissions.permissionDefinitions.map(permissionDefinition =>\n <td>\n {this.renderRoleCheckBox(rolePermission, permissionDefinition)}\n </td>\n )}\n <td>\n {!rolePermission.default &&\n <button\n onClick={() => this.removeRole(rolePermission)}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"/></svg>\n </button>\n }\n </td>\n </tr>\n )}\n </tbody>\n </table>\n <div class=\"search-user\">\n <div class=\"search-control\">\n <dnn-searchbox\n placeholder={this.localResx.User}\n debounced\n onQueryChanged={e => this.handleQueryChanged(e.detail)}\n onKeyDown={e => this.handleSearchUserFieldKeyDown(e)}\n query={this.userQuery}\n />\n <dnn-collapsible ref={el => this.userCollapsible = el}>\n <div class=\"dropdown\">\n {this.getFilteredUsers().map(searchedUser =>\n <button\n onKeyDown={e => this.handleSearchedUserKeyDown(e)}\n onClick={() => this.handleUserPicked(searchedUser)}\n >\n {searchedUser.displayName}\n </button>\n )}\n </div>\n </dnn-collapsible>\n </div>\n {this.pickedUser &&\n <dnn-button\n onClick={() => this.addUser()}\n >\n {this.localResx.Add}\n </dnn-button>\n }\n </div>\n {this.permissions.userPermissions && this.permissions.userPermissions.length > 0 &&\n <table class=\"users-table\">\n <caption>{this.localResx.UserPermissions}</caption>\n <thead>\n <tr>\n <th>{this.localResx.User}</th>\n {this.permissions.permissionDefinitions.map(permissionDefinition =>\n <th>{permissionDefinition.permissionName}</th>\n )}\n <th> </th>\n </tr>\n </thead>\n <tbody>\n {this.permissions.userPermissions.map(userPermission =>\n <tr>\n <th>{userPermission.displayName}</th>\n {this.permissions.permissionDefinitions.map(permissionDefinition =>\n <td>\n {this.renderUserCheckBox(userPermission, permissionDefinition)}\n </td>\n )}\n <td>\n <button\n onClick={() => this.removeUser(userPermission)}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"/></svg>\n </button>\n </td>\n </tr>\n )}\n </tbody>\n </table>\n }\n </Host>\n );\n }\n}"],"version":3}
|
|
1
|
+
{"file":"dnn-permissions-grid.entry.cjs.js","mappings":"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","names":["h","Host"],"sources":["src/components/dnn-permissions-grid/dnn-permissions-grid.scss?tag=dnn-permissions-grid&encapsulation=shadow","src/components/dnn-permissions-grid/dnn-permissions-grid.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.add-role-row{\n display: flex;\n gap: 1em;\n align-items: center;\n flex-wrap: wrap;\n label{\n margin-right:0.5em;\n }\n}\n.search-user{\n display: flex;\n gap: 1em;\n margin-top: 1em;\n .search-control{\n position: relative;\n dnn-collapsible{\n position: absolute;\n left: 0;\n top: calc(100% - 2px);\n width: 100%;\n box-shadow: 0px 4px 4px;\n .dropdown{\n background-color: white;\n border: 1px solid lightgray;\n display: flex;\n flex-direction: column;\n button{\n background-color: transparent;\n border: none;\n border-bottom: 1px solid lightgray;\n padding: 0.25em;\n margin: 0;\n text-align: left;\n }\n }\n }\n }\n}\ntable{\n border: 1px solid lightgray;\n border-collapse: collapse;\n margin-top: 1em;\n thead{\n text-align: center;\n tr{\n border-bottom: 1px solid lightgray;\n }\n th{\n background-color: lightgray;\n padding: 0.25em 0.5em;\n &:first-child{\n border-right: 1px solid lightgray;\n }\n }\n }\n tbody{\n tr{\n border-bottom: 1px dotted lightgray;\n th{\n text-align: left;\n border-right: 1px solid lightgray;\n padding: 0 0.5em;\n }\n td{\n text-align: center;\n label{\n .hidden{\n display: none;\n }\n }\n button{\n background-color: transparent;\n border: 0;\n padding: 0;\n margin: 0;\n margin-right: 1em;\n }\n }\n }\n }\n}","import { Component, Host, h, Prop, State, Event, EventEmitter, Watch } from '@stencil/core';\nimport { ILocalization } from './localization-interface';\nimport { IPermissionDefinition, IPermissions, IRolePermission, IUserPermission } from './permissions-interface';\nimport { IRoleGroup } from './role-group-interface';\nimport { IRole } from './role-interface';\nimport { ISearchedUser } from './searched-user-interface';\n\n@Component({\n tag: 'dnn-permissions-grid',\n styleUrl: 'dnn-permissions-grid.scss',\n shadow: true,\n})\nexport class DnnPermissionsGrid {\n\n /** The list of permissions. */\n @Prop({mutable: true}) permissions!: IPermissions;\n\n /** The list of role groups. */\n @Prop() roleGroups!: IRoleGroup[];\n\n /** The list of possible roles. */\n @Prop() roles!: IRole[];\n\n /** Optionally allows localizing the component strings. */\n @Prop() resx: ILocalization;\n\n /** The list of users to show under the search users field when a search is performed. */\n @Prop() foundUsers: ISearchedUser[] = [];\n\n /** Fires when searching for users to add to the permissions. Emits the search query. */\n @Event() userSearchQueryChanged: EventEmitter<string>;\n \n /** Fires when any permissions have changed, can be used for instance to have linked permissions. */\n @Event() permissionsChanged: EventEmitter<IPermissions>;\n\n @State() selectedRoleGroupId = -1;\n @State() userQuery: string;\n @State() pickedUser: ISearchedUser;\n @State() localResx: ILocalization;\n @State() focused = false;\n \n \n @Watch(\"foundUsers\")\n handleFoundUsersChanged(newValue: ISearchedUser[]){\n if (newValue?.length > 0){\n setTimeout(() => {\n this.userCollapsible.expanded = true;\n }, 100);\n }\n }\n \n @Watch(\"resx\")\n resxChanged(){\n this.mergeResx();\n }\n \n componentWillLoad() {\n document.addEventListener(\"click\", this.dismissUserResults.bind(this));\n this.mergeResx();\n }\n \n disconnectedCallback() {\n document.removeEventListener(\"click\", this.disconnectedCallback.bind(this));\n }\n \n private roleDropDown: HTMLSelectElement;\n private userCollapsible: HTMLDnnCollapsibleElement;\n private rolesDropdown: HTMLSelectElement;\n private defaultResx: ILocalization = {\n Add: \"Add\",\n AllRoles: \"All Roles\",\n FilterByGroup: \"Filter By Group\",\n GlobalRoles: \"Global Roles\",\n Role: \"Role\",\n RolePermissions: \"Role Permissions\",\n SelectRole: \"Select Role\",\n User: \"User\",\n UserPermissions: \"User Permissions\",\n };\n\n private mergeResx(): void {\n this.localResx = {...this.defaultResx, ...this.resx};\n }\n\n private dismissUserResults(e: MouseEvent){\n const dropdownRect = this.roleDropDown.getBoundingClientRect();\n if (\n e.pageX > dropdownRect.right ||\n e.pageX < dropdownRect.left ||\n e.pageY > dropdownRect.bottom ||\n e.pageY < dropdownRect.top){\n this.userCollapsible.expanded = false;\n }\n } \n\n private handleRoleGroupChanged(dropdown: HTMLSelectElement): void {\n const index = dropdown.selectedIndex;\n const value = Number.parseInt(dropdown.options[index].value);\n this.selectedRoleGroupId = value;\n }\n\n private addRole(): void {\n const roleId = Number.parseInt(this.roleDropDown.options[this.roleDropDown.selectedIndex].value);\n const role = this.roles.filter(r => r.RoleId == roleId)[0];\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions,\n {\n default: false,\n locked: false,\n permissions: [],\n roleId: role.RoleId,\n roleName: role.RoleName,\n }\n ]\n }\n this.permissionsChanged.emit(this.permissions);\n }\n\n private addUser(): void {\n if (this.pickedUser != undefined){\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions,\n {\n displayName: this.pickedUser.displayName,\n permissions: [],\n userId: this.pickedUser.userId,\n },\n ],\n };\n this.pickedUser = undefined;\n this.userQuery = \"\";\n this.permissionsChanged.emit(this.permissions);\n }\n }\n\n private getRoles(){\n const filteredRoles = this.roles.filter(role => \n !this.permissions.rolePermissions.some(rp => rp.roleId == role.RoleId))\n if (this.selectedRoleGroupId == -2){\n // All Roles\n return filteredRoles;\n }\n\n if (this.selectedRoleGroupId == -1){\n // Global Roles\n return filteredRoles.filter(role => role.IsSystemRole);\n }\n \n return filteredRoles.filter(role => role.RoleGroupId == this.selectedRoleGroupId);\n }\n\n private renderRoleCheckBox(rolePermission: IRolePermission, permissionDefinition: IPermissionDefinition) {\n const item = rolePermission.permissions.filter(permission => permission.permissionId == permissionDefinition.permissionId)[0];\n if (rolePermission.locked){\n return(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><g fill=\"none\"><path d=\"M0 0h24v24H0V0z\"/><path d=\"M0 0h24v24H0V0z\" opacity=\".87\"/></g><path d=\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"/></svg>\n )\n }\n\n const checked = item == undefined ? \"intermediate\" : item.allowAccess ? \"checked\" : \"unchecked\";\n return(\n <label>\n <span class=\"hidden\">{permissionDefinition.permissionName}</span>\n <dnn-checkbox\n use-intermediate\n checked={checked}\n onCheckedchange={e => this.handleRoleChanged(e.detail, rolePermission, permissionDefinition)}\n >\n <div slot=\"intermediateicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"/></svg>\n </div>\n <div slot=\"uncheckedicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z\"/></svg>\n </div>\n </dnn-checkbox>\n </label>\n )\n }\n\n private renderUserCheckBox(userPermission: IUserPermission, permissionDefinition: IPermissionDefinition) {\n const item = userPermission.permissions.filter(permission => permission.permissionId == permissionDefinition.permissionId)[0];\n\n const checked = item == undefined ? \"intermediate\" : item.allowAccess ? \"checked\" : \"unchecked\";\n return(\n <label>\n <span class=\"hidden\">{permissionDefinition.permissionName}</span>\n <dnn-checkbox\n use-intermediate\n checked={checked}\n onCheckedchange={e => this.handleUserChanged(e.detail, userPermission, permissionDefinition)}\n >\n <div slot=\"intermediateicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"/></svg>\n </div>\n <div slot=\"uncheckedicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z\"/></svg>\n </div>\n </dnn-checkbox>\n </label>\n )\n }\n \n private handleRoleChanged(\n checked: \"checked\" | \"unchecked\" | \"intermediate\",\n rolePermission: IRolePermission,\n permissionDefinition: IPermissionDefinition\n ): void {\n switch (checked) {\n case \"unchecked\":\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions.map(r => {\n if (r.roleId != rolePermission.roleId){\n return r;\n }\n\n const newRolePermission = Object.assign({}, r);\n newRolePermission.permissions = [\n ...newRolePermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n {\n allowAccess: false,\n fullControl: false,\n permissionCode: permissionDefinition.permissionCode,\n permissionId: permissionDefinition.permissionId,\n permissionKey: permissionDefinition.permissionKey,\n permissionName: permissionDefinition.permissionName,\n view: false,\n },\n ];\n return newRolePermission;\n }),\n ],\n };\n break;\n case \"checked\":\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions.map(r => {\n if (r.roleId != rolePermission.roleId){\n return r;\n }\n\n const newRolePermission = Object.assign({}, r);\n newRolePermission.permissions = [\n ...newRolePermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n {\n allowAccess: true,\n fullControl: false,\n permissionCode: permissionDefinition.permissionCode,\n permissionId: permissionDefinition.permissionId,\n permissionKey: permissionDefinition.permissionKey,\n permissionName: permissionDefinition.permissionName,\n view: false,\n },\n ];\n return newRolePermission;\n }),\n ],\n };\n break;\n case \"intermediate\":\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions.map(r => {\n if (r.roleId != rolePermission.roleId){\n return r;\n }\n\n const newRolePermission = Object.assign({}, r);\n newRolePermission.permissions = [\n ...newRolePermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n ];\n return newRolePermission;\n }),\n ],\n };\n break;\n default:\n break;\n }\n this.permissionsChanged.emit(this.permissions);\n }\n\n private handleUserChanged(\n checked: \"checked\" | \"unchecked\" | \"intermediate\",\n userPermission: IUserPermission,\n permissionDefinition: IPermissionDefinition\n ): void {\n switch (checked) {\n case \"unchecked\":\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions.map(u => {\n if (u.userId != userPermission.userId){\n return u;\n }\n\n const newUserPermission = Object.assign({}, u);\n newUserPermission.permissions = [\n ...newUserPermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n {\n allowAccess: false,\n fullControl: false,\n permissionCode: permissionDefinition.permissionCode,\n permissionId: permissionDefinition.permissionId,\n permissionKey: permissionDefinition.permissionKey,\n permissionName: permissionDefinition.permissionName,\n view: false,\n },\n ];\n return newUserPermission;\n }),\n ],\n };\n break;\n case \"checked\":\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions.map(u => {\n if (u.userId != userPermission.userId){\n return u;\n }\n\n const newUserPermission = Object.assign({}, u);\n newUserPermission.permissions = [\n ...newUserPermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n {\n allowAccess: true,\n fullControl: false,\n permissionCode: permissionDefinition.permissionCode,\n permissionId: permissionDefinition.permissionId,\n permissionKey: permissionDefinition.permissionKey,\n permissionName: permissionDefinition.permissionName,\n view: false,\n },\n ];\n return newUserPermission;\n }),\n ],\n };\n break;\n case \"intermediate\":\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions.map(u => {\n if (u.userId != userPermission.userId){\n return u;\n }\n\n const newUserPermission = Object.assign({}, u);\n newUserPermission.permissions = [\n ...newUserPermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n ];\n return newUserPermission;\n }),\n ],\n };\n break;\n default:\n break;\n }\n this.permissionsChanged.emit(this.permissions);\n }\n\n private removeRole(rolePermission: IRolePermission): void {\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions.filter(rp => rp.roleId != rolePermission.roleId),\n ],\n };\n this.permissionsChanged.emit();\n }\n\n private removeUser(userPermission: IUserPermission): void {\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions.filter(up => up.userId != userPermission.userId),\n ]\n };\n this.permissionsChanged.emit(this.permissions);\n }\n\n private handleQueryChanged(query: string): void {\n this.userQuery = query;\n if (query == undefined || query.length == 0){\n this.userCollapsible.expanded = false;\n this.pickedUser = undefined;\n this.foundUsers = [];\n return;\n }\n this.userSearchQueryChanged.emit(query);\n }\n\n private handleSearchUserFieldKeyDown(e: KeyboardEvent): void {\n if (e.key != \"ArrowDown\"){\n return;\n }\n\n e.preventDefault();\n const firstButton = this.userCollapsible.querySelector(\"button\");\n if (firstButton != undefined){\n firstButton.focus();\n }\n }\n\n private handleSearchedUserKeyDown(e: KeyboardEvent): void {\n const button = e.target as HTMLButtonElement;\n \n switch(e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n const nextButton = button.nextElementSibling as HTMLButtonElement;\n nextButton?.focus();\n break;\n case \"ArrowUp\":\n e.preventDefault();\n const previousButton = button.previousElementSibling as HTMLButtonElement;\n previousButton?.focus();\n break;\n default:\n break;\n }\n }\n\n private handleUserPicked(searchedUser: ISearchedUser): void {\n this.userQuery = searchedUser.displayName;\n this.pickedUser = searchedUser;\n }\n\n private getFilteredUsers() {\n return this.foundUsers.filter(fu => !this.permissions.userPermissions.some(up => up.userId == fu.userId))\n }\n \n render() {\n const filteredRoles = this.getRoles();\n return (\n <Host\n tabIndex={this.focused ? -1 : 0}\n onFocus={() => this.rolesDropdown.focus()}\n onBlur={() => this.rolesDropdown.blur()}\n >\n <div class=\"add-role-row\">\n <div class=\"dropdown\">\n <label>{this.localResx.FilterByGroup} :</label>\n <select\n ref={el => this.rolesDropdown = el}\n onChange={e => this.handleRoleGroupChanged(e.target as HTMLSelectElement)}\n onFocus={() => this.focused = true}\n onBlur={() => this.focused = false}\n >\n <option\n value={-2}\n selected={this.selectedRoleGroupId == -2}\n >\n {this.localResx.AllRoles}\n </option>\n <option\n value={-1}\n selected={this.selectedRoleGroupId == -1}\n >\n {this.localResx.GlobalRoles}\n </option>\n {this.roleGroups.map(roleGroup =>\n <option\n value={roleGroup.id}\n selected={this.selectedRoleGroupId == roleGroup.id}\n >\n {roleGroup.name}\n </option>\n )}\n </select>\n </div>\n {filteredRoles && filteredRoles.length > 0 && [\n <div class=\"dropdown\">\n <label>{this.localResx.SelectRole} :</label>\n <select ref={el => this.roleDropDown = el}>\n {this.getRoles().map(role =>\n <option value={role.RoleId}\n >\n {role.RoleName}\n </option>\n )}\n </select>\n </div>,\n <dnn-button\n type=\"primary\"\n onClick={() => this.addRole()}\n >\n {this.localResx.Add}\n </dnn-button>\n ]\n }\n </div>\n <table class=\"roles-table\">\n <caption>{this.localResx.RolePermissions}</caption>\n <thead>\n <tr>\n <th>{this.localResx.Role}</th>\n {this.permissions.permissionDefinitions.map(permissionDefinition =>\n <th>{permissionDefinition.permissionName}</th>\n )}\n <th> </th>\n </tr>\n </thead>\n <tbody>\n {this.permissions.rolePermissions.map(rolePermission =>\n <tr>\n <th>{rolePermission.roleName}</th>\n {this.permissions.permissionDefinitions.map(permissionDefinition =>\n <td>\n {this.renderRoleCheckBox(rolePermission, permissionDefinition)}\n </td>\n )}\n <td>\n {!rolePermission.default &&\n <button\n onClick={() => this.removeRole(rolePermission)}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"/></svg>\n </button>\n }\n </td>\n </tr>\n )}\n </tbody>\n </table>\n <div class=\"search-user\">\n <div class=\"search-control\">\n <dnn-searchbox\n placeholder={this.localResx.User}\n debounced\n onQueryChanged={e => this.handleQueryChanged(e.detail)}\n onKeyDown={e => this.handleSearchUserFieldKeyDown(e)}\n query={this.userQuery}\n />\n <dnn-collapsible ref={el => this.userCollapsible = el}>\n <div class=\"dropdown\">\n {this.getFilteredUsers().map(searchedUser =>\n <button\n onKeyDown={e => this.handleSearchedUserKeyDown(e)}\n onClick={() => this.handleUserPicked(searchedUser)}\n >\n {searchedUser.displayName}\n </button>\n )}\n </div>\n </dnn-collapsible>\n </div>\n {this.pickedUser &&\n <dnn-button\n onClick={() => this.addUser()}\n >\n {this.localResx.Add}\n </dnn-button>\n }\n </div>\n {this.permissions.userPermissions && this.permissions.userPermissions.length > 0 &&\n <table class=\"users-table\">\n <caption>{this.localResx.UserPermissions}</caption>\n <thead>\n <tr>\n <th>{this.localResx.User}</th>\n {this.permissions.permissionDefinitions.map(permissionDefinition =>\n <th>{permissionDefinition.permissionName}</th>\n )}\n <th> </th>\n </tr>\n </thead>\n <tbody>\n {this.permissions.userPermissions.map(userPermission =>\n <tr>\n <th>{userPermission.displayName}</th>\n {this.permissions.permissionDefinitions.map(permissionDefinition =>\n <td>\n {this.renderUserCheckBox(userPermission, permissionDefinition)}\n </td>\n )}\n <td>\n <button\n onClick={() => this.removeUser(userPermission)}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"/></svg>\n </button>\n </td>\n </tr>\n )}\n </tbody>\n </table>\n }\n </Host>\n );\n }\n}"],"version":3}
|
|
@@ -22,7 +22,7 @@ const DnnProgressBar = class {
|
|
|
22
22
|
return classes.join(" ");
|
|
23
23
|
}
|
|
24
24
|
render() {
|
|
25
|
-
return (index.h(index.Host, { key: '
|
|
25
|
+
return (index.h(index.Host, { key: '2a9e2c7fb2c5a7a5b7d4d6204b2979646e2067a0' }, index.h("progress", { key: 'dfcf6adc1269048f3bd3bec503404e34d1fed40d', class: this.getProgressClass(), max: this.max, value: this.value })));
|
|
26
26
|
}
|
|
27
27
|
};
|
|
28
28
|
DnnProgressBar.style = DnnProgressBarStyle0;
|
|
@@ -29336,10 +29336,10 @@ const DnnRichtext = class {
|
|
|
29336
29336
|
}
|
|
29337
29337
|
}
|
|
29338
29338
|
render() {
|
|
29339
|
-
return (index$1.h(index$1.Host, { key: '
|
|
29339
|
+
return (index$1.h(index$1.Host, { key: 'd96ebad0f68149a2cbe89656c3e474a5ff184ebf', tabIndex: this.focused ? -1 : 0, onFocus: () => {
|
|
29340
29340
|
this.focused = true;
|
|
29341
29341
|
this.editor.focus();
|
|
29342
|
-
}, onBlur: () => this.focused = false }, index$1.h("textarea", { key: '
|
|
29342
|
+
}, onBlur: () => this.focused = false }, index$1.h("textarea", { key: '790f6c0991227fe006e5c288f6c02f75bdb61279', ref: el => this.textArea = el, onFocus: () => this.focused = true, onBlur: () => this.focused = false })));
|
|
29343
29343
|
}
|
|
29344
29344
|
static get formAssociated() { return true; }
|
|
29345
29345
|
get host() { return index$1.getElement(this); }
|
|
@@ -25,7 +25,7 @@ const DnnSearchbox = class {
|
|
|
25
25
|
}, this.debounceTime);
|
|
26
26
|
}
|
|
27
27
|
render() {
|
|
28
|
-
return (index.h(index.Host, { key: '
|
|
28
|
+
return (index.h(index.Host, { key: 'bade94fc73622bb28ee3a5719f51758cb5691a1a', tabIndex: this.focused ? -1 : 0, onFocus: () => this.inputField.focus(), onBlur: () => this.inputField.blur() }, index.h("input", { key: '764fd9c42ac87ee05f272595f4a699a1f2931cbd', ref: el => this.inputField = el, type: "text", value: this.query, placeholder: this.placeholder, onInput: e => this.query = e.target.value, onFocus: () => this.focused = true, onBlur: () => this.focused = false }), this.query !== "" ?
|
|
29
29
|
index.h("button", { class: "svg clear", onClick: () => this.query = "" }, index.h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, index.h("path", { d: "M0 0h24v24H0z", fill: "none" }), index.h("path", { d: "M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z" })))
|
|
30
30
|
:
|
|
31
31
|
index.h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, index.h("path", { d: "M0 0h24v24H0z", fill: "none" }), index.h("path", { d: "M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" }))));
|
|
@@ -109,8 +109,8 @@ const DnnSelect = class {
|
|
|
109
109
|
}
|
|
110
110
|
render() {
|
|
111
111
|
var _a;
|
|
112
|
-
return (index.h(index.Host, { key: '
|
|
113
|
-
index.h("svg", { key: '
|
|
112
|
+
return (index.h(index.Host, { key: '6c325d9712690fb0aa8317ebf30a3d81e2f15187', tabIndex: this.focused ? -1 : 0, onFocus: () => this.select.focus(), onBlur: () => this.select.blur() }, index.h("dnn-fieldset", { key: '20b5c8dcaa0834c929b77fda2e818e3cc65c8105', invalid: !this.valid, focused: this.focused, label: `${(_a = this.label) !== null && _a !== void 0 ? _a : ""}${this.required ? " *" : ""}`, helpText: this.helpText, id: this.labelId, onClick: () => !this.focused && this.select.focus(), ref: el => this.fieldset = el }, index.h("div", { key: '851bc63b4d9fff81774205a685b151ad110d5237', class: "inner-container" }, index.h("select", { key: 'd4eb740c9c345b6c549a0ec0f9ae1167641c675a', ref: el => this.select = el, onFocus: () => this.focused = true, onBlur: () => this.handleBlur(), onChange: e => this.handleChange(e.target.value), onInvalid: () => this.handleInvalid(), required: this.required, disabled: this.disabled, "aria-labelledby": this.labelId }, index.h("slot", { key: '0e97be7fcba264a5d8c58003c181e198f0456314', ref: el => this.slot = el })), !this.valid &&
|
|
113
|
+
index.h("svg", { key: '9019d44858675154aad05390c1b007de5dfdb719', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960", class: "error" }, index.h("path", { key: '928ea0554f99eb78b72b3cd4d6d25d8287fdb253', d: "M479.982-280q14.018 0 23.518-9.482 9.5-9.483 9.5-23.5 0-14.018-9.482-23.518-9.483-9.5-23.5-9.5-14.018 0-23.518 9.482-9.5 9.483-9.5 23.5 0 14.018 9.482 23.518 9.483 9.5 23.5 9.5ZM453-433h60v-253h-60v253Zm27.266 353q-82.734 0-155.5-31.5t-127.266-86q-54.5-54.5-86-127.341Q80-397.681 80-480.5q0-82.819 31.5-155.659Q143-709 197.5-763t127.341-85.5Q397.681-880 480.5-880q82.819 0 155.659 31.5Q709-817 763-763t85.5 127Q880-563 880-480.266q0 82.734-31.5 155.5T763-197.684q-54 54.316-127 86Q563-80 480.266-80Zm.234-60Q622-140 721-239.5t99-241Q820-622 721.188-721 622.375-820 480-820q-141 0-240.5 98.812Q140-622.375 140-480q0 141 99.5 240.5t241 99.5Zm-.5-340Z" }))))));
|
|
114
114
|
}
|
|
115
115
|
static get formAssociated() { return true; }
|
|
116
116
|
get el() { return index.getElement(this); }
|
|
@@ -29,10 +29,10 @@ const DnnSortIcon = class {
|
|
|
29
29
|
this.sortChanged.emit(this.sortDirection);
|
|
30
30
|
}
|
|
31
31
|
render() {
|
|
32
|
-
return (index.h(index.Host, { key: '
|
|
33
|
-
index.h("svg", { key: '
|
|
34
|
-
index.h("svg", { key: '
|
|
35
|
-
index.h("svg", { key: '
|
|
32
|
+
return (index.h(index.Host, { key: '4679e6439444a14eb3c16ab0fe1659d8096311dd', tabIndex: this.focused ? -1 : 0, onFocus: () => this.button.focus(), onBlur: () => this.button.blur() }, index.h("button", { key: '038d9aba0ec4a69c0e22e9c391be4bfb03559123', ref: el => this.button = el, class: { "active": this.sortDirection != "none" }, onClick: () => this.changeSort(), onFocus: () => this.focused = true, onBlur: () => this.focused = false }, this.sortDirection == "none" &&
|
|
33
|
+
index.h("svg", { key: '1bbe327786ba6764794f63123f47896b9c464442', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 12 16" }, index.h("path", { key: '6cd4bd061233c96ffed12351ea8800c70b4eb374', d: "M 0 7 H 12 L 6 0 Z M 0 9 H 12 L 6 16 Z" })), this.sortDirection == "asc" &&
|
|
34
|
+
index.h("svg", { key: '95330386350dc6859797128a8ce1080bea99351f', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 12 16" }, index.h("path", { key: '7a8ca6db9ac9455f41dcc817676eb6ec604151d1', d: "M 0 7 H 12 L 6 0 Z" })), this.sortDirection == "desc" &&
|
|
35
|
+
index.h("svg", { key: '3f097be25df06ac0abc18f4d32166da2e8754526', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 12 16" }, index.h("path", { key: '6e5c311a062292247003b3b06e5d5b5e5ffd24e6', d: "M 0 9 H 12 L 6 16 Z" })))));
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
DnnSortIcon.style = DnnSortIconStyle0;
|
|
@@ -22,8 +22,8 @@ const DnnTab = class {
|
|
|
22
22
|
this.visible = false;
|
|
23
23
|
}
|
|
24
24
|
render() {
|
|
25
|
-
return (index.h(index.Host, { key: '
|
|
26
|
-
index.h("slot", { key: '
|
|
25
|
+
return (index.h(index.Host, { key: 'c137597fa8cab7b2416e52272ed4ffbd5ade548d' }, this.visible &&
|
|
26
|
+
index.h("slot", { key: '6ea0f232817399f057b093e3ded8c80814c27209' })));
|
|
27
27
|
}
|
|
28
28
|
};
|
|
29
29
|
DnnTab.style = DnnTabStyle0;
|
|
@@ -67,7 +67,7 @@ const DnnTabs = class {
|
|
|
67
67
|
this.selectedTabTitle = tabTitle;
|
|
68
68
|
}
|
|
69
69
|
render() {
|
|
70
|
-
return (index.h(index.Host, { key: '
|
|
70
|
+
return (index.h(index.Host, { key: 'a39325f6c3e682c6bf68c6e71a7faa2055d3d4c9', ref: el => this.component = el }, index.h("div", { key: '13451a0ee391729067fa4cd9c04bcd4943dcbaa4', class: "tabTitles" }, this.tabTitles.map(tabTitle => index.h("button", { class: this.selectedTabTitle == tabTitle ? "visible" : "", onClick: () => this.showTab(tabTitle) }, tabTitle))), index.h("div", { key: '395ad747c55195cc590af3510aca27d874dc8c88', class: "currentTab" }, index.h("slot", { key: 'b3411645aff9582a6c6551390dd240ecfd0dc12f' }))));
|
|
71
71
|
}
|
|
72
72
|
};
|
|
73
73
|
DnnTabs.style = DnnTabsStyle0;
|
|
@@ -54,6 +54,8 @@ const DnnTextarea = class {
|
|
|
54
54
|
}
|
|
55
55
|
componentWillLoad() {
|
|
56
56
|
this.labelId = stringUtilities.generateRandomId();
|
|
57
|
+
}
|
|
58
|
+
componentDidLoad() {
|
|
57
59
|
this.textarea.style.minHeight = `${this.rows * 1.5}em`;
|
|
58
60
|
}
|
|
59
61
|
// eslint-disable-next-line @stencil-community/own-methods-must-be-private
|
|
@@ -95,7 +97,7 @@ const DnnTextarea = class {
|
|
|
95
97
|
}
|
|
96
98
|
render() {
|
|
97
99
|
var _a;
|
|
98
|
-
return (index.h(index.Host, { key: '
|
|
100
|
+
return (index.h(index.Host, { key: 'dbc7de88630e93d1bc75ba0f29b4d492d433ed3f', tabIndex: this.focused ? -1 : 0, onFocus: () => this.textarea.focus(), onBlur: () => this.textarea.blur() }, index.h("dnn-fieldset", { key: '5c95dfbf4564daa898d9d14ca5dfa4fdff8a9007', ref: el => this.fieldset = el, invalid: !this.valid, focused: this.focused, resizable: this.resizable, label: `${(_a = this.label) !== null && _a !== void 0 ? _a : ""}${this.required ? " *" : ""}`, helpText: this.helpText, disabled: this.disabled, id: this.labelId, floatLabel: this.shouldLabelFloat(), onClick: () => !this.focused && this.textarea.focus() }, index.h("textarea", { key: 'a09f9af15bc8e79111975edeafac7f35cd097133', ref: el => this.textarea = el, name: this.name, value: this.value, required: this.required, onBlur: () => this.focused = false, onFocus: () => this.focused = true, onChange: () => this.handleChange(), onInput: e => this.handleInput(e.target.value), onInvalid: () => this.handleInvalid(), disabled: this.disabled, autoComplete: this.autocomplete, minlength: this.minlength, maxlength: this.maxlength, readonly: this.readonly, "aria-labelledby": this.labelId, rows: this.rows }))));
|
|
99
101
|
}
|
|
100
102
|
static get formAssociated() { return true; }
|
|
101
103
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"dnn-textarea.entry.cjs.js","mappings":";;;;;;;AAAA,MAAM,cAAc,GAAG,qcAAqc,CAAC;AAC7d,0BAAe,cAAc;;MCShB,WAAW;;;;;;;;;;;;yBAEgE,OAAO;;;;;;;4BAqB9D,KAAK;;;;oBAYb,CAAC;uBA6BL,KAAK;qBACP,IAAI;;;;IApBrB,MAAM,aAAa;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;KAC/B;;IAID,MAAM,iBAAiB,CAAC,OAAe;QACrC,IAAI,OAAO,IAAI,SAAS,IAAI,OAAO,IAAI,EAAE,EAAE;YACzC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAChC,OAAO;SACR;QAED,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;KAC1C;IAYD,iBAAiB;QACf,IAAI,CAAC,OAAO,GAAGA,gCAAgB,EAAE,CAAC;
|
|
1
|
+
{"file":"dnn-textarea.entry.cjs.js","mappings":"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","names":["generateRandomId","h","Host"],"sources":["src/components/dnn-textarea/dnn-textarea.scss?tag=dnn-textarea&encapsulation=shadow","src/components/dnn-textarea/dnn-textarea.tsx"],"sourcesContent":[":host {\n display: inline-block;\n\n /** @prop --foreground: Defines the foreground color. */\n --foreground: var(--dnn-color-foreground, #000);\n\n /** @prop --background: Defines the background color. */\n --background: var(--dnn-color-background, #fff);\n \n /** @prop --focus-color: Defines the color when the component is focused. */\n --focus-color: var(--dnn-color-primary, #3792ED);\n \n /** @prop --danger-color: Defines the danger color used for invalid data. */\n --danger-color: var(--dnn-color-danger, #900);\n \n /** @prop --control-radius: Defines the radius for the control corners. */\n --control-radius: var(--dnn-controls-radius, 3px);\n}\n\ndnn-fieldset{\n width: 100%;\n}\n\ntextarea{\n border: none;\n outline: none;\n background-color: transparent;\n color: var(--foreground);\n width: calc(100% - 1em);\n height: calc(100% - 1em);\n line-height: 1.5em;\n resize: none;\n}","import { Component, Host, h, Prop, AttachInternals, State, Event, EventEmitter, Method } from '@stencil/core';\nimport { generateRandomId } from '../../utilities/stringUtilities';\n\n/** A custom textarea component. */\n@Component({\n tag: 'dnn-textarea',\n styleUrl: 'dnn-textarea.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class DnnTextarea {\n /** Can be set to change how the user can resize the field. */\n @Prop() resizable: \"none\" | \"both\" | \"horizontal\" | \"vertical\" | \"block\" | \"inline\" = \"block\";\n\n /** Sets the value of the textarea. */\n @Prop({mutable: true}) value: string;\n\n /** The label for this input. */\n @Prop() label: string;\n\n /** The name for this input when used in forms. */\n @Prop() name: string;\n\n /** Defines the help label displayed under the field. */\n @Prop() helpText: string;\n\n /** Defines whether the field requires having a value. */\n @Prop() required: boolean;\n\n /** Defines whether the field is disabled. */\n @Prop() disabled: boolean;\n\n /** Defines the type of auto-completion to use for this field, see https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete. */\n @Prop() autocomplete: string = \"off\";\n\n /** Defines the minimum amount of charaters. */\n @Prop() minlength: number;\n\n /** Defines the maximum amount of charaters. */\n @Prop() maxlength: number;\n\n /** Defines wheter the defined value is readonly. */\n @Prop() readonly: boolean;\n\n /** Defines how many rows (lines of text) to initially show. */\n @Prop() rows: number = 3;\n\n /** Fires when the using is inputing data (on keystrokes). */\n @Event() valueInput: EventEmitter<string>;\n\n /** Fires when the value has changed and the user exits the input. */\n @Event() valueChange: EventEmitter<string>;\n\n /** Reports the input validity details. See https://developer.mozilla.org/en-US/docs/Web/API/ValidityState */\n @Method()\n async checkValidity(): Promise<ValidityState> {\n return this.textarea.validity;\n }\n\n /** Can be used to set a custom validity message. */\n @Method()\n async setCustomValidity(message: string): Promise<void> {\n if (message == undefined || message == \"\") {\n this.textarea.setCustomValidity(\"\");\n this.valid = true;\n this.fieldset.setValidity(true);\n return;\n }\n\n this.customValidityMessage = message;\n this.valid = false;\n this.textarea.setCustomValidity(message);\n }\n\n @State() focused = false;\n @State() valid = true;\n @State() customValidityMessage: string;\n\n @AttachInternals() internals: ElementInternals;\n \n private textarea: HTMLTextAreaElement;\n private fieldset: HTMLDnnFieldsetElement;\n private labelId: string;\n\n componentWillLoad() {\n this.labelId = generateRandomId();\n }\n\n componentDidLoad() {\n this.textarea.style.minHeight = `${this.rows * 1.5}em`;\n }\n\n // eslint-disable-next-line @stencil-community/own-methods-must-be-private\n formResetCallback() {\n this.textarea.setCustomValidity(\"\");\n this.valid = true;\n this.value = \"\";\n this.internals.setValidity({});\n this.internals.setFormValue(\"\");\n }\n\n private handleInput(value: string): void {\n this.value = value;\n var valid = this.textarea.checkValidity();\n this.valid = valid;\n this.valueInput.emit(this.value);\n }\n\n private handleInvalid(): void {\n this.valid = false;\n if (this.customValidityMessage == undefined){\n this.customValidityMessage = this.textarea.validationMessage;\n }\n }\n\n private handleChange() {\n this.valueChange.emit(this.value);\n if (this.name != undefined){\n var data = new FormData();\n data.append(this.name, this.value.toString());\n this.internals.setFormValue(data);\n }\n }\n\n private shouldLabelFloat(): boolean {\n if (this.focused) {\n return false;\n }\n\n if (this.value != undefined && this.value != \"\") {\n return false;\n }\n \n return true;\n }\n\n render() {\n return (\n <Host\n tabIndex={this.focused ? -1 : 0}\n onFocus={() => this.textarea.focus()}\n onBlur={() => this.textarea.blur()}\n >\n <dnn-fieldset\n ref={el => this.fieldset = el}\n invalid={!this.valid}\n focused={this.focused}\n resizable={this.resizable}\n label={`${this.label ?? \"\"}${this.required ? \" *\" : \"\"}`}\n helpText={this.helpText}\n disabled={this.disabled}\n id={this.labelId}\n floatLabel={this.shouldLabelFloat()}\n onClick={() => !this.focused && this.textarea.focus()}\n >\n <textarea\n ref={el => this.textarea = el}\n name={this.name}\n value={this.value}\n required={this.required}\n onBlur={() => this.focused = false}\n onFocus={() => this.focused=true}\n onChange={() => this.handleChange()}\n onInput={e => this.handleInput((e.target as HTMLTextAreaElement).value)}\n onInvalid={() => this.handleInvalid()}\n disabled={this.disabled}\n autoComplete={this.autocomplete}\n minlength={this.minlength}\n maxlength={this.maxlength}\n readonly={this.readonly}\n aria-labelledby={this.labelId}\n rows={this.rows}\n />\n </dnn-fieldset>\n </Host>\n );\n }\n\n}\n"],"version":3}
|
|
@@ -50,11 +50,11 @@ const DnnToggle = class {
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
render() {
|
|
53
|
-
return (index.h(index.Host, { key: '
|
|
53
|
+
return (index.h(index.Host, { key: '736ed56ea87fb1ab7ac225d370fa98e02bf6fbe6', tabIndex: this.focused ? -1 : 0, onFocus: () => this.button.focus(), onBlur: () => this.button.blur() }, index.h("button", { key: '4e41f2affc66dd9cffe9f84809799da00742bf53', ref: el => this.button = el, disabled: this.disabled, class: { 'checked': this.checked }, onClick: () => {
|
|
54
54
|
if (!this.disabled) {
|
|
55
55
|
this.checked = !this.checked;
|
|
56
56
|
}
|
|
57
|
-
}, onFocus: () => this.focused = true, onBlur: () => this.focused = false }, index.h("div", { key: '
|
|
57
|
+
}, onFocus: () => this.focused = true, onBlur: () => this.focused = false }, index.h("div", { key: 'e77fba87a4e93382a5aceb9eb3a25088b3998f36', class: "handle" }))));
|
|
58
58
|
}
|
|
59
59
|
static get formAssociated() { return true; }
|
|
60
60
|
get element() { return index.getElement(this); }
|
|
@@ -59,8 +59,8 @@ const DnnTreeviewItem = class {
|
|
|
59
59
|
return this.focused ? -1 : 0;
|
|
60
60
|
}
|
|
61
61
|
render() {
|
|
62
|
-
return (index.h(index.Host, { key: '
|
|
63
|
-
index.h("button", { key: '
|
|
62
|
+
return (index.h(index.Host, { key: 'e7a439c58fb111038234b66c8d1884f0f5c1da56', tabIndex: this.getTabIndex(), onFocus: () => { var _a; return (_a = this.button) === null || _a === void 0 ? void 0 : _a.focus(); }, onBlur: () => { var _a; return (_a = this.button) === null || _a === void 0 ? void 0 : _a.blur(); } }, index.h("div", { key: '21b5854712196a29932e681175a28bfec964ea2b', class: "expander", ref: el => this.expander = el }, this.hasChildren &&
|
|
63
|
+
index.h("button", { key: '1e82a07c04e90fcc78eafbdc4c4df9b40257a978', ref: el => this.button = el, onClick: () => this.toggleCollapse(), onFocus: () => this.focused = true, onBlur: () => this.focused = false }, index.h("svg", { key: 'b372f15ecaf5976047e9b2449f4fcd3c055f42b8', xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, index.h("path", { key: '868d81ffe144e899f7c279b0759e24b791ecad15', d: "M10 17l5-5-5-5v10z" }), index.h("path", { key: 'aebb999015589ddcaa6fd2de21d7cb6ca9d89513', d: "M0 24V0h24v24H0z", fill: "none" })))), index.h("div", { key: 'b2744d71ffe4280da9d6835733a595f5efb870bf', class: "item" }, index.h("div", { key: '481e8af5e509a11eb3c4dc6d7643ca27b2131724', class: "item-slot" }, index.h("slot", { key: '64818d6a55c41aff2deb644c91977c481ee58a50' })), index.h("dnn-collapsible", { key: '367b4f7696551c2d6710af1eb5916482711685d1', ref: el => this.collapsible = el, expanded: this.expanded }, index.h("div", { key: '59de6e9d81c051f68c4f36f8d91b11b33d8587d1', ref: el => this.childElement = el }, index.h("slot", { key: 'e59ba3b15f432ca827be4772c066cd7574200ec0', name: "children" }))))));
|
|
64
64
|
}
|
|
65
65
|
get el() { return index.getElement(this); }
|
|
66
66
|
static get watchers() { return {
|
|
@@ -113,8 +113,8 @@ const DnnVerticalOverflowMenu = class {
|
|
|
113
113
|
}
|
|
114
114
|
}
|
|
115
115
|
render() {
|
|
116
|
-
return (index.h(index.Host, { key: '
|
|
117
|
-
index.h("div", { key: '
|
|
116
|
+
return (index.h(index.Host, { key: '6553ac042249e33d80a068a90536999c3a81369b' }, index.h("div", { key: 'abda0519cdacb5aafe82ea4aed834ff5c45db258', class: "menu-container" }, index.h("div", { key: 'bbff94190c8bc214a37bbfb055ce6846e1a2457e', class: "menu", ref: el => this.menu = el }, index.h("slot", { key: '6e97a2e313a635fe11ce2488c15e264f68958e29' })), this.showDropdownButton &&
|
|
117
|
+
index.h("div", { key: '1626915b6572090266db9af30b8c6f8fd7cc6bb1', class: "overflow" }, index.h("button", { key: 'dd2e55c8d08ca42b13600665fc9be680e123e340', ref: el => this.button = el, class: "icon", onClick: () => this.toggleOverflowMenu() }, index.h("svg", { key: 'a44022b2c686ca8839dd6f9b612adb6576c0b38c', xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, index.h("path", { key: 'f4107dd8572b748a0c674ec40d0bdd6483c3083d', d: "M0 0h24v24H0z", fill: "none" }), index.h("path", { key: '50568879b9ac708a8ace4ff03b56618f866f9f12', d: "M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z" }))), index.h("div", { key: '263af3536c4aae3c72b8c964ba8f5737869b440c', class: "dropdown", ref: el => this.dropdown = el }, index.h("slot", { key: '6fbb0e725338c5422cdd94f1f0f30e64f3dabc7f', name: "dropdown" }))))));
|
|
118
118
|
}
|
|
119
119
|
get element() { return index.getElement(this); }
|
|
120
120
|
};
|
|
@@ -114,14 +114,14 @@ const DnnVerticalSplitview = class {
|
|
|
114
114
|
this.rightWidth = fullWidth - this.leftWidth;
|
|
115
115
|
}
|
|
116
116
|
render() {
|
|
117
|
-
return (index.h(index.Host, { key: '
|
|
117
|
+
return (index.h(index.Host, { key: 'e140fa989f74e328619a4d5a53d4b7cfb6ca5970' }, index.h("div", { key: '22a05426ed02cb10f3a2ceeb7f7682f8677e4c31', class: "left pane", style: {
|
|
118
118
|
width: `${this.leftWidth}px`,
|
|
119
|
-
} }, index.h("slot", { key: '
|
|
119
|
+
} }, index.h("slot", { key: 'c997933e9bda3464c6f49e818ac3c39aae7ede99', name: "left" })), index.h("button", { key: 'f2a04a9418f614df26d3a7fab7a71eda82b5a244', onMouseDown: e => this.handleMouseDown(e), onTouchStart: e => this.handleMouseDown(e), onKeyDown: e => this.handleKeyDown(e), ref: el => this.splitter = el, style: {
|
|
120
120
|
minWidth: `${this.splitterWidth.toString()}px`,
|
|
121
121
|
left: `${this.leftWidth - 2}px`,
|
|
122
|
-
} }, index.h("slot", { key: '
|
|
122
|
+
} }, index.h("slot", { key: '2f81c5e1858a6824f5ce4d4162f05acfd1733798' })), index.h("div", { key: '568a5a6f4aac1a438332085c1288dd9ed84e6143', class: "right pane", style: {
|
|
123
123
|
width: `${this.rightWidth}px`,
|
|
124
|
-
} }, index.h("slot", { key: '
|
|
124
|
+
} }, index.h("slot", { key: 'd509c38b1c51ff0dcdef8f9c419ebc1a9ed63a81', name: "right" }))));
|
|
125
125
|
}
|
|
126
126
|
get element() { return index.getElement(this); }
|
|
127
127
|
};
|