@dnncommunity/dnn-elements 0.24.3 → 0.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/dnn-checkbox.cjs.entry.js +13 -12
- package/dist/cjs/dnn-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/dnn-permissions-grid.cjs.entry.js +19 -9
- package/dist/cjs/dnn-permissions-grid.cjs.entry.js.map +1 -1
- package/dist/cjs/dnn-richtext.cjs.entry.js +9 -3
- package/dist/cjs/dnn-richtext.cjs.entry.js.map +1 -1
- package/dist/cjs/dnn.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/dnn-checkbox/dnn-checkbox.js +35 -14
- package/dist/collection/components/dnn-checkbox/dnn-checkbox.js.map +1 -1
- package/dist/collection/components/dnn-permissions-grid/dnn-permissions-grid.js +19 -9
- package/dist/collection/components/dnn-permissions-grid/dnn-permissions-grid.js.map +1 -1
- package/dist/collection/components/dnn-richtext/dnn-richtext.js +53 -4
- package/dist/collection/components/dnn-richtext/dnn-richtext.js.map +1 -1
- package/dist/dnn/dnn.esm.js +1 -1
- package/dist/dnn/dnn.esm.js.map +1 -1
- package/dist/dnn/p-0de82dae.entry.js +2 -0
- package/dist/dnn/p-0de82dae.entry.js.map +1 -0
- package/dist/dnn/{p-e7a44eb3.entry.js → p-9b318120.entry.js} +2 -2
- package/dist/dnn/p-9b318120.entry.js.map +1 -0
- package/dist/dnn/p-bff377d5.entry.js +2 -0
- package/dist/dnn/p-bff377d5.entry.js.map +1 -0
- package/dist/esm/dnn-checkbox.entry.js +13 -12
- package/dist/esm/dnn-checkbox.entry.js.map +1 -1
- package/dist/esm/dnn-permissions-grid.entry.js +19 -9
- package/dist/esm/dnn-permissions-grid.entry.js.map +1 -1
- package/dist/esm/dnn-richtext.entry.js +9 -3
- package/dist/esm/dnn-richtext.entry.js.map +1 -1
- package/dist/esm/dnn.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/dnn-checkbox/dnn-checkbox.d.ts +6 -0
- package/dist/types/components/dnn-permissions-grid/dnn-permissions-grid.d.ts +1 -0
- package/dist/types/components/dnn-richtext/dnn-richtext.d.ts +25 -4
- package/dist/types/components.d.ts +28 -2
- package/package.json +2 -2
- package/dist/dnn/p-2b0a6053.entry.js +0 -2
- package/dist/dnn/p-2b0a6053.entry.js.map +0 -1
- package/dist/dnn/p-bd6d200f.entry.js +0 -2
- package/dist/dnn/p-bd6d200f.entry.js.map +0 -1
- package/dist/dnn/p-e7a44eb3.entry.js.map +0 -1
|
@@ -7,6 +7,8 @@ export class DnnRichtext {
|
|
|
7
7
|
this.options = undefined;
|
|
8
8
|
this.value = undefined;
|
|
9
9
|
this.name = undefined;
|
|
10
|
+
this.plugins = [];
|
|
11
|
+
this.customizeOptions = undefined;
|
|
10
12
|
this.focused = false;
|
|
11
13
|
}
|
|
12
14
|
watchValueChanged(newValue) {
|
|
@@ -16,7 +18,11 @@ export class DnnRichtext {
|
|
|
16
18
|
this.setFormValue();
|
|
17
19
|
}
|
|
18
20
|
componentDidLoad() {
|
|
19
|
-
var mergedOptions = Object.assign(Object.assign(Object.assign({}, this.dnnDefaultOptions), this.options), {
|
|
21
|
+
var mergedOptions = Object.assign(Object.assign(Object.assign({}, this.dnnDefaultOptions), this.options), { shadowRoot: this.host.shadowRoot });
|
|
22
|
+
if (this.customizeOptions != undefined) {
|
|
23
|
+
mergedOptions = this.customizeOptions(mergedOptions);
|
|
24
|
+
}
|
|
25
|
+
this.plugins.forEach(plugin => Jodit.plugins.add(plugin.name, plugin.callback));
|
|
20
26
|
this.editor = Jodit.make(this.textArea, mergedOptions);
|
|
21
27
|
this.editor.value = decodeHtml(this.value);
|
|
22
28
|
this.setFormValue();
|
|
@@ -42,10 +48,10 @@ export class DnnRichtext {
|
|
|
42
48
|
}
|
|
43
49
|
}
|
|
44
50
|
render() {
|
|
45
|
-
return (h(Host, { key: '
|
|
51
|
+
return (h(Host, { key: 'b338b503c7144bb23910b7cfd4c1cef63b851a14', tabIndex: this.focused ? -1 : 0, onFocus: () => {
|
|
46
52
|
this.focused = true;
|
|
47
53
|
this.editor.focus();
|
|
48
|
-
}, onBlur: () => this.focused = false }, h("textarea", { key: '
|
|
54
|
+
}, onBlur: () => this.focused = false }, h("textarea", { key: '930d3522793a458645b5b3e632eed80f6470161f', ref: el => this.textArea = el, onFocus: () => this.focused = true, onBlur: () => this.focused = false })));
|
|
49
55
|
}
|
|
50
56
|
static get is() { return "dnn-richtext"; }
|
|
51
57
|
static get encapsulation() { return "shadow"; }
|
|
@@ -80,7 +86,7 @@ export class DnnRichtext {
|
|
|
80
86
|
"optional": false,
|
|
81
87
|
"docs": {
|
|
82
88
|
"tags": [],
|
|
83
|
-
"text": "Optional configuration for Jodit, see https://xdsoft.net/jodit/docs/classes/config.Config.html"
|
|
89
|
+
"text": "Optional configuration for Jodit, see https://xdsoft.net/jodit/docs/classes/config.Config.html\nThis will be merged with the default options and passed to the editor.\nIf you prefer to not have to pass a full config object,\nyou can use 'customizeOptions' to modify the options before initializing the editor\ninstead of providing all options here."
|
|
84
90
|
}
|
|
85
91
|
},
|
|
86
92
|
"value": {
|
|
@@ -116,6 +122,49 @@ export class DnnRichtext {
|
|
|
116
122
|
},
|
|
117
123
|
"attribute": "name",
|
|
118
124
|
"reflect": false
|
|
125
|
+
},
|
|
126
|
+
"plugins": {
|
|
127
|
+
"type": "unknown",
|
|
128
|
+
"mutable": false,
|
|
129
|
+
"complexType": {
|
|
130
|
+
"original": "{name: string, callback: (editor: Jodit) => void}[]",
|
|
131
|
+
"resolved": "{ name: string; callback: (editor: Jodit) => void; }[]",
|
|
132
|
+
"references": {
|
|
133
|
+
"Jodit": {
|
|
134
|
+
"location": "import",
|
|
135
|
+
"path": "jodit",
|
|
136
|
+
"id": "../../node_modules/jodit/types/index.d.ts::Jodit"
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"required": false,
|
|
141
|
+
"optional": false,
|
|
142
|
+
"docs": {
|
|
143
|
+
"tags": [],
|
|
144
|
+
"text": "Allows registering your own plugins.\nThe callback will be called with the editor instance as the only argument durig initialization.\nAll other behavior needs to be implemented in the plugin itself using editor.on(\"eventname\").\nSee https://xdsoft.net/jodit/examples/plugin/custom_plugin.html for an example.\nCreating a plugin does NOT automatically add it to the toolbar, you need to do that yourself in 'options' or 'customizeOptions',\nSee https://xdsoft.net/jodit/examples/toolbar/custom_button.html for an example."
|
|
145
|
+
},
|
|
146
|
+
"defaultValue": "[]"
|
|
147
|
+
},
|
|
148
|
+
"customizeOptions": {
|
|
149
|
+
"type": "unknown",
|
|
150
|
+
"mutable": false,
|
|
151
|
+
"complexType": {
|
|
152
|
+
"original": "(options: Config) => Config",
|
|
153
|
+
"resolved": "(options: Config) => Config",
|
|
154
|
+
"references": {
|
|
155
|
+
"Config": {
|
|
156
|
+
"location": "import",
|
|
157
|
+
"path": "jodit/types/config",
|
|
158
|
+
"id": "../../node_modules/jodit/types/config.d.ts::Config"
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
"required": false,
|
|
163
|
+
"optional": false,
|
|
164
|
+
"docs": {
|
|
165
|
+
"tags": [],
|
|
166
|
+
"text": "Customize the options before initializing the editor, will have all the default options merged with 'options' if passed.\nThis is called last after merging default options with your custom 'options' and just before initializing the editor."
|
|
167
|
+
}
|
|
119
168
|
}
|
|
120
169
|
};
|
|
121
170
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dnn-richtext.js","sourceRoot":"","sources":["../../../src/components/dnn-richtext/dnn-richtext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAgB,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACtH,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAQ7D,MAAM,OAAO,WAAW;;
|
|
1
|
+
{"version":3,"file":"dnn-richtext.js","sourceRoot":"","sources":["../../../src/components/dnn-richtext/dnn-richtext.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, Host, h, Prop, Event, EventEmitter, Watch, AttachInternals, State, Element } from '@stencil/core';\nimport { Jodit } from \"jodit\";\nimport type { Config } from \"jodit/types/config\";\nimport { decodeHtml } from '../../utilities/stringUtilities';\n\n@Component({\n tag: 'dnn-richtext',\n styleUrl: 'dnn-richtext.scss',\n shadow: true,\n formAssociated: true,\n})\nexport class DnnRichtext {\n /** Optional configuration for Jodit, see https://xdsoft.net/jodit/docs/classes/config.Config.html\n * This will be merged with the default options and passed to the editor.\n * If you prefer to not have to pass a full config object,\n * you can use 'customizeOptions' to modify the options before initializing the editor\n * instead of providing all options here.\n */\n @Prop() options: Config;\n \n /** Sets the value of the content of the editor. */\n @Prop() value: string;\n\n /** Name of the field when used in a form. */\n @Prop() name: string;\n\n /** Allows registering your own plugins.\n * The callback will be called with the editor instance as the only argument durig initialization.\n * All other behavior needs to be implemented in the plugin itself using editor.on(\"eventname\").\n * See https://xdsoft.net/jodit/examples/plugin/custom_plugin.html for an example.\n * Creating a plugin does NOT automatically add it to the toolbar, you need to do that yourself in 'options' or 'customizeOptions',\n * See https://xdsoft.net/jodit/examples/toolbar/custom_button.html for an example.\n */\n @Prop() plugins: {name: string, callback: (editor: Jodit) => void}[] = [];\n\n /** Customize the options before initializing the editor, will have all the default options merged with 'options' if passed.\n * This is called last after merging default options with your custom 'options' and just before initializing the editor.\n */\n @Prop() customizeOptions: (options: Config) => Config;\n\n @Element() host: HTMLDnnRichtextElement;\n \n @Watch(\"value\")\n watchValueChanged(newValue: string) {\n if (this.editor !== null && this.editor !== undefined) {\n this.editor.value = decodeHtml(newValue);\n }\n this.setFormValue();\n }\n \n /** Fires when the value changed. */\n @Event() valueChange: EventEmitter<string>;\n \n /** Fires during value input. */\n @Event() valueInput: EventEmitter<string>;\n \n @AttachInternals() internals: ElementInternals;\n \n @State() focused = false;\n\n private textArea: HTMLTextAreaElement;\n private editor: Jodit;\n private dnnDefaultOptions: Config = {\n ...Jodit.defaultOptions,\n useSplitMode: true,\n }\n \n componentDidLoad(){\n var mergedOptions : Config = {\n ...this.dnnDefaultOptions,\n ...this.options,\n shadowRoot: this.host.shadowRoot,\n };\n if (this.customizeOptions != undefined){\n mergedOptions = this.customizeOptions(mergedOptions);\n }\n this.plugins.forEach(plugin => Jodit.plugins.add(plugin.name, plugin.callback));\n this.editor = Jodit.make(this.textArea, mergedOptions);\n this.editor.value = decodeHtml(this.value);\n this.setFormValue();\n this.editor.e.on('input', () => this.valueInput.emit(this.editor.value));\n this.editor.e.on(\"focus\", () => this.focused = true);\n this.editor.e.on(\"blur\", () => {\n this.focused = false;\n this.valueChange.emit(this.editor.value);\n this.setFormValue();\n });\n }\n\n // eslint-disable-next-line @stencil-community/own-methods-must-be-private\n formResetCallback() {\n this.editor.value = decodeHtml(this.value);\n this.internals.setValidity({});\n this.setFormValue();\n }\n\n private setFormValue() {\n if (this.name != undefined && this.name.length > 0){\n var data = new FormData();\n data.append(this.name, this.editor.value);\n this.internals.setFormValue(data);\n }\n }\n\n render() {\n return (\n <Host\n tabIndex={this.focused ? -1 : 0}\n onFocus={() => {\n this.focused = true;\n this.editor.focus();\n }}\n onBlur={() => this.focused = false}\n >\n <textarea\n ref={el => this.textArea = el}\n onFocus={() => this.focused = true}\n onBlur={() => this.focused = false}\n >\n </textarea>\n </Host>\n );\n }\n\n}\n"]}
|
package/dist/dnn/dnn.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{p as e,b as a}from"./p-91d08ab2.js";export{s as setNonce}from"./p-91d08ab2.js";import{g as l}from"./p-e1255160.js";var t=()=>{const a=import.meta.url;const l={};if(a!==""){l.resourcesUrl=new URL(".",a).href}return e(l)};t().then((async e=>{await l();return a([["p-107bd5a8",[[65,"dnn-color-input",{color:[1025],contrastColor:[1025,"contrast-color"],lightColor:[1025,"light-color"],darkColor:[1025,"dark-color"],label:[1],readonly:[4],localization:[16],name:[1],helpText:[1,"help-text"],useContrastColor:[4,"use-contrast-color"],useLightColor:[4,"use-light-color"],useDarkColor:[4,"use-dark-color"],currentColor:[32],focused:[32]},null,{currentColor:["currentColorChanged"]}]]],["p-ef6a902d",[[65,"dnn-image-cropper",{width:[2],height:[2],resx:[16],quality:[2],preventUndersized:[4,"prevent-undersized"],name:[1],view:[32],localResx:[32],fileName:[32],focused:[32],clear:[64]},null,{resx:["resxChanged"]}]]],["p-a9d8a942",[[65,"dnn-autocomplete",{label:[1],name:[1],helpText:[1,"help-text"],value:[1537],required:[4],disabled:[4],suggestions:[16],renderSuggestion:[16],totalSuggestions:[2,"total-suggestions"],preloadThresholdPixels:[2,"preload-threshold-pixels"],autocomplete:[1],focused:[32],valid:[32],customValidityMessage:[32],selectedIndex:[32],positionInitialized:[32],lastScrollTop:[32],displayValue:[32],checkValidity:[64],setCustomValidity:[64]},[[4,"click","handleClick"]],{value:["handleValueChange"]}]]],["p-e6bd0f5b",[[65,"dnn-input",{type:[1025],label:[1],name:[1],value:[1544],helpText:[1,"help-text"],required:[4],disabled:[4],autocomplete:[1],min:[8],max:[8],minlength:[2],maxlength:[2],multiple:[4],pattern:[1],readonly:[4],step:[8],disableValidityReporting:[4,"disable-validity-reporting"],allowShowPassword:[4,"allow-show-password"],inputmode:[1],focused:[32],valid:[32],checkValidity:[64],setCustomValidity:[64]}]]],["p-d55632fe",[[65,"dnn-select",{label:[1],name:[1],required:[4],helpText:[1,"help-text"],disabled:[4],disableValidityReporting:[4,"disable-validity-reporting"],autocomplete:[1],value:[1537],focused:[32],valid:[32],customValidityMessage:[32],checkValidity:[64]}]]],["p-88a928f2",[[65,"dnn-textarea",{resizable:[1],value:[1025],label:[1],name:[1],helpText:[1,"help-text"],required:[4],disabled:[4],autocomplete:[1],minlength:[2],maxlength:[2],readonly:[4],rows:[2],focused:[32],valid:[32],customValidityMessage:[32],checkValidity:[64],setCustomValidity:[64]}]]],["p-c12c6683",[[1,"dnn-treeview-item",{expanded:[1540],hasChildren:[32],focused:[32]},null,{expanded:["watchExpanded"]}]]],["p-2b3d9bc1",[[1,"dnn-chevron",{expandText:[1,"expand-text"],collapseText:[1,"collapse-text"],expanded:[1540],focused:[32]},null,{expanded:["handleExpandedChanged"]}]]],["p-c15dfb8b",[[66,"dnn-monaco-editor",{language:[1],value:[1025],name:[1],focused:[32]},null,{language:["languageChanged"],value:["valueChanged"]}]]],["p-b0239140",[[1,"dnn-progress-bar",{value:[2],max:[2],useGradient:[4,"use-gradient"]}]]],["p-
|
|
1
|
+
import{p as e,b as a}from"./p-91d08ab2.js";export{s as setNonce}from"./p-91d08ab2.js";import{g as l}from"./p-e1255160.js";var t=()=>{const a=import.meta.url;const l={};if(a!==""){l.resourcesUrl=new URL(".",a).href}return e(l)};t().then((async e=>{await l();return a([["p-107bd5a8",[[65,"dnn-color-input",{color:[1025],contrastColor:[1025,"contrast-color"],lightColor:[1025,"light-color"],darkColor:[1025,"dark-color"],label:[1],readonly:[4],localization:[16],name:[1],helpText:[1,"help-text"],useContrastColor:[4,"use-contrast-color"],useLightColor:[4,"use-light-color"],useDarkColor:[4,"use-dark-color"],currentColor:[32],focused:[32]},null,{currentColor:["currentColorChanged"]}]]],["p-ef6a902d",[[65,"dnn-image-cropper",{width:[2],height:[2],resx:[16],quality:[2],preventUndersized:[4,"prevent-undersized"],name:[1],view:[32],localResx:[32],fileName:[32],focused:[32],clear:[64]},null,{resx:["resxChanged"]}]]],["p-a9d8a942",[[65,"dnn-autocomplete",{label:[1],name:[1],helpText:[1,"help-text"],value:[1537],required:[4],disabled:[4],suggestions:[16],renderSuggestion:[16],totalSuggestions:[2,"total-suggestions"],preloadThresholdPixels:[2,"preload-threshold-pixels"],autocomplete:[1],focused:[32],valid:[32],customValidityMessage:[32],selectedIndex:[32],positionInitialized:[32],lastScrollTop:[32],displayValue:[32],checkValidity:[64],setCustomValidity:[64]},[[4,"click","handleClick"]],{value:["handleValueChange"]}]]],["p-e6bd0f5b",[[65,"dnn-input",{type:[1025],label:[1],name:[1],value:[1544],helpText:[1,"help-text"],required:[4],disabled:[4],autocomplete:[1],min:[8],max:[8],minlength:[2],maxlength:[2],multiple:[4],pattern:[1],readonly:[4],step:[8],disableValidityReporting:[4,"disable-validity-reporting"],allowShowPassword:[4,"allow-show-password"],inputmode:[1],focused:[32],valid:[32],checkValidity:[64],setCustomValidity:[64]}]]],["p-d55632fe",[[65,"dnn-select",{label:[1],name:[1],required:[4],helpText:[1,"help-text"],disabled:[4],disableValidityReporting:[4,"disable-validity-reporting"],autocomplete:[1],value:[1537],focused:[32],valid:[32],customValidityMessage:[32],checkValidity:[64]}]]],["p-88a928f2",[[65,"dnn-textarea",{resizable:[1],value:[1025],label:[1],name:[1],helpText:[1,"help-text"],required:[4],disabled:[4],autocomplete:[1],minlength:[2],maxlength:[2],readonly:[4],rows:[2],focused:[32],valid:[32],customValidityMessage:[32],checkValidity:[64],setCustomValidity:[64]}]]],["p-c12c6683",[[1,"dnn-treeview-item",{expanded:[1540],hasChildren:[32],focused:[32]},null,{expanded:["watchExpanded"]}]]],["p-2b3d9bc1",[[1,"dnn-chevron",{expandText:[1,"expand-text"],collapseText:[1,"collapse-text"],expanded:[1540],focused:[32]},null,{expanded:["handleExpandedChanged"]}]]],["p-c15dfb8b",[[66,"dnn-monaco-editor",{language:[1],value:[1025],name:[1],focused:[32]},null,{language:["languageChanged"],value:["valueChanged"]}]]],["p-b0239140",[[1,"dnn-progress-bar",{value:[2],max:[2],useGradient:[4,"use-gradient"]}]]],["p-9b318120",[[65,"dnn-richtext",{options:[16],value:[1],name:[1],plugins:[16],customizeOptions:[16],focused:[32]},null,{value:["watchValueChanged"]}]]],["p-a645d829",[[1,"dnn-sort-icon",{sortDirection:[1025,"sort-direction"],focused:[32]}]]],["p-8056c270",[[65,"dnn-toggle",{checked:[1028],disabled:[4],name:[1],value:[1],focused:[32]},[[2,"click","handleClick"]],{checked:["checkedChanged"]}]]],["p-cf2aa06f",[[1,"dnn-vertical-overflow-menu",{showDropdownButton:[32],showDropdownMenu:[32]}]]],["p-b8ec5d70",[[1,"dnn-vertical-splitview",{splitterWidth:[2,"splitter-width"],splitWidthPercentage:[1026,"split-width-percentage"],leftWidth:[32],rightWidth:[32],setSplitWidthPercentage:[64],getSplitWidthPercentage:[64]}]]],["p-bff377d5",[[65,"dnn-checkbox",{checked:[1025],useIntermediate:[4,"use-intermediate"],value:[1],name:[1],nextStateHandler:[16],focused:[32]},[[2,"click","handleClick"]],{checked:["handleCheckedChange"]}]]],["p-f4b5a8e5",[[1,"dnn-color-picker",{color:[1],colorBoxHeight:[1,"color-box-height"],currentColor:[32],rgbDisplay:[32],hslDisplay:[32],hexDisplay:[32],focused:[32]},null,{currentColor:["handeCurrentColorChanged"]}]]],["p-00fccd70",[[65,"dnn-dropzone",{resx:[16],allowedExtensions:[16],allowCameraMode:[4,"allow-camera-mode"],captureQuality:[2,"capture-quality"],maxFileSize:[2,"max-file-size"],name:[1],canTakeSnapshots:[32],takingPicture:[32],fileTooLarge:[32],invalidExtension:[32],localResx:[32],focused:[32]},null,{resx:["resxChanged"]}]]],["p-678c5a33",[[1,"dnn-searchbox",{placeholder:[1],debounced:[4],debounceTime:[2,"debounce-time"],query:[1025],focused:[32]},null,{query:["handleQueryChanged"]}]]],["p-3279942a",[[1,"dnn-tab",{tabTitle:[1,"tab-title"],visible:[32],show:[64],hide:[64]}],[1,"dnn-tabs",{tabTitles:[32],selectedTabTitle:[32]}]]],["p-5aa5dc7b",[[1,"dnn-collapsible",{expanded:[516],transitionDuration:[2,"transition-duration"],updateSize:[64]},[[0,"dnnCollapsibleHeightChanged","handleHeightChanged"]],{expanded:["handledExpandedChanged"]}]]],["p-507074b5",[[1,"dnn-modal",{backdropDismiss:[4,"backdrop-dismiss"],closeText:[1,"close-text"],resizable:[4],showCloseButton:[4,"show-close-button"],visible:[1540],show:[64],hide:[64]}]]],["p-36dc982d",[[65,"dnn-button",{type:[1],appearance:[1],formButtonType:[1,"form-button-type"],reversed:[4],size:[1],confirm:[4],confirmYesText:[1,"confirm-yes-text"],confirmNoText:[1,"confirm-no-text"],confirmMessage:[1,"confirm-message"],disabled:[4],focused:[32],modalVisible:[32]}]]],["p-0de82dae",[[1,"dnn-permissions-grid",{permissions:[1040],roleGroups:[16],roles:[16],resx:[16],foundUsers:[16],selectedRoleGroupId:[32],userQuery:[32],pickedUser:[32],localResx:[32],focused:[32]},null,{foundUsers:["handleFoundUsersChanged"],resx:["resxChanged"]}]]],["p-bc2d2d54",[[1,"dnn-fieldset",{focused:[1540],disabled:[1540],invalid:[1540],label:[1],floatLabel:[1540,"float-label"],helpText:[1,"help-text"],resizable:[1],customValidityMessage:[32],setFocused:[64],setBlurred:[64],disable:[64],enable:[64],pinLabel:[64],unpinLabel:[64],setValidity:[64]}]]]],e)}));
|
|
2
2
|
//# sourceMappingURL=dnn.esm.js.map
|
package/dist/dnn/dnn.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["patchBrowser","importMeta","url","opts","resourcesUrl","URL","href","promiseResolve","then","async","options","globalScripts","bootstrapLazy","color","contrastColor","lightColor","darkColor","label","readonly","localization","name","helpText","useContrastColor","useLightColor","useDarkColor","currentColor","focused","width","height","resx","quality","preventUndersized","view","localResx","fileName","clear","value","required","disabled","suggestions","renderSuggestion","totalSuggestions","preloadThresholdPixels","autocomplete","valid","customValidityMessage","selectedIndex","positionInitialized","lastScrollTop","displayValue","checkValidity","setCustomValidity","type","min","max","minlength","maxlength","multiple","pattern","step","disableValidityReporting","allowShowPassword","inputmode","resizable","rows","expanded","hasChildren","expandText","collapseText","language","useGradient","sortDirection","checked","showDropdownButton","showDropdownMenu","splitterWidth","splitWidthPercentage","leftWidth","rightWidth","setSplitWidthPercentage","getSplitWidthPercentage","useIntermediate","colorBoxHeight","rgbDisplay","hslDisplay","hexDisplay","allowedExtensions","allowCameraMode","captureQuality","maxFileSize","canTakeSnapshots","takingPicture","fileTooLarge","invalidExtension","placeholder","debounced","debounceTime","query","tabTitle","visible","show","hide","tabTitles","selectedTabTitle","transitionDuration","updateSize","backdropDismiss","closeText","showCloseButton","appearance","formButtonType","reversed","size","confirm","confirmYesText","confirmNoText","confirmMessage","modalVisible","permissions","roleGroups","roles","foundUsers","selectedRoleGroupId","userQuery","pickedUser","invalid","floatLabel","setFocused","setBlurred","disable","enable","pinLabel","unpinLabel","setValidity"],"sources":["../../node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.22.2 | MIT Licensed | https://stenciljs.com\n */\n\n// src/client/client-patch-browser.ts\nimport { BUILD, NAMESPACE } from \"@stencil/core/internal/app-data\";\nimport { consoleDevInfo, doc, H, promiseResolve } from \"@stencil/core\";\nvar patchBrowser = () => {\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo(\"Running in development mode.\");\n }\n if (BUILD.cloneNodeFix) {\n patchCloneNodeFix(H.prototype);\n }\n const scriptElm = BUILD.scriptDataOpts ? Array.from(doc.querySelectorAll(\"script\")).find(\n (s) => new RegExp(`/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) || s.getAttribute(\"data-stencil-namespace\") === NAMESPACE\n ) : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})[\"data-opts\"] || {} : {};\n if (importMeta !== \"\") {\n opts.resourcesUrl = new URL(\".\", importMeta).href;\n }\n return promiseResolve(opts);\n};\nvar patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function(deep) {\n if (this.nodeName === \"TEMPLATE\") {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport {\n patchBrowser\n};\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(async (options) => {\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"mappings":"0HAOA,IAAIA,EAAe,KAUjB,MAAMC,cAAyBC,IAC/B,MAAMC,EAAqE,GAC3E,GAAIF,IAAe,GAAI,CACrBE,EAAKC,aAAe,IAAIC,IAAI,IAAKJ,GAAYK,IACjD,CACE,OAAOC,EAAeJ,EAAK,EClB7BH,IAAeQ,MAAKC,MAAOC,UACnBC,IACN,OAAOC,EAAc,sCAAsC,CAACC,MAAA,OAAAC,cAAA,wBAAAC,WAAA,qBAAAC,UAAA,oBAAAC,MAAA,IAAAC,SAAA,IAAAC,aAAA,KAAAC,KAAA,IAAAC,SAAA,gBAAAC,iBAAA,yBAAAC,cAAA,sBAAAC,aAAA,qBAAAC,aAAA,KAAAC,QAAA,YAAAD,aAAA,oEAAAE,MAAA,IAAAC,OAAA,IAAAC,KAAA,KAAAC,QAAA,IAAAC,kBAAA,yBAAAX,KAAA,IAAAY,KAAA,KAAAC,UAAA,KAAAC,SAAA,KAAAR,QAAA,KAAAS,MAAA,YAAAN,KAAA,2DAAAZ,MAAA,IAAAG,KAAA,IAAAC,SAAA,gBAAAe,MAAA,OAAAC,SAAA,IAAAC,SAAA,IAAAC,YAAA,KAAAC,iBAAA,KAAAC,iBAAA,wBAAAC,uBAAA,+BAAAC,aAAA,IAAAjB,QAAA,KAAAkB,MAAA,KAAAC,sBAAA,KAAAC,cAAA,KAAAC,oBAAA,KAAAC,cAAA,KAAAC,aAAA,KAAAC,cAAA,KAAAC,kBAAA,mCAAAf,MAAA,0DAAAgB,KAAA,OAAAnC,MAAA,IAAAG,KAAA,IAAAgB,MAAA,OAAAf,SAAA,gBAAAgB,SAAA,IAAAC,SAAA,IAAAK,aAAA,IAAAU,IAAA,IAAAC,IAAA,IAAAC,UAAA,IAAAC,UAAA,IAAAC,SAAA,IAAAC,QAAA,IAAAxC,SAAA,IAAAyC,KAAA,IAAAC,yBAAA,iCAAAC,kBAAA,0BAAAC,UAAA,IAAApC,QAAA,KAAAkB,MAAA,KAAAM,cAAA,KAAAC,kBAAA,0CAAAlC,MAAA,IAAAG,KAAA,IAAAiB,SAAA,IAAAhB,SAAA,gBAAAiB,SAAA,IAAAsB,yBAAA,iCAAAjB,aAAA,IAAAP,MAAA,OAAAV,QAAA,KAAAkB,MAAA,KAAAC,sBAAA,KAAAK,cAAA,4CAAAa,UAAA,IAAA3B,MAAA,OAAAnB,MAAA,IAAAG,KAAA,IAAAC,SAAA,gBAAAgB,SAAA,IAAAC,SAAA,IAAAK,aAAA,IAAAY,UAAA,IAAAC,UAAA,IAAAtC,SAAA,IAAA8C,KAAA,IAAAtC,QAAA,KAAAkB,MAAA,KAAAC,sBAAA,KAAAK,cAAA,KAAAC,kBAAA,gDAAAc,SAAA,OAAAC,YAAA,KAAAxC,QAAA,YAAAuC,SAAA,uDAAAE,WAAA,kBAAAC,aAAA,oBAAAH,SAAA,OAAAvC,QAAA,YAAAuC,SAAA,sEAAAI,SAAA,IAAAjC,MAAA,OAAAhB,KAAA,IAAAM,QAAA,YAAA2C,SAAA,oBAAAjC,MAAA,2DAAAA,MAAA,IAAAkB,IAAA,IAAAgB,YAAA,0DAAA5D,QAAA,KAAA0B,MAAA,IAAAhB,KAAA,
|
|
1
|
+
{"version":3,"names":["patchBrowser","importMeta","url","opts","resourcesUrl","URL","href","promiseResolve","then","async","options","globalScripts","bootstrapLazy","color","contrastColor","lightColor","darkColor","label","readonly","localization","name","helpText","useContrastColor","useLightColor","useDarkColor","currentColor","focused","width","height","resx","quality","preventUndersized","view","localResx","fileName","clear","value","required","disabled","suggestions","renderSuggestion","totalSuggestions","preloadThresholdPixels","autocomplete","valid","customValidityMessage","selectedIndex","positionInitialized","lastScrollTop","displayValue","checkValidity","setCustomValidity","type","min","max","minlength","maxlength","multiple","pattern","step","disableValidityReporting","allowShowPassword","inputmode","resizable","rows","expanded","hasChildren","expandText","collapseText","language","useGradient","plugins","customizeOptions","sortDirection","checked","showDropdownButton","showDropdownMenu","splitterWidth","splitWidthPercentage","leftWidth","rightWidth","setSplitWidthPercentage","getSplitWidthPercentage","useIntermediate","nextStateHandler","colorBoxHeight","rgbDisplay","hslDisplay","hexDisplay","allowedExtensions","allowCameraMode","captureQuality","maxFileSize","canTakeSnapshots","takingPicture","fileTooLarge","invalidExtension","placeholder","debounced","debounceTime","query","tabTitle","visible","show","hide","tabTitles","selectedTabTitle","transitionDuration","updateSize","backdropDismiss","closeText","showCloseButton","appearance","formButtonType","reversed","size","confirm","confirmYesText","confirmNoText","confirmMessage","modalVisible","permissions","roleGroups","roles","foundUsers","selectedRoleGroupId","userQuery","pickedUser","invalid","floatLabel","setFocused","setBlurred","disable","enable","pinLabel","unpinLabel","setValidity"],"sources":["../../node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.22.2 | MIT Licensed | https://stenciljs.com\n */\n\n// src/client/client-patch-browser.ts\nimport { BUILD, NAMESPACE } from \"@stencil/core/internal/app-data\";\nimport { consoleDevInfo, doc, H, promiseResolve } from \"@stencil/core\";\nvar patchBrowser = () => {\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo(\"Running in development mode.\");\n }\n if (BUILD.cloneNodeFix) {\n patchCloneNodeFix(H.prototype);\n }\n const scriptElm = BUILD.scriptDataOpts ? Array.from(doc.querySelectorAll(\"script\")).find(\n (s) => new RegExp(`/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) || s.getAttribute(\"data-stencil-namespace\") === NAMESPACE\n ) : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})[\"data-opts\"] || {} : {};\n if (importMeta !== \"\") {\n opts.resourcesUrl = new URL(\".\", importMeta).href;\n }\n return promiseResolve(opts);\n};\nvar patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function(deep) {\n if (this.nodeName === \"TEMPLATE\") {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport {\n patchBrowser\n};\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(async (options) => {\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{r as e,c as t,h as s,H as i}from"./p-91d08ab2.js";const d=":host{display:block}.add-role-row{display:flex;gap:1em;align-items:center;flex-wrap:wrap}.add-role-row label{margin-right:0.5em}.search-user{display:flex;gap:1em;margin-top:1em}.search-user .search-control{position:relative}.search-user .search-control dnn-collapsible{position:absolute;left:0;top:calc(100% - 2px);width:100%;box-shadow:0px 4px 4px}.search-user .search-control dnn-collapsible .dropdown{background-color:white;border:1px solid lightgray;display:flex;flex-direction:column}.search-user .search-control dnn-collapsible .dropdown button{background-color:transparent;border:none;border-bottom:1px solid lightgray;padding:0.25em;margin:0;text-align:left}table{border:1px solid lightgray;border-collapse:collapse;margin-top:1em}table thead{text-align:center}table thead tr{border-bottom:1px solid lightgray}table thead th{background-color:lightgray;padding:0.25em 0.5em}table thead th:first-child{border-right:1px solid lightgray}table tbody tr{border-bottom:1px dotted lightgray}table tbody tr th{text-align:left;border-right:1px solid lightgray;padding:0 0.5em}table tbody tr td{text-align:center}table tbody tr td label .hidden{display:none}table tbody tr td button{background-color:transparent;border:0;padding:0;margin:0;margin-right:1em}";const a=d;const n=class{constructor(s){e(this,s);this.userSearchQueryChanged=t(this,"userSearchQueryChanged",7);this.permissionsChanged=t(this,"permissionsChanged",7);this.defaultResx={Add:"Add",AllRoles:"All Roles",FilterByGroup:"Filter By Group",GlobalRoles:"Global Roles",Role:"Role",RolePermissions:"Role Permissions",SelectRole:"Select Role",User:"User",UserPermissions:"User Permissions"};this.permissions=undefined;this.roleGroups=undefined;this.roles=undefined;this.resx=undefined;this.foundUsers=[];this.selectedRoleGroupId=-1;this.userQuery=undefined;this.pickedUser=undefined;this.localResx=undefined;this.focused=false}handleFoundUsersChanged(e){if((e===null||e===void 0?void 0:e.length)>0){setTimeout((()=>{this.userCollapsible.expanded=true}),100)}}resxChanged(){this.mergeResx()}componentWillLoad(){document.addEventListener("click",this.dismissUserResults.bind(this));this.mergeResx()}disconnectedCallback(){document.removeEventListener("click",this.disconnectedCallback.bind(this))}mergeResx(){this.localResx=Object.assign(Object.assign({},this.defaultResx),this.resx)}dismissUserResults(e){const t=this.roleDropDown.getBoundingClientRect();if(e.pageX>t.right||e.pageX<t.left||e.pageY>t.bottom||e.pageY<t.top){this.userCollapsible.expanded=false}}handleRoleGroupChanged(e){const t=e.selectedIndex;const s=Number.parseInt(e.options[t].value);this.selectedRoleGroupId=s}addRole(){const e=Number.parseInt(this.roleDropDown.options[this.roleDropDown.selectedIndex].value);const t=this.roles.filter((t=>t.RoleId==e))[0];this.permissions=Object.assign(Object.assign({},this.permissions),{rolePermissions:[...this.permissions.rolePermissions,{default:false,locked:false,permissions:[],roleId:t.RoleId,roleName:t.RoleName}]});this.permissionsChanged.emit(this.permissions)}addUser(){if(this.pickedUser!=undefined){this.permissions=Object.assign(Object.assign({},this.permissions),{userPermissions:[...this.permissions.userPermissions,{displayName:this.pickedUser.displayName,permissions:[],userId:this.pickedUser.userId}]});this.pickedUser=undefined;this.userQuery="";this.permissionsChanged.emit(this.permissions)}}getRoles(){const e=this.roles.filter((e=>!this.permissions.rolePermissions.some((t=>t.roleId==e.RoleId))));if(this.selectedRoleGroupId==-2){return e}if(this.selectedRoleGroupId==-1){return e.filter((e=>e.IsSystemRole))}return e.filter((e=>e.RoleGroupId==this.selectedRoleGroupId))}renderRoleCheckBox(e,t){const i=e.permissions.filter((e=>e.permissionId==t.permissionId))[0];if(e.locked){return s("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"#000000"},s("g",{fill:"none"},s("path",{d:"M0 0h24v24H0V0z"}),s("path",{d:"M0 0h24v24H0V0z",opacity:".87"})),s("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"}))}const d=i==undefined?"intermediate":i.allowAccess?"checked":"unchecked";return s("label",null,s("span",{class:"hidden"},t.permissionName),s("dnn-checkbox",{useIntermediate:true,nextStateHandler:e=>this.handleNextState(e),checked:d,onCheckedchange:s=>this.handleRoleChanged(s.detail,e,t)},s("div",{slot:"intermediateicon"},s("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"#000000"},s("path",{d:"M0 0h24v24H0V0z",fill:"none"}),s("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}))),s("div",{slot:"uncheckedicon"},s("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"#000000"},s("path",{d:"M0 0h24v24H0V0z",fill:"none"}),s("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z"})))))}renderUserCheckBox(e,t){const i=e.permissions.filter((e=>e.permissionId==t.permissionId))[0];const d=i==undefined?"intermediate":i.allowAccess?"checked":"unchecked";return s("label",null,s("span",{class:"hidden"},t.permissionName),s("dnn-checkbox",{useIntermediate:true,nextStateHandler:e=>this.handleNextState(e),checked:d,onCheckedchange:s=>this.handleUserChanged(s.detail,e,t)},s("div",{slot:"intermediateicon"},s("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"#000000"},s("path",{d:"M0 0h24v24H0V0z",fill:"none"}),s("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}))),s("div",{slot:"uncheckedicon"},s("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"#000000"},s("path",{d:"M0 0h24v24H0V0z",fill:"none"}),s("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z"})))))}handleNextState(e){switch(e){case"checked":return"unchecked";case"unchecked":return"intermediate";default:return"checked"}}handleRoleChanged(e,t,s){switch(e){case"unchecked":this.permissions=Object.assign(Object.assign({},this.permissions),{rolePermissions:[...this.permissions.rolePermissions.map((e=>{if(e.roleId!=t.roleId){return e}const i=Object.assign({},e);i.permissions=[...i.permissions.filter((e=>e.permissionId!=s.permissionId)),{allowAccess:false,fullControl:false,permissionCode:s.permissionCode,permissionId:s.permissionId,permissionKey:s.permissionKey,permissionName:s.permissionName,view:false}];return i}))]});break;case"checked":this.permissions=Object.assign(Object.assign({},this.permissions),{rolePermissions:[...this.permissions.rolePermissions.map((e=>{if(e.roleId!=t.roleId){return e}const i=Object.assign({},e);i.permissions=[...i.permissions.filter((e=>e.permissionId!=s.permissionId)),{allowAccess:true,fullControl:false,permissionCode:s.permissionCode,permissionId:s.permissionId,permissionKey:s.permissionKey,permissionName:s.permissionName,view:false}];return i}))]});break;case"intermediate":this.permissions=Object.assign(Object.assign({},this.permissions),{rolePermissions:[...this.permissions.rolePermissions.map((e=>{if(e.roleId!=t.roleId){return e}const i=Object.assign({},e);i.permissions=[...i.permissions.filter((e=>e.permissionId!=s.permissionId))];return i}))]});break}this.permissionsChanged.emit(this.permissions)}handleUserChanged(e,t,s){switch(e){case"unchecked":this.permissions=Object.assign(Object.assign({},this.permissions),{userPermissions:[...this.permissions.userPermissions.map((e=>{if(e.userId!=t.userId){return e}const i=Object.assign({},e);i.permissions=[...i.permissions.filter((e=>e.permissionId!=s.permissionId)),{allowAccess:false,fullControl:false,permissionCode:s.permissionCode,permissionId:s.permissionId,permissionKey:s.permissionKey,permissionName:s.permissionName,view:false}];return i}))]});break;case"checked":this.permissions=Object.assign(Object.assign({},this.permissions),{userPermissions:[...this.permissions.userPermissions.map((e=>{if(e.userId!=t.userId){return e}const i=Object.assign({},e);i.permissions=[...i.permissions.filter((e=>e.permissionId!=s.permissionId)),{allowAccess:true,fullControl:false,permissionCode:s.permissionCode,permissionId:s.permissionId,permissionKey:s.permissionKey,permissionName:s.permissionName,view:false}];return i}))]});break;case"intermediate":this.permissions=Object.assign(Object.assign({},this.permissions),{userPermissions:[...this.permissions.userPermissions.map((e=>{if(e.userId!=t.userId){return e}const i=Object.assign({},e);i.permissions=[...i.permissions.filter((e=>e.permissionId!=s.permissionId))];return i}))]});break}this.permissionsChanged.emit(this.permissions)}removeRole(e){this.permissions=Object.assign(Object.assign({},this.permissions),{rolePermissions:[...this.permissions.rolePermissions.filter((t=>t.roleId!=e.roleId))]});this.permissionsChanged.emit()}removeUser(e){this.permissions=Object.assign(Object.assign({},this.permissions),{userPermissions:[...this.permissions.userPermissions.filter((t=>t.userId!=e.userId))]});this.permissionsChanged.emit(this.permissions)}handleQueryChanged(e){this.userQuery=e;if(e==undefined||e.length==0){this.userCollapsible.expanded=false;this.pickedUser=undefined;this.foundUsers=[];return}this.userSearchQueryChanged.emit(e)}handleSearchUserFieldKeyDown(e){if(e.key!="ArrowDown"){return}e.preventDefault();const t=this.userCollapsible.querySelector("button");if(t!=undefined){t.focus()}}handleSearchedUserKeyDown(e){const t=e.target;switch(e.key){case"ArrowDown":e.preventDefault();const s=t.nextElementSibling;s===null||s===void 0?void 0:s.focus();break;case"ArrowUp":e.preventDefault();const i=t.previousElementSibling;i===null||i===void 0?void 0:i.focus();break}}handleUserPicked(e){this.userQuery=e.displayName;this.pickedUser=e}getFilteredUsers(){return this.foundUsers.filter((e=>!this.permissions.userPermissions.some((t=>t.userId==e.userId))))}render(){const e=this.getRoles();return s(i,{key:"aa5bcb726609a04b6dad78274a67511950d761f4",tabIndex:this.focused?-1:0,onFocus:()=>this.rolesDropdown.focus(),onBlur:()=>this.rolesDropdown.blur()},s("div",{key:"787605cbb898d983fdd66311a165febdc3604365",class:"add-role-row"},s("div",{key:"5b0a39fb334f9b24e9b2a7bfdd4dddac29a1a38e",class:"dropdown"},s("label",{key:"3fe9beefb2addc2f48e62f1b00c49a24c3dd077f"},this.localResx.FilterByGroup," :"),s("select",{key:"6949c0de5aa4e33c41083cf208988a041955a5f8",ref:e=>this.rolesDropdown=e,onChange:e=>this.handleRoleGroupChanged(e.target),onFocus:()=>this.focused=true,onBlur:()=>this.focused=false},s("option",{key:"a68744b35d50c76c74ecab7f9444161b6a0ad357",value:-2,selected:this.selectedRoleGroupId==-2},this.localResx.AllRoles),s("option",{key:"298a553685cd393efea7c19fc84ff3f5b6e2c14e",value:-1,selected:this.selectedRoleGroupId==-1},this.localResx.GlobalRoles),this.roleGroups.map((e=>s("option",{value:e.id,selected:this.selectedRoleGroupId==e.id},e.name))))),e&&e.length>0&&[s("div",{key:"81aa6af63532b45a12de309d61d91025487bb89b",class:"dropdown"},s("label",{key:"f7955613ad565920eea350fbc5e43f71b3128077"},this.localResx.SelectRole," :"),s("select",{key:"f5f2ea97e2c65deaf9055f4a4add81e4c2e86653",ref:e=>this.roleDropDown=e},this.getRoles().map((e=>s("option",{value:e.RoleId},e.RoleName))))),s("dnn-button",{key:"49323d82e9b75d60b3787c7c68f78ba5d9e6d616",type:"primary",onClick:()=>this.addRole()},this.localResx.Add)]),s("table",{key:"f7d507656eba61da5880b112a25771969409b941",class:"roles-table"},s("caption",{key:"d2ba5d535514136ff3b5c9fd0eeac03c19d45319"},this.localResx.RolePermissions),s("thead",{key:"bd72016d4f96ba53cddccdc9a531fec20525539b"},s("tr",{key:"22b3eef061501e40073da370b30802c59993b189"},s("th",{key:"f6d5a5aebf0d0e5dc808d39b5c17541164bd332a"},this.localResx.Role),this.permissions.permissionDefinitions.map((e=>s("th",null,e.permissionName))),s("th",{key:"e02583f0aef2fd21feff52337f4335a448a67522"}," "))),s("tbody",{key:"1b70292a7899c4f725b390a1e796f240545a39ad"},this.permissions.rolePermissions.map((e=>s("tr",null,s("th",null,e.roleName),this.permissions.permissionDefinitions.map((t=>s("td",null,this.renderRoleCheckBox(e,t)))),s("td",null,!e.default&&s("button",{onClick:()=>this.removeRole(e)},s("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"#000000"},s("path",{d:"M0 0h24v24H0V0z",fill:"none"}),s("path",{d:"M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"}))))))))),s("div",{key:"16e671a7cacf95f877aa6a9242da51aec6d67398",class:"search-user"},s("div",{key:"a6bc24d1671bd627cff7dffaef13922fb81ccf18",class:"search-control"},s("dnn-searchbox",{key:"5a3b908694e84abff8e5740a8da755ff9995c32b",placeholder:this.localResx.User,debounced:true,onQueryChanged:e=>this.handleQueryChanged(e.detail),onKeyDown:e=>this.handleSearchUserFieldKeyDown(e),query:this.userQuery}),s("dnn-collapsible",{key:"6478187d9dfcbf009990ce49010fae65376be1a0",ref:e=>this.userCollapsible=e},s("div",{key:"5831710ea3e9523f2f2955cb987c288097c9b44f",class:"dropdown"},this.getFilteredUsers().map((e=>s("button",{onKeyDown:e=>this.handleSearchedUserKeyDown(e),onClick:()=>this.handleUserPicked(e)},e.displayName)))))),this.pickedUser&&s("dnn-button",{key:"64ca8f8e60428143cdb477da38c75b7e80cd9914",onClick:()=>this.addUser()},this.localResx.Add)),this.permissions.userPermissions&&this.permissions.userPermissions.length>0&&s("table",{key:"48ff3fcbf41ce24fb959f74d71bcea858702a13d",class:"users-table"},s("caption",{key:"854a089a39b2b5002f931957b90863c8a2f2612c"},this.localResx.UserPermissions),s("thead",{key:"d807e93f1b48ec6ee9c5b72be8f3b1c8806eaa49"},s("tr",{key:"7e8e9b09ff162e742e2c8170f7ad1ee086a1e215"},s("th",{key:"9c54de787b6e1cedba6a0eab6e8d736236ad88d0"},this.localResx.User),this.permissions.permissionDefinitions.map((e=>s("th",null,e.permissionName))),s("th",{key:"6a6a730933492b0ab4dc6c3ae482adf657a3e8b0"}," "))),s("tbody",{key:"95d21c93c57e14e63e3719f25dc96db7a119d1a5"},this.permissions.userPermissions.map((e=>s("tr",null,s("th",null,e.displayName),this.permissions.permissionDefinitions.map((t=>s("td",null,this.renderUserCheckBox(e,t)))),s("td",null,s("button",{onClick:()=>this.removeUser(e)},s("svg",{xmlns:"http://www.w3.org/2000/svg",height:"24px",viewBox:"0 0 24 24",width:"24px",fill:"#000000"},s("path",{d:"M0 0h24v24H0V0z",fill:"none"}),s("path",{d:"M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z"}))))))))))}static get watchers(){return{foundUsers:["handleFoundUsersChanged"],resx:["resxChanged"]}}};n.style=a;export{n as dnn_permissions_grid};
|
|
2
|
+
//# sourceMappingURL=p-0de82dae.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["dnnPermissionsGridCss","DnnPermissionsGridStyle0","DnnPermissionsGrid","this","defaultResx","Add","AllRoles","FilterByGroup","GlobalRoles","Role","RolePermissions","SelectRole","User","UserPermissions","handleFoundUsersChanged","newValue","length","setTimeout","userCollapsible","expanded","resxChanged","mergeResx","componentWillLoad","document","addEventListener","dismissUserResults","bind","disconnectedCallback","removeEventListener","localResx","Object","assign","resx","e","dropdownRect","roleDropDown","getBoundingClientRect","pageX","right","left","pageY","bottom","top","handleRoleGroupChanged","dropdown","index","selectedIndex","value","Number","parseInt","options","selectedRoleGroupId","addRole","roleId","role","roles","filter","r","RoleId","permissions","rolePermissions","default","locked","roleName","RoleName","permissionsChanged","emit","addUser","pickedUser","undefined","userPermissions","displayName","userId","userQuery","getRoles","filteredRoles","some","rp","IsSystemRole","RoleGroupId","renderRoleCheckBox","rolePermission","permissionDefinition","item","permission","permissionId","h","xmlns","height","viewBox","width","fill","d","opacity","checked","allowAccess","class","permissionName","useIntermediate","nextStateHandler","state","handleNextState","onCheckedchange","handleRoleChanged","detail","slot","renderUserCheckBox","userPermission","handleUserChanged","map","newRolePermission","p","fullControl","permissionCode","permissionKey","view","u","newUserPermission","removeRole","removeUser","up","handleQueryChanged","query","foundUsers","userSearchQueryChanged","handleSearchUserFieldKeyDown","key","preventDefault","firstButton","querySelector","focus","handleSearchedUserKeyDown","button","target","nextButton","nextElementSibling","previousButton","previousElementSibling","handleUserPicked","searchedUser","getFilteredUsers","fu","render","Host","tabIndex","focused","onFocus","rolesDropdown","onBlur","blur","ref","el","onChange","selected","roleGroups","roleGroup","id","name","type","onClick","permissionDefinitions","placeholder","debounced","onQueryChanged","onKeyDown"],"sources":["src/components/dnn-permissions-grid/dnn-permissions-grid.scss?tag=dnn-permissions-grid&encapsulation=shadow","src/components/dnn-permissions-grid/dnn-permissions-grid.tsx"],"sourcesContent":[":host {\n display: block;\n}\n\n.add-role-row{\n display: flex;\n gap: 1em;\n align-items: center;\n flex-wrap: wrap;\n label{\n margin-right:0.5em;\n }\n}\n.search-user{\n display: flex;\n gap: 1em;\n margin-top: 1em;\n .search-control{\n position: relative;\n dnn-collapsible{\n position: absolute;\n left: 0;\n top: calc(100% - 2px);\n width: 100%;\n box-shadow: 0px 4px 4px;\n .dropdown{\n background-color: white;\n border: 1px solid lightgray;\n display: flex;\n flex-direction: column;\n button{\n background-color: transparent;\n border: none;\n border-bottom: 1px solid lightgray;\n padding: 0.25em;\n margin: 0;\n text-align: left;\n }\n }\n }\n }\n}\ntable{\n border: 1px solid lightgray;\n border-collapse: collapse;\n margin-top: 1em;\n thead{\n text-align: center;\n tr{\n border-bottom: 1px solid lightgray;\n }\n th{\n background-color: lightgray;\n padding: 0.25em 0.5em;\n &:first-child{\n border-right: 1px solid lightgray;\n }\n }\n }\n tbody{\n tr{\n border-bottom: 1px dotted lightgray;\n th{\n text-align: left;\n border-right: 1px solid lightgray;\n padding: 0 0.5em;\n }\n td{\n text-align: center;\n label{\n .hidden{\n display: none;\n }\n }\n button{\n background-color: transparent;\n border: 0;\n padding: 0;\n margin: 0;\n margin-right: 1em;\n }\n }\n }\n }\n}","import { Component, Host, h, Prop, State, Event, EventEmitter, Watch } from '@stencil/core';\nimport { ILocalization } from './localization-interface';\nimport { IPermissionDefinition, IPermissions, IRolePermission, IUserPermission } from './permissions-interface';\nimport { IRoleGroup } from './role-group-interface';\nimport { IRole } from './role-interface';\nimport { ISearchedUser } from './searched-user-interface';\nimport { CheckedState } from '../dnn-checkbox/types';\n\n@Component({\n tag: 'dnn-permissions-grid',\n styleUrl: 'dnn-permissions-grid.scss',\n shadow: true,\n})\nexport class DnnPermissionsGrid {\n\n /** The list of permissions. */\n @Prop({mutable: true}) permissions!: IPermissions;\n\n /** The list of role groups. */\n @Prop() roleGroups!: IRoleGroup[];\n\n /** The list of possible roles. */\n @Prop() roles!: IRole[];\n\n /** Optionally allows localizing the component strings. */\n @Prop() resx: ILocalization;\n\n /** The list of users to show under the search users field when a search is performed. */\n @Prop() foundUsers: ISearchedUser[] = [];\n\n /** Fires when searching for users to add to the permissions. Emits the search query. */\n @Event() userSearchQueryChanged: EventEmitter<string>;\n \n /** Fires when any permissions have changed, can be used for instance to have linked permissions. */\n @Event() permissionsChanged: EventEmitter<IPermissions>;\n\n @State() selectedRoleGroupId = -1;\n @State() userQuery: string;\n @State() pickedUser: ISearchedUser;\n @State() localResx: ILocalization;\n @State() focused = false;\n \n @Watch(\"foundUsers\")\n handleFoundUsersChanged(newValue: ISearchedUser[]){\n if (newValue?.length > 0){\n setTimeout(() => {\n this.userCollapsible.expanded = true;\n }, 100);\n }\n }\n \n @Watch(\"resx\")\n resxChanged(){\n this.mergeResx();\n }\n \n componentWillLoad() {\n document.addEventListener(\"click\", this.dismissUserResults.bind(this));\n this.mergeResx();\n }\n \n disconnectedCallback() {\n document.removeEventListener(\"click\", this.disconnectedCallback.bind(this));\n }\n \n private roleDropDown: HTMLSelectElement;\n private userCollapsible: HTMLDnnCollapsibleElement;\n private rolesDropdown: HTMLSelectElement;\n private defaultResx: ILocalization = {\n Add: \"Add\",\n AllRoles: \"All Roles\",\n FilterByGroup: \"Filter By Group\",\n GlobalRoles: \"Global Roles\",\n Role: \"Role\",\n RolePermissions: \"Role Permissions\",\n SelectRole: \"Select Role\",\n User: \"User\",\n UserPermissions: \"User Permissions\",\n };\n\n private mergeResx(): void {\n this.localResx = {...this.defaultResx, ...this.resx};\n }\n\n private dismissUserResults(e: MouseEvent){\n const dropdownRect = this.roleDropDown.getBoundingClientRect();\n if (\n e.pageX > dropdownRect.right ||\n e.pageX < dropdownRect.left ||\n e.pageY > dropdownRect.bottom ||\n e.pageY < dropdownRect.top){\n this.userCollapsible.expanded = false;\n }\n } \n\n private handleRoleGroupChanged(dropdown: HTMLSelectElement): void {\n const index = dropdown.selectedIndex;\n const value = Number.parseInt(dropdown.options[index].value);\n this.selectedRoleGroupId = value;\n }\n\n private addRole(): void {\n const roleId = Number.parseInt(this.roleDropDown.options[this.roleDropDown.selectedIndex].value);\n const role = this.roles.filter(r => r.RoleId == roleId)[0];\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions,\n {\n default: false,\n locked: false,\n permissions: [],\n roleId: role.RoleId,\n roleName: role.RoleName,\n }\n ]\n }\n this.permissionsChanged.emit(this.permissions);\n }\n\n private addUser(): void {\n if (this.pickedUser != undefined){\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions,\n {\n displayName: this.pickedUser.displayName,\n permissions: [],\n userId: this.pickedUser.userId,\n },\n ],\n };\n this.pickedUser = undefined;\n this.userQuery = \"\";\n this.permissionsChanged.emit(this.permissions);\n }\n }\n\n private getRoles(){\n const filteredRoles = this.roles.filter(role => \n !this.permissions.rolePermissions.some(rp => rp.roleId == role.RoleId))\n if (this.selectedRoleGroupId == -2){\n // All Roles\n return filteredRoles;\n }\n\n if (this.selectedRoleGroupId == -1){\n // Global Roles\n return filteredRoles.filter(role => role.IsSystemRole);\n }\n \n return filteredRoles.filter(role => role.RoleGroupId == this.selectedRoleGroupId);\n }\n\n private renderRoleCheckBox(rolePermission: IRolePermission, permissionDefinition: IPermissionDefinition) {\n const item = rolePermission.permissions.filter(permission => permission.permissionId == permissionDefinition.permissionId)[0];\n if (rolePermission.locked){\n return(\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><g fill=\"none\"><path d=\"M0 0h24v24H0V0z\"/><path d=\"M0 0h24v24H0V0z\" opacity=\".87\"/></g><path d=\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"/></svg>\n )\n }\n\n const checked = item == undefined ? \"intermediate\" : item.allowAccess ? \"checked\" : \"unchecked\";\n return(\n <label>\n <span class=\"hidden\">{permissionDefinition.permissionName}</span>\n <dnn-checkbox\n useIntermediate\n nextStateHandler={state => this.handleNextState(state)}\n checked={checked}\n onCheckedchange={e => this.handleRoleChanged(e.detail, rolePermission, permissionDefinition)}\n >\n <div slot=\"intermediateicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"/></svg>\n </div>\n <div slot=\"uncheckedicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z\"/></svg>\n </div>\n </dnn-checkbox>\n </label>\n )\n }\n\n private renderUserCheckBox(userPermission: IUserPermission, permissionDefinition: IPermissionDefinition) {\n const item = userPermission.permissions.filter(permission => permission.permissionId == permissionDefinition.permissionId)[0];\n\n const checked = item == undefined ? \"intermediate\" : item.allowAccess ? \"checked\" : \"unchecked\";\n return(\n <label>\n <span class=\"hidden\">{permissionDefinition.permissionName}</span>\n <dnn-checkbox\n useIntermediate\n nextStateHandler={state => this.handleNextState(state)}\n checked={checked}\n onCheckedchange={e => this.handleUserChanged(e.detail, userPermission, permissionDefinition)}\n >\n <div slot=\"intermediateicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"/></svg>\n </div>\n <div slot=\"uncheckedicon\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z\"/></svg>\n </div>\n </dnn-checkbox>\n </label>\n )\n }\n \n private handleNextState(state: string): CheckedState {\n switch (state) {\n case \"checked\":\n return \"unchecked\";\n case \"unchecked\":\n return \"intermediate\";\n default:\n return \"checked\";\n }\n }\n \n private handleRoleChanged(\n checked: \"checked\" | \"unchecked\" | \"intermediate\",\n rolePermission: IRolePermission,\n permissionDefinition: IPermissionDefinition\n ): void {\n switch (checked) {\n case \"unchecked\":\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions.map(r => {\n if (r.roleId != rolePermission.roleId){\n return r;\n }\n\n const newRolePermission = Object.assign({}, r);\n newRolePermission.permissions = [\n ...newRolePermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n {\n allowAccess: false,\n fullControl: false,\n permissionCode: permissionDefinition.permissionCode,\n permissionId: permissionDefinition.permissionId,\n permissionKey: permissionDefinition.permissionKey,\n permissionName: permissionDefinition.permissionName,\n view: false,\n },\n ];\n return newRolePermission;\n }),\n ],\n };\n break;\n case \"checked\":\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions.map(r => {\n if (r.roleId != rolePermission.roleId){\n return r;\n }\n\n const newRolePermission = Object.assign({}, r);\n newRolePermission.permissions = [\n ...newRolePermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n {\n allowAccess: true,\n fullControl: false,\n permissionCode: permissionDefinition.permissionCode,\n permissionId: permissionDefinition.permissionId,\n permissionKey: permissionDefinition.permissionKey,\n permissionName: permissionDefinition.permissionName,\n view: false,\n },\n ];\n return newRolePermission;\n }),\n ],\n };\n break;\n case \"intermediate\":\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions.map(r => {\n if (r.roleId != rolePermission.roleId){\n return r;\n }\n\n const newRolePermission = Object.assign({}, r);\n newRolePermission.permissions = [\n ...newRolePermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n ];\n return newRolePermission;\n }),\n ],\n };\n break;\n default:\n break;\n }\n this.permissionsChanged.emit(this.permissions);\n }\n\n private handleUserChanged(\n checked: CheckedState,\n userPermission: IUserPermission,\n permissionDefinition: IPermissionDefinition\n ): void {\n switch (checked) {\n case \"unchecked\":\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions.map(u => {\n if (u.userId != userPermission.userId){\n return u;\n }\n\n const newUserPermission = Object.assign({}, u);\n newUserPermission.permissions = [\n ...newUserPermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n {\n allowAccess: false,\n fullControl: false,\n permissionCode: permissionDefinition.permissionCode,\n permissionId: permissionDefinition.permissionId,\n permissionKey: permissionDefinition.permissionKey,\n permissionName: permissionDefinition.permissionName,\n view: false,\n },\n ];\n return newUserPermission;\n }),\n ],\n };\n break;\n case \"checked\":\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions.map(u => {\n if (u.userId != userPermission.userId){\n return u;\n }\n\n const newUserPermission = Object.assign({}, u);\n newUserPermission.permissions = [\n ...newUserPermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n {\n allowAccess: true,\n fullControl: false,\n permissionCode: permissionDefinition.permissionCode,\n permissionId: permissionDefinition.permissionId,\n permissionKey: permissionDefinition.permissionKey,\n permissionName: permissionDefinition.permissionName,\n view: false,\n },\n ];\n return newUserPermission;\n }),\n ],\n };\n break;\n case \"intermediate\":\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions.map(u => {\n if (u.userId != userPermission.userId){\n return u;\n }\n\n const newUserPermission = Object.assign({}, u);\n newUserPermission.permissions = [\n ...newUserPermission.permissions.filter(p => p.permissionId != permissionDefinition.permissionId),\n ];\n return newUserPermission;\n }),\n ],\n };\n break;\n default:\n break;\n }\n this.permissionsChanged.emit(this.permissions);\n }\n\n private removeRole(rolePermission: IRolePermission): void {\n this.permissions = {\n ...this.permissions,\n rolePermissions: [\n ...this.permissions.rolePermissions.filter(rp => rp.roleId != rolePermission.roleId),\n ],\n };\n this.permissionsChanged.emit();\n }\n\n private removeUser(userPermission: IUserPermission): void {\n this.permissions = {\n ...this.permissions,\n userPermissions: [\n ...this.permissions.userPermissions.filter(up => up.userId != userPermission.userId),\n ]\n };\n this.permissionsChanged.emit(this.permissions);\n }\n\n private handleQueryChanged(query: string): void {\n this.userQuery = query;\n if (query == undefined || query.length == 0){\n this.userCollapsible.expanded = false;\n this.pickedUser = undefined;\n this.foundUsers = [];\n return;\n }\n this.userSearchQueryChanged.emit(query);\n }\n\n private handleSearchUserFieldKeyDown(e: KeyboardEvent): void {\n if (e.key != \"ArrowDown\"){\n return;\n }\n\n e.preventDefault();\n const firstButton = this.userCollapsible.querySelector(\"button\");\n if (firstButton != undefined){\n firstButton.focus();\n }\n }\n\n private handleSearchedUserKeyDown(e: KeyboardEvent): void {\n const button = e.target as HTMLButtonElement;\n \n switch(e.key) {\n case \"ArrowDown\":\n e.preventDefault();\n const nextButton = button.nextElementSibling as HTMLButtonElement;\n nextButton?.focus();\n break;\n case \"ArrowUp\":\n e.preventDefault();\n const previousButton = button.previousElementSibling as HTMLButtonElement;\n previousButton?.focus();\n break;\n default:\n break;\n }\n }\n\n private handleUserPicked(searchedUser: ISearchedUser): void {\n this.userQuery = searchedUser.displayName;\n this.pickedUser = searchedUser;\n }\n\n private getFilteredUsers() {\n return this.foundUsers.filter(fu => !this.permissions.userPermissions.some(up => up.userId == fu.userId))\n }\n \n render() {\n const filteredRoles = this.getRoles();\n return (\n <Host\n tabIndex={this.focused ? -1 : 0}\n onFocus={() => this.rolesDropdown.focus()}\n onBlur={() => this.rolesDropdown.blur()}\n >\n <div class=\"add-role-row\">\n <div class=\"dropdown\">\n <label>{this.localResx.FilterByGroup} :</label>\n <select\n ref={el => this.rolesDropdown = el}\n onChange={e => this.handleRoleGroupChanged(e.target as HTMLSelectElement)}\n onFocus={() => this.focused = true}\n onBlur={() => this.focused = false}\n >\n <option\n value={-2}\n selected={this.selectedRoleGroupId == -2}\n >\n {this.localResx.AllRoles}\n </option>\n <option\n value={-1}\n selected={this.selectedRoleGroupId == -1}\n >\n {this.localResx.GlobalRoles}\n </option>\n {this.roleGroups.map(roleGroup =>\n <option\n value={roleGroup.id}\n selected={this.selectedRoleGroupId == roleGroup.id}\n >\n {roleGroup.name}\n </option>\n )}\n </select>\n </div>\n {filteredRoles && filteredRoles.length > 0 && [\n <div class=\"dropdown\">\n <label>{this.localResx.SelectRole} :</label>\n <select ref={el => this.roleDropDown = el}>\n {this.getRoles().map(role =>\n <option value={role.RoleId}\n >\n {role.RoleName}\n </option>\n )}\n </select>\n </div>,\n <dnn-button\n type=\"primary\"\n onClick={() => this.addRole()}\n >\n {this.localResx.Add}\n </dnn-button>\n ]\n }\n </div>\n <table class=\"roles-table\">\n <caption>{this.localResx.RolePermissions}</caption>\n <thead>\n <tr>\n <th>{this.localResx.Role}</th>\n {this.permissions.permissionDefinitions.map(permissionDefinition =>\n <th>{permissionDefinition.permissionName}</th>\n )}\n <th> </th>\n </tr>\n </thead>\n <tbody>\n {this.permissions.rolePermissions.map(rolePermission =>\n <tr>\n <th>{rolePermission.roleName}</th>\n {this.permissions.permissionDefinitions.map(permissionDefinition =>\n <td>\n {this.renderRoleCheckBox(rolePermission, permissionDefinition)}\n </td>\n )}\n <td>\n {!rolePermission.default &&\n <button\n onClick={() => this.removeRole(rolePermission)}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"/></svg>\n </button>\n }\n </td>\n </tr>\n )}\n </tbody>\n </table>\n <div class=\"search-user\">\n <div class=\"search-control\">\n <dnn-searchbox\n placeholder={this.localResx.User}\n debounced\n onQueryChanged={e => this.handleQueryChanged(e.detail)}\n onKeyDown={e => this.handleSearchUserFieldKeyDown(e)}\n query={this.userQuery}\n />\n <dnn-collapsible ref={el => this.userCollapsible = el}>\n <div class=\"dropdown\">\n {this.getFilteredUsers().map(searchedUser =>\n <button\n onKeyDown={e => this.handleSearchedUserKeyDown(e)}\n onClick={() => this.handleUserPicked(searchedUser)}\n >\n {searchedUser.displayName}\n </button>\n )}\n </div>\n </dnn-collapsible>\n </div>\n {this.pickedUser &&\n <dnn-button\n onClick={() => this.addUser()}\n >\n {this.localResx.Add}\n </dnn-button>\n }\n </div>\n {this.permissions.userPermissions && this.permissions.userPermissions.length > 0 &&\n <table class=\"users-table\">\n <caption>{this.localResx.UserPermissions}</caption>\n <thead>\n <tr>\n <th>{this.localResx.User}</th>\n {this.permissions.permissionDefinitions.map(permissionDefinition =>\n <th>{permissionDefinition.permissionName}</th>\n )}\n <th> </th>\n </tr>\n </thead>\n <tbody>\n {this.permissions.userPermissions.map(userPermission =>\n <tr>\n <th>{userPermission.displayName}</th>\n {this.permissions.permissionDefinitions.map(permissionDefinition =>\n <td>\n {this.renderUserCheckBox(userPermission, permissionDefinition)}\n </td>\n )}\n <td>\n <button\n onClick={() => this.removeUser(userPermission)}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 0 24 24\" width=\"24px\" fill=\"#000000\"><path d=\"M0 0h24v24H0V0z\" fill=\"none\"/><path d=\"M14.59 8L12 10.59 9.41 8 8 9.41 10.59 12 8 14.59 9.41 16 12 13.41 14.59 16 16 14.59 13.41 12 16 9.41 14.59 8zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\"/></svg>\n </button>\n </td>\n </tr>\n )}\n </tbody>\n </table>\n }\n </Host>\n );\n }\n}"],"mappings":"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","ignoreList":[]}
|