@dnncommunity/dnn-elements 0.24.3 → 0.25.0
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-checkbox.cjs.entry.js +13 -12
- package/dist/cjs/dnn-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/dnn-permissions-grid.cjs.entry.js +19 -9
- package/dist/cjs/dnn-permissions-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/dnn-richtext.cjs.entry.js +9 -3
- package/dist/cjs/dnn-richtext.cjs.entry.js.map +1 -1
- package/dist/cjs/dnn.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/dnn-checkbox/dnn-checkbox.js +35 -14
- package/dist/collection/components/dnn-checkbox/dnn-checkbox.js.map +1 -1
- package/dist/collection/components/dnn-permissions-grid/dnn-permissions-grid.js +19 -9
- package/dist/collection/components/dnn-permissions-grid/dnn-permissions-grid.js.map +1 -1
- package/dist/collection/components/dnn-richtext/dnn-richtext.js +53 -4
- package/dist/collection/components/dnn-richtext/dnn-richtext.js.map +1 -1
- package/dist/dnn/dnn.esm.js +1 -1
- package/dist/dnn/dnn.esm.js.map +1 -1
- package/dist/dnn/p-0de82dae.entry.js +2 -0
- package/dist/dnn/p-0de82dae.entry.js.map +1 -0
- package/dist/dnn/{p-e7a44eb3.entry.js → p-9b318120.entry.js} +2 -2
- package/dist/dnn/p-9b318120.entry.js.map +1 -0
- package/dist/dnn/p-bff377d5.entry.js +2 -0
- package/dist/dnn/p-bff377d5.entry.js.map +1 -0
- package/dist/esm/dnn-checkbox.entry.js +13 -12
- package/dist/esm/dnn-checkbox.entry.js.map +1 -1
- package/dist/esm/dnn-permissions-grid.entry.js +19 -9
- package/dist/esm/dnn-permissions-grid.entry.js.map +1 -1
- package/dist/esm/dnn-richtext.entry.js +9 -3
- package/dist/esm/dnn-richtext.entry.js.map +1 -1
- package/dist/esm/dnn.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/dnn-checkbox/dnn-checkbox.d.ts +6 -0
- package/dist/types/components/dnn-permissions-grid/dnn-permissions-grid.d.ts +1 -0
- package/dist/types/components/dnn-richtext/dnn-richtext.d.ts +25 -4
- package/dist/types/components.d.ts +28 -2
- package/package.json +2 -2
- package/dist/dnn/p-2b0a6053.entry.js +0 -2
- package/dist/dnn/p-2b0a6053.entry.js.map +0 -1
- package/dist/dnn/p-bd6d200f.entry.js +0 -2
- package/dist/dnn/p-bd6d200f.entry.js.map +0 -1
- package/dist/dnn/p-e7a44eb3.entry.js.map +0 -1
package/dist/cjs/dnn.cjs.js
CHANGED
|
@@ -19,7 +19,7 @@ var patchBrowser = () => {
|
|
|
19
19
|
|
|
20
20
|
patchBrowser().then(async (options) => {
|
|
21
21
|
await appGlobals.globalScripts();
|
|
22
|
-
return index.bootstrapLazy([["dnn-color-input.cjs",[[65,"dnn-color-input",{"color":[1025],"contrastColor":[1025,"contrast-color"],"lightColor":[1025,"light-color"],"darkColor":[1025,"dark-color"],"label":[1],"readonly":[4],"localization":[16],"name":[1],"helpText":[1,"help-text"],"useContrastColor":[4,"use-contrast-color"],"useLightColor":[4,"use-light-color"],"useDarkColor":[4,"use-dark-color"],"currentColor":[32],"focused":[32]},null,{"currentColor":["currentColorChanged"]}]]],["dnn-image-cropper.cjs",[[65,"dnn-image-cropper",{"width":[2],"height":[2],"resx":[16],"quality":[2],"preventUndersized":[4,"prevent-undersized"],"name":[1],"view":[32],"localResx":[32],"fileName":[32],"focused":[32],"clear":[64]},null,{"resx":["resxChanged"]}]]],["dnn-autocomplete.cjs",[[65,"dnn-autocomplete",{"label":[1],"name":[1],"helpText":[1,"help-text"],"value":[1537],"required":[4],"disabled":[4],"suggestions":[16],"renderSuggestion":[16],"totalSuggestions":[2,"total-suggestions"],"preloadThresholdPixels":[2,"preload-threshold-pixels"],"autocomplete":[1],"focused":[32],"valid":[32],"customValidityMessage":[32],"selectedIndex":[32],"positionInitialized":[32],"lastScrollTop":[32],"displayValue":[32],"checkValidity":[64],"setCustomValidity":[64]},[[4,"click","handleClick"]],{"value":["handleValueChange"]}]]],["dnn-input.cjs",[[65,"dnn-input",{"type":[1025],"label":[1],"name":[1],"value":[1544],"helpText":[1,"help-text"],"required":[4],"disabled":[4],"autocomplete":[1],"min":[8],"max":[8],"minlength":[2],"maxlength":[2],"multiple":[4],"pattern":[1],"readonly":[4],"step":[8],"disableValidityReporting":[4,"disable-validity-reporting"],"allowShowPassword":[4,"allow-show-password"],"inputmode":[1],"focused":[32],"valid":[32],"checkValidity":[64],"setCustomValidity":[64]}]]],["dnn-select.cjs",[[65,"dnn-select",{"label":[1],"name":[1],"required":[4],"helpText":[1,"help-text"],"disabled":[4],"disableValidityReporting":[4,"disable-validity-reporting"],"autocomplete":[1],"value":[1537],"focused":[32],"valid":[32],"customValidityMessage":[32],"checkValidity":[64]}]]],["dnn-textarea.cjs",[[65,"dnn-textarea",{"resizable":[1],"value":[1025],"label":[1],"name":[1],"helpText":[1,"help-text"],"required":[4],"disabled":[4],"autocomplete":[1],"minlength":[2],"maxlength":[2],"readonly":[4],"rows":[2],"focused":[32],"valid":[32],"customValidityMessage":[32],"checkValidity":[64],"setCustomValidity":[64]}]]],["dnn-treeview-item.cjs",[[1,"dnn-treeview-item",{"expanded":[1540],"hasChildren":[32],"focused":[32]},null,{"expanded":["watchExpanded"]}]]],["dnn-chevron.cjs",[[1,"dnn-chevron",{"expandText":[1,"expand-text"],"collapseText":[1,"collapse-text"],"expanded":[1540],"focused":[32]},null,{"expanded":["handleExpandedChanged"]}]]],["dnn-monaco-editor.cjs",[[66,"dnn-monaco-editor",{"language":[1],"value":[1025],"name":[1],"focused":[32]},null,{"language":["languageChanged"],"value":["valueChanged"]}]]],["dnn-progress-bar.cjs",[[1,"dnn-progress-bar",{"value":[2],"max":[2],"useGradient":[4,"use-gradient"]}]]],["dnn-richtext.cjs",[[65,"dnn-richtext",{"options":[16],"value":[1],"name":[1],"focused":[32]},null,{"value":["watchValueChanged"]}]]],["dnn-sort-icon.cjs",[[1,"dnn-sort-icon",{"sortDirection":[1025,"sort-direction"],"focused":[32]}]]],["dnn-toggle.cjs",[[65,"dnn-toggle",{"checked":[1028],"disabled":[4],"name":[1],"value":[1],"focused":[32]},[[2,"click","handleClick"]],{"checked":["checkedChanged"]}]]],["dnn-vertical-overflow-menu.cjs",[[1,"dnn-vertical-overflow-menu",{"showDropdownButton":[32],"showDropdownMenu":[32]}]]],["dnn-vertical-splitview.cjs",[[1,"dnn-vertical-splitview",{"splitterWidth":[2,"splitter-width"],"splitWidthPercentage":[1026,"split-width-percentage"],"leftWidth":[32],"rightWidth":[32],"setSplitWidthPercentage":[64],"getSplitWidthPercentage":[64]}]]],["dnn-checkbox.cjs",[[65,"dnn-checkbox",{"checked":[1025],"useIntermediate":[4,"use-intermediate"],"value":[1],"name":[1],"focused":[32]},[[2,"click","handleClick"]],{"checked":["handleCheckedChange"]}]]],["dnn-color-picker.cjs",[[1,"dnn-color-picker",{"color":[1],"colorBoxHeight":[1,"color-box-height"],"currentColor":[32],"rgbDisplay":[32],"hslDisplay":[32],"hexDisplay":[32],"focused":[32]},null,{"currentColor":["handeCurrentColorChanged"]}]]],["dnn-dropzone.cjs",[[65,"dnn-dropzone",{"resx":[16],"allowedExtensions":[16],"allowCameraMode":[4,"allow-camera-mode"],"captureQuality":[2,"capture-quality"],"maxFileSize":[2,"max-file-size"],"name":[1],"canTakeSnapshots":[32],"takingPicture":[32],"fileTooLarge":[32],"invalidExtension":[32],"localResx":[32],"focused":[32]},null,{"resx":["resxChanged"]}]]],["dnn-searchbox.cjs",[[1,"dnn-searchbox",{"placeholder":[1],"debounced":[4],"debounceTime":[2,"debounce-time"],"query":[1025],"focused":[32]},null,{"query":["handleQueryChanged"]}]]],["dnn-tab_2.cjs",[[1,"dnn-tab",{"tabTitle":[1,"tab-title"],"visible":[32],"show":[64],"hide":[64]}],[1,"dnn-tabs",{"tabTitles":[32],"selectedTabTitle":[32]}]]],["dnn-collapsible.cjs",[[1,"dnn-collapsible",{"expanded":[516],"transitionDuration":[2,"transition-duration"],"updateSize":[64]},[[0,"dnnCollapsibleHeightChanged","handleHeightChanged"]],{"expanded":["handledExpandedChanged"]}]]],["dnn-modal.cjs",[[1,"dnn-modal",{"backdropDismiss":[4,"backdrop-dismiss"],"closeText":[1,"close-text"],"resizable":[4],"showCloseButton":[4,"show-close-button"],"visible":[1540],"show":[64],"hide":[64]}]]],["dnn-button.cjs",[[65,"dnn-button",{"type":[1],"appearance":[1],"formButtonType":[1,"form-button-type"],"reversed":[4],"size":[1],"confirm":[4],"confirmYesText":[1,"confirm-yes-text"],"confirmNoText":[1,"confirm-no-text"],"confirmMessage":[1,"confirm-message"],"disabled":[4],"focused":[32],"modalVisible":[32]}]]],["dnn-permissions-grid.cjs",[[1,"dnn-permissions-grid",{"permissions":[1040],"roleGroups":[16],"roles":[16],"resx":[16],"foundUsers":[16],"selectedRoleGroupId":[32],"userQuery":[32],"pickedUser":[32],"localResx":[32],"focused":[32]},null,{"foundUsers":["handleFoundUsersChanged"],"resx":["resxChanged"]}]]],["dnn-fieldset.cjs",[[1,"dnn-fieldset",{"focused":[1540],"disabled":[1540],"invalid":[1540],"label":[1],"floatLabel":[1540,"float-label"],"helpText":[1,"help-text"],"resizable":[1],"customValidityMessage":[32],"setFocused":[64],"setBlurred":[64],"disable":[64],"enable":[64],"pinLabel":[64],"unpinLabel":[64],"setValidity":[64]}]]]], options);
|
|
22
|
+
return index.bootstrapLazy([["dnn-color-input.cjs",[[65,"dnn-color-input",{"color":[1025],"contrastColor":[1025,"contrast-color"],"lightColor":[1025,"light-color"],"darkColor":[1025,"dark-color"],"label":[1],"readonly":[4],"localization":[16],"name":[1],"helpText":[1,"help-text"],"useContrastColor":[4,"use-contrast-color"],"useLightColor":[4,"use-light-color"],"useDarkColor":[4,"use-dark-color"],"currentColor":[32],"focused":[32]},null,{"currentColor":["currentColorChanged"]}]]],["dnn-image-cropper.cjs",[[65,"dnn-image-cropper",{"width":[2],"height":[2],"resx":[16],"quality":[2],"preventUndersized":[4,"prevent-undersized"],"name":[1],"view":[32],"localResx":[32],"fileName":[32],"focused":[32],"clear":[64]},null,{"resx":["resxChanged"]}]]],["dnn-autocomplete.cjs",[[65,"dnn-autocomplete",{"label":[1],"name":[1],"helpText":[1,"help-text"],"value":[1537],"required":[4],"disabled":[4],"suggestions":[16],"renderSuggestion":[16],"totalSuggestions":[2,"total-suggestions"],"preloadThresholdPixels":[2,"preload-threshold-pixels"],"autocomplete":[1],"focused":[32],"valid":[32],"customValidityMessage":[32],"selectedIndex":[32],"positionInitialized":[32],"lastScrollTop":[32],"displayValue":[32],"checkValidity":[64],"setCustomValidity":[64]},[[4,"click","handleClick"]],{"value":["handleValueChange"]}]]],["dnn-input.cjs",[[65,"dnn-input",{"type":[1025],"label":[1],"name":[1],"value":[1544],"helpText":[1,"help-text"],"required":[4],"disabled":[4],"autocomplete":[1],"min":[8],"max":[8],"minlength":[2],"maxlength":[2],"multiple":[4],"pattern":[1],"readonly":[4],"step":[8],"disableValidityReporting":[4,"disable-validity-reporting"],"allowShowPassword":[4,"allow-show-password"],"inputmode":[1],"focused":[32],"valid":[32],"checkValidity":[64],"setCustomValidity":[64]}]]],["dnn-select.cjs",[[65,"dnn-select",{"label":[1],"name":[1],"required":[4],"helpText":[1,"help-text"],"disabled":[4],"disableValidityReporting":[4,"disable-validity-reporting"],"autocomplete":[1],"value":[1537],"focused":[32],"valid":[32],"customValidityMessage":[32],"checkValidity":[64]}]]],["dnn-textarea.cjs",[[65,"dnn-textarea",{"resizable":[1],"value":[1025],"label":[1],"name":[1],"helpText":[1,"help-text"],"required":[4],"disabled":[4],"autocomplete":[1],"minlength":[2],"maxlength":[2],"readonly":[4],"rows":[2],"focused":[32],"valid":[32],"customValidityMessage":[32],"checkValidity":[64],"setCustomValidity":[64]}]]],["dnn-treeview-item.cjs",[[1,"dnn-treeview-item",{"expanded":[1540],"hasChildren":[32],"focused":[32]},null,{"expanded":["watchExpanded"]}]]],["dnn-chevron.cjs",[[1,"dnn-chevron",{"expandText":[1,"expand-text"],"collapseText":[1,"collapse-text"],"expanded":[1540],"focused":[32]},null,{"expanded":["handleExpandedChanged"]}]]],["dnn-monaco-editor.cjs",[[66,"dnn-monaco-editor",{"language":[1],"value":[1025],"name":[1],"focused":[32]},null,{"language":["languageChanged"],"value":["valueChanged"]}]]],["dnn-progress-bar.cjs",[[1,"dnn-progress-bar",{"value":[2],"max":[2],"useGradient":[4,"use-gradient"]}]]],["dnn-richtext.cjs",[[65,"dnn-richtext",{"options":[16],"value":[1],"name":[1],"plugins":[16],"customizeOptions":[16],"focused":[32]},null,{"value":["watchValueChanged"]}]]],["dnn-sort-icon.cjs",[[1,"dnn-sort-icon",{"sortDirection":[1025,"sort-direction"],"focused":[32]}]]],["dnn-toggle.cjs",[[65,"dnn-toggle",{"checked":[1028],"disabled":[4],"name":[1],"value":[1],"focused":[32]},[[2,"click","handleClick"]],{"checked":["checkedChanged"]}]]],["dnn-vertical-overflow-menu.cjs",[[1,"dnn-vertical-overflow-menu",{"showDropdownButton":[32],"showDropdownMenu":[32]}]]],["dnn-vertical-splitview.cjs",[[1,"dnn-vertical-splitview",{"splitterWidth":[2,"splitter-width"],"splitWidthPercentage":[1026,"split-width-percentage"],"leftWidth":[32],"rightWidth":[32],"setSplitWidthPercentage":[64],"getSplitWidthPercentage":[64]}]]],["dnn-checkbox.cjs",[[65,"dnn-checkbox",{"checked":[1025],"useIntermediate":[4,"use-intermediate"],"value":[1],"name":[1],"nextStateHandler":[16],"focused":[32]},[[2,"click","handleClick"]],{"checked":["handleCheckedChange"]}]]],["dnn-color-picker.cjs",[[1,"dnn-color-picker",{"color":[1],"colorBoxHeight":[1,"color-box-height"],"currentColor":[32],"rgbDisplay":[32],"hslDisplay":[32],"hexDisplay":[32],"focused":[32]},null,{"currentColor":["handeCurrentColorChanged"]}]]],["dnn-dropzone.cjs",[[65,"dnn-dropzone",{"resx":[16],"allowedExtensions":[16],"allowCameraMode":[4,"allow-camera-mode"],"captureQuality":[2,"capture-quality"],"maxFileSize":[2,"max-file-size"],"name":[1],"canTakeSnapshots":[32],"takingPicture":[32],"fileTooLarge":[32],"invalidExtension":[32],"localResx":[32],"focused":[32]},null,{"resx":["resxChanged"]}]]],["dnn-searchbox.cjs",[[1,"dnn-searchbox",{"placeholder":[1],"debounced":[4],"debounceTime":[2,"debounce-time"],"query":[1025],"focused":[32]},null,{"query":["handleQueryChanged"]}]]],["dnn-tab_2.cjs",[[1,"dnn-tab",{"tabTitle":[1,"tab-title"],"visible":[32],"show":[64],"hide":[64]}],[1,"dnn-tabs",{"tabTitles":[32],"selectedTabTitle":[32]}]]],["dnn-collapsible.cjs",[[1,"dnn-collapsible",{"expanded":[516],"transitionDuration":[2,"transition-duration"],"updateSize":[64]},[[0,"dnnCollapsibleHeightChanged","handleHeightChanged"]],{"expanded":["handledExpandedChanged"]}]]],["dnn-modal.cjs",[[1,"dnn-modal",{"backdropDismiss":[4,"backdrop-dismiss"],"closeText":[1,"close-text"],"resizable":[4],"showCloseButton":[4,"show-close-button"],"visible":[1540],"show":[64],"hide":[64]}]]],["dnn-button.cjs",[[65,"dnn-button",{"type":[1],"appearance":[1],"formButtonType":[1,"form-button-type"],"reversed":[4],"size":[1],"confirm":[4],"confirmYesText":[1,"confirm-yes-text"],"confirmNoText":[1,"confirm-no-text"],"confirmMessage":[1,"confirm-message"],"disabled":[4],"focused":[32],"modalVisible":[32]}]]],["dnn-permissions-grid.cjs",[[1,"dnn-permissions-grid",{"permissions":[1040],"roleGroups":[16],"roles":[16],"resx":[16],"foundUsers":[16],"selectedRoleGroupId":[32],"userQuery":[32],"pickedUser":[32],"localResx":[32],"focused":[32]},null,{"foundUsers":["handleFoundUsersChanged"],"resx":["resxChanged"]}]]],["dnn-fieldset.cjs",[[1,"dnn-fieldset",{"focused":[1540],"disabled":[1540],"invalid":[1540],"label":[1],"floatLabel":[1540,"float-label"],"helpText":[1,"help-text"],"resizable":[1],"customValidityMessage":[32],"setFocused":[64],"setBlurred":[64],"disable":[64],"enable":[64],"pinLabel":[64],"unpinLabel":[64],"setValidity":[64]}]]]], options);
|
|
23
23
|
});
|
|
24
24
|
|
|
25
25
|
exports.setNonce = index.setNonce;
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -8,7 +8,7 @@ const appGlobals = require('./app-globals-3a1e7e63.js');
|
|
|
8
8
|
const defineCustomElements = async (win, options) => {
|
|
9
9
|
if (typeof window === 'undefined') return undefined;
|
|
10
10
|
await appGlobals.globalScripts();
|
|
11
|
-
return index.bootstrapLazy([["dnn-color-input.cjs",[[65,"dnn-color-input",{"color":[1025],"contrastColor":[1025,"contrast-color"],"lightColor":[1025,"light-color"],"darkColor":[1025,"dark-color"],"label":[1],"readonly":[4],"localization":[16],"name":[1],"helpText":[1,"help-text"],"useContrastColor":[4,"use-contrast-color"],"useLightColor":[4,"use-light-color"],"useDarkColor":[4,"use-dark-color"],"currentColor":[32],"focused":[32]},null,{"currentColor":["currentColorChanged"]}]]],["dnn-image-cropper.cjs",[[65,"dnn-image-cropper",{"width":[2],"height":[2],"resx":[16],"quality":[2],"preventUndersized":[4,"prevent-undersized"],"name":[1],"view":[32],"localResx":[32],"fileName":[32],"focused":[32],"clear":[64]},null,{"resx":["resxChanged"]}]]],["dnn-autocomplete.cjs",[[65,"dnn-autocomplete",{"label":[1],"name":[1],"helpText":[1,"help-text"],"value":[1537],"required":[4],"disabled":[4],"suggestions":[16],"renderSuggestion":[16],"totalSuggestions":[2,"total-suggestions"],"preloadThresholdPixels":[2,"preload-threshold-pixels"],"autocomplete":[1],"focused":[32],"valid":[32],"customValidityMessage":[32],"selectedIndex":[32],"positionInitialized":[32],"lastScrollTop":[32],"displayValue":[32],"checkValidity":[64],"setCustomValidity":[64]},[[4,"click","handleClick"]],{"value":["handleValueChange"]}]]],["dnn-input.cjs",[[65,"dnn-input",{"type":[1025],"label":[1],"name":[1],"value":[1544],"helpText":[1,"help-text"],"required":[4],"disabled":[4],"autocomplete":[1],"min":[8],"max":[8],"minlength":[2],"maxlength":[2],"multiple":[4],"pattern":[1],"readonly":[4],"step":[8],"disableValidityReporting":[4,"disable-validity-reporting"],"allowShowPassword":[4,"allow-show-password"],"inputmode":[1],"focused":[32],"valid":[32],"checkValidity":[64],"setCustomValidity":[64]}]]],["dnn-select.cjs",[[65,"dnn-select",{"label":[1],"name":[1],"required":[4],"helpText":[1,"help-text"],"disabled":[4],"disableValidityReporting":[4,"disable-validity-reporting"],"autocomplete":[1],"value":[1537],"focused":[32],"valid":[32],"customValidityMessage":[32],"checkValidity":[64]}]]],["dnn-textarea.cjs",[[65,"dnn-textarea",{"resizable":[1],"value":[1025],"label":[1],"name":[1],"helpText":[1,"help-text"],"required":[4],"disabled":[4],"autocomplete":[1],"minlength":[2],"maxlength":[2],"readonly":[4],"rows":[2],"focused":[32],"valid":[32],"customValidityMessage":[32],"checkValidity":[64],"setCustomValidity":[64]}]]],["dnn-treeview-item.cjs",[[1,"dnn-treeview-item",{"expanded":[1540],"hasChildren":[32],"focused":[32]},null,{"expanded":["watchExpanded"]}]]],["dnn-chevron.cjs",[[1,"dnn-chevron",{"expandText":[1,"expand-text"],"collapseText":[1,"collapse-text"],"expanded":[1540],"focused":[32]},null,{"expanded":["handleExpandedChanged"]}]]],["dnn-monaco-editor.cjs",[[66,"dnn-monaco-editor",{"language":[1],"value":[1025],"name":[1],"focused":[32]},null,{"language":["languageChanged"],"value":["valueChanged"]}]]],["dnn-progress-bar.cjs",[[1,"dnn-progress-bar",{"value":[2],"max":[2],"useGradient":[4,"use-gradient"]}]]],["dnn-richtext.cjs",[[65,"dnn-richtext",{"options":[16],"value":[1],"name":[1],"focused":[32]},null,{"value":["watchValueChanged"]}]]],["dnn-sort-icon.cjs",[[1,"dnn-sort-icon",{"sortDirection":[1025,"sort-direction"],"focused":[32]}]]],["dnn-toggle.cjs",[[65,"dnn-toggle",{"checked":[1028],"disabled":[4],"name":[1],"value":[1],"focused":[32]},[[2,"click","handleClick"]],{"checked":["checkedChanged"]}]]],["dnn-vertical-overflow-menu.cjs",[[1,"dnn-vertical-overflow-menu",{"showDropdownButton":[32],"showDropdownMenu":[32]}]]],["dnn-vertical-splitview.cjs",[[1,"dnn-vertical-splitview",{"splitterWidth":[2,"splitter-width"],"splitWidthPercentage":[1026,"split-width-percentage"],"leftWidth":[32],"rightWidth":[32],"setSplitWidthPercentage":[64],"getSplitWidthPercentage":[64]}]]],["dnn-checkbox.cjs",[[65,"dnn-checkbox",{"checked":[1025],"useIntermediate":[4,"use-intermediate"],"value":[1],"name":[1],"focused":[32]},[[2,"click","handleClick"]],{"checked":["handleCheckedChange"]}]]],["dnn-color-picker.cjs",[[1,"dnn-color-picker",{"color":[1],"colorBoxHeight":[1,"color-box-height"],"currentColor":[32],"rgbDisplay":[32],"hslDisplay":[32],"hexDisplay":[32],"focused":[32]},null,{"currentColor":["handeCurrentColorChanged"]}]]],["dnn-dropzone.cjs",[[65,"dnn-dropzone",{"resx":[16],"allowedExtensions":[16],"allowCameraMode":[4,"allow-camera-mode"],"captureQuality":[2,"capture-quality"],"maxFileSize":[2,"max-file-size"],"name":[1],"canTakeSnapshots":[32],"takingPicture":[32],"fileTooLarge":[32],"invalidExtension":[32],"localResx":[32],"focused":[32]},null,{"resx":["resxChanged"]}]]],["dnn-searchbox.cjs",[[1,"dnn-searchbox",{"placeholder":[1],"debounced":[4],"debounceTime":[2,"debounce-time"],"query":[1025],"focused":[32]},null,{"query":["handleQueryChanged"]}]]],["dnn-tab_2.cjs",[[1,"dnn-tab",{"tabTitle":[1,"tab-title"],"visible":[32],"show":[64],"hide":[64]}],[1,"dnn-tabs",{"tabTitles":[32],"selectedTabTitle":[32]}]]],["dnn-collapsible.cjs",[[1,"dnn-collapsible",{"expanded":[516],"transitionDuration":[2,"transition-duration"],"updateSize":[64]},[[0,"dnnCollapsibleHeightChanged","handleHeightChanged"]],{"expanded":["handledExpandedChanged"]}]]],["dnn-modal.cjs",[[1,"dnn-modal",{"backdropDismiss":[4,"backdrop-dismiss"],"closeText":[1,"close-text"],"resizable":[4],"showCloseButton":[4,"show-close-button"],"visible":[1540],"show":[64],"hide":[64]}]]],["dnn-button.cjs",[[65,"dnn-button",{"type":[1],"appearance":[1],"formButtonType":[1,"form-button-type"],"reversed":[4],"size":[1],"confirm":[4],"confirmYesText":[1,"confirm-yes-text"],"confirmNoText":[1,"confirm-no-text"],"confirmMessage":[1,"confirm-message"],"disabled":[4],"focused":[32],"modalVisible":[32]}]]],["dnn-permissions-grid.cjs",[[1,"dnn-permissions-grid",{"permissions":[1040],"roleGroups":[16],"roles":[16],"resx":[16],"foundUsers":[16],"selectedRoleGroupId":[32],"userQuery":[32],"pickedUser":[32],"localResx":[32],"focused":[32]},null,{"foundUsers":["handleFoundUsersChanged"],"resx":["resxChanged"]}]]],["dnn-fieldset.cjs",[[1,"dnn-fieldset",{"focused":[1540],"disabled":[1540],"invalid":[1540],"label":[1],"floatLabel":[1540,"float-label"],"helpText":[1,"help-text"],"resizable":[1],"customValidityMessage":[32],"setFocused":[64],"setBlurred":[64],"disable":[64],"enable":[64],"pinLabel":[64],"unpinLabel":[64],"setValidity":[64]}]]]], options);
|
|
11
|
+
return index.bootstrapLazy([["dnn-color-input.cjs",[[65,"dnn-color-input",{"color":[1025],"contrastColor":[1025,"contrast-color"],"lightColor":[1025,"light-color"],"darkColor":[1025,"dark-color"],"label":[1],"readonly":[4],"localization":[16],"name":[1],"helpText":[1,"help-text"],"useContrastColor":[4,"use-contrast-color"],"useLightColor":[4,"use-light-color"],"useDarkColor":[4,"use-dark-color"],"currentColor":[32],"focused":[32]},null,{"currentColor":["currentColorChanged"]}]]],["dnn-image-cropper.cjs",[[65,"dnn-image-cropper",{"width":[2],"height":[2],"resx":[16],"quality":[2],"preventUndersized":[4,"prevent-undersized"],"name":[1],"view":[32],"localResx":[32],"fileName":[32],"focused":[32],"clear":[64]},null,{"resx":["resxChanged"]}]]],["dnn-autocomplete.cjs",[[65,"dnn-autocomplete",{"label":[1],"name":[1],"helpText":[1,"help-text"],"value":[1537],"required":[4],"disabled":[4],"suggestions":[16],"renderSuggestion":[16],"totalSuggestions":[2,"total-suggestions"],"preloadThresholdPixels":[2,"preload-threshold-pixels"],"autocomplete":[1],"focused":[32],"valid":[32],"customValidityMessage":[32],"selectedIndex":[32],"positionInitialized":[32],"lastScrollTop":[32],"displayValue":[32],"checkValidity":[64],"setCustomValidity":[64]},[[4,"click","handleClick"]],{"value":["handleValueChange"]}]]],["dnn-input.cjs",[[65,"dnn-input",{"type":[1025],"label":[1],"name":[1],"value":[1544],"helpText":[1,"help-text"],"required":[4],"disabled":[4],"autocomplete":[1],"min":[8],"max":[8],"minlength":[2],"maxlength":[2],"multiple":[4],"pattern":[1],"readonly":[4],"step":[8],"disableValidityReporting":[4,"disable-validity-reporting"],"allowShowPassword":[4,"allow-show-password"],"inputmode":[1],"focused":[32],"valid":[32],"checkValidity":[64],"setCustomValidity":[64]}]]],["dnn-select.cjs",[[65,"dnn-select",{"label":[1],"name":[1],"required":[4],"helpText":[1,"help-text"],"disabled":[4],"disableValidityReporting":[4,"disable-validity-reporting"],"autocomplete":[1],"value":[1537],"focused":[32],"valid":[32],"customValidityMessage":[32],"checkValidity":[64]}]]],["dnn-textarea.cjs",[[65,"dnn-textarea",{"resizable":[1],"value":[1025],"label":[1],"name":[1],"helpText":[1,"help-text"],"required":[4],"disabled":[4],"autocomplete":[1],"minlength":[2],"maxlength":[2],"readonly":[4],"rows":[2],"focused":[32],"valid":[32],"customValidityMessage":[32],"checkValidity":[64],"setCustomValidity":[64]}]]],["dnn-treeview-item.cjs",[[1,"dnn-treeview-item",{"expanded":[1540],"hasChildren":[32],"focused":[32]},null,{"expanded":["watchExpanded"]}]]],["dnn-chevron.cjs",[[1,"dnn-chevron",{"expandText":[1,"expand-text"],"collapseText":[1,"collapse-text"],"expanded":[1540],"focused":[32]},null,{"expanded":["handleExpandedChanged"]}]]],["dnn-monaco-editor.cjs",[[66,"dnn-monaco-editor",{"language":[1],"value":[1025],"name":[1],"focused":[32]},null,{"language":["languageChanged"],"value":["valueChanged"]}]]],["dnn-progress-bar.cjs",[[1,"dnn-progress-bar",{"value":[2],"max":[2],"useGradient":[4,"use-gradient"]}]]],["dnn-richtext.cjs",[[65,"dnn-richtext",{"options":[16],"value":[1],"name":[1],"plugins":[16],"customizeOptions":[16],"focused":[32]},null,{"value":["watchValueChanged"]}]]],["dnn-sort-icon.cjs",[[1,"dnn-sort-icon",{"sortDirection":[1025,"sort-direction"],"focused":[32]}]]],["dnn-toggle.cjs",[[65,"dnn-toggle",{"checked":[1028],"disabled":[4],"name":[1],"value":[1],"focused":[32]},[[2,"click","handleClick"]],{"checked":["checkedChanged"]}]]],["dnn-vertical-overflow-menu.cjs",[[1,"dnn-vertical-overflow-menu",{"showDropdownButton":[32],"showDropdownMenu":[32]}]]],["dnn-vertical-splitview.cjs",[[1,"dnn-vertical-splitview",{"splitterWidth":[2,"splitter-width"],"splitWidthPercentage":[1026,"split-width-percentage"],"leftWidth":[32],"rightWidth":[32],"setSplitWidthPercentage":[64],"getSplitWidthPercentage":[64]}]]],["dnn-checkbox.cjs",[[65,"dnn-checkbox",{"checked":[1025],"useIntermediate":[4,"use-intermediate"],"value":[1],"name":[1],"nextStateHandler":[16],"focused":[32]},[[2,"click","handleClick"]],{"checked":["handleCheckedChange"]}]]],["dnn-color-picker.cjs",[[1,"dnn-color-picker",{"color":[1],"colorBoxHeight":[1,"color-box-height"],"currentColor":[32],"rgbDisplay":[32],"hslDisplay":[32],"hexDisplay":[32],"focused":[32]},null,{"currentColor":["handeCurrentColorChanged"]}]]],["dnn-dropzone.cjs",[[65,"dnn-dropzone",{"resx":[16],"allowedExtensions":[16],"allowCameraMode":[4,"allow-camera-mode"],"captureQuality":[2,"capture-quality"],"maxFileSize":[2,"max-file-size"],"name":[1],"canTakeSnapshots":[32],"takingPicture":[32],"fileTooLarge":[32],"invalidExtension":[32],"localResx":[32],"focused":[32]},null,{"resx":["resxChanged"]}]]],["dnn-searchbox.cjs",[[1,"dnn-searchbox",{"placeholder":[1],"debounced":[4],"debounceTime":[2,"debounce-time"],"query":[1025],"focused":[32]},null,{"query":["handleQueryChanged"]}]]],["dnn-tab_2.cjs",[[1,"dnn-tab",{"tabTitle":[1,"tab-title"],"visible":[32],"show":[64],"hide":[64]}],[1,"dnn-tabs",{"tabTitles":[32],"selectedTabTitle":[32]}]]],["dnn-collapsible.cjs",[[1,"dnn-collapsible",{"expanded":[516],"transitionDuration":[2,"transition-duration"],"updateSize":[64]},[[0,"dnnCollapsibleHeightChanged","handleHeightChanged"]],{"expanded":["handledExpandedChanged"]}]]],["dnn-modal.cjs",[[1,"dnn-modal",{"backdropDismiss":[4,"backdrop-dismiss"],"closeText":[1,"close-text"],"resizable":[4],"showCloseButton":[4,"show-close-button"],"visible":[1540],"show":[64],"hide":[64]}]]],["dnn-button.cjs",[[65,"dnn-button",{"type":[1],"appearance":[1],"formButtonType":[1,"form-button-type"],"reversed":[4],"size":[1],"confirm":[4],"confirmYesText":[1,"confirm-yes-text"],"confirmNoText":[1,"confirm-no-text"],"confirmMessage":[1,"confirm-message"],"disabled":[4],"focused":[32],"modalVisible":[32]}]]],["dnn-permissions-grid.cjs",[[1,"dnn-permissions-grid",{"permissions":[1040],"roleGroups":[16],"roles":[16],"resx":[16],"foundUsers":[16],"selectedRoleGroupId":[32],"userQuery":[32],"pickedUser":[32],"localResx":[32],"focused":[32]},null,{"foundUsers":["handleFoundUsersChanged"],"resx":["resxChanged"]}]]],["dnn-fieldset.cjs",[[1,"dnn-fieldset",{"focused":[1540],"disabled":[1540],"invalid":[1540],"label":[1],"floatLabel":[1540,"float-label"],"helpText":[1,"help-text"],"resizable":[1],"customValidityMessage":[32],"setFocused":[64],"setBlurred":[64],"disable":[64],"enable":[64],"pinLabel":[64],"unpinLabel":[64],"setValidity":[64]}]]]], options);
|
|
12
12
|
};
|
|
13
13
|
|
|
14
14
|
exports.setNonce = index.setNonce;
|
|
@@ -11,6 +11,7 @@ export class DnnCheckbox {
|
|
|
11
11
|
this.useIntermediate = false;
|
|
12
12
|
this.value = "on";
|
|
13
13
|
this.name = undefined;
|
|
14
|
+
this.nextStateHandler = this.defaultNextStateHandler;
|
|
14
15
|
this.focused = false;
|
|
15
16
|
}
|
|
16
17
|
handleClick() {
|
|
@@ -32,6 +33,16 @@ export class DnnCheckbox {
|
|
|
32
33
|
this.internals.setValidity({});
|
|
33
34
|
this.checked = this.originalChecked;
|
|
34
35
|
}
|
|
36
|
+
defaultNextStateHandler(currentState) {
|
|
37
|
+
switch (currentState) {
|
|
38
|
+
case "checked":
|
|
39
|
+
return "intermediate";
|
|
40
|
+
case "intermediate":
|
|
41
|
+
return "unchecked";
|
|
42
|
+
case "unchecked":
|
|
43
|
+
return "checked";
|
|
44
|
+
}
|
|
45
|
+
}
|
|
35
46
|
changeState() {
|
|
36
47
|
if (!this.useIntermediate) {
|
|
37
48
|
switch (this.checked) {
|
|
@@ -48,23 +59,11 @@ export class DnnCheckbox {
|
|
|
48
59
|
this.checkedchange.emit(this.checked);
|
|
49
60
|
return;
|
|
50
61
|
}
|
|
51
|
-
|
|
52
|
-
case "checked":
|
|
53
|
-
this.checked = "intermediate";
|
|
54
|
-
break;
|
|
55
|
-
case "intermediate":
|
|
56
|
-
this.checked = "unchecked";
|
|
57
|
-
break;
|
|
58
|
-
case "unchecked":
|
|
59
|
-
this.checked = "checked";
|
|
60
|
-
break;
|
|
61
|
-
default:
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
62
|
+
this.checked = this.nextStateHandler(this.checked);
|
|
64
63
|
this.checkedchange.emit(this.checked);
|
|
65
64
|
}
|
|
66
65
|
render() {
|
|
67
|
-
return (h(Host, { key: '
|
|
66
|
+
return (h(Host, { key: '203ef65e8e0fe77de58322857c05a37c0c1dab28', tabIndex: this.focused ? -1 : 0, onFocus: () => this.button.focus(), onBlur: () => this.button.blur() }, h("button", { key: 'dadc71798f00a3f5f5187298a19ba1e1ec521e68', ref: el => this.button = el, onFocus: () => this.focused = true, onBlur: () => this.focused = false, class: `icon ${this.checked}` }, h("div", { key: 'a6d9d15cb1775a32fb90ec701607c3c1b0103fd8', class: "unchecked" }, h("slot", { key: '587b36e647585f3b0dd888557ce06dbd014568ec', name: "uncheckedicon" }, h("svg", { key: '1034bdab291e80ef743ed69cdf0161b6d2fcb41c', xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, h("path", { key: '92391ad8827b032fc6ce9ac296fd693097c9fd2b', d: "M0 0h24v24H0z", fill: "none" }), h("path", { key: '185f2a78f5e3fe761bf28a16154383e2435253c4', 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" })))), h("div", { key: 'f006e6133f020fa6c3efbb502a3fa43934c6a46f', class: "checked" }, h("slot", { key: 'b1e0190f34c0788d435a77d3e775160f3a201bfa', name: "checkedicon" }, h("svg", { key: '6dec3ff7ca88000ae655d5c9e717cc471eb59155', xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, h("path", { key: '466b5cd85a05c0b1a6e48720419f4f92dc97ded1', d: "M0 0h24v24H0z", fill: "none" }), h("path", { key: 'd3737cd5c0f21b2d272d8995c9042af3aa28f30a', d: "M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z" })))), h("div", { key: 'b0f81a2a1f2dd89c82510640f1ae0d9c3c2ae3f0', class: "intermediate" }, h("slot", { key: '24139853e12c94dc834fddc547396d508aac252d', name: "intermediateicon" }, h("svg", { key: '4c84a480f7c1fb3c72f727477602341a44e605d5', class: "undefined", xmlns: "http://www.w3.org/2000/svg", "enable-background": "new 0 0 24 24", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, h("g", { key: '808466f6ebab722b0fc256b0d7a5fa04f967e829' }, h("rect", { key: '82357c3a4d3b23752a0e034676b26cef3f271b29', fill: "none", height: "24", width: "24" })), h("g", { key: 'a192fd5a937f1d5ba68b563af131ae99bd4bafcf' }, h("g", { key: 'afd6449f0339e18d7ab621648c69d585aa417ebd' }, h("g", { key: '1a94075684aae413678947650d9f91cd8a010ee0' }, h("path", { key: 'a6472c7416dcc350397319d9e106ec679284418a', d: "M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M17,13H7v-2h10V13z" }))))))))));
|
|
68
67
|
}
|
|
69
68
|
static get is() { return "dnn-checkbox"; }
|
|
70
69
|
static get encapsulation() { return "shadow"; }
|
|
@@ -157,6 +156,28 @@ export class DnnCheckbox {
|
|
|
157
156
|
},
|
|
158
157
|
"attribute": "name",
|
|
159
158
|
"reflect": false
|
|
159
|
+
},
|
|
160
|
+
"nextStateHandler": {
|
|
161
|
+
"type": "unknown",
|
|
162
|
+
"mutable": false,
|
|
163
|
+
"complexType": {
|
|
164
|
+
"original": "(currentState: CheckedState) => CheckedState",
|
|
165
|
+
"resolved": "(currentState: CheckedState) => CheckedState",
|
|
166
|
+
"references": {
|
|
167
|
+
"CheckedState": {
|
|
168
|
+
"location": "import",
|
|
169
|
+
"path": "./types",
|
|
170
|
+
"id": "src/components/dnn-checkbox/types.ts::CheckedState"
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
},
|
|
174
|
+
"required": false,
|
|
175
|
+
"optional": false,
|
|
176
|
+
"docs": {
|
|
177
|
+
"tags": [],
|
|
178
|
+
"text": "A function that will be called when the checkbox needs to change state and returns the next state.\nCan be used to customize the order of the states when the component is clicked.\nOnly called if you also use the tri-state feature (useIntermediate)."
|
|
179
|
+
},
|
|
180
|
+
"defaultValue": "this.defaultNextStateHandler"
|
|
160
181
|
}
|
|
161
182
|
};
|
|
162
183
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dnn-checkbox.js","sourceRoot":"","sources":["../../../src/components/dnn-checkbox/dnn-checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAgB,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG9H;;;;;GAKG;AAOH,MAAM,OAAO,WAAW;;uBAIyB,WAAW;+BAGvB,KAAK;qBAGhB,IAAI;;
|
|
1
|
+
{"version":3,"file":"dnn-checkbox.js","sourceRoot":"","sources":["../../../src/components/dnn-checkbox/dnn-checkbox.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Element, Host, h, Prop, Event, EventEmitter, AttachInternals, Watch, State, Listen } from '@stencil/core';\nimport { CheckedState } from './types';\n\n/**\n * @slot @deprecated - The label for the checkbox - Obsolete, implement your own label.\n * @slot checkedicon - Allows overriding the default checked icon.\n * @slot uncheckedicon - Allows overriding the unchecked icon.\n * @slot intermediateicon - If intermadiate state is used, allows overriding its icon.\n */\n@Component({\n tag: 'dnn-checkbox',\n styleUrl: 'dnn-checkbox.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class DnnCheckbox {\n @Element() el: HTMLDnnCheckboxElement;\n\n /** Defines if the checkbox is checked (true) or unchecked (false) or in an intermediate state (undefined) */\n @Prop({mutable: true}) checked: CheckedState = \"unchecked\";\n\n /** Defines if clicking the checkbox will go through the intermediate state between checked and unchecked (tri-state) */\n @Prop() useIntermediate: boolean = false;\n\n /** The value for this checkbox (not to be confused with its checked state). */\n @Prop() value: string = \"on\";\n\n /** The name to show in the formData (if using forms). */\n @Prop() name: string;\n\n /** A function that will be called when the checkbox needs to change state and returns the next state.\n * Can be used to customize the order of the states when the component is clicked.\n * Only called if you also use the tri-state feature (useIntermediate).\n */\n @Prop() nextStateHandler: (currentState: CheckedState) => CheckedState = this.defaultNextStateHandler;\n\n /** Fires up when the checkbox checked property changes. */\n @Event() checkedchange: EventEmitter<\"checked\" | \"unchecked\" | \"intermediate\">;\n\n @Listen(\"click\", { capture: true })\n handleClick() {\n this.changeState();\n }\n\n @State() focused = false;\n \n @AttachInternals() internals: ElementInternals;\n \n private originalChecked: CheckedState;\n private button: HTMLButtonElement;\n\n componentWillLoad() {\n this.originalChecked = this.checked;\n this.internals.setFormValue(this.checked);\n }\n\n @Watch(\"checked\")\n handleCheckedChange(newValue: CheckedState, oldValue: CheckedState) {\n if (newValue !== oldValue && this.checked == \"checked\") {\n var data = new FormData();\n data.append(this.name, this.value);\n this.internals.setFormValue(data);\n }\n }\n\n // eslint-disable-next-line @stencil-community/own-methods-must-be-private\n formResetCallback() {\n this.internals.setValidity({});\n this.checked = this.originalChecked;\n }\n\n private defaultNextStateHandler(currentState: CheckedState): CheckedState {\n switch (currentState) {\n case \"checked\":\n return \"intermediate\";\n case \"intermediate\":\n return \"unchecked\";\n case \"unchecked\":\n return \"checked\";\n }\n }\n\n private changeState(): void {\n if (!this.useIntermediate){\n switch (this.checked) {\n case \"checked\":\n this.checked = \"unchecked\";\n break;\n case \"unchecked\":\n case \"intermediate\":\n this.checked = \"checked\";\n break;\n default:\n break;\n }\n this.checkedchange.emit(this.checked);\n return;\n }\n \n this.checked = this.nextStateHandler(this.checked);\n this.checkedchange.emit(this.checked);\n }\n\n render() {\n return (\n <Host\n tabIndex={this.focused ? -1 : 0}\n onFocus={() => this.button.focus()}\n onBlur={() => this.button.blur()}\n >\n <button\n ref={el => this.button = el}\n onFocus={() => this.focused = true}\n onBlur={() => this.focused = false}\n class={`icon ${this.checked}`}\n >\n <div class=\"unchecked\">\n <slot name=\"uncheckedicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0z\" 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 </slot>\n </div>\n <div class=\"checked\">\n <slot name=\"checkedicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"/></svg>\n </slot>\n </div>\n <div class=\"intermediate\">\n <slot name=\"intermediateicon\">\n <svg class=\"undefined\" xmlns=\"http://www.w3.org/2000/svg\" enable-background=\"new 0 0 24 24\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><g><rect fill=\"none\" height=\"24\" width=\"24\"/></g><g><g><g><path d=\"M19,3H5C3.9,3,3,3.9,3,5v14c0,1.1,0.9,2,2,2h14c1.1,0,2-0.9,2-2V5C21,3.9,20.1,3,19,3z M17,13H7v-2h10V13z\"/></g></g></g></svg>\n </slot>\n </div>\n </button>\n </Host>\n );\n }\n}\n"]}
|
|
@@ -105,12 +105,22 @@ export class DnnPermissionsGrid {
|
|
|
105
105
|
return (h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, h("g", { fill: "none" }, h("path", { d: "M0 0h24v24H0V0z" }), h("path", { d: "M0 0h24v24H0V0z", opacity: ".87" })), 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" })));
|
|
106
106
|
}
|
|
107
107
|
const checked = item == undefined ? "intermediate" : item.allowAccess ? "checked" : "unchecked";
|
|
108
|
-
return (h("label", null, h("span", { class: "hidden" }, permissionDefinition.permissionName), h("dnn-checkbox", {
|
|
108
|
+
return (h("label", null, h("span", { class: "hidden" }, permissionDefinition.permissionName), h("dnn-checkbox", { useIntermediate: true, nextStateHandler: state => this.handleNextState(state), checked: checked, onCheckedchange: e => this.handleRoleChanged(e.detail, rolePermission, permissionDefinition) }, h("div", { slot: "intermediateicon" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), 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" }))), h("div", { slot: "uncheckedicon" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), 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" }))))));
|
|
109
109
|
}
|
|
110
110
|
renderUserCheckBox(userPermission, permissionDefinition) {
|
|
111
111
|
const item = userPermission.permissions.filter(permission => permission.permissionId == permissionDefinition.permissionId)[0];
|
|
112
112
|
const checked = item == undefined ? "intermediate" : item.allowAccess ? "checked" : "unchecked";
|
|
113
|
-
return (h("label", null, h("span", { class: "hidden" }, permissionDefinition.permissionName), h("dnn-checkbox", {
|
|
113
|
+
return (h("label", null, h("span", { class: "hidden" }, permissionDefinition.permissionName), h("dnn-checkbox", { useIntermediate: true, nextStateHandler: state => this.handleNextState(state), checked: checked, onCheckedchange: e => this.handleUserChanged(e.detail, userPermission, permissionDefinition) }, h("div", { slot: "intermediateicon" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), 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" }))), h("div", { slot: "uncheckedicon" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), 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" }))))));
|
|
114
|
+
}
|
|
115
|
+
handleNextState(state) {
|
|
116
|
+
switch (state) {
|
|
117
|
+
case "checked":
|
|
118
|
+
return "unchecked";
|
|
119
|
+
case "unchecked":
|
|
120
|
+
return "intermediate";
|
|
121
|
+
default:
|
|
122
|
+
return "checked";
|
|
123
|
+
}
|
|
114
124
|
}
|
|
115
125
|
handleRoleChanged(checked, rolePermission, permissionDefinition) {
|
|
116
126
|
switch (checked) {
|
|
@@ -304,13 +314,13 @@ export class DnnPermissionsGrid {
|
|
|
304
314
|
}
|
|
305
315
|
render() {
|
|
306
316
|
const filteredRoles = this.getRoles();
|
|
307
|
-
return (h(Host, { key: '
|
|
308
|
-
h("div", { key: '
|
|
309
|
-
h("dnn-button", { key: '
|
|
310
|
-
]), h("table", { key: '
|
|
311
|
-
h("button", { onClick: () => this.removeRole(rolePermission) }, h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), 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" })))))))), h("div", { key: '
|
|
312
|
-
h("dnn-button", { key: '
|
|
313
|
-
h("table", { key: '
|
|
317
|
+
return (h(Host, { key: 'aa5bcb726609a04b6dad78274a67511950d761f4', tabIndex: this.focused ? -1 : 0, onFocus: () => this.rolesDropdown.focus(), onBlur: () => this.rolesDropdown.blur() }, h("div", { key: '787605cbb898d983fdd66311a165febdc3604365', class: "add-role-row" }, h("div", { key: '5b0a39fb334f9b24e9b2a7bfdd4dddac29a1a38e', class: "dropdown" }, h("label", { key: '3fe9beefb2addc2f48e62f1b00c49a24c3dd077f' }, this.localResx.FilterByGroup, " :"), h("select", { key: '6949c0de5aa4e33c41083cf208988a041955a5f8', ref: el => this.rolesDropdown = el, onChange: e => this.handleRoleGroupChanged(e.target), onFocus: () => this.focused = true, onBlur: () => this.focused = false }, h("option", { key: 'a68744b35d50c76c74ecab7f9444161b6a0ad357', value: -2, selected: this.selectedRoleGroupId == -2 }, this.localResx.AllRoles), h("option", { key: '298a553685cd393efea7c19fc84ff3f5b6e2c14e', value: -1, selected: this.selectedRoleGroupId == -1 }, this.localResx.GlobalRoles), this.roleGroups.map(roleGroup => h("option", { value: roleGroup.id, selected: this.selectedRoleGroupId == roleGroup.id }, roleGroup.name)))), filteredRoles && filteredRoles.length > 0 && [
|
|
318
|
+
h("div", { key: '81aa6af63532b45a12de309d61d91025487bb89b', class: "dropdown" }, h("label", { key: 'f7955613ad565920eea350fbc5e43f71b3128077' }, this.localResx.SelectRole, " :"), h("select", { key: 'f5f2ea97e2c65deaf9055f4a4add81e4c2e86653', ref: el => this.roleDropDown = el }, this.getRoles().map(role => h("option", { value: role.RoleId }, role.RoleName)))),
|
|
319
|
+
h("dnn-button", { key: '49323d82e9b75d60b3787c7c68f78ba5d9e6d616', type: "primary", onClick: () => this.addRole() }, this.localResx.Add)
|
|
320
|
+
]), h("table", { key: 'f7d507656eba61da5880b112a25771969409b941', class: "roles-table" }, h("caption", { key: 'd2ba5d535514136ff3b5c9fd0eeac03c19d45319' }, this.localResx.RolePermissions), h("thead", { key: 'bd72016d4f96ba53cddccdc9a531fec20525539b' }, h("tr", { key: '22b3eef061501e40073da370b30802c59993b189' }, h("th", { key: 'f6d5a5aebf0d0e5dc808d39b5c17541164bd332a' }, this.localResx.Role), this.permissions.permissionDefinitions.map(permissionDefinition => h("th", null, permissionDefinition.permissionName)), h("th", { key: 'e02583f0aef2fd21feff52337f4335a448a67522' }, "\u00A0"))), h("tbody", { key: '1b70292a7899c4f725b390a1e796f240545a39ad' }, this.permissions.rolePermissions.map(rolePermission => h("tr", null, h("th", null, rolePermission.roleName), this.permissions.permissionDefinitions.map(permissionDefinition => h("td", null, this.renderRoleCheckBox(rolePermission, permissionDefinition))), h("td", null, !rolePermission.default &&
|
|
321
|
+
h("button", { onClick: () => this.removeRole(rolePermission) }, h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), 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" })))))))), h("div", { key: '16e671a7cacf95f877aa6a9242da51aec6d67398', class: "search-user" }, h("div", { key: 'a6bc24d1671bd627cff7dffaef13922fb81ccf18', class: "search-control" }, h("dnn-searchbox", { key: '5a3b908694e84abff8e5740a8da755ff9995c32b', placeholder: this.localResx.User, debounced: true, onQueryChanged: e => this.handleQueryChanged(e.detail), onKeyDown: e => this.handleSearchUserFieldKeyDown(e), query: this.userQuery }), h("dnn-collapsible", { key: '6478187d9dfcbf009990ce49010fae65376be1a0', ref: el => this.userCollapsible = el }, h("div", { key: '5831710ea3e9523f2f2955cb987c288097c9b44f', class: "dropdown" }, this.getFilteredUsers().map(searchedUser => h("button", { onKeyDown: e => this.handleSearchedUserKeyDown(e), onClick: () => this.handleUserPicked(searchedUser) }, searchedUser.displayName))))), this.pickedUser &&
|
|
322
|
+
h("dnn-button", { key: '64ca8f8e60428143cdb477da38c75b7e80cd9914', onClick: () => this.addUser() }, this.localResx.Add)), this.permissions.userPermissions && this.permissions.userPermissions.length > 0 &&
|
|
323
|
+
h("table", { key: '48ff3fcbf41ce24fb959f74d71bcea858702a13d', class: "users-table" }, h("caption", { key: '854a089a39b2b5002f931957b90863c8a2f2612c' }, this.localResx.UserPermissions), h("thead", { key: 'd807e93f1b48ec6ee9c5b72be8f3b1c8806eaa49' }, h("tr", { key: '7e8e9b09ff162e742e2c8170f7ad1ee086a1e215' }, h("th", { key: '9c54de787b6e1cedba6a0eab6e8d736236ad88d0' }, this.localResx.User), this.permissions.permissionDefinitions.map(permissionDefinition => h("th", null, permissionDefinition.permissionName)), h("th", { key: '6a6a730933492b0ab4dc6c3ae482adf657a3e8b0' }, "\u00A0"))), h("tbody", { key: '95d21c93c57e14e63e3719f25dc96db7a119d1a5' }, this.permissions.userPermissions.map(userPermission => h("tr", null, h("th", null, userPermission.displayName), this.permissions.permissionDefinitions.map(permissionDefinition => h("td", null, this.renderUserCheckBox(userPermission, permissionDefinition))), h("td", null, h("button", { onClick: () => this.removeUser(userPermission) }, h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, h("path", { d: "M0 0h24v24H0V0z", fill: "none" }), 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" }))))))))));
|
|
314
324
|
}
|
|
315
325
|
static get is() { return "dnn-permissions-grid"; }
|
|
316
326
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dnn-permissions-grid.js","sourceRoot":"","sources":["../../../src/components/dnn-permissions-grid/dnn-permissions-grid.tsx"],"names":[],"mappings":"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","sourcesContent":["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}"]}
|
|
1
|
+
{"version":3,"file":"dnn-permissions-grid.js","sourceRoot":"","sources":["../../../src/components/dnn-permissions-grid/dnn-permissions-grid.tsx"],"names":[],"mappings":"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","sourcesContent":["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';\nimport { CheckedState } from '../dnn-checkbox/types';\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 @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 useIntermediate\n nextStateHandler={state => this.handleNextState(state)}\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 useIntermediate\n nextStateHandler={state => this.handleNextState(state)}\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 handleNextState(state: string): CheckedState {\n switch (state) {\n case \"checked\":\n return \"unchecked\";\n case \"unchecked\":\n return \"intermediate\";\n default:\n return \"checked\";\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: CheckedState,\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}"]}
|