@alfresco/adf-content-services
Version:
Alfresco ADF content services
102 lines • 12.5 kB
JavaScript
/*!
* @license
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { DestroyRef, Directive, HostListener, inject, Input, NgZone } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { NodeEntry, NodesApi } from '@alfresco/js-api';
import { ShareDialogComponent } from './content-node-share.dialog';
import { from } from 'rxjs';
import { AlfrescoApiService } from '../services/alfresco-api.service';
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
import * as i0 from "@angular/core";
import * as i1 from "@angular/material/dialog";
import * as i2 from "../services/alfresco-api.service";
export class NodeSharedDirective {
get nodesApi() {
this._nodesApi = this._nodesApi ?? new NodesApi(this.alfrescoApiService.getInstance());
return this._nodesApi;
}
constructor(dialog, zone, alfrescoApiService) {
this.dialog = dialog;
this.zone = zone;
this.alfrescoApiService = alfrescoApiService;
this.isFile = false;
this.isShared = false;
this.destroyRef = inject(DestroyRef);
}
shareNode(nodeEntry) {
if (nodeEntry?.entry?.isFile) {
// shared and favorite
const nodeId = nodeEntry.entry['nodeId'] || nodeEntry.entry['guid'];
if (nodeId) {
this.getNodeInfo(nodeId).subscribe((node) => {
this.openShareLinkDialog(node);
});
}
else {
this.openShareLinkDialog(nodeEntry);
}
}
}
getNodeInfo(nodeId) {
const options = {
include: ['allowableOperations']
};
return from(this.nodesApi.getNode(nodeId, options));
}
openShareLinkDialog(node) {
this.dialog.open(ShareDialogComponent, {
width: '600px',
panelClass: 'adf-share-link-dialog',
data: {
node,
baseShareUrl: this.baseShareUrl
}
});
}
ngOnChanges() {
this.zone.onStable.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => {
if (this.node?.entry) {
this.isFile = this.node.entry.isFile;
this.isShared = this.node.entry.properties ? this.node.entry.properties['qshare:sharedId'] : false;
}
});
}
onClick() {
if (this.node) {
this.shareNode(this.node);
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NodeSharedDirective, deps: [{ token: i1.MatDialog }, { token: i0.NgZone }, { token: i2.AlfrescoApiService }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.3", type: NodeSharedDirective, isStandalone: true, selector: "[adf-share]", inputs: { node: ["adf-share", "node"], baseShareUrl: "baseShareUrl" }, host: { listeners: { "click": "onClick()" } }, exportAs: ["adfShare"], usesOnChanges: true, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NodeSharedDirective, decorators: [{
type: Directive,
args: [{
selector: '[adf-share]',
standalone: true,
exportAs: 'adfShare'
}]
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: i0.NgZone }, { type: i2.AlfrescoApiService }], propDecorators: { node: [{
type: Input,
args: ['adf-share']
}], baseShareUrl: [{
type: Input
}], onClick: [{
type: HostListener,
args: ['click']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1ub2RlLXNoYXJlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvY29udGVudC1ub2RlLXNoYXJlL2NvbnRlbnQtbm9kZS1zaGFyZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxJQUFJLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDeEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7QUFPaEUsTUFBTSxPQUFPLG1CQUFtQjtJQWU1QixJQUFJLFFBQVE7UUFDUixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDdkYsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFJRCxZQUFvQixNQUFpQixFQUFVLElBQVksRUFBVSxrQkFBc0M7UUFBdkYsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUFVLFNBQUksR0FBSixJQUFJLENBQVE7UUFBVSx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBckIzRyxXQUFNLEdBQVksS0FBSyxDQUFDO1FBQ3hCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFrQlQsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUU2RCxDQUFDO0lBQy9HLFNBQVMsQ0FBQyxTQUFvQjtRQUMxQixJQUFJLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDM0Isc0JBQXNCO1lBQ3RCLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUVwRSxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNULElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ3hDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxNQUFjO1FBQzlCLE1BQU0sT0FBTyxHQUFHO1lBQ1osT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7U0FDbkMsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxJQUFlO1FBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQ25DLEtBQUssRUFBRSxPQUFPO1lBQ2QsVUFBVSxFQUFFLHVCQUF1QjtZQUNuQyxJQUFJLEVBQUU7Z0JBQ0YsSUFBSTtnQkFDSixZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVk7YUFDbEM7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3hFLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ3ZHLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFHRCxPQUFPO1FBQ0gsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0wsQ0FBQzs4R0F2RVEsbUJBQW1CO2tHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBTC9CLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsVUFBVTtpQkFDdkI7b0lBUUcsSUFBSTtzQkFESCxLQUFLO3VCQUFDLFdBQVc7Z0JBS2xCLFlBQVk7c0JBRFgsS0FBSztnQkF5RE4sT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IERlc3Ryb3lSZWYsIERpcmVjdGl2ZSwgSG9zdExpc3RlbmVyLCBpbmplY3QsIElucHV0LCBOZ1pvbmUsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE5vZGVFbnRyeSwgTm9kZXNBcGkgfSBmcm9tICdAYWxmcmVzY28vanMtYXBpJztcblxuaW1wb3J0IHsgU2hhcmVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2NvbnRlbnQtbm9kZS1zaGFyZS5kaWFsb2cnO1xuaW1wb3J0IHsgZnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWxmcmVzY29BcGlTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYWxmcmVzY28tYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1thZGYtc2hhcmVdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGV4cG9ydEFzOiAnYWRmU2hhcmUnXG59KVxuZXhwb3J0IGNsYXNzIE5vZGVTaGFyZWREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICAgIGlzRmlsZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGlzU2hhcmVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICAvKiogTm9kZSB0byBzaGFyZS4gKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICAgIEBJbnB1dCgnYWRmLXNoYXJlJylcbiAgICBub2RlOiBOb2RlRW50cnk7XG5cbiAgICAvKiogUHJlZml4IHRvIGFkZCB0byB0aGUgZ2VuZXJhdGVkIGxpbmsuICovXG4gICAgQElucHV0KClcbiAgICBiYXNlU2hhcmVVcmw6IHN0cmluZztcblxuXG4gICAgX25vZGVzQXBpOiBOb2Rlc0FwaTtcbiAgICBnZXQgbm9kZXNBcGkoKTogTm9kZXNBcGkge1xuICAgICAgICB0aGlzLl9ub2Rlc0FwaSA9IHRoaXMuX25vZGVzQXBpID8/IG5ldyBOb2Rlc0FwaSh0aGlzLmFsZnJlc2NvQXBpU2VydmljZS5nZXRJbnN0YW5jZSgpKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25vZGVzQXBpO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csIHByaXZhdGUgem9uZTogTmdab25lLCBwcml2YXRlIGFsZnJlc2NvQXBpU2VydmljZTogQWxmcmVzY29BcGlTZXJ2aWNlKSB7fVxuICAgIHNoYXJlTm9kZShub2RlRW50cnk6IE5vZGVFbnRyeSkge1xuICAgICAgICBpZiAobm9kZUVudHJ5Py5lbnRyeT8uaXNGaWxlKSB7XG4gICAgICAgICAgICAvLyBzaGFyZWQgYW5kIGZhdm9yaXRlXG4gICAgICAgICAgICBjb25zdCBub2RlSWQgPSBub2RlRW50cnkuZW50cnlbJ25vZGVJZCddIHx8IG5vZGVFbnRyeS5lbnRyeVsnZ3VpZCddO1xuXG4gICAgICAgICAgICBpZiAobm9kZUlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXROb2RlSW5mbyhub2RlSWQpLnN1YnNjcmliZSgobm9kZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLm9wZW5TaGFyZUxpbmtEaWFsb2cobm9kZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMub3BlblNoYXJlTGlua0RpYWxvZyhub2RlRW50cnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXROb2RlSW5mbyhub2RlSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Tm9kZUVudHJ5PiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBpbmNsdWRlOiBbJ2FsbG93YWJsZU9wZXJhdGlvbnMnXVxuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBmcm9tKHRoaXMubm9kZXNBcGkuZ2V0Tm9kZShub2RlSWQsIG9wdGlvbnMpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG9wZW5TaGFyZUxpbmtEaWFsb2cobm9kZTogTm9kZUVudHJ5KSB7XG4gICAgICAgIHRoaXMuZGlhbG9nLm9wZW4oU2hhcmVEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgIHdpZHRoOiAnNjAwcHgnLFxuICAgICAgICAgICAgcGFuZWxDbGFzczogJ2FkZi1zaGFyZS1saW5rLWRpYWxvZycsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgICAgICBiYXNlU2hhcmVVcmw6IHRoaXMuYmFzZVNoYXJlVXJsXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLnpvbmUub25TdGFibGUucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLm5vZGU/LmVudHJ5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0ZpbGUgPSB0aGlzLm5vZGUuZW50cnkuaXNGaWxlO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNTaGFyZWQgPSB0aGlzLm5vZGUuZW50cnkucHJvcGVydGllcyA/IHRoaXMubm9kZS5lbnRyeS5wcm9wZXJ0aWVzWydxc2hhcmU6c2hhcmVkSWQnXSA6IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgb25DbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMubm9kZSkge1xuICAgICAgICAgICAgdGhpcy5zaGFyZU5vZGUodGhpcy5ub2RlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==