@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.
Files changed (40) hide show
  1. package/dist/cjs/dnn-checkbox.cjs.entry.js +13 -12
  2. package/dist/cjs/dnn-checkbox.cjs.entry.js.map +1 -1
  3. package/dist/cjs/dnn-permissions-grid.cjs.entry.js +19 -9
  4. package/dist/cjs/dnn-permissions-grid.cjs.entry.js.map +1 -1
  5. package/dist/cjs/dnn-richtext.cjs.entry.js +9 -3
  6. package/dist/cjs/dnn-richtext.cjs.entry.js.map +1 -1
  7. package/dist/cjs/dnn.cjs.js +1 -1
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/collection/components/dnn-checkbox/dnn-checkbox.js +35 -14
  10. package/dist/collection/components/dnn-checkbox/dnn-checkbox.js.map +1 -1
  11. package/dist/collection/components/dnn-permissions-grid/dnn-permissions-grid.js +19 -9
  12. package/dist/collection/components/dnn-permissions-grid/dnn-permissions-grid.js.map +1 -1
  13. package/dist/collection/components/dnn-richtext/dnn-richtext.js +53 -4
  14. package/dist/collection/components/dnn-richtext/dnn-richtext.js.map +1 -1
  15. package/dist/dnn/dnn.esm.js +1 -1
  16. package/dist/dnn/dnn.esm.js.map +1 -1
  17. package/dist/dnn/p-0de82dae.entry.js +2 -0
  18. package/dist/dnn/p-0de82dae.entry.js.map +1 -0
  19. package/dist/dnn/{p-e7a44eb3.entry.js → p-9b318120.entry.js} +2 -2
  20. package/dist/dnn/p-9b318120.entry.js.map +1 -0
  21. package/dist/dnn/p-bff377d5.entry.js +2 -0
  22. package/dist/dnn/p-bff377d5.entry.js.map +1 -0
  23. package/dist/esm/dnn-checkbox.entry.js +13 -12
  24. package/dist/esm/dnn-checkbox.entry.js.map +1 -1
  25. package/dist/esm/dnn-permissions-grid.entry.js +19 -9
  26. package/dist/esm/dnn-permissions-grid.entry.js.map +1 -1
  27. package/dist/esm/dnn-richtext.entry.js +9 -3
  28. package/dist/esm/dnn-richtext.entry.js.map +1 -1
  29. package/dist/esm/dnn.js +1 -1
  30. package/dist/esm/loader.js +1 -1
  31. package/dist/types/components/dnn-checkbox/dnn-checkbox.d.ts +6 -0
  32. package/dist/types/components/dnn-permissions-grid/dnn-permissions-grid.d.ts +1 -0
  33. package/dist/types/components/dnn-richtext/dnn-richtext.d.ts +25 -4
  34. package/dist/types/components.d.ts +28 -2
  35. package/package.json +2 -2
  36. package/dist/dnn/p-2b0a6053.entry.js +0 -2
  37. package/dist/dnn/p-2b0a6053.entry.js.map +0 -1
  38. package/dist/dnn/p-bd6d200f.entry.js +0 -2
  39. package/dist/dnn/p-bd6d200f.entry.js.map +0 -1
  40. package/dist/dnn/p-e7a44eb3.entry.js.map +0 -1
package/dist/esm/dnn.js CHANGED
@@ -16,7 +16,7 @@ var patchBrowser = () => {
16
16
 
17
17
  patchBrowser().then(async (options) => {
18
18
  await globalScripts();
19
- return bootstrapLazy([["dnn-color-input",[[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",[[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",[[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",[[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",[[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",[[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",[[1,"dnn-treeview-item",{"expanded":[1540],"hasChildren":[32],"focused":[32]},null,{"expanded":["watchExpanded"]}]]],["dnn-chevron",[[1,"dnn-chevron",{"expandText":[1,"expand-text"],"collapseText":[1,"collapse-text"],"expanded":[1540],"focused":[32]},null,{"expanded":["handleExpandedChanged"]}]]],["dnn-monaco-editor",[[66,"dnn-monaco-editor",{"language":[1],"value":[1025],"name":[1],"focused":[32]},null,{"language":["languageChanged"],"value":["valueChanged"]}]]],["dnn-progress-bar",[[1,"dnn-progress-bar",{"value":[2],"max":[2],"useGradient":[4,"use-gradient"]}]]],["dnn-richtext",[[65,"dnn-richtext",{"options":[16],"value":[1],"name":[1],"focused":[32]},null,{"value":["watchValueChanged"]}]]],["dnn-sort-icon",[[1,"dnn-sort-icon",{"sortDirection":[1025,"sort-direction"],"focused":[32]}]]],["dnn-toggle",[[65,"dnn-toggle",{"checked":[1028],"disabled":[4],"name":[1],"value":[1],"focused":[32]},[[2,"click","handleClick"]],{"checked":["checkedChanged"]}]]],["dnn-vertical-overflow-menu",[[1,"dnn-vertical-overflow-menu",{"showDropdownButton":[32],"showDropdownMenu":[32]}]]],["dnn-vertical-splitview",[[1,"dnn-vertical-splitview",{"splitterWidth":[2,"splitter-width"],"splitWidthPercentage":[1026,"split-width-percentage"],"leftWidth":[32],"rightWidth":[32],"setSplitWidthPercentage":[64],"getSplitWidthPercentage":[64]}]]],["dnn-checkbox",[[65,"dnn-checkbox",{"checked":[1025],"useIntermediate":[4,"use-intermediate"],"value":[1],"name":[1],"focused":[32]},[[2,"click","handleClick"]],{"checked":["handleCheckedChange"]}]]],["dnn-color-picker",[[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",[[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",[[1,"dnn-searchbox",{"placeholder":[1],"debounced":[4],"debounceTime":[2,"debounce-time"],"query":[1025],"focused":[32]},null,{"query":["handleQueryChanged"]}]]],["dnn-tab_2",[[1,"dnn-tab",{"tabTitle":[1,"tab-title"],"visible":[32],"show":[64],"hide":[64]}],[1,"dnn-tabs",{"tabTitles":[32],"selectedTabTitle":[32]}]]],["dnn-collapsible",[[1,"dnn-collapsible",{"expanded":[516],"transitionDuration":[2,"transition-duration"],"updateSize":[64]},[[0,"dnnCollapsibleHeightChanged","handleHeightChanged"]],{"expanded":["handledExpandedChanged"]}]]],["dnn-modal",[[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",[[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",[[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",[[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);
19
+ return bootstrapLazy([["dnn-color-input",[[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",[[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",[[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",[[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",[[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",[[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",[[1,"dnn-treeview-item",{"expanded":[1540],"hasChildren":[32],"focused":[32]},null,{"expanded":["watchExpanded"]}]]],["dnn-chevron",[[1,"dnn-chevron",{"expandText":[1,"expand-text"],"collapseText":[1,"collapse-text"],"expanded":[1540],"focused":[32]},null,{"expanded":["handleExpandedChanged"]}]]],["dnn-monaco-editor",[[66,"dnn-monaco-editor",{"language":[1],"value":[1025],"name":[1],"focused":[32]},null,{"language":["languageChanged"],"value":["valueChanged"]}]]],["dnn-progress-bar",[[1,"dnn-progress-bar",{"value":[2],"max":[2],"useGradient":[4,"use-gradient"]}]]],["dnn-richtext",[[65,"dnn-richtext",{"options":[16],"value":[1],"name":[1],"plugins":[16],"customizeOptions":[16],"focused":[32]},null,{"value":["watchValueChanged"]}]]],["dnn-sort-icon",[[1,"dnn-sort-icon",{"sortDirection":[1025,"sort-direction"],"focused":[32]}]]],["dnn-toggle",[[65,"dnn-toggle",{"checked":[1028],"disabled":[4],"name":[1],"value":[1],"focused":[32]},[[2,"click","handleClick"]],{"checked":["checkedChanged"]}]]],["dnn-vertical-overflow-menu",[[1,"dnn-vertical-overflow-menu",{"showDropdownButton":[32],"showDropdownMenu":[32]}]]],["dnn-vertical-splitview",[[1,"dnn-vertical-splitview",{"splitterWidth":[2,"splitter-width"],"splitWidthPercentage":[1026,"split-width-percentage"],"leftWidth":[32],"rightWidth":[32],"setSplitWidthPercentage":[64],"getSplitWidthPercentage":[64]}]]],["dnn-checkbox",[[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",[[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",[[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",[[1,"dnn-searchbox",{"placeholder":[1],"debounced":[4],"debounceTime":[2,"debounce-time"],"query":[1025],"focused":[32]},null,{"query":["handleQueryChanged"]}]]],["dnn-tab_2",[[1,"dnn-tab",{"tabTitle":[1,"tab-title"],"visible":[32],"show":[64],"hide":[64]}],[1,"dnn-tabs",{"tabTitles":[32],"selectedTabTitle":[32]}]]],["dnn-collapsible",[[1,"dnn-collapsible",{"expanded":[516],"transitionDuration":[2,"transition-duration"],"updateSize":[64]},[[0,"dnnCollapsibleHeightChanged","handleHeightChanged"]],{"expanded":["handledExpandedChanged"]}]]],["dnn-modal",[[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",[[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",[[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",[[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);
20
20
  });
21
21
 
22
22
  //# sourceMappingURL=dnn.js.map
@@ -5,7 +5,7 @@ import { g as globalScripts } from './app-globals-0f993ce5.js';
5
5
  const defineCustomElements = async (win, options) => {
6
6
  if (typeof window === 'undefined') return undefined;
7
7
  await globalScripts();
8
- return bootstrapLazy([["dnn-color-input",[[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",[[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",[[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",[[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",[[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",[[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",[[1,"dnn-treeview-item",{"expanded":[1540],"hasChildren":[32],"focused":[32]},null,{"expanded":["watchExpanded"]}]]],["dnn-chevron",[[1,"dnn-chevron",{"expandText":[1,"expand-text"],"collapseText":[1,"collapse-text"],"expanded":[1540],"focused":[32]},null,{"expanded":["handleExpandedChanged"]}]]],["dnn-monaco-editor",[[66,"dnn-monaco-editor",{"language":[1],"value":[1025],"name":[1],"focused":[32]},null,{"language":["languageChanged"],"value":["valueChanged"]}]]],["dnn-progress-bar",[[1,"dnn-progress-bar",{"value":[2],"max":[2],"useGradient":[4,"use-gradient"]}]]],["dnn-richtext",[[65,"dnn-richtext",{"options":[16],"value":[1],"name":[1],"focused":[32]},null,{"value":["watchValueChanged"]}]]],["dnn-sort-icon",[[1,"dnn-sort-icon",{"sortDirection":[1025,"sort-direction"],"focused":[32]}]]],["dnn-toggle",[[65,"dnn-toggle",{"checked":[1028],"disabled":[4],"name":[1],"value":[1],"focused":[32]},[[2,"click","handleClick"]],{"checked":["checkedChanged"]}]]],["dnn-vertical-overflow-menu",[[1,"dnn-vertical-overflow-menu",{"showDropdownButton":[32],"showDropdownMenu":[32]}]]],["dnn-vertical-splitview",[[1,"dnn-vertical-splitview",{"splitterWidth":[2,"splitter-width"],"splitWidthPercentage":[1026,"split-width-percentage"],"leftWidth":[32],"rightWidth":[32],"setSplitWidthPercentage":[64],"getSplitWidthPercentage":[64]}]]],["dnn-checkbox",[[65,"dnn-checkbox",{"checked":[1025],"useIntermediate":[4,"use-intermediate"],"value":[1],"name":[1],"focused":[32]},[[2,"click","handleClick"]],{"checked":["handleCheckedChange"]}]]],["dnn-color-picker",[[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",[[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",[[1,"dnn-searchbox",{"placeholder":[1],"debounced":[4],"debounceTime":[2,"debounce-time"],"query":[1025],"focused":[32]},null,{"query":["handleQueryChanged"]}]]],["dnn-tab_2",[[1,"dnn-tab",{"tabTitle":[1,"tab-title"],"visible":[32],"show":[64],"hide":[64]}],[1,"dnn-tabs",{"tabTitles":[32],"selectedTabTitle":[32]}]]],["dnn-collapsible",[[1,"dnn-collapsible",{"expanded":[516],"transitionDuration":[2,"transition-duration"],"updateSize":[64]},[[0,"dnnCollapsibleHeightChanged","handleHeightChanged"]],{"expanded":["handledExpandedChanged"]}]]],["dnn-modal",[[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",[[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",[[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",[[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);
8
+ return bootstrapLazy([["dnn-color-input",[[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",[[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",[[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",[[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",[[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",[[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",[[1,"dnn-treeview-item",{"expanded":[1540],"hasChildren":[32],"focused":[32]},null,{"expanded":["watchExpanded"]}]]],["dnn-chevron",[[1,"dnn-chevron",{"expandText":[1,"expand-text"],"collapseText":[1,"collapse-text"],"expanded":[1540],"focused":[32]},null,{"expanded":["handleExpandedChanged"]}]]],["dnn-monaco-editor",[[66,"dnn-monaco-editor",{"language":[1],"value":[1025],"name":[1],"focused":[32]},null,{"language":["languageChanged"],"value":["valueChanged"]}]]],["dnn-progress-bar",[[1,"dnn-progress-bar",{"value":[2],"max":[2],"useGradient":[4,"use-gradient"]}]]],["dnn-richtext",[[65,"dnn-richtext",{"options":[16],"value":[1],"name":[1],"plugins":[16],"customizeOptions":[16],"focused":[32]},null,{"value":["watchValueChanged"]}]]],["dnn-sort-icon",[[1,"dnn-sort-icon",{"sortDirection":[1025,"sort-direction"],"focused":[32]}]]],["dnn-toggle",[[65,"dnn-toggle",{"checked":[1028],"disabled":[4],"name":[1],"value":[1],"focused":[32]},[[2,"click","handleClick"]],{"checked":["checkedChanged"]}]]],["dnn-vertical-overflow-menu",[[1,"dnn-vertical-overflow-menu",{"showDropdownButton":[32],"showDropdownMenu":[32]}]]],["dnn-vertical-splitview",[[1,"dnn-vertical-splitview",{"splitterWidth":[2,"splitter-width"],"splitWidthPercentage":[1026,"split-width-percentage"],"leftWidth":[32],"rightWidth":[32],"setSplitWidthPercentage":[64],"getSplitWidthPercentage":[64]}]]],["dnn-checkbox",[[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",[[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",[[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",[[1,"dnn-searchbox",{"placeholder":[1],"debounced":[4],"debounceTime":[2,"debounce-time"],"query":[1025],"focused":[32]},null,{"query":["handleQueryChanged"]}]]],["dnn-tab_2",[[1,"dnn-tab",{"tabTitle":[1,"tab-title"],"visible":[32],"show":[64],"hide":[64]}],[1,"dnn-tabs",{"tabTitles":[32],"selectedTabTitle":[32]}]]],["dnn-collapsible",[[1,"dnn-collapsible",{"expanded":[516],"transitionDuration":[2,"transition-duration"],"updateSize":[64]},[[0,"dnnCollapsibleHeightChanged","handleHeightChanged"]],{"expanded":["handledExpandedChanged"]}]]],["dnn-modal",[[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",[[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",[[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",[[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);
9
9
  };
10
10
 
11
11
  export { defineCustomElements };
@@ -16,6 +16,11 @@ export declare class DnnCheckbox {
16
16
  value: string;
17
17
  /** The name to show in the formData (if using forms). */
18
18
  name: string;
19
+ /** A function that will be called when the checkbox needs to change state and returns the next state.
20
+ * Can be used to customize the order of the states when the component is clicked.
21
+ * Only called if you also use the tri-state feature (useIntermediate).
22
+ */
23
+ nextStateHandler: (currentState: CheckedState) => CheckedState;
19
24
  /** Fires up when the checkbox checked property changes. */
20
25
  checkedchange: EventEmitter<"checked" | "unchecked" | "intermediate">;
21
26
  handleClick(): void;
@@ -26,6 +31,7 @@ export declare class DnnCheckbox {
26
31
  componentWillLoad(): void;
27
32
  handleCheckedChange(newValue: CheckedState, oldValue: CheckedState): void;
28
33
  formResetCallback(): void;
34
+ private defaultNextStateHandler;
29
35
  private changeState;
30
36
  render(): any;
31
37
  }
@@ -40,6 +40,7 @@ export declare class DnnPermissionsGrid {
40
40
  private getRoles;
41
41
  private renderRoleCheckBox;
42
42
  private renderUserCheckBox;
43
+ private handleNextState;
43
44
  private handleRoleChanged;
44
45
  private handleUserChanged;
45
46
  private removeRole;
@@ -1,15 +1,33 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
+ import { Jodit } from "jodit";
2
3
  import type { Config } from "jodit/types/config";
3
4
  export declare class DnnRichtext {
4
- /** Optional configuration for Jodit, see https://xdsoft.net/jodit/docs/classes/config.Config.html */
5
+ /** Optional configuration for Jodit, see https://xdsoft.net/jodit/docs/classes/config.Config.html
6
+ * This will be merged with the default options and passed to the editor.
7
+ * If you prefer to not have to pass a full config object,
8
+ * you can use 'customizeOptions' to modify the options before initializing the editor
9
+ * instead of providing all options here.
10
+ */
5
11
  options: Config;
6
- private textArea;
7
- private editor;
8
- private dnnDefaultOptions;
9
12
  /** Sets the value of the content of the editor. */
10
13
  value: string;
11
14
  /** Name of the field when used in a form. */
12
15
  name: string;
16
+ /** Allows registering your own plugins.
17
+ * The callback will be called with the editor instance as the only argument durig initialization.
18
+ * All other behavior needs to be implemented in the plugin itself using editor.on("eventname").
19
+ * See https://xdsoft.net/jodit/examples/plugin/custom_plugin.html for an example.
20
+ * Creating a plugin does NOT automatically add it to the toolbar, you need to do that yourself in 'options' or 'customizeOptions',
21
+ * See https://xdsoft.net/jodit/examples/toolbar/custom_button.html for an example.
22
+ */
23
+ plugins: {
24
+ name: string;
25
+ callback: (editor: Jodit) => void;
26
+ }[];
27
+ /** Customize the options before initializing the editor, will have all the default options merged with 'options' if passed.
28
+ * This is called last after merging default options with your custom 'options' and just before initializing the editor.
29
+ */
30
+ customizeOptions: (options: Config) => Config;
13
31
  host: HTMLDnnRichtextElement;
14
32
  watchValueChanged(newValue: string): void;
15
33
  /** Fires when the value changed. */
@@ -18,6 +36,9 @@ export declare class DnnRichtext {
18
36
  valueInput: EventEmitter<string>;
19
37
  internals: ElementInternals;
20
38
  focused: boolean;
39
+ private textArea;
40
+ private editor;
41
+ private dnnDefaultOptions;
21
42
  componentDidLoad(): void;
22
43
  formResetCallback(): void;
23
44
  private setFormValue;
@@ -17,6 +17,7 @@ import { IRole } from "./components/dnn-permissions-grid/role-interface";
17
17
  import { ILocalization } from "./components/dnn-permissions-grid/localization-interface";
18
18
  import { ISearchedUser } from "./components/dnn-permissions-grid/searched-user-interface";
19
19
  import { Config } from "jodit/types/config";
20
+ import { Jodit } from "jodit";
20
21
  import { DnnToggleChangeEventDetail } from "./components/dnn-toggle/toggle-interface";
21
22
  export { DnnAutocompleteSuggestion, NeedMoreItemsEventArgs } from "./components/dnn-autocomplete/types";
22
23
  export { CheckedState } from "./components/dnn-checkbox/types";
@@ -30,6 +31,7 @@ export { IRole } from "./components/dnn-permissions-grid/role-interface";
30
31
  export { ILocalization } from "./components/dnn-permissions-grid/localization-interface";
31
32
  export { ISearchedUser } from "./components/dnn-permissions-grid/searched-user-interface";
32
33
  export { Config } from "jodit/types/config";
34
+ export { Jodit } from "jodit";
33
35
  export { DnnToggleChangeEventDetail } from "./components/dnn-toggle/toggle-interface";
34
36
  export namespace Components {
35
37
  interface DnnAutocomplete {
@@ -141,6 +143,10 @@ export namespace Components {
141
143
  * The name to show in the formData (if using forms).
142
144
  */
143
145
  "name": string;
146
+ /**
147
+ * A function that will be called when the checkbox needs to change state and returns the next state. Can be used to customize the order of the states when the component is clicked. Only called if you also use the tri-state feature (useIntermediate).
148
+ */
149
+ "nextStateHandler": (currentState: CheckedState) => CheckedState;
144
150
  /**
145
151
  * Defines if clicking the checkbox will go through the intermediate state between checked and unchecked (tri-state)
146
152
  */
@@ -545,14 +551,22 @@ export namespace Components {
545
551
  "value": number;
546
552
  }
547
553
  interface DnnRichtext {
554
+ /**
555
+ * Customize the options before initializing the editor, will have all the default options merged with 'options' if passed. This is called last after merging default options with your custom 'options' and just before initializing the editor.
556
+ */
557
+ "customizeOptions": (options: Config) => Config;
548
558
  /**
549
559
  * Name of the field when used in a form.
550
560
  */
551
561
  "name": string;
552
562
  /**
553
- * Optional configuration for Jodit, see https://xdsoft.net/jodit/docs/classes/config.Config.html
563
+ * Optional configuration for Jodit, see https://xdsoft.net/jodit/docs/classes/config.Config.html This will be merged with the default options and passed to the editor. If you prefer to not have to pass a full config object, you can use 'customizeOptions' to modify the options before initializing the editor instead of providing all options here.
554
564
  */
555
565
  "options": Config;
566
+ /**
567
+ * Allows registering your own plugins. The callback will be called with the editor instance as the only argument durig initialization. All other behavior needs to be implemented in the plugin itself using editor.on("eventname"). See https://xdsoft.net/jodit/examples/plugin/custom_plugin.html for an example. Creating a plugin does NOT automatically add it to the toolbar, you need to do that yourself in 'options' or 'customizeOptions', See https://xdsoft.net/jodit/examples/toolbar/custom_button.html for an example.
568
+ */
569
+ "plugins": {name: string, callback: (editor: Jodit) => void}[];
556
570
  /**
557
571
  * Sets the value of the content of the editor.
558
572
  */
@@ -1420,6 +1434,10 @@ declare namespace LocalJSX {
1420
1434
  * The name to show in the formData (if using forms).
1421
1435
  */
1422
1436
  "name"?: string;
1437
+ /**
1438
+ * A function that will be called when the checkbox needs to change state and returns the next state. Can be used to customize the order of the states when the component is clicked. Only called if you also use the tri-state feature (useIntermediate).
1439
+ */
1440
+ "nextStateHandler"?: (currentState: CheckedState) => CheckedState;
1423
1441
  /**
1424
1442
  * Fires up when the checkbox checked property changes.
1425
1443
  */
@@ -1833,6 +1851,10 @@ declare namespace LocalJSX {
1833
1851
  "value"?: number;
1834
1852
  }
1835
1853
  interface DnnRichtext {
1854
+ /**
1855
+ * Customize the options before initializing the editor, will have all the default options merged with 'options' if passed. This is called last after merging default options with your custom 'options' and just before initializing the editor.
1856
+ */
1857
+ "customizeOptions"?: (options: Config) => Config;
1836
1858
  /**
1837
1859
  * Name of the field when used in a form.
1838
1860
  */
@@ -1846,9 +1868,13 @@ declare namespace LocalJSX {
1846
1868
  */
1847
1869
  "onValueInput"?: (event: DnnRichtextCustomEvent<string>) => void;
1848
1870
  /**
1849
- * Optional configuration for Jodit, see https://xdsoft.net/jodit/docs/classes/config.Config.html
1871
+ * Optional configuration for Jodit, see https://xdsoft.net/jodit/docs/classes/config.Config.html This will be merged with the default options and passed to the editor. If you prefer to not have to pass a full config object, you can use 'customizeOptions' to modify the options before initializing the editor instead of providing all options here.
1850
1872
  */
1851
1873
  "options"?: Config;
1874
+ /**
1875
+ * Allows registering your own plugins. The callback will be called with the editor instance as the only argument durig initialization. All other behavior needs to be implemented in the plugin itself using editor.on("eventname"). See https://xdsoft.net/jodit/examples/plugin/custom_plugin.html for an example. Creating a plugin does NOT automatically add it to the toolbar, you need to do that yourself in 'options' or 'customizeOptions', See https://xdsoft.net/jodit/examples/toolbar/custom_button.html for an example.
1876
+ */
1877
+ "plugins"?: {name: string, callback: (editor: Jodit) => void}[];
1852
1878
  /**
1853
1879
  * Sets the value of the content of the editor.
1854
1880
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dnncommunity/dnn-elements",
3
- "version": "0.24.3",
3
+ "version": "0.25.0",
4
4
  "description": "Dnn themed custom elements.",
5
5
  "repository": "https://github.com/dnncommunity/dnn-elements",
6
6
  "homepage": "https://dnncommunity.github.io/dnn-elements",
@@ -67,7 +67,7 @@
67
67
  "react-dom": "^18.2.0",
68
68
  "rollup-plugin-node-polyfills": "^0.2.1",
69
69
  "storybook": "^8.3.2",
70
- "typescript": "5.6.3",
70
+ "typescript": "5.7.2",
71
71
  "typescript-debounce-decorator": "^0.0.18"
72
72
  },
73
73
  "dependencies": {
@@ -1,2 +0,0 @@
1
- import{r as e,c,h as t,H as a,g as i}from"./p-91d08ab2.js";const d=":host{--focus-color:var(--dnn-color-primary, #3792ED);display:inline-flex;align-items:center;gap:0.25rem;margin:3px}button{cursor:pointer;background-color:transparent;border:0;padding:0;margin:0;outline:none;display:flex;justify-content:center;align-items:center}button .unchecked,button .checked,button .intermediate{display:none}button.checked .checked,button.unchecked .unchecked,button.intermediate .intermediate{display:block}button svg.undefined{opacity:0.45;cursor:default}button:focus-visible{box-shadow:0 0 2px 2px var(--focus-color)}label{cursor:pointer}";const s=d;const h=class{constructor(t){e(this,t);this.checkedchange=c(this,"checkedchange",7);if(t.$hostElement$["s-ei"]){this.internals=t.$hostElement$["s-ei"]}else{this.internals=t.$hostElement$.attachInternals();t.$hostElement$["s-ei"]=this.internals}this.checked="unchecked";this.useIntermediate=false;this.value="on";this.name=undefined;this.focused=false}handleClick(){this.changeState()}componentWillLoad(){this.originalChecked=this.checked;this.internals.setFormValue(this.checked)}handleCheckedChange(e,c){if(e!==c&&this.checked=="checked"){var t=new FormData;t.append(this.name,this.value);this.internals.setFormValue(t)}}formResetCallback(){this.internals.setValidity({});this.checked=this.originalChecked}changeState(){if(!this.useIntermediate){switch(this.checked){case"checked":this.checked="unchecked";break;case"unchecked":case"intermediate":this.checked="checked";break}this.checkedchange.emit(this.checked);return}switch(this.checked){case"checked":this.checked="intermediate";break;case"intermediate":this.checked="unchecked";break;case"unchecked":this.checked="checked";break}this.checkedchange.emit(this.checked)}render(){return t(a,{key:"33f0a20c02ea3d1be40803102dca7298fc9f0a8d",tabIndex:this.focused?-1:0,onFocus:()=>this.button.focus(),onBlur:()=>this.button.blur()},t("button",{key:"7249f860fea2548cd7469daf88594ceaa36ad69c",ref:e=>this.button=e,onFocus:()=>this.focused=true,onBlur:()=>this.focused=false,class:`icon ${this.checked}`},t("div",{key:"8033ce35b1ad4733c5bc3151e183bcef5ad3608c",class:"unchecked"},t("slot",{key:"bd22365edda141a1d99f12197579ef08f145e298",name:"uncheckedicon"},t("svg",{key:"b8fdd87c069040ec31552c9c97fe9a73d6b1566b",xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"#000000"},t("path",{key:"786778ac6170c2efe8e60399ce377cb3f4b81496",d:"M0 0h24v24H0z",fill:"none"}),t("path",{key:"2875985769c607626e17552bc86ee7eef8f1bd2b",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"})))),t("div",{key:"3b1022f97690827381751638a2326806f6bbc914",class:"checked"},t("slot",{key:"d47bf5c9b8227f72f5af9d8a9497ef90fe9ed54a",name:"checkedicon"},t("svg",{key:"579f8cedf788976a23929f230afe489be49056a3",xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"#000000"},t("path",{key:"a22e16649d8fcbae5f382f585ec44d877592d072",d:"M0 0h24v24H0z",fill:"none"}),t("path",{key:"f851cbcf9ff4ea371c3abeb9fdfbd73199d95633",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"})))),t("div",{key:"dac2ba83db7a5f2a791db48ef4366c846ece0ac1",class:"intermediate"},t("slot",{key:"99794fb6b191a7c61efcf77683125d5e38075347",name:"intermediateicon"},t("svg",{key:"b3c5fa7961169fd5ea9437346cd5246a3c3f2dc3",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"},t("g",{key:"53bfc9815a54ee36bd9cde2b35ca35bdb052a559"},t("rect",{key:"6938a2a44ea6a23b3896ea7186d1109d2e06b4f8",fill:"none",height:"24",width:"24"})),t("g",{key:"beea185432ee31b13f4368cd288195fda4798569"},t("g",{key:"8c9b0636ce4685fd714ae76d2cd8e63ffdc0e590"},t("g",{key:"b6a8198cb9067af8bd439948e2a23e58b6ff29dc"},t("path",{key:"5e0f01cc5c7033845f7f41f3721e903cc8436f91",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"})))))))))}static get formAssociated(){return true}get el(){return i(this)}static get watchers(){return{checked:["handleCheckedChange"]}}};h.style=s;export{h as dnn_checkbox};
2
- //# sourceMappingURL=p-2b0a6053.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["dnnCheckboxCss","DnnCheckboxStyle0","DnnCheckbox","handleClick","this","changeState","componentWillLoad","originalChecked","checked","internals","setFormValue","handleCheckedChange","newValue","oldValue","data","FormData","append","name","value","formResetCallback","setValidity","useIntermediate","checkedchange","emit","render","h","Host","key","tabIndex","focused","onFocus","button","focus","onBlur","blur","ref","el","class","xmlns","height","viewBox","width","fill","d"],"sources":["src/components/dnn-checkbox/dnn-checkbox.scss?tag=dnn-checkbox&encapsulation=shadow","src/components/dnn-checkbox/dnn-checkbox.tsx"],"sourcesContent":[":host {\n /**\n * @prop --focus-color: The color to outline the checkbox when hovered or focused, default to the dnn primary color.\n */\n --focus-color: var(--dnn-color-primary, #3792ED);\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n margin: 3px;\n}\nbutton{\n cursor: pointer; \n background-color: transparent;\n border: 0;\n padding: 0;\n margin: 0;\n outline: none;\n display: flex;\n justify-content: center;\n align-items: center;\n .unchecked, .checked, .intermediate{\n display: none;\n }\n &.checked .checked, &.unchecked .unchecked, &.intermediate .intermediate{\n display: block;\n }\n svg.undefined{\n opacity: 0.45;\n cursor: default;\n }\n &:focus-visible{\n box-shadow: 0 0 2px 2px var(--focus-color);\n }\n}\nlabel {\n cursor: pointer; \n}","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 /** 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 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 switch (this.checked) {\n case \"checked\":\n this.checked = \"intermediate\";\n break;\n case \"intermediate\":\n this.checked = \"unchecked\";\n break;\n case \"unchecked\":\n this.checked = \"checked\";\n break;\n default:\n break;\n }\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"],"mappings":"2DAAA,MAAMA,EAAiB,ujBACvB,MAAAC,EAAeD,E,MCcFE,EAAW,M,mPAIyB,Y,qBAGZ,M,WAGX,K,iCAaL,K,CAJnB,WAAAC,GACEC,KAAKC,a,CAUP,iBAAAC,GACEF,KAAKG,gBAAkBH,KAAKI,QAC5BJ,KAAKK,UAAUC,aAAaN,KAAKI,Q,CAInC,mBAAAG,CAAoBC,EAAwBC,GAC1C,GAAID,IAAaC,GAAYT,KAAKI,SAAW,UAAW,CACtD,IAAIM,EAAO,IAAIC,SACfD,EAAKE,OAAOZ,KAAKa,KAAMb,KAAKc,OAC5Bd,KAAKK,UAAUC,aAAaI,E,EAKhC,iBAAAK,GACEf,KAAKK,UAAUW,YAAY,IAC3BhB,KAAKI,QAAUJ,KAAKG,e,CAGd,WAAAF,GACN,IAAKD,KAAKiB,gBAAgB,CACxB,OAAQjB,KAAKI,SACX,IAAK,UACHJ,KAAKI,QAAU,YACf,MACF,IAAK,YACL,IAAK,eACHJ,KAAKI,QAAU,UACf,MAIJJ,KAAKkB,cAAcC,KAAKnB,KAAKI,SAC7B,M,CAEF,OAAQJ,KAAKI,SACX,IAAK,UACHJ,KAAKI,QAAU,eACf,MACF,IAAK,eACHJ,KAAKI,QAAU,YACf,MACF,IAAK,YACHJ,KAAKI,QAAU,UACf,MAIJJ,KAAKkB,cAAcC,KAAKnB,KAAKI,Q,CAG/B,MAAAgB,GACE,OACEC,EAACC,EAAI,CAAAC,IAAA,2CACHC,SAAUxB,KAAKyB,SAAW,EAAI,EAC9BC,QAAS,IAAM1B,KAAK2B,OAAOC,QAC3BC,OAAQ,IAAM7B,KAAK2B,OAAOG,QAE1BT,EAAA,UAAAE,IAAA,2CACEQ,IAAKC,GAAMhC,KAAK2B,OAASK,EACzBN,QAAS,IAAM1B,KAAKyB,QAAU,KAC9BI,OAAQ,IAAM7B,KAAKyB,QAAU,MAC7BQ,MAAO,QAAQjC,KAAKI,WAEpBiB,EAAA,OAAAE,IAAA,2CAAKU,MAAM,aACTZ,EAAA,QAAAE,IAAA,2CAAMV,KAAK,iBACTQ,EAAA,OAAAE,IAAA,2CAAKW,MAAM,6BAA6BC,OAAO,OAAOC,QAAQ,YAAYC,MAAM,OAAOC,KAAK,WAAUjB,EAAA,QAAAE,IAAA,2CAAMgB,EAAE,gBAAgBD,KAAK,SAAQjB,EAAA,QAAAE,IAAA,2CAAMgB,EAAE,kGAGvJlB,EAAA,OAAAE,IAAA,2CAAKU,MAAM,WACTZ,EAAA,QAAAE,IAAA,2CAAMV,KAAK,eACTQ,EAAA,OAAAE,IAAA,2CAAKW,MAAM,6BAA6BC,OAAO,OAAOC,QAAQ,YAAYC,MAAM,OAAOC,KAAK,WAAUjB,EAAA,QAAAE,IAAA,2CAAMgB,EAAE,gBAAgBD,KAAK,SAAQjB,EAAA,QAAAE,IAAA,2CAAMgB,EAAE,2IAGvJlB,EAAA,OAAAE,IAAA,2CAAKU,MAAM,gBACTZ,EAAA,QAAAE,IAAA,2CAAMV,KAAK,oBACTQ,EAAA,OAAAE,IAAA,2CAAKU,MAAM,YAAYC,MAAM,6BAA4B,oBAAmB,gBAAgBC,OAAO,OAAOC,QAAQ,YAAYC,MAAM,OAAOC,KAAK,WAAUjB,EAAA,KAAAE,IAAA,4CAAGF,EAAA,QAAAE,IAAA,2CAAMe,KAAK,OAAOH,OAAO,KAAKE,MAAM,QAAUhB,EAAA,KAAAE,IAAA,4CAAGF,EAAA,KAAAE,IAAA,4CAAGF,EAAA,KAAAE,IAAA,4CAAGF,EAAA,QAAAE,IAAA,2CAAMgB,EAAE,kH","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import{r as e,c as t,h as s,H as i}from"./p-91d08ab2.js";const d=":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}";const c=d;const n=class{constructor(s){e(this,s);this.userSearchQueryChanged=t(this,"userSearchQueryChanged",7);this.permissionsChanged=t(this,"permissionsChanged",7);this.defaultResx={Add:"Add",AllRoles:"All Roles",FilterByGroup:"Filter By Group",GlobalRoles:"Global Roles",Role:"Role",RolePermissions:"Role Permissions",SelectRole:"Select Role",User:"User",UserPermissions:"User Permissions"};this.permissions=undefined;this.roleGroups=undefined;this.roles=undefined;this.resx=undefined;this.foundUsers=[];this.selectedRoleGroupId=-1;this.userQuery=undefined;this.pickedUser=undefined;this.localResx=undefined;this.focused=false}handleFoundUsersChanged(e){if((e===null||e===void 0?void 0:e.length)>0){setTimeout((()=>{this.userCollapsible.expanded=true}),100)}}resxChanged(){this.mergeResx()}componentWillLoad(){document.addEventListener("click",this.dismissUserResults.bind(this));this.mergeResx()}disconnectedCallback(){document.removeEventListener("click",this.disconnectedCallback.bind(this))}mergeResx(){this.localResx=Object.assign(Object.assign({},this.defaultResx),this.resx)}dismissUserResults(e){const t=this.roleDropDown.getBoundingClientRect();if(e.pageX>t.right||e.pageX<t.left||e.pageY>t.bottom||e.pageY<t.top){this.userCollapsible.expanded=false}}handleRoleGroupChanged(e){const t=e.selectedIndex;const s=Number.parseInt(e.options[t].value);this.selectedRoleGroupId=s}addRole(){const e=Number.parseInt(this.roleDropDown.options[this.roleDropDown.selectedIndex].value);const t=this.roles.filter((t=>t.RoleId==e))[0];this.permissions=Object.assign(Object.assign({},this.permissions),{rolePermissions:[...this.permissions.rolePermissions,{default:false,locked:false,permissions:[],roleId:t.RoleId,roleName:t.RoleName}]});this.permissionsChanged.emit(this.permissions)}addUser(){if(this.pickedUser!=undefined){this.permissions=Object.assign(Object.assign({},this.permissions),{userPermissions:[...this.permissions.userPermissions,{displayName:this.pickedUser.displayName,permissions:[],userId:this.pickedUser.userId}]});this.pickedUser=undefined;this.userQuery="";this.permissionsChanged.emit(this.permissions)}}getRoles(){const e=this.roles.filter((e=>!this.permissions.rolePermissions.some((t=>t.roleId==e.RoleId))));if(this.selectedRoleGroupId==-2){return e}if(this.selectedRoleGroupId==-1){return e.filter((e=>e.IsSystemRole))}return e.filter((e=>e.RoleGroupId==this.selectedRoleGroupId))}renderRoleCheckBox(e,t){const i=e.permissions.filter((e=>e.permissionId==t.permissionId))[0];if(e.locked){return s("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"#000000"},s("g",{fill:"none"},s("path",{d:"M0 0h24v24H0V0z"}),s("path",{d:"M0 0h24v24H0V0z",opacity:".87"})),s("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"}))}const d=i==undefined?"intermediate":i.allowAccess?"checked":"unchecked";return s("label",null,s("span",{class:"hidden"},t.permissionName),s("dnn-checkbox",{"use-intermediate":true,checked:d,onCheckedchange:s=>this.handleRoleChanged(s.detail,e,t)},s("div",{slot:"intermediateicon"},s("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"#000000"},s("path",{d:"M0 0h24v24H0V0z",fill:"none"}),s("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"}))),s("div",{slot:"uncheckedicon"},s("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"#000000"},s("path",{d:"M0 0h24v24H0V0z",fill:"none"}),s("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"})))))}renderUserCheckBox(e,t){const i=e.permissions.filter((e=>e.permissionId==t.permissionId))[0];const d=i==undefined?"intermediate":i.allowAccess?"checked":"unchecked";return s("label",null,s("span",{class:"hidden"},t.permissionName),s("dnn-checkbox",{"use-intermediate":true,checked:d,onCheckedchange:s=>this.handleUserChanged(s.detail,e,t)},s("div",{slot:"intermediateicon"},s("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"#000000"},s("path",{d:"M0 0h24v24H0V0z",fill:"none"}),s("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"}))),s("div",{slot:"uncheckedicon"},s("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"#000000"},s("path",{d:"M0 0h24v24H0V0z",fill:"none"}),s("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"})))))}handleRoleChanged(e,t,s){switch(e){case"unchecked":this.permissions=Object.assign(Object.assign({},this.permissions),{rolePermissions:[...this.permissions.rolePermissions.map((e=>{if(e.roleId!=t.roleId){return e}const i=Object.assign({},e);i.permissions=[...i.permissions.filter((e=>e.permissionId!=s.permissionId)),{allowAccess:false,fullControl:false,permissionCode:s.permissionCode,permissionId:s.permissionId,permissionKey:s.permissionKey,permissionName:s.permissionName,view:false}];return i}))]});break;case"checked":this.permissions=Object.assign(Object.assign({},this.permissions),{rolePermissions:[...this.permissions.rolePermissions.map((e=>{if(e.roleId!=t.roleId){return e}const i=Object.assign({},e);i.permissions=[...i.permissions.filter((e=>e.permissionId!=s.permissionId)),{allowAccess:true,fullControl:false,permissionCode:s.permissionCode,permissionId:s.permissionId,permissionKey:s.permissionKey,permissionName:s.permissionName,view:false}];return i}))]});break;case"intermediate":this.permissions=Object.assign(Object.assign({},this.permissions),{rolePermissions:[...this.permissions.rolePermissions.map((e=>{if(e.roleId!=t.roleId){return e}const i=Object.assign({},e);i.permissions=[...i.permissions.filter((e=>e.permissionId!=s.permissionId))];return i}))]});break}this.permissionsChanged.emit(this.permissions)}handleUserChanged(e,t,s){switch(e){case"unchecked":this.permissions=Object.assign(Object.assign({},this.permissions),{userPermissions:[...this.permissions.userPermissions.map((e=>{if(e.userId!=t.userId){return e}const i=Object.assign({},e);i.permissions=[...i.permissions.filter((e=>e.permissionId!=s.permissionId)),{allowAccess:false,fullControl:false,permissionCode:s.permissionCode,permissionId:s.permissionId,permissionKey:s.permissionKey,permissionName:s.permissionName,view:false}];return i}))]});break;case"checked":this.permissions=Object.assign(Object.assign({},this.permissions),{userPermissions:[...this.permissions.userPermissions.map((e=>{if(e.userId!=t.userId){return e}const i=Object.assign({},e);i.permissions=[...i.permissions.filter((e=>e.permissionId!=s.permissionId)),{allowAccess:true,fullControl:false,permissionCode:s.permissionCode,permissionId:s.permissionId,permissionKey:s.permissionKey,permissionName:s.permissionName,view:false}];return i}))]});break;case"intermediate":this.permissions=Object.assign(Object.assign({},this.permissions),{userPermissions:[...this.permissions.userPermissions.map((e=>{if(e.userId!=t.userId){return e}const i=Object.assign({},e);i.permissions=[...i.permissions.filter((e=>e.permissionId!=s.permissionId))];return i}))]});break}this.permissionsChanged.emit(this.permissions)}removeRole(e){this.permissions=Object.assign(Object.assign({},this.permissions),{rolePermissions:[...this.permissions.rolePermissions.filter((t=>t.roleId!=e.roleId))]});this.permissionsChanged.emit()}removeUser(e){this.permissions=Object.assign(Object.assign({},this.permissions),{userPermissions:[...this.permissions.userPermissions.filter((t=>t.userId!=e.userId))]});this.permissionsChanged.emit(this.permissions)}handleQueryChanged(e){this.userQuery=e;if(e==undefined||e.length==0){this.userCollapsible.expanded=false;this.pickedUser=undefined;this.foundUsers=[];return}this.userSearchQueryChanged.emit(e)}handleSearchUserFieldKeyDown(e){if(e.key!="ArrowDown"){return}e.preventDefault();const t=this.userCollapsible.querySelector("button");if(t!=undefined){t.focus()}}handleSearchedUserKeyDown(e){const t=e.target;switch(e.key){case"ArrowDown":e.preventDefault();const s=t.nextElementSibling;s===null||s===void 0?void 0:s.focus();break;case"ArrowUp":e.preventDefault();const i=t.previousElementSibling;i===null||i===void 0?void 0:i.focus();break}}handleUserPicked(e){this.userQuery=e.displayName;this.pickedUser=e}getFilteredUsers(){return this.foundUsers.filter((e=>!this.permissions.userPermissions.some((t=>t.userId==e.userId))))}render(){const e=this.getRoles();return s(i,{key:"cf72a4f914f45cc67dc2c3eda77f9edde7f60270",tabIndex:this.focused?-1:0,onFocus:()=>this.rolesDropdown.focus(),onBlur:()=>this.rolesDropdown.blur()},s("div",{key:"8c4ebce85c93f4f08c4ad24f0b6223de8dc6449c",class:"add-role-row"},s("div",{key:"585768e943955c909194a25dba06a8b84ae4e7be",class:"dropdown"},s("label",{key:"e9823e0e553a3ae23384e79354696de2c649bea2"},this.localResx.FilterByGroup," :"),s("select",{key:"5a8cc2742a103bd024243708b18c069b43e70674",ref:e=>this.rolesDropdown=e,onChange:e=>this.handleRoleGroupChanged(e.target),onFocus:()=>this.focused=true,onBlur:()=>this.focused=false},s("option",{key:"daa1a622f34c7b08145b8486201ffaacbb129b78",value:-2,selected:this.selectedRoleGroupId==-2},this.localResx.AllRoles),s("option",{key:"039fb0a46c56712dccc0d76b3a8872ff8b2d06db",value:-1,selected:this.selectedRoleGroupId==-1},this.localResx.GlobalRoles),this.roleGroups.map((e=>s("option",{value:e.id,selected:this.selectedRoleGroupId==e.id},e.name))))),e&&e.length>0&&[s("div",{key:"1db52ea02ecf75268ec9996fbd68ea7726733679",class:"dropdown"},s("label",{key:"7fa52a0247951ca88ad80cbf810e7810688dc918"},this.localResx.SelectRole," :"),s("select",{key:"cf7baac0e6c22c33ddcac117f05046b942ad6d4e",ref:e=>this.roleDropDown=e},this.getRoles().map((e=>s("option",{value:e.RoleId},e.RoleName))))),s("dnn-button",{key:"b95196cf538d86c255440a5a88a7f85f019b6632",type:"primary",onClick:()=>this.addRole()},this.localResx.Add)]),s("table",{key:"51110cb5293a2b753f808572418210094bdc1f7d",class:"roles-table"},s("caption",{key:"2c1abc3f0fe54307b48be57e7f9b61939b4822b3"},this.localResx.RolePermissions),s("thead",{key:"b7e89b31ba60e0b0c866f2c4f83f5df98d6f83b3"},s("tr",{key:"4f2c16c8425483d7dc1aba76cedd20083dcf9dc3"},s("th",{key:"4c0910460873ecab0b9f55352be83c56c575f6a6"},this.localResx.Role),this.permissions.permissionDefinitions.map((e=>s("th",null,e.permissionName))),s("th",{key:"a41f294b08733b13d2f75032d9b99891727a6b21"}," "))),s("tbody",{key:"66367d43acd71c2660ee7e38a383c2cc4cdeff2b"},this.permissions.rolePermissions.map((e=>s("tr",null,s("th",null,e.roleName),this.permissions.permissionDefinitions.map((t=>s("td",null,this.renderRoleCheckBox(e,t)))),s("td",null,!e.default&&s("button",{onClick:()=>this.removeRole(e)},s("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"#000000"},s("path",{d:"M0 0h24v24H0V0z",fill:"none"}),s("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"}))))))))),s("div",{key:"96d18900b0c2e1915b49dbae8dfca84ce22f9224",class:"search-user"},s("div",{key:"cd5f5916d43a53a827654226fb2ca5cf2842d2fd",class:"search-control"},s("dnn-searchbox",{key:"47a8f6b69fba9e87806a02c2101d8eac0d65cfb7",placeholder:this.localResx.User,debounced:true,onQueryChanged:e=>this.handleQueryChanged(e.detail),onKeyDown:e=>this.handleSearchUserFieldKeyDown(e),query:this.userQuery}),s("dnn-collapsible",{key:"21e8ecd420d7a4174a1e8633a00ff609c88391d3",ref:e=>this.userCollapsible=e},s("div",{key:"e8996049d1743358d16515c6e7a62fbf1c3449f4",class:"dropdown"},this.getFilteredUsers().map((e=>s("button",{onKeyDown:e=>this.handleSearchedUserKeyDown(e),onClick:()=>this.handleUserPicked(e)},e.displayName)))))),this.pickedUser&&s("dnn-button",{key:"5a3159e4b75a1eaf7e04d76a5e7c207efbcb4bbd",onClick:()=>this.addUser()},this.localResx.Add)),this.permissions.userPermissions&&this.permissions.userPermissions.length>0&&s("table",{key:"1c67fd050abc84cc1d46c2f22ac54b72536c059c",class:"users-table"},s("caption",{key:"5a94b92f18104a0307e2282945f36855d055c09a"},this.localResx.UserPermissions),s("thead",{key:"85447eb661dae9d68aa076275b4bc6a3d710d86c"},s("tr",{key:"896a922a18c02b682a48ee613088bf3140291d02"},s("th",{key:"d6606accc9147704a1e71a401550b161f76a132c"},this.localResx.User),this.permissions.permissionDefinitions.map((e=>s("th",null,e.permissionName))),s("th",{key:"87d8b97ab435a913177f828afa637740ba4a2d7b"}," "))),s("tbody",{key:"8649339d5206c4d2c096d97705fa84c56735a8d1"},this.permissions.userPermissions.map((e=>s("tr",null,s("th",null,e.displayName),this.permissions.permissionDefinitions.map((t=>s("td",null,this.renderUserCheckBox(e,t)))),s("td",null,s("button",{onClick:()=>this.removeUser(e)},s("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"#000000"},s("path",{d:"M0 0h24v24H0V0z",fill:"none"}),s("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"}))))))))))}static get watchers(){return{foundUsers:["handleFoundUsersChanged"],resx:["resxChanged"]}}};n.style=c;export{n as dnn_permissions_grid};
2
- //# sourceMappingURL=p-bd6d200f.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["dnnPermissionsGridCss","DnnPermissionsGridStyle0","DnnPermissionsGrid","this","defaultResx","Add","AllRoles","FilterByGroup","GlobalRoles","Role","RolePermissions","SelectRole","User","UserPermissions","handleFoundUsersChanged","newValue","length","setTimeout","userCollapsible","expanded","resxChanged","mergeResx","componentWillLoad","document","addEventListener","dismissUserResults","bind","disconnectedCallback","removeEventListener","localResx","Object","assign","resx","e","dropdownRect","roleDropDown","getBoundingClientRect","pageX","right","left","pageY","bottom","top","handleRoleGroupChanged","dropdown","index","selectedIndex","value","Number","parseInt","options","selectedRoleGroupId","addRole","roleId","role","roles","filter","r","RoleId","permissions","rolePermissions","default","locked","roleName","RoleName","permissionsChanged","emit","addUser","pickedUser","undefined","userPermissions","displayName","userId","userQuery","getRoles","filteredRoles","some","rp","IsSystemRole","RoleGroupId","renderRoleCheckBox","rolePermission","permissionDefinition","item","permission","permissionId","h","xmlns","height","viewBox","width","fill","d","opacity","checked","allowAccess","class","permissionName","onCheckedchange","handleRoleChanged","detail","slot","renderUserCheckBox","userPermission","handleUserChanged","map","newRolePermission","p","fullControl","permissionCode","permissionKey","view","u","newUserPermission","removeRole","removeUser","up","handleQueryChanged","query","foundUsers","userSearchQueryChanged","handleSearchUserFieldKeyDown","key","preventDefault","firstButton","querySelector","focus","handleSearchedUserKeyDown","button","target","nextButton","nextElementSibling","previousButton","previousElementSibling","handleUserPicked","searchedUser","getFilteredUsers","fu","render","Host","tabIndex","focused","onFocus","rolesDropdown","onBlur","blur","ref","el","onChange","selected","roleGroups","roleGroup","id","name","type","onClick","permissionDefinitions","placeholder","debounced","onQueryChanged","onKeyDown"],"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>&nbsp;</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>&nbsp;</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}"],"mappings":"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","ignoreList":[]}