@dnncommunity/dnn-elements 0.24.0-beta.8 → 0.24.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 (155) hide show
  1. package/dist/cjs/dnn-autocomplete.cjs.entry.js +21 -9
  2. package/dist/cjs/dnn-autocomplete.cjs.entry.js.map +1 -1
  3. package/dist/cjs/dnn-checkbox.cjs.entry.js +4 -1
  4. package/dist/cjs/dnn-checkbox.cjs.entry.js.map +1 -1
  5. package/dist/cjs/dnn-chevron.cjs.entry.js +1 -1
  6. package/dist/cjs/dnn-collapsible.cjs.entry.js +1 -1
  7. package/dist/cjs/dnn-color-input.cjs.entry.js +14 -14
  8. package/dist/cjs/dnn-color-picker.cjs.entry.js +3 -3
  9. package/dist/cjs/dnn-dropzone.cjs.entry.js +9 -9
  10. package/dist/cjs/dnn-fieldset.cjs.entry.js +4 -4
  11. package/dist/cjs/dnn-image-cropper.cjs.entry.js +2 -2
  12. package/dist/cjs/dnn-input.cjs.entry.js +7 -7
  13. package/dist/cjs/dnn-modal.cjs.entry.js +2 -2
  14. package/dist/cjs/dnn-monaco-editor.cjs.entry.js +1 -1
  15. package/dist/cjs/dnn-permissions-grid.cjs.entry.js +10 -10
  16. package/dist/cjs/dnn-permissions-grid.cjs.entry.js.map +1 -1
  17. package/dist/cjs/dnn-progress-bar.cjs.entry.js +1 -1
  18. package/dist/cjs/dnn-richtext.cjs.entry.js +2 -2
  19. package/dist/cjs/dnn-searchbox.cjs.entry.js +1 -1
  20. package/dist/cjs/dnn-select.cjs.entry.js +2 -2
  21. package/dist/cjs/dnn-sort-icon.cjs.entry.js +4 -4
  22. package/dist/cjs/dnn-tab_2.cjs.entry.js +3 -3
  23. package/dist/cjs/dnn-textarea.cjs.entry.js +1 -1
  24. package/dist/cjs/dnn-toggle.cjs.entry.js +4 -5
  25. package/dist/cjs/dnn-toggle.cjs.entry.js.map +1 -1
  26. package/dist/cjs/dnn-treeview-item.cjs.entry.js +2 -2
  27. package/dist/cjs/dnn-vertical-overflow-menu.cjs.entry.js +2 -2
  28. package/dist/cjs/dnn-vertical-splitview.cjs.entry.js +4 -4
  29. package/dist/cjs/dnn.cjs.js +1 -1
  30. package/dist/cjs/loader.cjs.js +1 -1
  31. package/dist/collection/components/dnn-autocomplete/dnn-autocomplete.js +24 -11
  32. package/dist/collection/components/dnn-autocomplete/dnn-autocomplete.js.map +1 -1
  33. package/dist/collection/components/dnn-checkbox/dnn-checkbox.js +14 -2
  34. package/dist/collection/components/dnn-checkbox/dnn-checkbox.js.map +1 -1
  35. package/dist/collection/components/dnn-chevron/dnn-chevron.js +1 -1
  36. package/dist/collection/components/dnn-collapsible/dnn-collapsible.js +1 -1
  37. package/dist/collection/components/dnn-color-input/dnn-color-input.js +14 -14
  38. package/dist/collection/components/dnn-color-picker/dnn-color-picker.js +3 -3
  39. package/dist/collection/components/dnn-dropzone/dnn-dropzone.js +9 -9
  40. package/dist/collection/components/dnn-fieldset/dnn-fieldset.js +4 -4
  41. package/dist/collection/components/dnn-image-cropper/dnn-image-cropper.js +2 -2
  42. package/dist/collection/components/dnn-input/dnn-input.js +7 -7
  43. package/dist/collection/components/dnn-modal/dnn-modal.js +2 -2
  44. package/dist/collection/components/dnn-monaco-editor/dnn-monaco-editor.js +1 -1
  45. package/dist/collection/components/dnn-permissions-grid/dnn-permissions-grid.css +1 -1
  46. package/dist/collection/components/dnn-permissions-grid/dnn-permissions-grid.js +9 -9
  47. package/dist/collection/components/dnn-permissions-grid/dnn-permissions-grid.js.map +1 -1
  48. package/dist/collection/components/dnn-progress-bar/dnn-progress-bar.js +1 -1
  49. package/dist/collection/components/dnn-richtext/dnn-richtext.js +2 -2
  50. package/dist/collection/components/dnn-searchbox/dnn-searchbox.js +1 -1
  51. package/dist/collection/components/dnn-select/dnn-select.js +2 -2
  52. package/dist/collection/components/dnn-sort-icon/dnn-sort-icon.js +4 -4
  53. package/dist/collection/components/dnn-tab/dnn-tab.js +2 -2
  54. package/dist/collection/components/dnn-tabs/dnn-tabs.js +1 -1
  55. package/dist/collection/components/dnn-textarea/dnn-textarea.js +1 -1
  56. package/dist/collection/components/dnn-toggle/dnn-toggle.js +13 -5
  57. package/dist/collection/components/dnn-toggle/dnn-toggle.js.map +1 -1
  58. package/dist/collection/components/dnn-treeview-item/dnn-treeview-item.js +2 -2
  59. package/dist/collection/components/dnn-vertical-overflow-menu/dnn-vertical-overflow-menu.js +2 -2
  60. package/dist/collection/components/dnn-vertical-splitview/dnn-vertical-splitview.js +4 -4
  61. package/dist/dnn/dnn.esm.js +1 -1
  62. package/dist/dnn/dnn.esm.js.map +1 -1
  63. package/dist/dnn/{p-6e54915d.entry.js → p-03d3f2b1.entry.js} +2 -2
  64. package/dist/dnn/{p-96c850a8.entry.js → p-15c86eb3.entry.js} +2 -2
  65. package/dist/dnn/p-2c7a91de.entry.js +2 -0
  66. package/dist/dnn/p-2c7a91de.entry.js.map +1 -0
  67. package/dist/dnn/p-45e1c385.entry.js +2 -0
  68. package/dist/dnn/{p-2486e9db.entry.js.map → p-45e1c385.entry.js.map} +1 -1
  69. package/dist/dnn/{p-4574844c.entry.js → p-52ae7b31.entry.js} +2 -2
  70. package/dist/dnn/{p-90dd4620.entry.js → p-576364af.entry.js} +2 -2
  71. package/dist/dnn/{p-07a78c58.entry.js → p-5a244627.entry.js} +2 -2
  72. package/dist/dnn/{p-70b71aeb.entry.js → p-5b8e0904.entry.js} +2 -2
  73. package/dist/dnn/{p-50b6bb3f.entry.js → p-6643b369.entry.js} +2 -2
  74. package/dist/dnn/{p-7c4bcd14.entry.js → p-6659a086.entry.js} +2 -2
  75. package/dist/dnn/{p-8564bc60.entry.js → p-672fb82d.entry.js} +2 -2
  76. package/dist/dnn/{p-61dfb826.entry.js → p-69d5f883.entry.js} +2 -2
  77. package/dist/dnn/p-6e2adf25.entry.js +2 -0
  78. package/dist/dnn/p-6e2adf25.entry.js.map +1 -0
  79. package/dist/dnn/{p-b96b7c4a.entry.js → p-73fddf11.entry.js} +2 -2
  80. package/dist/dnn/p-9a06ad79.entry.js +2 -0
  81. package/dist/dnn/p-9d2a9141.entry.js +2 -0
  82. package/dist/dnn/p-9d2a9141.entry.js.map +1 -0
  83. package/dist/dnn/{p-535748e2.entry.js → p-a6982c8d.entry.js} +2 -2
  84. package/dist/dnn/{p-9ecfe643.entry.js → p-af925605.entry.js} +2 -2
  85. package/dist/dnn/{p-d7d6dffb.entry.js → p-bc1dd08b.entry.js} +2 -2
  86. package/dist/dnn/{p-21c5ef07.entry.js → p-cfbd1373.entry.js} +2 -2
  87. package/dist/dnn/{p-b553c159.entry.js → p-d67edea7.entry.js} +2 -2
  88. package/dist/dnn/{p-e23840d6.entry.js → p-dcf4505a.entry.js} +2 -2
  89. package/dist/dnn/p-ea2d6fd2.entry.js +2 -0
  90. package/dist/dnn/p-ea2d6fd2.entry.js.map +1 -0
  91. package/dist/dnn/{p-3b3475e0.entry.js → p-f107355e.entry.js} +2 -2
  92. package/dist/esm/dnn-autocomplete.entry.js +21 -9
  93. package/dist/esm/dnn-autocomplete.entry.js.map +1 -1
  94. package/dist/esm/dnn-checkbox.entry.js +4 -1
  95. package/dist/esm/dnn-checkbox.entry.js.map +1 -1
  96. package/dist/esm/dnn-chevron.entry.js +1 -1
  97. package/dist/esm/dnn-collapsible.entry.js +1 -1
  98. package/dist/esm/dnn-color-input.entry.js +14 -14
  99. package/dist/esm/dnn-color-picker.entry.js +3 -3
  100. package/dist/esm/dnn-dropzone.entry.js +9 -9
  101. package/dist/esm/dnn-fieldset.entry.js +4 -4
  102. package/dist/esm/dnn-image-cropper.entry.js +2 -2
  103. package/dist/esm/dnn-input.entry.js +7 -7
  104. package/dist/esm/dnn-modal.entry.js +2 -2
  105. package/dist/esm/dnn-monaco-editor.entry.js +1 -1
  106. package/dist/esm/dnn-permissions-grid.entry.js +10 -10
  107. package/dist/esm/dnn-permissions-grid.entry.js.map +1 -1
  108. package/dist/esm/dnn-progress-bar.entry.js +1 -1
  109. package/dist/esm/dnn-richtext.entry.js +2 -2
  110. package/dist/esm/dnn-searchbox.entry.js +1 -1
  111. package/dist/esm/dnn-select.entry.js +2 -2
  112. package/dist/esm/dnn-sort-icon.entry.js +4 -4
  113. package/dist/esm/dnn-tab_2.entry.js +3 -3
  114. package/dist/esm/dnn-textarea.entry.js +1 -1
  115. package/dist/esm/dnn-toggle.entry.js +4 -5
  116. package/dist/esm/dnn-toggle.entry.js.map +1 -1
  117. package/dist/esm/dnn-treeview-item.entry.js +2 -2
  118. package/dist/esm/dnn-vertical-overflow-menu.entry.js +2 -2
  119. package/dist/esm/dnn-vertical-splitview.entry.js +4 -4
  120. package/dist/esm/dnn.js +1 -1
  121. package/dist/esm/loader.js +1 -1
  122. package/dist/types/components/dnn-autocomplete/dnn-autocomplete.d.ts +2 -1
  123. package/dist/types/components/dnn-checkbox/dnn-checkbox.d.ts +2 -1
  124. package/dist/types/components/dnn-toggle/dnn-toggle.d.ts +1 -0
  125. package/dist/types/components.d.ts +12 -0
  126. package/package.json +1 -1
  127. package/dist/dnn/p-2486e9db.entry.js +0 -2
  128. package/dist/dnn/p-27dc2d8f.entry.js +0 -2
  129. package/dist/dnn/p-27dc2d8f.entry.js.map +0 -1
  130. package/dist/dnn/p-350e4008.entry.js +0 -2
  131. package/dist/dnn/p-350e4008.entry.js.map +0 -1
  132. package/dist/dnn/p-3d1d6321.entry.js +0 -2
  133. package/dist/dnn/p-3d1d6321.entry.js.map +0 -1
  134. package/dist/dnn/p-5b15b44a.entry.js +0 -2
  135. package/dist/dnn/p-b5241c09.entry.js +0 -2
  136. package/dist/dnn/p-b5241c09.entry.js.map +0 -1
  137. /package/dist/dnn/{p-6e54915d.entry.js.map → p-03d3f2b1.entry.js.map} +0 -0
  138. /package/dist/dnn/{p-96c850a8.entry.js.map → p-15c86eb3.entry.js.map} +0 -0
  139. /package/dist/dnn/{p-4574844c.entry.js.map → p-52ae7b31.entry.js.map} +0 -0
  140. /package/dist/dnn/{p-90dd4620.entry.js.map → p-576364af.entry.js.map} +0 -0
  141. /package/dist/dnn/{p-07a78c58.entry.js.map → p-5a244627.entry.js.map} +0 -0
  142. /package/dist/dnn/{p-70b71aeb.entry.js.map → p-5b8e0904.entry.js.map} +0 -0
  143. /package/dist/dnn/{p-50b6bb3f.entry.js.map → p-6643b369.entry.js.map} +0 -0
  144. /package/dist/dnn/{p-7c4bcd14.entry.js.map → p-6659a086.entry.js.map} +0 -0
  145. /package/dist/dnn/{p-8564bc60.entry.js.map → p-672fb82d.entry.js.map} +0 -0
  146. /package/dist/dnn/{p-61dfb826.entry.js.map → p-69d5f883.entry.js.map} +0 -0
  147. /package/dist/dnn/{p-b96b7c4a.entry.js.map → p-73fddf11.entry.js.map} +0 -0
  148. /package/dist/dnn/{p-5b15b44a.entry.js.map → p-9a06ad79.entry.js.map} +0 -0
  149. /package/dist/dnn/{p-535748e2.entry.js.map → p-a6982c8d.entry.js.map} +0 -0
  150. /package/dist/dnn/{p-9ecfe643.entry.js.map → p-af925605.entry.js.map} +0 -0
  151. /package/dist/dnn/{p-d7d6dffb.entry.js.map → p-bc1dd08b.entry.js.map} +0 -0
  152. /package/dist/dnn/{p-21c5ef07.entry.js.map → p-cfbd1373.entry.js.map} +0 -0
  153. /package/dist/dnn/{p-b553c159.entry.js.map → p-d67edea7.entry.js.map} +0 -0
  154. /package/dist/dnn/{p-e23840d6.entry.js.map → p-dcf4505a.entry.js.map} +0 -0
  155. /package/dist/dnn/{p-3b3475e0.entry.js.map → p-f107355e.entry.js.map} +0 -0
@@ -61,10 +61,10 @@ const DnnFieldset = class {
61
61
  return classes.join(" ");
62
62
  }
63
63
  render() {
64
- return (h(Host, { key: '7ee42e394faac7673753be66dc1c4796f4d3cbf7' }, h("div", { key: 'cbc711c65ac10f3848014658228f6b28e8c2f855', class: this.getContainerClasses() }, this.label &&
65
- h("label", { key: '4175e907013de07a8bfff4a1b760f707c47c9780' }, h("slot", { key: 'c665a4a1e89667b6796fdebf7a399cf73f3a2d5a', name: "label-prefix" }), this.label, h("slot", { key: 'f38bc75b747a9690578235e67c614fe7bac802fc', name: "label-suffix" })), h("div", { key: 'e94e37a5c5fe4284e60011d15453a0745eed4ef4', class: "resizer", style: { resize: this.resizable, overflow: this.resizable == "none" ? "visible" : "auto" } }, h("div", { key: 'eca3a5f55cbdeb75912a091a31a495b0d7abd6d8', class: "inner-container" }, h("slot", { key: '6dcfd24831f36fcf33b78a172b2f1a04773957bd' })))), this.invalid && this.customValidityMessage &&
66
- h("div", { key: '6d939440282fa9bf11ef431edaea1199e9183e4b', class: "error-message" }, this.customValidityMessage), !this.invalid &&
67
- h("div", { key: '14d4661d357fb3a97e2fbba748cb2126389d1c53', class: "help-text" }, this.helpText)));
64
+ return (h(Host, { key: 'f97ae39c92d41cd55c68e49726d2d03cd95d5a4e' }, h("div", { key: '428c954731215899b0b8d85132c93d2452dabf1d', class: this.getContainerClasses() }, this.label &&
65
+ h("label", { key: '1430170d4d130c7174f4bb369520ecff89e42b23' }, h("slot", { key: '381665dc530db579968d89fe826f081b4d7c0957', name: "label-prefix" }), this.label, h("slot", { key: '513395e461546b1b3cf214c59f4afe5ba580ffd9', name: "label-suffix" })), h("div", { key: '621ddedaf8da8d3e79346778a70e9de7039483fe', class: "resizer", style: { resize: this.resizable, overflow: this.resizable == "none" ? "visible" : "auto" } }, h("div", { key: '42b3cd52e1a8182abfc3eba043ab79b80f15d310', class: "inner-container" }, h("slot", { key: 'a4225c9af1d7e2fd613e0b3b1975c53ef98e8448' })))), this.invalid && this.customValidityMessage &&
66
+ h("div", { key: '917c3db73b9eef42934152494cf0cb03e94082df', class: "error-message" }, this.customValidityMessage), !this.invalid &&
67
+ h("div", { key: '5300002ff371d1b32292831e7849db4d985059c1', class: "help-text" }, this.helpText)));
68
68
  }
69
69
  };
70
70
  DnnFieldset.style = DnnFieldsetStyle0;
@@ -439,7 +439,7 @@ const DnnImageCropper = class {
439
439
  }
440
440
  render() {
441
441
  var _a, _b;
442
- return (h(Host, { key: '0cf57fcffcf8f7b3fd7e04ea3f85ae439e571107', tabIndex: this.focused ? -1 : 0, onFocus: () => this.inputField.focus(), onBlur: () => this.inputField.blur() }, h("canvas", { key: '46c29b18dbc1bc5583ba45aec7ab4555e5272f74', ref: el => this.canvas = el }), h("div", { key: '6219ab6bf13079342ed400a91e4d11a9d0e7796d', class: "view", ref: el => this.hasPictureView = el }, h("div", { key: 'c92ab81fc2b5bef22e759bd5be585bc3de29ed9e', class: "cropper" }, h("img", { key: '0633788e3d2718288e8edfb68d9a7890bcd4e011', ref: el => this.image = el }), h("div", { key: '87e72dbbd2f7c9aa2164fa5231215ba445cba41a', class: "backdrop" }), h("div", { key: 'a7de918251132e4a8c8d563a291103958987d3ae', class: "crop", ref: e => this.crop = e, onMouseDown: this.handleCropMouseDown, onTouchStart: this.handleCropMouseDown }, h("div", { key: '47dacbe094703b8d731ab37fa160afaed81b2a9e', class: "nw" }), h("div", { key: 'e22617dace42771c6148bbcaa1f406ca66b55aa7', class: "ne" }), h("div", { key: 'b99d0fc12419e4a1189e7b14d482764494407350', class: "se" }), h("div", { key: 'd6a18896f2db1b25b9dccfcd46495a27d39b8392', class: "sw" })))), h("div", { key: '5cde8fce68a4ad42d4c1cae5e193e6ef090caa89', class: "view", ref: el => this.noPictureView = el }, h("dnn-dropzone", { key: '811fef8f71ec0017d5b9fb5911a38440afdd83bd', allowCameraMode: true, onFilesSelected: e => this.handleNewFile(e.detail[0]), allowedExtensions: ['jpg', 'jpeg', 'gif', 'png', 'svg', 'webp', 'bmp'], resx: {
442
+ return (h(Host, { key: '381246ee476b95d7869bbdaef99e4032aabefb3a', tabIndex: this.focused ? -1 : 0, onFocus: () => this.inputField.focus(), onBlur: () => this.inputField.blur() }, h("canvas", { key: '86c84108ff8438cc20e840d6f6ea14597b547c7f', ref: el => this.canvas = el }), h("div", { key: '709fcd6dbd4385a3b46b7621367a3448aa3aee30', class: "view", ref: el => this.hasPictureView = el }, h("div", { key: 'd5ebd8b8ba823e62d6702254fcd4bd5d57439fe3', class: "cropper" }, h("img", { key: '85c591654d1c794be00067d105b04e09d7219d7c', ref: el => this.image = el }), h("div", { key: 'e21d5065734dddac7093b51c409fcd452ed079c6', class: "backdrop" }), h("div", { key: '72ae44e6cbdcc1ac76751fb82a7be59eed5bb5d1', class: "crop", ref: e => this.crop = e, onMouseDown: this.handleCropMouseDown, onTouchStart: this.handleCropMouseDown }, h("div", { key: '1da722312999868d8c47af1608f918cbf4478713', class: "nw" }), h("div", { key: '4e5fb43ff7e69bf8b498391317df0fc5716d2999', class: "ne" }), h("div", { key: '4b2eba3a46f7514b3d9e446d6dc27d6102554fd4', class: "se" }), h("div", { key: 'eb92e846bdbd2409ead0d4339f30c6d78b0e1225', class: "sw" })))), h("div", { key: '2cf6c91c1b5cb2517f84e5c39548be4213fc27c2', class: "view", ref: el => this.noPictureView = el }, h("dnn-dropzone", { key: 'c9c2e904842f8462b87952836fa864a9e09079f2', allowCameraMode: true, onFilesSelected: e => this.handleNewFile(e.detail[0]), allowedExtensions: ['jpg', 'jpeg', 'gif', 'png', 'svg', 'webp', 'bmp'], resx: {
443
443
  capture: this.localResx.capture,
444
444
  dragAndDropFile: this.localResx.dragAndDropFile,
445
445
  or: this.localResx.or,
@@ -447,7 +447,7 @@ const DnnImageCropper = class {
447
447
  uploadFile: this.localResx.uploadFile,
448
448
  uploadSizeTooLarge: "The file you tried to upload is too large.",
449
449
  fileSizeLimit: "The maximum size is",
450
- }, ref: el => this.inputField = el, onFocus: () => this.focused = true, onBlur: () => this.focused = false })), h("dnn-modal", { key: 'a0af03e617ea2a6ad0d642fda94cfd5350443bed', ref: el => this.imageTooSmallModal = el, "close-text": this.localResx.modalCloseText }, h("p", { key: 'bb63e3854ecccdb448db5494067a50acc899b6a6' }, this.localResx.imageTooSmall.replace("{width}", (_a = this.width) === null || _a === void 0 ? void 0 : _a.toString()).replace("{height}", (_b = this.height) === null || _b === void 0 ? void 0 : _b.toString())))));
450
+ }, ref: el => this.inputField = el, onFocus: () => this.focused = true, onBlur: () => this.focused = false })), h("dnn-modal", { key: 'd70385ac62db570303947cd133a6dace89851fe3', ref: el => this.imageTooSmallModal = el, "close-text": this.localResx.modalCloseText }, h("p", { key: 'c96b96c98b7a7918b0f954323cb30146ead874a3' }, this.localResx.imageTooSmall.replace("{width}", (_a = this.width) === null || _a === void 0 ? void 0 : _a.toString()).replace("{height}", (_b = this.height) === null || _b === void 0 ? void 0 : _b.toString())))));
451
451
  }
452
452
  static get formAssociated() { return true; }
453
453
  get host() { return getElement(this); }
@@ -121,13 +121,13 @@ const DnnInput = class {
121
121
  }
122
122
  render() {
123
123
  var _a;
124
- return (h(Host, { key: '5eb92abaa8138bf2b83e093d7bf4bdc358ec0419', tabIndex: this.focused ? -1 : 0, onFocus: () => this.inputField.focus(), onBlur: () => this.inputField.blur() }, h("dnn-fieldset", { key: '79ee21f5a6b49f6566a03af66d9cffab2f13f8c2', ref: el => this.fieldset = el, invalid: !this.valid, focused: this.focused, label: `${(_a = this.label) !== null && _a !== void 0 ? _a : ""}${this.required ? " *" : ""}`, helpText: this.helpText, id: this.labelId, disabled: this.disabled, floatLabel: this.shouldLabelFloat(), onClick: () => !this.focused && this.inputField.focus(), onFocus: () => this.focused = true, onBlur: () => this.focused = false }, h("div", { key: 'ca4753fe9120baf30d913a2bae0f829fe9f7e0f4', class: "inner-container" }, !this.shouldLabelFloat() &&
125
- h("slot", { key: '230525f8eb5b51e0a2aa5f2d042e6330e4aa996a', name: "prefix" }), h("input", { key: '1279ff2fadac8148fe20afb642a8a58805e8d1c7', ref: el => this.inputField = el, name: this.name, type: this.type, disabled: this.disabled, required: this.required, autoComplete: this.autocomplete, min: this.min, max: this.max, minlength: this.minlength, maxlength: this.maxlength, multiple: this.multiple, pattern: this.pattern, readonly: this.readonly, step: this.step, value: this.value, onBlur: () => this.handleBlur(), onFocus: () => this.focused = true, onInput: e => this.handleInput(e.target.value), onInvalid: () => this.handleInvalid(), onChange: () => this.handleChange(), "aria-labelledby": this.labelId }), !this.shouldLabelFloat() &&
126
- h("slot", { key: '88b5f27fe9492e939307847b081f8bdedad34b93', name: "suffix" }), !this.valid &&
127
- h("svg", { key: '7876b653695274d60b821ba68b64616e088aedb3', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960", class: "error" }, h("path", { key: '8ef4ad579bdd56f1abde5c83541e0a895f9455d9', d: "M479.982-280q14.018 0 23.518-9.482 9.5-9.483 9.5-23.5 0-14.018-9.482-23.518-9.483-9.5-23.5-9.5-14.018 0-23.518 9.482-9.5 9.483-9.5 23.5 0 14.018 9.482 23.518 9.483 9.5 23.5 9.5ZM453-433h60v-253h-60v253Zm27.266 353q-82.734 0-155.5-31.5t-127.266-86q-54.5-54.5-86-127.341Q80-397.681 80-480.5q0-82.819 31.5-155.659Q143-709 197.5-763t127.341-85.5Q397.681-880 480.5-880q82.819 0 155.659 31.5Q709-817 763-763t85.5 127Q880-563 880-480.266q0 82.734-31.5 155.5T763-197.684q-54 54.316-127 86Q563-80 480.266-80Zm.234-60Q622-140 721-239.5t99-241Q820-622 721.188-721 622.375-820 480-820q-141 0-240.5 98.812Q140-622.375 140-480q0 141 99.5 240.5t241 99.5Zm-.5-340Z" })), this.allowShowPassword &&
128
- h("button", { key: 'b20e540212360839c17441550588175cbdc14412', class: "show-password", onClick: () => this.switchPasswordVisibility() }, this.type === "text" &&
129
- h("svg", { key: '09e29c1ed6d3db8ad0321e140f67f536d535d073', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960" }, h("path", { key: '94f712fb1c42a5f480cf203d9abd55abd0d780c9', d: "M480.118-330Q551-330 600.5-379.618q49.5-49.617 49.5-120.5Q650-571 600.382-620.5q-49.617-49.5-120.5-49.5Q409-670 359.5-620.382q-49.5 49.617-49.5 120.5Q310-429 359.618-379.5q49.617 49.5 120.5 49.5Zm-.353-58Q433-388 400.5-420.735q-32.5-32.736-32.5-79.5Q368-547 400.735-579.5q32.736-32.5 79.5-32.5Q527-612 559.5-579.265q32.5 32.736 32.5 79.5Q592-453 559.265-420.5q-32.736 32.5-79.5 32.5ZM480-200q-146 0-264-83T40-500q58-134 176-217t264-83q146 0 264 83t176 217q-58 134-176 217t-264 83Zm0-300Zm-.169 240Q601-260 702.5-325.5 804-391 857-500q-53-109-154.331-174.5-101.332-65.5-222.5-65.5Q359-740 257.5-674.5 156-609 102-500q54 109 155.331 174.5 101.332 65.5 222.5 65.5Z" })), this.type == "password" &&
130
- h("svg", { key: 'b5cd9fce7ff0d483ee5a1995ca60644d3040e0fd', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960" }, h("path", { key: '5e9e01fbd60e6c1e38c23bc2139b147abec2ebd1', d: "m629-419-44-44q26-71-27-118t-115-24l-44-44q17-11 38-16t43-5q71 0 120.5 49.5T650-500q0 22-5.5 43.5T629-419Zm129 129-40-40q49-36 85.5-80.5T857-500q-50-111-150-175.5T490-740q-42 0-86 8t-69 19l-46-47q35-16 89.5-28T485-800q143 0 261.5 81.5T920-500q-26 64-67 117t-95 93Zm58 226L648-229q-35 14-79 21.5t-89 7.5q-146 0-265-81.5T40-500q20-52 55.5-101.5T182-696L56-822l42-43 757 757-39 44ZM223-654q-37 27-71.5 71T102-500q51 111 153.5 175.5T488-260q33 0 65-4t48-12l-64-64q-11 5-27 7.5t-30 2.5q-70 0-120-49t-50-121q0-15 2.5-30t7.5-27l-97-97Zm305 142Zm-116 58Z" })))))));
124
+ return (h(Host, { key: '75a60d744c7321a21e8be2eb5e1e96ed61e81c0e', tabIndex: this.focused ? -1 : 0, onFocus: () => this.inputField.focus(), onBlur: () => this.inputField.blur() }, h("dnn-fieldset", { key: '1dd7ccc6c05d28be7c850117f7f93e7356e44e0b', ref: el => this.fieldset = el, invalid: !this.valid, focused: this.focused, label: `${(_a = this.label) !== null && _a !== void 0 ? _a : ""}${this.required ? " *" : ""}`, helpText: this.helpText, id: this.labelId, disabled: this.disabled, floatLabel: this.shouldLabelFloat(), onClick: () => !this.focused && this.inputField.focus(), onFocus: () => this.focused = true, onBlur: () => this.focused = false }, h("div", { key: '0e320d003cfe21a25592d59ca0832c8d5de434c2', class: "inner-container" }, !this.shouldLabelFloat() &&
125
+ h("slot", { key: '9c7d840d04ad9e1e2e9044e535b231727cd7d56f', name: "prefix" }), h("input", { key: 'ed6c75cea2c9bad544c79312e47131854fdab612', ref: el => this.inputField = el, name: this.name, type: this.type, disabled: this.disabled, required: this.required, autoComplete: this.autocomplete, min: this.min, max: this.max, minlength: this.minlength, maxlength: this.maxlength, multiple: this.multiple, pattern: this.pattern, readonly: this.readonly, step: this.step, value: this.value, onBlur: () => this.handleBlur(), onFocus: () => this.focused = true, onInput: e => this.handleInput(e.target.value), onInvalid: () => this.handleInvalid(), onChange: () => this.handleChange(), "aria-labelledby": this.labelId }), !this.shouldLabelFloat() &&
126
+ h("slot", { key: '442d4adb37d95742d797c976175f4f1bc5f9fe86', name: "suffix" }), !this.valid &&
127
+ h("svg", { key: 'f95905a8e402cc4689afd686f52d2a151236a221', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960", class: "error" }, h("path", { key: 'ca7cb76e9df70463206a747bbd9ac1be20e2515b', d: "M479.982-280q14.018 0 23.518-9.482 9.5-9.483 9.5-23.5 0-14.018-9.482-23.518-9.483-9.5-23.5-9.5-14.018 0-23.518 9.482-9.5 9.483-9.5 23.5 0 14.018 9.482 23.518 9.483 9.5 23.5 9.5ZM453-433h60v-253h-60v253Zm27.266 353q-82.734 0-155.5-31.5t-127.266-86q-54.5-54.5-86-127.341Q80-397.681 80-480.5q0-82.819 31.5-155.659Q143-709 197.5-763t127.341-85.5Q397.681-880 480.5-880q82.819 0 155.659 31.5Q709-817 763-763t85.5 127Q880-563 880-480.266q0 82.734-31.5 155.5T763-197.684q-54 54.316-127 86Q563-80 480.266-80Zm.234-60Q622-140 721-239.5t99-241Q820-622 721.188-721 622.375-820 480-820q-141 0-240.5 98.812Q140-622.375 140-480q0 141 99.5 240.5t241 99.5Zm-.5-340Z" })), this.allowShowPassword &&
128
+ h("button", { key: '531517334b451784cd98de67ba24dad5c902afc6', class: "show-password", onClick: () => this.switchPasswordVisibility() }, this.type === "text" &&
129
+ h("svg", { key: '8b0a02d79dc816d4969eab39a19c33b625f72b28', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960" }, h("path", { key: '3b4965787039c15525ed55b7aff8640a3bf48792', d: "M480.118-330Q551-330 600.5-379.618q49.5-49.617 49.5-120.5Q650-571 600.382-620.5q-49.617-49.5-120.5-49.5Q409-670 359.5-620.382q-49.5 49.617-49.5 120.5Q310-429 359.618-379.5q49.617 49.5 120.5 49.5Zm-.353-58Q433-388 400.5-420.735q-32.5-32.736-32.5-79.5Q368-547 400.735-579.5q32.736-32.5 79.5-32.5Q527-612 559.5-579.265q32.5 32.736 32.5 79.5Q592-453 559.265-420.5q-32.736 32.5-79.5 32.5ZM480-200q-146 0-264-83T40-500q58-134 176-217t264-83q146 0 264 83t176 217q-58 134-176 217t-264 83Zm0-300Zm-.169 240Q601-260 702.5-325.5 804-391 857-500q-53-109-154.331-174.5-101.332-65.5-222.5-65.5Q359-740 257.5-674.5 156-609 102-500q54 109 155.331 174.5 101.332 65.5 222.5 65.5Z" })), this.type == "password" &&
130
+ h("svg", { key: '87f2176b428c9ca9260b1ea7e2ce5ed6beae219c', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960" }, h("path", { key: '8acc664162e4b7039f3997949747e17c5def279c', d: "m629-419-44-44q26-71-27-118t-115-24l-44-44q17-11 38-16t43-5q71 0 120.5 49.5T650-500q0 22-5.5 43.5T629-419Zm129 129-40-40q49-36 85.5-80.5T857-500q-50-111-150-175.5T490-740q-42 0-86 8t-69 19l-46-47q35-16 89.5-28T485-800q143 0 261.5 81.5T920-500q-26 64-67 117t-95 93Zm58 226L648-229q-35 14-79 21.5t-89 7.5q-146 0-265-81.5T40-500q20-52 55.5-101.5T182-696L56-822l42-43 757 757-39 44ZM223-654q-37 27-71.5 71T102-500q51 111 153.5 175.5T488-260q33 0 65-4t48-12l-64-64q-11 5-27 7.5t-30 2.5q-70 0-120-49t-50-121q0-15 2.5-30t7.5-27l-97-97Zm305 142Zm-116 58Z" })))))));
131
131
  }
132
132
  static get formAssociated() { return true; }
133
133
  };
@@ -66,8 +66,8 @@ const DnnModal = class {
66
66
  }
67
67
  }
68
68
  render() {
69
- return (h(Host, { key: '550cfbaf063c83353c10e1a14d9fc948b7885013' }, h("div", { key: 'b9c419240ce6bebef824e88d6e32d45e7f226c14', id: "backdrop", class: this.visible ? 'overlay visible' : 'overlay', onClick: e => this.handleBackdropClick(e) }, h("div", { key: '43487f3b35141fedb9b9b75adf2369fdc8a78a7d', class: "modal", ref: el => this.modal = el }, this.showCloseButton &&
70
- h("button", { key: 'dd05ea7ce7494b298e0a0b3cadecc9ba67479f55', class: "close", "aria-label": this.closeText, onClick: () => this.handleDismiss() }, h("svg", { key: '7c107f426b67cd271624851078d155b0c583a517', xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, h("path", { key: 'b93d2d949d4befb00f32c6018a49352cfd608063', d: "M0 0h24v24H0z", fill: "none" }), h("path", { key: '92b711add6852503391e1d95dadc4e3c2ae58bf4', d: "M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z" }))), h("div", { key: '7e0c87223f7e7fdf96720d1702bbc764806799a9', class: "content" }, h("slot", { key: '578d13ab4ab2abc181c16e664c1569a12ab8e2a1' })), this.resizable && h("div", { key: 'd8c69dfdbd3f1574915132170b1846fe63e544a1', class: 'se', ref: el => this.seDrag = el })))));
69
+ return (h(Host, { key: '5afa6fff1bbbebc41181dae23858a7c401c7b4e2' }, h("div", { key: '732e4d6acbf68cc346531dbbdc22f5d330b0f979', id: "backdrop", class: this.visible ? 'overlay visible' : 'overlay', onClick: e => this.handleBackdropClick(e) }, h("div", { key: 'df4541d67f115d953b4a57510f92fba522f42746', class: "modal", ref: el => this.modal = el }, this.showCloseButton &&
70
+ h("button", { key: 'bea18c2d23fac79da39194d2824af782bed037c2', class: "close", "aria-label": this.closeText, onClick: () => this.handleDismiss() }, h("svg", { key: 'e454aa75f4fca4c6681b4afb4eeae601e28bc202', xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, h("path", { key: '3af30051a6689a7c35773317933f80b36a3ec624', d: "M0 0h24v24H0z", fill: "none" }), h("path", { key: 'f5c35fc743dd27682425f7428d25f91213aa82c7', d: "M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z" }))), h("div", { key: '620ce468ff4148b80cd365e5ec70b908015117d3', class: "content" }, h("slot", { key: '3a6482708a275ba3d3e9942f72fdaf60ad45fd95' })), this.resizable && h("div", { key: 'ae052d5d1771c79d33ed780b338b2aea1fc169e2', class: 'se', ref: el => this.seDrag = el })))));
71
71
  }
72
72
  get el() { return getElement(this); }
73
73
  };
@@ -77,7 +77,7 @@ const DnnMonacoEditor = class {
77
77
  }
78
78
  }
79
79
  render() {
80
- return (h(Host, { key: 'e4b4bd310a36427d48fcf283c3585a7f4e1d767e', tabIndex: this.focused ? -1 : 0, onFocus: () => this.focusElement(), onBlur: () => this.textArea.blur() }, h("div", { key: '8a0b1ce375c1ab998aafb3ad843ca2a32a089bff', class: "editor-container", ref: el => this.editorContainer = el })));
80
+ return (h(Host, { key: '16cdb4922f43e0b38175afb8cd888052d67339ac', tabIndex: this.focused ? -1 : 0, onFocus: () => this.focusElement(), onBlur: () => this.textArea.blur() }, h("div", { key: 'd1e272cf64061ae57ff01898b0036de5347d49d7', class: "editor-container", ref: el => this.editorContainer = el })));
81
81
  }
82
82
  static get formAssociated() { return true; }
83
83
  static get watchers() { return {
@@ -1,6 +1,6 @@
1
1
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-9dbb7028.js';
2
2
 
3
- const dnnPermissionsGridCss = ":host{display:block}.add-role-row{display:flex;gap:1em;align-items:center;flex-wrap:wrap}.add-role-row label{margin-right:0.5em}.search-user{display:flex;gap:1em;margin-top:1em}.search-user .search-control{position:relative}.search-user .search-control dnn-collapsible{position:absolute;left:0;top:calc(100% - 2px);width:100%;box-shadow:0px 4px 4px}.search-user .search-control dnn-collapsible .dropdown{background-color:white;border:1px solid lightgray;display:flex;flex-direction:column}.search-user .search-control dnn-collapsible .dropdown button{background-color:transparent;border:none;border-bottom:1px solid lightgray;padding:0.25em;margin:0;text-align:left}table{border:1px solid lightgray;border-collapse:collapse;margin-top:1em}table thead{text-align:center}table thead tr{border-bottom:1px solid lightgray}table thead th{background-color:lightgray;padding:0.25em 0.5em}table thead th:first-child{border-right:1px solid lightgray}table tbody tr{border-bottom:1px dotted lightgray}table tbody tr th{text-align:left;border-right:1px solid lightgray;padding:0 0.5em}table tbody tr td{text-align:center}table tbody tr td dnn-checkbox span{display:none}table tbody tr td button{background-color:transparent;border:0;padding:0;margin:0;margin-right:1em}";
3
+ const dnnPermissionsGridCss = ":host{display:block}.add-role-row{display:flex;gap:1em;align-items:center;flex-wrap:wrap}.add-role-row label{margin-right:0.5em}.search-user{display:flex;gap:1em;margin-top:1em}.search-user .search-control{position:relative}.search-user .search-control dnn-collapsible{position:absolute;left:0;top:calc(100% - 2px);width:100%;box-shadow:0px 4px 4px}.search-user .search-control dnn-collapsible .dropdown{background-color:white;border:1px solid lightgray;display:flex;flex-direction:column}.search-user .search-control dnn-collapsible .dropdown button{background-color:transparent;border:none;border-bottom:1px solid lightgray;padding:0.25em;margin:0;text-align:left}table{border:1px solid lightgray;border-collapse:collapse;margin-top:1em}table thead{text-align:center}table thead tr{border-bottom:1px solid lightgray}table thead th{background-color:lightgray;padding:0.25em 0.5em}table thead th:first-child{border-right:1px solid lightgray}table tbody tr{border-bottom:1px dotted lightgray}table tbody tr th{text-align:left;border-right:1px solid lightgray;padding:0 0.5em}table tbody tr td{text-align:center}table tbody tr td label .hidden{display:none}table tbody tr td button{background-color:transparent;border:0;padding:0;margin:0;margin-right:1em}";
4
4
  const DnnPermissionsGridStyle0 = dnnPermissionsGridCss;
5
5
 
6
6
  const DnnPermissionsGrid = class {
@@ -112,12 +112,12 @@ const DnnPermissionsGrid = class {
112
112
  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" })));
113
113
  }
114
114
  const checked = item == undefined ? "intermediate" : item.allowAccess ? "checked" : "unchecked";
115
- return (h("dnn-checkbox", { "use-intermediate": true, 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" }))), h("span", null, permissionDefinition.permissionName)));
115
+ return (h("label", null, h("span", { class: "hidden" }, permissionDefinition.permissionName), h("dnn-checkbox", { "use-intermediate": true, 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" }))))));
116
116
  }
117
117
  renderUserCheckBox(userPermission, permissionDefinition) {
118
118
  const item = userPermission.permissions.filter(permission => permission.permissionId == permissionDefinition.permissionId)[0];
119
119
  const checked = item == undefined ? "intermediate" : item.allowAccess ? "checked" : "unchecked";
120
- return (h("dnn-checkbox", { "use-intermediate": true, 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" }))), h("span", null, permissionDefinition.permissionName)));
120
+ return (h("label", null, h("span", { class: "hidden" }, permissionDefinition.permissionName), h("dnn-checkbox", { "use-intermediate": true, 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" }))))));
121
121
  }
122
122
  handleRoleChanged(checked, rolePermission, permissionDefinition) {
123
123
  switch (checked) {
@@ -305,13 +305,13 @@ const DnnPermissionsGrid = class {
305
305
  }
306
306
  render() {
307
307
  const filteredRoles = this.getRoles();
308
- return (h(Host, { key: 'e5907b6b3f74ee44d8fa46525f5719d4237722ef', tabIndex: this.focused ? -1 : 0, onFocus: () => this.rolesDropdown.focus(), onBlur: () => this.rolesDropdown.blur() }, h("div", { key: '081639d8c421617eaf2076b88d8d318922dadb38', class: "add-role-row" }, h("div", { key: '40a998250e575b7b23d20a876ff0888279a6a2db', class: "dropdown" }, h("label", { key: 'cc5676f19c420a51635ed21bdcdb78055751e019' }, this.localResx.FilterByGroup, " :"), h("select", { key: '21feaed59de7361a85e0d024064d4cdc331268f8', ref: el => this.rolesDropdown = el, onChange: e => this.handleRoleGroupChanged(e.target), onFocus: () => this.focused = true, onBlur: () => this.focused = false }, h("option", { key: '5d8c5a3eeff8e6bf2d40ebb8a398830a9877f3d9', value: -2, selected: this.selectedRoleGroupId == -2 }, this.localResx.AllRoles), h("option", { key: '8114e84ae74de4652295f352930626dd3549d684', 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 && [
309
- h("div", { key: '49602732241ed79d924d8e97e8f94f0c19949fb6', class: "dropdown" }, h("label", { key: '313891e6018a5496b2e21b44e79ef46bf2260363' }, this.localResx.SelectRole, " :"), h("select", { key: '4e8c7cb660ec0ebfc6a395f06ef0285133bf99e6', ref: el => this.roleDropDown = el }, this.getRoles().map(role => h("option", { value: role.RoleId }, role.RoleName)))),
310
- h("dnn-button", { key: '047ad1df653bd87cf01ae89bfdc26593d6af4b3a', type: "primary", onClick: () => this.addRole() }, this.localResx.Add)
311
- ]), h("table", { key: '58426da19d5df149dc3f336c886ba95b1467fb70', class: "roles-table" }, h("caption", { key: 'a14f7ce9ec18cfda4f2d4a289c622aae52ecc816' }, this.localResx.RolePermissions), h("thead", { key: '23a3df2896e33b2326260a015923d31ea3ea0077' }, h("tr", { key: '4b22414376e99748d3fb4701aa11f580979bb34e' }, h("th", { key: 'c5ebcee2bd6800ff0773b2b64f6c4f82ef4b64dc' }, this.localResx.Role), this.permissions.permissionDefinitions.map(permissionDefinition => h("th", null, permissionDefinition.permissionName)), h("th", { key: '41c1e2ff05488ec01ea65cce43b1edb638f27f0d' }, "\u00A0"))), h("tbody", { key: 'd1f7101961c9c6d27d963d90633455cec41dd33e' }, 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 &&
312
- 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: 'ab01ee5fe61631a1c0657d070d6bfb553a918708', class: "search-user" }, h("div", { key: 'a2dce192a50497f700c54552e3daffdc943e00de', class: "search-control" }, h("dnn-searchbox", { key: 'ba6a143b692551bc5d6746621b794b3c3ee44fa6', placeholder: this.localResx.User, debounced: true, onQueryChanged: e => this.handleQueryChanged(e.detail), onKeyDown: e => this.handleSearchUserFieldKeyDown(e), query: this.userQuery }), h("dnn-collapsible", { key: '4f83d017a269e8e0e60cdf346a2e51e78f5fba50', ref: el => this.userCollapsible = el }, h("div", { key: 'fd7a4a9ac3d50670706658b8a2843cb43768604c', class: "dropdown" }, this.getFilteredUsers().map(searchedUser => h("button", { onKeyDown: e => this.handleSearchedUserKeyDown(e), onClick: () => this.handleUserPicked(searchedUser) }, searchedUser.displayName))))), this.pickedUser &&
313
- h("dnn-button", { key: 'ee533a07ff736e551f6fe43b95d404344730f153', onClick: () => this.addUser() }, this.localResx.Add)), this.permissions.userPermissions && this.permissions.userPermissions.length > 0 &&
314
- h("table", { key: '1e98d655ab1b8e7e65ba3fddbf22ce31b2792e67', class: "users-table" }, h("caption", { key: '9e3ad415e660b6b820f7d9b984b29791cbb6e71a' }, this.localResx.UserPermissions), h("thead", { key: 'dcc9cb1d2f358e82c103ee590f15dfd02708b270' }, h("tr", { key: 'f9d81861d592191b3c8921456a3979883abe03b8' }, h("th", { key: 'de9e1bfcfba5fc4b8707edcece401f9bd23ef146' }, this.localResx.User), this.permissions.permissionDefinitions.map(permissionDefinition => h("th", null, permissionDefinition.permissionName)), h("th", { key: '6b047767a641547bc26b81dc87da7bfeb39b035d' }, "\u00A0"))), h("tbody", { key: '7d96474562bb6792dc51ee900941f62e7b842288' }, 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" }))))))))));
308
+ return (h(Host, { key: 'cf72a4f914f45cc67dc2c3eda77f9edde7f60270', tabIndex: this.focused ? -1 : 0, onFocus: () => this.rolesDropdown.focus(), onBlur: () => this.rolesDropdown.blur() }, h("div", { key: '8c4ebce85c93f4f08c4ad24f0b6223de8dc6449c', class: "add-role-row" }, h("div", { key: '585768e943955c909194a25dba06a8b84ae4e7be', class: "dropdown" }, h("label", { key: 'e9823e0e553a3ae23384e79354696de2c649bea2' }, this.localResx.FilterByGroup, " :"), h("select", { key: '5a8cc2742a103bd024243708b18c069b43e70674', ref: el => this.rolesDropdown = el, onChange: e => this.handleRoleGroupChanged(e.target), onFocus: () => this.focused = true, onBlur: () => this.focused = false }, h("option", { key: 'daa1a622f34c7b08145b8486201ffaacbb129b78', value: -2, selected: this.selectedRoleGroupId == -2 }, this.localResx.AllRoles), h("option", { key: '039fb0a46c56712dccc0d76b3a8872ff8b2d06db', 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 && [
309
+ h("div", { key: '1db52ea02ecf75268ec9996fbd68ea7726733679', class: "dropdown" }, h("label", { key: '7fa52a0247951ca88ad80cbf810e7810688dc918' }, this.localResx.SelectRole, " :"), h("select", { key: 'cf7baac0e6c22c33ddcac117f05046b942ad6d4e', ref: el => this.roleDropDown = el }, this.getRoles().map(role => h("option", { value: role.RoleId }, role.RoleName)))),
310
+ h("dnn-button", { key: 'b95196cf538d86c255440a5a88a7f85f019b6632', type: "primary", onClick: () => this.addRole() }, this.localResx.Add)
311
+ ]), h("table", { key: '51110cb5293a2b753f808572418210094bdc1f7d', class: "roles-table" }, h("caption", { key: '2c1abc3f0fe54307b48be57e7f9b61939b4822b3' }, this.localResx.RolePermissions), h("thead", { key: 'b7e89b31ba60e0b0c866f2c4f83f5df98d6f83b3' }, h("tr", { key: '4f2c16c8425483d7dc1aba76cedd20083dcf9dc3' }, h("th", { key: '4c0910460873ecab0b9f55352be83c56c575f6a6' }, this.localResx.Role), this.permissions.permissionDefinitions.map(permissionDefinition => h("th", null, permissionDefinition.permissionName)), h("th", { key: 'a41f294b08733b13d2f75032d9b99891727a6b21' }, "\u00A0"))), h("tbody", { key: '66367d43acd71c2660ee7e38a383c2cc4cdeff2b' }, 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 &&
312
+ 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: '96d18900b0c2e1915b49dbae8dfca84ce22f9224', class: "search-user" }, h("div", { key: 'cd5f5916d43a53a827654226fb2ca5cf2842d2fd', class: "search-control" }, h("dnn-searchbox", { key: '47a8f6b69fba9e87806a02c2101d8eac0d65cfb7', placeholder: this.localResx.User, debounced: true, onQueryChanged: e => this.handleQueryChanged(e.detail), onKeyDown: e => this.handleSearchUserFieldKeyDown(e), query: this.userQuery }), h("dnn-collapsible", { key: '21e8ecd420d7a4174a1e8633a00ff609c88391d3', ref: el => this.userCollapsible = el }, h("div", { key: 'e8996049d1743358d16515c6e7a62fbf1c3449f4', class: "dropdown" }, this.getFilteredUsers().map(searchedUser => h("button", { onKeyDown: e => this.handleSearchedUserKeyDown(e), onClick: () => this.handleUserPicked(searchedUser) }, searchedUser.displayName))))), this.pickedUser &&
313
+ h("dnn-button", { key: '5a3159e4b75a1eaf7e04d76a5e7c207efbcb4bbd', onClick: () => this.addUser() }, this.localResx.Add)), this.permissions.userPermissions && this.permissions.userPermissions.length > 0 &&
314
+ h("table", { key: '1c67fd050abc84cc1d46c2f22ac54b72536c059c', class: "users-table" }, h("caption", { key: '5a94b92f18104a0307e2282945f36855d055c09a' }, this.localResx.UserPermissions), h("thead", { key: '85447eb661dae9d68aa076275b4bc6a3d710d86c' }, h("tr", { key: '896a922a18c02b682a48ee613088bf3140291d02' }, h("th", { key: 'd6606accc9147704a1e71a401550b161f76a132c' }, this.localResx.User), this.permissions.permissionDefinitions.map(permissionDefinition => h("th", null, permissionDefinition.permissionName)), h("th", { key: '87d8b97ab435a913177f828afa637740ba4a2d7b' }, "\u00A0"))), h("tbody", { key: '8649339d5206c4d2c096d97705fa84c56735a8d1' }, 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" }))))))))));
315
315
  }
316
316
  static get watchers() { return {
317
317
  "foundUsers": ["handleFoundUsersChanged"],
@@ -1 +1 @@
1
- {"file":"dnn-permissions-grid.entry.js","mappings":"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","names":[],"sources":["src/components/dnn-permissions-grid/dnn-permissions-grid.scss?tag=dnn-permissions-grid&encapsulation=shadow","src/components/dnn-permissions-grid/dnn-permissions-grid.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.add-role-row{\n display: flex;\n gap: 1em;\n align-items: center;\n flex-wrap: wrap;\n label{\n margin-right:0.5em;\n }\n}\n.search-user{\n display: flex;\n gap: 1em;\n margin-top: 1em;\n .search-control{\n position: relative;\n dnn-collapsible{\n position: absolute;\n left: 0;\n top: calc(100% - 2px);\n width: 100%;\n box-shadow: 0px 4px 4px;\n .dropdown{\n background-color: white;\n border: 1px solid lightgray;\n display: flex;\n flex-direction: column;\n button{\n background-color: transparent;\n border: none;\n border-bottom: 1px solid lightgray;\n padding: 0.25em;\n margin: 0;\n text-align: left;\n }\n }\n }\n }\n}\ntable{\n border: 1px solid lightgray;\n border-collapse: collapse;\n margin-top: 1em;\n thead{\n text-align: center;\n tr{\n border-bottom: 1px solid lightgray;\n }\n th{\n background-color: lightgray;\n padding: 0.25em 0.5em;\n &:first-child{\n border-right: 1px solid lightgray;\n }\n }\n }\n tbody{\n tr{\n border-bottom: 1px dotted lightgray;\n th{\n text-align: left;\n border-right: 1px solid lightgray;\n padding: 0 0.5em;\n }\n td{\n text-align: center;\n dnn-checkbox{\n span{\n display: none;\n }\n }\n button{\n background-color: transparent;\n border: 0;\n padding: 0;\n margin: 0;\n margin-right: 1em;\n }\n }\n }\n }\n}","import { Component, Host, h, Prop, State, Event, EventEmitter, Watch } from '@stencil/core';\nimport { ILocalization } from './localization-interface';\nimport { IPermissionDefinition, IPermissions, IRolePermission, IUserPermission } from './permissions-interface';\nimport { IRoleGroup } from './role-group-interface';\nimport { IRole } from './role-interface';\nimport { ISearchedUser } from './searched-user-interface';\n\n@Component({\n tag: 'dnn-permissions-grid',\n styleUrl: 'dnn-permissions-grid.scss',\n shadow: true,\n})\nexport class DnnPermissionsGrid {\n\n /** The list of permissions. */\n @Prop({mutable: true}) permissions!: IPermissions;\n\n /** The list of role groups. */\n @Prop() roleGroups!: IRoleGroup[];\n\n /** The list of possible roles. */\n @Prop() roles!: IRole[];\n\n /** Optionally allows localizing the component strings. */\n @Prop() resx: ILocalization;\n\n /** The list of users to show under the search users field when a search is performed. */\n @Prop() foundUsers: ISearchedUser[] = [];\n\n /** Fires when searching for users to add to the permissions. Emits the search query. */\n @Event() userSearchQueryChanged: EventEmitter<string>;\n \n /** Fires when any permissions have changed, can be used for instance to have linked permissions. */\n @Event() permissionsChanged: EventEmitter<IPermissions>;\n\n @State() selectedRoleGroupId = -1;\n @State() userQuery: string;\n @State() pickedUser: ISearchedUser;\n @State() localResx: ILocalization;\n @State() focused = false;\n \n \n @Watch(\"foundUsers\")\n handleFoundUsersChanged(newValue: ISearchedUser[]){\n if (newValue?.length > 0){\n setTimeout(() => {\n this.userCollapsible.expanded = true;\n }, 100);\n }\n }\n \n @Watch(\"resx\")\n resxChanged(){\n this.mergeResx();\n }\n \n componentWillLoad() {\n document.addEventListener(\"click\", this.dismissUserResults.bind(this));\n this.mergeResx();\n }\n \n disconnectedCallback() {\n document.removeEventListener(\"click\", this.disconnectedCallback.bind(this));\n }\n \n private roleDropDown: HTMLSelectElement;\n private userCollapsible: HTMLDnnCollapsibleElement;\n private rolesDropdown: HTMLSelectElement;\n private defaultResx: ILocalization = {\n Add: \"Add\",\n AllRoles: \"All Roles\",\n FilterByGroup: \"Filter By Group\",\n GlobalRoles: \"Global Roles\",\n Role: \"Role\",\n RolePermissions: \"Role Permissions\",\n SelectRole: \"Select Role\",\n User: \"User\",\n UserPermissions: \"User Permissions\",\n };\n\n private mergeResx(): void {\n this.localResx = {...this.defaultResx, ...this.resx};\n }\n\n private dismissUserResults(e: MouseEvent){\n const dropdownRect = this.roleDropDown.getBoundingClientRect();\n if (\n e.pageX > dropdownRect.right ||\n e.pageX < dropdownRect.left ||\n e.pageY > dropdownRect.bottom ||\n e.pageY < dropdownRect.top){\n this.userCollapsible.expanded = false;\n }\n } \n\n private handleRoleGroupChanged(dropdown: HTMLSelectElement): void {\n const index = dropdown.selectedIndex;\n const value = Number.parseInt(dropdown.options[index].value);\n this.selectedRoleGroupId = value;\n }\n\n private addRole(): void {\n const roleId = Number.parseInt(this.roleDropDown.options[this.roleDropDown.selectedIndex].value);\n const role = this.roles.filter(r => r.RoleId == roleId)[0];\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions,\n {\n default: false,\n locked: false,\n permissions: [],\n roleId: role.RoleId,\n roleName: role.RoleName,\n }\n ]\n }\n this.permissionsChanged.emit(this.permissions);\n }\n\n private addUser(): void {\n if (this.pickedUser != undefined){\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions,\n {\n displayName: this.pickedUser.displayName,\n permissions: [],\n userId: this.pickedUser.userId,\n },\n ],\n };\n this.pickedUser = undefined;\n this.userQuery = \"\";\n this.permissionsChanged.emit(this.permissions);\n }\n }\n\n private getRoles(){\n const filteredRoles = this.roles.filter(role => \n !this.permissions.rolePermissions.some(rp => rp.roleId == role.RoleId))\n if (this.selectedRoleGroupId == -2){\n // All Roles\n return filteredRoles;\n }\n\n if (this.selectedRoleGroupId == -1){\n // Global Roles\n return filteredRoles.filter(role => role.IsSystemRole);\n }\n \n return filteredRoles.filter(role => role.RoleGroupId == this.selectedRoleGroupId);\n }\n\n private renderRoleCheckBox(rolePermission: IRolePermission, permissionDefinition: IPermissionDefinition) {\n const item = rolePermission.permissions.filter(permission => permission.permissionId == permissionDefinition.permissionId)[0];\n if (rolePermission.locked){\n return(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><g fill=\"none\"><path d=\"M0 0h24v24H0V0z\"/><path d=\"M0 0h24v24H0V0z\" opacity=\".87\"/></g><path d=\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"/></svg>\n )\n }\n\n const checked = item == undefined ? \"intermediate\" : item.allowAccess ? \"checked\" : \"unchecked\";\n return(\n <dnn-checkbox\n use-intermediate\n checked={checked}\n onCheckedchange={e => this.handleRoleChanged(e.detail, rolePermission, permissionDefinition)}\n >\n <div slot=\"intermediateicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"/></svg>\n </div>\n <div slot=\"uncheckedicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z\"/></svg>\n </div>\n <span>{permissionDefinition.permissionName}</span>\n </dnn-checkbox>\n )\n }\n\n private renderUserCheckBox(userPermission: IUserPermission, permissionDefinition: IPermissionDefinition) {\n const item = userPermission.permissions.filter(permission => permission.permissionId == permissionDefinition.permissionId)[0];\n\n const checked = item == undefined ? \"intermediate\" : item.allowAccess ? \"checked\" : \"unchecked\";\n return(\n <dnn-checkbox\n use-intermediate\n checked={checked}\n onCheckedchange={e => this.handleUserChanged(e.detail, userPermission, permissionDefinition)}\n >\n <div slot=\"intermediateicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"/></svg>\n </div>\n <div slot=\"uncheckedicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z\"/></svg>\n </div>\n <span>{permissionDefinition.permissionName}</span>\n </dnn-checkbox>\n )\n }\n \n private handleRoleChanged(\n checked: \"checked\" | \"unchecked\" | \"intermediate\",\n rolePermission: IRolePermission,\n permissionDefinition: IPermissionDefinition\n ): void {\n switch (checked) {\n case \"unchecked\":\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions.map(r => {\n if (r.roleId != rolePermission.roleId){\n return r;\n }\n\n const newRolePermission = Object.assign({}, r);\n newRolePermission.permissions = [\n ...newRolePermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n {\n allowAccess: false,\n fullControl: false,\n permissionCode: permissionDefinition.permissionCode,\n permissionId: permissionDefinition.permissionId,\n permissionKey: permissionDefinition.permissionKey,\n permissionName: permissionDefinition.permissionName,\n view: false,\n },\n ];\n return newRolePermission;\n }),\n ],\n };\n break;\n case \"checked\":\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions.map(r => {\n if (r.roleId != rolePermission.roleId){\n return r;\n }\n\n const newRolePermission = Object.assign({}, r);\n newRolePermission.permissions = [\n ...newRolePermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n {\n allowAccess: true,\n fullControl: false,\n permissionCode: permissionDefinition.permissionCode,\n permissionId: permissionDefinition.permissionId,\n permissionKey: permissionDefinition.permissionKey,\n permissionName: permissionDefinition.permissionName,\n view: false,\n },\n ];\n return newRolePermission;\n }),\n ],\n };\n break;\n case \"intermediate\":\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions.map(r => {\n if (r.roleId != rolePermission.roleId){\n return r;\n }\n\n const newRolePermission = Object.assign({}, r);\n newRolePermission.permissions = [\n ...newRolePermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n ];\n return newRolePermission;\n }),\n ],\n };\n break;\n default:\n break;\n }\n this.permissionsChanged.emit(this.permissions);\n }\n\n private handleUserChanged(\n checked: \"checked\" | \"unchecked\" | \"intermediate\",\n userPermission: IUserPermission,\n permissionDefinition: IPermissionDefinition\n ): void {\n switch (checked) {\n case \"unchecked\":\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions.map(u => {\n if (u.userId != userPermission.userId){\n return u;\n }\n\n const newUserPermission = Object.assign({}, u);\n newUserPermission.permissions = [\n ...newUserPermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n {\n allowAccess: false,\n fullControl: false,\n permissionCode: permissionDefinition.permissionCode,\n permissionId: permissionDefinition.permissionId,\n permissionKey: permissionDefinition.permissionKey,\n permissionName: permissionDefinition.permissionName,\n view: false,\n },\n ];\n return newUserPermission;\n }),\n ],\n };\n break;\n case \"checked\":\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions.map(u => {\n if (u.userId != userPermission.userId){\n return u;\n }\n\n const newUserPermission = Object.assign({}, u);\n newUserPermission.permissions = [\n ...newUserPermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n {\n allowAccess: true,\n fullControl: false,\n permissionCode: permissionDefinition.permissionCode,\n permissionId: permissionDefinition.permissionId,\n permissionKey: permissionDefinition.permissionKey,\n permissionName: permissionDefinition.permissionName,\n view: false,\n },\n ];\n return newUserPermission;\n }),\n ],\n };\n break;\n case \"intermediate\":\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions.map(u => {\n if (u.userId != userPermission.userId){\n return u;\n }\n\n const newUserPermission = Object.assign({}, u);\n newUserPermission.permissions = [\n ...newUserPermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n ];\n return newUserPermission;\n }),\n ],\n };\n break;\n default:\n break;\n }\n this.permissionsChanged.emit(this.permissions);\n }\n\n private removeRole(rolePermission: IRolePermission): void {\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions.filter(rp => rp.roleId != rolePermission.roleId),\n ],\n };\n this.permissionsChanged.emit();\n }\n\n private removeUser(userPermission: IUserPermission): void {\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions.filter(up => up.userId != userPermission.userId),\n ]\n };\n this.permissionsChanged.emit(this.permissions);\n }\n\n private handleQueryChanged(query: string): void {\n this.userQuery = query;\n if (query == undefined || query.length == 0){\n this.userCollapsible.expanded = false;\n this.pickedUser = undefined;\n this.foundUsers = [];\n return;\n }\n this.userSearchQueryChanged.emit(query);\n }\n\n private handleSearchUserFieldKeyDown(e: KeyboardEvent): void {\n if (e.key != \"ArrowDown\"){\n return;\n }\n\n e.preventDefault();\n const firstButton = this.userCollapsible.querySelector(\"button\");\n if (firstButton != undefined){\n firstButton.focus();\n }\n }\n\n private handleSearchedUserKeyDown(e: KeyboardEvent): void {\n const button = e.target as HTMLButtonElement;\n \n switch(e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n const nextButton = button.nextElementSibling as HTMLButtonElement;\n nextButton?.focus();\n break;\n case \"ArrowUp\":\n e.preventDefault();\n const previousButton = button.previousElementSibling as HTMLButtonElement;\n previousButton?.focus();\n break;\n default:\n break;\n }\n }\n\n private handleUserPicked(searchedUser: ISearchedUser): void {\n this.userQuery = searchedUser.displayName;\n this.pickedUser = searchedUser;\n }\n\n private getFilteredUsers() {\n return this.foundUsers.filter(fu => !this.permissions.userPermissions.some(up => up.userId == fu.userId))\n }\n \n render() {\n const filteredRoles = this.getRoles();\n return (\n <Host\n tabIndex={this.focused ? -1 : 0}\n onFocus={() => this.rolesDropdown.focus()}\n onBlur={() => this.rolesDropdown.blur()}\n >\n <div class=\"add-role-row\">\n <div class=\"dropdown\">\n <label>{this.localResx.FilterByGroup} :</label>\n <select\n ref={el => this.rolesDropdown = el}\n onChange={e => this.handleRoleGroupChanged(e.target as HTMLSelectElement)}\n onFocus={() => this.focused = true}\n onBlur={() => this.focused = false}\n >\n <option\n value={-2}\n selected={this.selectedRoleGroupId == -2}\n >\n {this.localResx.AllRoles}\n </option>\n <option\n value={-1}\n selected={this.selectedRoleGroupId == -1}\n >\n {this.localResx.GlobalRoles}\n </option>\n {this.roleGroups.map(roleGroup =>\n <option\n value={roleGroup.id}\n selected={this.selectedRoleGroupId == roleGroup.id}\n >\n {roleGroup.name}\n </option>\n )}\n </select>\n </div>\n {filteredRoles && filteredRoles.length > 0 && [\n <div class=\"dropdown\">\n <label>{this.localResx.SelectRole} :</label>\n <select ref={el => this.roleDropDown = el}>\n {this.getRoles().map(role =>\n <option value={role.RoleId}\n >\n {role.RoleName}\n </option>\n )}\n </select>\n </div>,\n <dnn-button\n type=\"primary\"\n onClick={() => this.addRole()}\n >\n {this.localResx.Add}\n </dnn-button>\n ]\n }\n </div>\n <table class=\"roles-table\">\n <caption>{this.localResx.RolePermissions}</caption>\n <thead>\n <tr>\n <th>{this.localResx.Role}</th>\n {this.permissions.permissionDefinitions.map(permissionDefinition =>\n <th>{permissionDefinition.permissionName}</th>\n )}\n <th>&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}"],"version":3}
1
+ {"file":"dnn-permissions-grid.entry.js","mappings":"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","names":[],"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}"],"version":3}
@@ -18,7 +18,7 @@ const DnnProgressBar = class {
18
18
  return classes.join(" ");
19
19
  }
20
20
  render() {
21
- return (h(Host, { key: '7d8771c3a43e555e6342032afb0b4a53f1db1a5c' }, h("progress", { key: '64fe689b05a1e90b19156380d91294dd1b487cc5', class: this.getProgressClass(), max: this.max, value: this.value })));
21
+ return (h(Host, { key: '2a9e2c7fb2c5a7a5b7d4d6204b2979646e2067a0' }, h("progress", { key: 'dfcf6adc1269048f3bd3bec503404e34d1fed40d', class: this.getProgressClass(), max: this.max, value: this.value })));
22
22
  }
23
23
  };
24
24
  DnnProgressBar.style = DnnProgressBarStyle0;
@@ -29332,10 +29332,10 @@ const DnnRichtext = class {
29332
29332
  }
29333
29333
  }
29334
29334
  render() {
29335
- return (h(Host, { key: '78ab9b2e105c22e9db60c74369464daaff84b12c', tabIndex: this.focused ? -1 : 0, onFocus: () => {
29335
+ return (h(Host, { key: 'd96ebad0f68149a2cbe89656c3e474a5ff184ebf', tabIndex: this.focused ? -1 : 0, onFocus: () => {
29336
29336
  this.focused = true;
29337
29337
  this.editor.focus();
29338
- }, onBlur: () => this.focused = false }, h("textarea", { key: 'b15ba9fc955af67823debf92e23fd0faf529cfa7', ref: el => this.textArea = el, onFocus: () => this.focused = true, onBlur: () => this.focused = false })));
29338
+ }, onBlur: () => this.focused = false }, h("textarea", { key: '790f6c0991227fe006e5c288f6c02f75bdb61279', ref: el => this.textArea = el, onFocus: () => this.focused = true, onBlur: () => this.focused = false })));
29339
29339
  }
29340
29340
  static get formAssociated() { return true; }
29341
29341
  get host() { return getElement(this); }
@@ -21,7 +21,7 @@ const DnnSearchbox = class {
21
21
  }, this.debounceTime);
22
22
  }
23
23
  render() {
24
- return (h(Host, { key: '75a0a9f1b1b0a4cc5e2b67359484ad161783292b', tabIndex: this.focused ? -1 : 0, onFocus: () => this.inputField.focus(), onBlur: () => this.inputField.blur() }, h("input", { key: '55be061fde404662bcf3995495a120aba1ebd881', ref: el => this.inputField = el, type: "text", value: this.query, placeholder: this.placeholder, onInput: e => this.query = e.target.value, onFocus: () => this.focused = true, onBlur: () => this.focused = false }), this.query !== "" ?
24
+ return (h(Host, { key: 'bade94fc73622bb28ee3a5719f51758cb5691a1a', tabIndex: this.focused ? -1 : 0, onFocus: () => this.inputField.focus(), onBlur: () => this.inputField.blur() }, h("input", { key: '764fd9c42ac87ee05f272595f4a699a1f2931cbd', ref: el => this.inputField = el, type: "text", value: this.query, placeholder: this.placeholder, onInput: e => this.query = e.target.value, onFocus: () => this.focused = true, onBlur: () => this.focused = false }), this.query !== "" ?
25
25
  h("button", { class: "svg clear", onClick: () => this.query = "" }, h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, h("path", { d: "M0 0h24v24H0z", fill: "none" }), h("path", { d: "M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z" })))
26
26
  :
27
27
  h("svg", { xmlns: "http://www.w3.org/2000/svg", height: "24px", viewBox: "0 0 24 24", width: "24px", fill: "#000000" }, h("path", { d: "M0 0h24v24H0z", fill: "none" }), h("path", { d: "M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z" }))));
@@ -105,8 +105,8 @@ const DnnSelect = class {
105
105
  }
106
106
  render() {
107
107
  var _a;
108
- return (h(Host, { key: '413d8726f8c2ab92401edf6845817ea7f0e4e2c7', tabIndex: this.focused ? -1 : 0, onFocus: () => this.select.focus(), onBlur: () => this.select.blur() }, h("dnn-fieldset", { key: '76cb8ec70a2c2c83b2cb74eec05bca3bd9bf2ac1', invalid: !this.valid, focused: this.focused, label: `${(_a = this.label) !== null && _a !== void 0 ? _a : ""}${this.required ? " *" : ""}`, helpText: this.helpText, id: this.labelId, onClick: () => !this.focused && this.select.focus(), ref: el => this.fieldset = el }, h("div", { key: 'af8240e4df6c6dedeef1ff9919a8b8d795f2f6ec', class: "inner-container" }, h("select", { key: '7c65b93ee3211ed304327e3ee8db6bfee6a8c1a8', ref: el => this.select = el, onFocus: () => this.focused = true, onBlur: () => this.handleBlur(), onChange: e => this.handleChange(e.target.value), onInvalid: () => this.handleInvalid(), required: this.required, disabled: this.disabled, "aria-labelledby": this.labelId }, h("slot", { key: '70cfd0752004af51acfcd066b2b3ebf9253a2e6b', ref: el => this.slot = el })), !this.valid &&
109
- h("svg", { key: 'a45562c5639890f502b3eb669ff5e7bc340837bb', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960", class: "error" }, h("path", { key: '41a539770c67636ab55a8cb5dec4422f3b9fdf80', d: "M479.982-280q14.018 0 23.518-9.482 9.5-9.483 9.5-23.5 0-14.018-9.482-23.518-9.483-9.5-23.5-9.5-14.018 0-23.518 9.482-9.5 9.483-9.5 23.5 0 14.018 9.482 23.518 9.483 9.5 23.5 9.5ZM453-433h60v-253h-60v253Zm27.266 353q-82.734 0-155.5-31.5t-127.266-86q-54.5-54.5-86-127.341Q80-397.681 80-480.5q0-82.819 31.5-155.659Q143-709 197.5-763t127.341-85.5Q397.681-880 480.5-880q82.819 0 155.659 31.5Q709-817 763-763t85.5 127Q880-563 880-480.266q0 82.734-31.5 155.5T763-197.684q-54 54.316-127 86Q563-80 480.266-80Zm.234-60Q622-140 721-239.5t99-241Q820-622 721.188-721 622.375-820 480-820q-141 0-240.5 98.812Q140-622.375 140-480q0 141 99.5 240.5t241 99.5Zm-.5-340Z" }))))));
108
+ return (h(Host, { key: '6c325d9712690fb0aa8317ebf30a3d81e2f15187', tabIndex: this.focused ? -1 : 0, onFocus: () => this.select.focus(), onBlur: () => this.select.blur() }, h("dnn-fieldset", { key: '20b5c8dcaa0834c929b77fda2e818e3cc65c8105', invalid: !this.valid, focused: this.focused, label: `${(_a = this.label) !== null && _a !== void 0 ? _a : ""}${this.required ? " *" : ""}`, helpText: this.helpText, id: this.labelId, onClick: () => !this.focused && this.select.focus(), ref: el => this.fieldset = el }, h("div", { key: '851bc63b4d9fff81774205a685b151ad110d5237', class: "inner-container" }, h("select", { key: 'd4eb740c9c345b6c549a0ec0f9ae1167641c675a', ref: el => this.select = el, onFocus: () => this.focused = true, onBlur: () => this.handleBlur(), onChange: e => this.handleChange(e.target.value), onInvalid: () => this.handleInvalid(), required: this.required, disabled: this.disabled, "aria-labelledby": this.labelId }, h("slot", { key: '0e97be7fcba264a5d8c58003c181e198f0456314', ref: el => this.slot = el })), !this.valid &&
109
+ h("svg", { key: '9019d44858675154aad05390c1b007de5dfdb719', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 -960 960 960", class: "error" }, h("path", { key: '928ea0554f99eb78b72b3cd4d6d25d8287fdb253', d: "M479.982-280q14.018 0 23.518-9.482 9.5-9.483 9.5-23.5 0-14.018-9.482-23.518-9.483-9.5-23.5-9.5-14.018 0-23.518 9.482-9.5 9.483-9.5 23.5 0 14.018 9.482 23.518 9.483 9.5 23.5 9.5ZM453-433h60v-253h-60v253Zm27.266 353q-82.734 0-155.5-31.5t-127.266-86q-54.5-54.5-86-127.341Q80-397.681 80-480.5q0-82.819 31.5-155.659Q143-709 197.5-763t127.341-85.5Q397.681-880 480.5-880q82.819 0 155.659 31.5Q709-817 763-763t85.5 127Q880-563 880-480.266q0 82.734-31.5 155.5T763-197.684q-54 54.316-127 86Q563-80 480.266-80Zm.234-60Q622-140 721-239.5t99-241Q820-622 721.188-721 622.375-820 480-820q-141 0-240.5 98.812Q140-622.375 140-480q0 141 99.5 240.5t241 99.5Zm-.5-340Z" }))))));
110
110
  }
111
111
  static get formAssociated() { return true; }
112
112
  get el() { return getElement(this); }
@@ -25,10 +25,10 @@ const DnnSortIcon = class {
25
25
  this.sortChanged.emit(this.sortDirection);
26
26
  }
27
27
  render() {
28
- return (h(Host, { key: '5c039e28844e2883a3121e2d9d9debce7aaec0c9', tabIndex: this.focused ? -1 : 0, onFocus: () => this.button.focus(), onBlur: () => this.button.blur() }, h("button", { key: '8b43439d56a625f774b9a7b82ff8e3b6e050bc61', ref: el => this.button = el, class: { "active": this.sortDirection != "none" }, onClick: () => this.changeSort(), onFocus: () => this.focused = true, onBlur: () => this.focused = false }, this.sortDirection == "none" &&
29
- h("svg", { key: 'a6ba4b60d29fb03fe47bf42d44efa31364acd858', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 12 16" }, h("path", { key: '10c9ea3f2f4d0eb6bbaf5bb9f5ceb4af56d71055', d: "M 0 7 H 12 L 6 0 Z M 0 9 H 12 L 6 16 Z" })), this.sortDirection == "asc" &&
30
- h("svg", { key: '09d0e887e73bea6be841d702523c85d105810dfc', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 12 16" }, h("path", { key: 'ff38ae29946425a956668946e46a56fa324acc58', d: "M 0 7 H 12 L 6 0 Z" })), this.sortDirection == "desc" &&
31
- h("svg", { key: '780373c41d29abaf0ff6642cf6d554a5e8ce961d', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 12 16" }, h("path", { key: 'dc44360d96d4ee212328250fadaf8f8d320f01e4', d: "M 0 9 H 12 L 6 16 Z" })))));
28
+ return (h(Host, { key: '4679e6439444a14eb3c16ab0fe1659d8096311dd', tabIndex: this.focused ? -1 : 0, onFocus: () => this.button.focus(), onBlur: () => this.button.blur() }, h("button", { key: '038d9aba0ec4a69c0e22e9c391be4bfb03559123', ref: el => this.button = el, class: { "active": this.sortDirection != "none" }, onClick: () => this.changeSort(), onFocus: () => this.focused = true, onBlur: () => this.focused = false }, this.sortDirection == "none" &&
29
+ h("svg", { key: '1bbe327786ba6764794f63123f47896b9c464442', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 12 16" }, h("path", { key: '6cd4bd061233c96ffed12351ea8800c70b4eb374', d: "M 0 7 H 12 L 6 0 Z M 0 9 H 12 L 6 16 Z" })), this.sortDirection == "asc" &&
30
+ h("svg", { key: '95330386350dc6859797128a8ce1080bea99351f', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 12 16" }, h("path", { key: '7a8ca6db9ac9455f41dcc817676eb6ec604151d1', d: "M 0 7 H 12 L 6 0 Z" })), this.sortDirection == "desc" &&
31
+ h("svg", { key: '3f097be25df06ac0abc18f4d32166da2e8754526', xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 12 16" }, h("path", { key: '6e5c311a062292247003b3b06e5d5b5e5ffd24e6', d: "M 0 9 H 12 L 6 16 Z" })))));
32
32
  }
33
33
  };
34
34
  DnnSortIcon.style = DnnSortIconStyle0;
@@ -18,8 +18,8 @@ const DnnTab = class {
18
18
  this.visible = false;
19
19
  }
20
20
  render() {
21
- return (h(Host, { key: '11e00bf6b0dc398bb1694334de73b98725261e9d' }, this.visible &&
22
- h("slot", { key: '222991618962f83b0ce79deee011979c3bfec2b5' })));
21
+ return (h(Host, { key: 'c137597fa8cab7b2416e52272ed4ffbd5ade548d' }, this.visible &&
22
+ h("slot", { key: '6ea0f232817399f057b093e3ded8c80814c27209' })));
23
23
  }
24
24
  };
25
25
  DnnTab.style = DnnTabStyle0;
@@ -63,7 +63,7 @@ const DnnTabs = class {
63
63
  this.selectedTabTitle = tabTitle;
64
64
  }
65
65
  render() {
66
- return (h(Host, { key: '82168aac2c1896254c0f0e9599551b61d7cb2885', ref: el => this.component = el }, h("div", { key: '4189cf0756bbcdf51d0e3c7a85bb0daf4998aab6', class: "tabTitles" }, this.tabTitles.map(tabTitle => h("button", { class: this.selectedTabTitle == tabTitle ? "visible" : "", onClick: () => this.showTab(tabTitle) }, tabTitle))), h("div", { key: 'a117874b58985967efff0d9b23474d7658916e61', class: "currentTab" }, h("slot", { key: '67bd8036e6aec21f86874e17268ca7861cd35f89' }))));
66
+ return (h(Host, { key: 'a39325f6c3e682c6bf68c6e71a7faa2055d3d4c9', ref: el => this.component = el }, h("div", { key: '13451a0ee391729067fa4cd9c04bcd4943dcbaa4', class: "tabTitles" }, this.tabTitles.map(tabTitle => h("button", { class: this.selectedTabTitle == tabTitle ? "visible" : "", onClick: () => this.showTab(tabTitle) }, tabTitle))), h("div", { key: '395ad747c55195cc590af3510aca27d874dc8c88', class: "currentTab" }, h("slot", { key: 'b3411645aff9582a6c6551390dd240ecfd0dc12f' }))));
67
67
  }
68
68
  };
69
69
  DnnTabs.style = DnnTabsStyle0;
@@ -93,7 +93,7 @@ const DnnTextarea = class {
93
93
  }
94
94
  render() {
95
95
  var _a;
96
- return (h(Host, { key: '78bc32de18f8c22005f02e37b3d7d0be2ea7ae7d', tabIndex: this.focused ? -1 : 0, onFocus: () => this.textarea.focus(), onBlur: () => this.textarea.blur() }, h("dnn-fieldset", { key: '26f23d95e0e5188421edee99a56a6d7fb2b58228', ref: el => this.fieldset = el, invalid: !this.valid, focused: this.focused, resizable: this.resizable, label: `${(_a = this.label) !== null && _a !== void 0 ? _a : ""}${this.required ? " *" : ""}`, helpText: this.helpText, disabled: this.disabled, id: this.labelId, floatLabel: this.shouldLabelFloat(), onClick: () => !this.focused && this.textarea.focus() }, h("textarea", { key: '5a7d1b97c43ce0cead8b6bd47da900b888656a32', ref: el => this.textarea = el, name: this.name, value: this.value, required: this.required, onBlur: () => this.focused = false, onFocus: () => this.focused = true, onChange: () => this.handleChange(), onInput: e => this.handleInput(e.target.value), onInvalid: () => this.handleInvalid(), disabled: this.disabled, autoComplete: this.autocomplete, minlength: this.minlength, maxlength: this.maxlength, readonly: this.readonly, "aria-labelledby": this.labelId, rows: this.rows }))));
96
+ return (h(Host, { key: 'dbc7de88630e93d1bc75ba0f29b4d492d433ed3f', tabIndex: this.focused ? -1 : 0, onFocus: () => this.textarea.focus(), onBlur: () => this.textarea.blur() }, h("dnn-fieldset", { key: '5c95dfbf4564daa898d9d14ca5dfa4fdff8a9007', ref: el => this.fieldset = el, invalid: !this.valid, focused: this.focused, resizable: this.resizable, label: `${(_a = this.label) !== null && _a !== void 0 ? _a : ""}${this.required ? " *" : ""}`, helpText: this.helpText, disabled: this.disabled, id: this.labelId, floatLabel: this.shouldLabelFloat(), onClick: () => !this.focused && this.textarea.focus() }, h("textarea", { key: 'a09f9af15bc8e79111975edeafac7f35cd097133', ref: el => this.textarea = el, name: this.name, value: this.value, required: this.required, onBlur: () => this.focused = false, onFocus: () => this.focused = true, onChange: () => this.handleChange(), onInput: e => this.handleInput(e.target.value), onInvalid: () => this.handleInvalid(), disabled: this.disabled, autoComplete: this.autocomplete, minlength: this.minlength, maxlength: this.maxlength, readonly: this.readonly, "aria-labelledby": this.labelId, rows: this.rows }))));
97
97
  }
98
98
  static get formAssociated() { return true; }
99
99
  };
@@ -20,6 +20,9 @@ const DnnToggle = class {
20
20
  this.value = "on";
21
21
  this.focused = false;
22
22
  }
23
+ handleClick() {
24
+ this.checked = !this.checked;
25
+ }
23
26
  checkedChanged(newValue) {
24
27
  this.checkChanged.emit({ checked: newValue });
25
28
  this.setFormValue();
@@ -46,11 +49,7 @@ const DnnToggle = class {
46
49
  }
47
50
  }
48
51
  render() {
49
- return (h(Host, { key: '955f3dfc70358b7cb33bc1ea905a1416371c2e96', tabIndex: this.focused ? -1 : 0, onFocus: () => this.button.focus(), onBlur: () => this.button.blur() }, h("button", { key: '3900bf9eb88872dfaccdc4d7f6bcba87624796d0', ref: el => this.button = el, disabled: this.disabled, class: { 'checked': this.checked }, onClick: () => {
50
- if (!this.disabled) {
51
- this.checked = !this.checked;
52
- }
53
- }, onFocus: () => this.focused = true, onBlur: () => this.focused = false }, h("div", { key: '99319305029d03c3563116b171567f24d81d0e11', class: "handle" }))));
52
+ return (h(Host, { key: '5f13fb0d04983ad1ae0817044e9a832dcb6c902e', tabIndex: this.focused ? -1 : 0, onFocus: () => this.button.focus(), onBlur: () => this.button.blur() }, h("button", { key: '9b85f6b8f97d3c5a493bef5cf80b2df73bd2a922', ref: el => this.button = el, disabled: this.disabled, class: { 'checked': this.checked }, onFocus: () => this.focused = true, onBlur: () => this.focused = false }, h("div", { key: 'eca8549c63112e65b1ac3e0dfb0b680679c86cbb', class: "handle" }))));
54
53
  }
55
54
  static get formAssociated() { return true; }
56
55
  get element() { return getElement(this); }
@@ -1 +1 @@
1
- {"file":"dnn-toggle.entry.js","mappings":";;AAAA,MAAM,YAAY,GAAG,s0BAAs0B,CAAC;AAC51B,wBAAe,YAAY;;MCSd,SAAS;;;;;;;;;;;uBAKiB,KAAK;wBAGrB,KAAK;;qBAMA,IAAI;uBAaT,KAAK;;IALxB,cAAc,CAAC,QAAiB;QAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAMD,iBAAiB;QACb,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;;IAKD,iBAAiB;QACb,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;KACvC;IAEO,YAAY;QAChB,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAChD,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aACrC;iBACI;gBACD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;aACnC;SACJ;KACJ;IAED,MAAM;QACF,QACI,EAAC,IAAI,qDACD,QAAQ,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,EAC/B,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAClC,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAEhC,+DACI,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,EAClC,OAAO,EAAE;gBACL,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;oBAChB,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;iBAChC;aACJ,EACD,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,GAAG,IAAI,EAClC,MAAM,EAAE,MAAM,IAAI,CAAC,OAAO,GAAG,KAAK,IAElC,4DAAK,KAAK,EAAC,QAAQ,GAAO,CACrB,CACN,EACT;KACL;;;;;;;;;;;","names":[],"sources":["src/components/dnn-toggle/dnn-toggle.scss?tag=dnn-toggle&encapsulation=shadow","src/components/dnn-toggle/dnn-toggle.tsx"],"sourcesContent":[":host {\n /**\n * @prop --background: Background of the toggle.\n * @prop --background-checked: Background of the toggle when checked.\n * @prop --handle-background: Background of the handle.\n * @prop --handle-background-checked: Background of the handle when checked.\n * @prop --border-radius: The radius of the background borders.\n * @prop --handle-border-radius: The radius of the handle.\n */\n\n display: inline-block;\n outline: none;\n cursor: pointer;\n}\n\nbutton {\n height: 1.5em;\n width: 2.5em;\n outline: none;\n background-color: var(--background, #888);\n border: 0;\n border-radius: var(--border-radius, var(--dnn-controls-radius, 0.75em));\n padding: 0.1em;\n position: relative;\n margin: 0;\n transition: background-color 300ms ease-in-out;\n position: relative;\n cursor: pointer;\n &:hover, &:focus-visible{\n box-shadow: 0 0 2px 2px var(--dnn-color-primary);\n }\n &.checked{\n background-color: var(--background-checked, var(--dnn-color-primary, blue));\n .handle{\n left: calc(1em + 4px);\n }\n }\n &:disabled{\n opacity: 0.5;\n cursor: not-allowed;\n box-shadow: none;\n }\n .handle{\n transition: all 300ms ease-in-out;\n background-color:white;\n width: 1em;\n height: 1em;\n border-radius: var(--handle-border-radius, var(--dnn-controls-radius, 50%));\n position: absolute;\n top: calc(50% - 0.5em);\n left: 2px;\n }\n}","import { Component, h, Element, Prop, Event, EventEmitter, Watch, Host, AttachInternals, State } from \"@stencil/core\";\nimport { DnnToggleChangeEventDetail } from \"./toggle-interface\";\n\n\n@Component({\n tag: \"dnn-toggle\",\n styleUrl: \"dnn-toggle.scss\",\n shadow: true,\n formAssociated: true,\n})\nexport class DnnToggle {\n\n @Element() element: HTMLDnnToggleElement;\n\n /** If 'true' the toggle is checked (on). */\n @Prop({ mutable: true }) checked = false;\n\n /** If 'true' the toggle is not be interacted with. */\n @Prop() disabled = false;\n\n /** The field name to use in forms. */\n @Prop() name: string;\n\n /** The value to post when used in forms. */\n @Prop() value: string = \"on\";\n\n /** Fires when the toggle changed */\n @Event() checkChanged!: EventEmitter<DnnToggleChangeEventDetail>;\n\n @AttachInternals() internals: ElementInternals;\n \n @Watch(\"checked\")\n checkedChanged(newValue: boolean) {\n this.checkChanged.emit({ checked: newValue });\n this.setFormValue();\n }\n \n @State() focused = false;\n \n private button: HTMLButtonElement;\n \n componentWillLoad() {\n this.originalChecked = this.checked;\n this.setFormValue();\n }\n\n private originalChecked: boolean;\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 setFormValue() {\n if (this.name != undefined && this.name.length > 0) {\n if (this.checked) {\n var data = new FormData();\n data.append(this.name, this.value);\n this.internals.setFormValue(data);\n }\n else {\n this.internals.setFormValue(\"\");\n }\n }\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 disabled={this.disabled}\n class={{ 'checked': this.checked }}\n onClick={() => {\n if (!this.disabled) {\n this.checked = !this.checked;\n }\n }}\n onFocus={() => this.focused = true}\n onBlur={() => this.focused = false}\n >\n <div class=\"handle\"></div>\n </button>\n </Host>\n );\n }\n}\n"],"version":3}
1
+ {"file":"dnn-toggle.entry.js","mappings":";;AAAA,MAAM,YAAY,GAAG,s0BAAs0B,CAAC;AAC51B,wBAAe,YAAY;;MCSd,SAAS;;;;;;;;;;;uBAKiB,KAAK;wBAGrB,KAAK;;qBAMA,IAAI;uBAkBT,KAAK;;IAZxB,WAAW;QACP,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;KAChC;IAKD,cAAc,CAAC,QAAiB;QAC5B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;IAMD,iBAAiB;QACb,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,YAAY,EAAE,CAAC;KACvB;;IAKD,iBAAiB;QACb,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;KACvC;IAEO,YAAY;QAChB,IAAI,IAAI,CAAC,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAChD,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;aACrC;iBACI;gBACD,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;aACnC;SACJ;KACJ;IAED,MAAM;QACF,QACI,EAAC,IAAI,qDACD,QAAQ,EAAE,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,EAC/B,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,EAClC,MAAM,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAEhC,+DACI,GAAG,EAAE,EAAE,IAAI,IAAI,CAAC,MAAM,GAAG,EAAE,EAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,EAClC,OAAO,EAAE,MAAM,IAAI,CAAC,OAAO,GAAG,IAAI,EAClC,MAAM,EAAE,MAAM,IAAI,CAAC,OAAO,GAAG,KAAK,IAElC,4DAAK,KAAK,EAAC,QAAQ,GAAO,CACrB,CACN,EACT;KACL;;;;;;;;;;;","names":[],"sources":["src/components/dnn-toggle/dnn-toggle.scss?tag=dnn-toggle&encapsulation=shadow","src/components/dnn-toggle/dnn-toggle.tsx"],"sourcesContent":[":host {\n /**\n * @prop --background: Background of the toggle.\n * @prop --background-checked: Background of the toggle when checked.\n * @prop --handle-background: Background of the handle.\n * @prop --handle-background-checked: Background of the handle when checked.\n * @prop --border-radius: The radius of the background borders.\n * @prop --handle-border-radius: The radius of the handle.\n */\n\n display: inline-block;\n outline: none;\n cursor: pointer;\n}\n\nbutton {\n height: 1.5em;\n width: 2.5em;\n outline: none;\n background-color: var(--background, #888);\n border: 0;\n border-radius: var(--border-radius, var(--dnn-controls-radius, 0.75em));\n padding: 0.1em;\n position: relative;\n margin: 0;\n transition: background-color 300ms ease-in-out;\n position: relative;\n cursor: pointer;\n &:hover, &:focus-visible{\n box-shadow: 0 0 2px 2px var(--dnn-color-primary);\n }\n &.checked{\n background-color: var(--background-checked, var(--dnn-color-primary, blue));\n .handle{\n left: calc(1em + 4px);\n }\n }\n &:disabled{\n opacity: 0.5;\n cursor: not-allowed;\n box-shadow: none;\n }\n .handle{\n transition: all 300ms ease-in-out;\n background-color:white;\n width: 1em;\n height: 1em;\n border-radius: var(--handle-border-radius, var(--dnn-controls-radius, 50%));\n position: absolute;\n top: calc(50% - 0.5em);\n left: 2px;\n }\n}","import { Component, h, Element, Prop, Event, EventEmitter, Watch, Host, AttachInternals, State, Listen } from \"@stencil/core\";\nimport { DnnToggleChangeEventDetail } from \"./toggle-interface\";\n\n\n@Component({\n tag: \"dnn-toggle\",\n styleUrl: \"dnn-toggle.scss\",\n shadow: true,\n formAssociated: true,\n})\nexport class DnnToggle {\n\n @Element() element: HTMLDnnToggleElement;\n\n /** If 'true' the toggle is checked (on). */\n @Prop({ mutable: true }) checked = false;\n\n /** If 'true' the toggle is not be interacted with. */\n @Prop() disabled = false;\n\n /** The field name to use in forms. */\n @Prop() name: string;\n\n /** The value to post when used in forms. */\n @Prop() value: string = \"on\";\n\n /** Fires when the toggle changed */\n @Event() checkChanged!: EventEmitter<DnnToggleChangeEventDetail>;\n\n @Listen(\"click\", { capture: true })\n handleClick() {\n this.checked = !this.checked;\n }\n\n @AttachInternals() internals: ElementInternals;\n \n @Watch(\"checked\")\n checkedChanged(newValue: boolean) {\n this.checkChanged.emit({ checked: newValue });\n this.setFormValue();\n }\n \n @State() focused = false;\n \n private button: HTMLButtonElement;\n \n componentWillLoad() {\n this.originalChecked = this.checked;\n this.setFormValue();\n }\n\n private originalChecked: boolean;\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 setFormValue() {\n if (this.name != undefined && this.name.length > 0) {\n if (this.checked) {\n var data = new FormData();\n data.append(this.name, this.value);\n this.internals.setFormValue(data);\n }\n else {\n this.internals.setFormValue(\"\");\n }\n }\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 disabled={this.disabled}\n class={{ 'checked': this.checked }}\n onFocus={() => this.focused = true}\n onBlur={() => this.focused = false}\n >\n <div class=\"handle\"></div>\n </button>\n </Host>\n );\n }\n}\n"],"version":3}