@rolatech/angular-components 17.2.19 → 17.2.20

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.
@@ -75,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
75
75
  type: HostBinding,
76
76
  args: ['class.rolatech-app-layout']
77
77
  }] } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2FwcC1sYXlvdXQvYXBwLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2FwcC1sYXlvdXQvYXBwLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUdYLFdBQVcsRUFFWCxTQUFTLEVBRVQsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQVEsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFr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eUIsUUFBUTtzQkFBakQsV0FBVzt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgUExBVEZPUk1fSUQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb250ZW50Q2hpbGQsXG4gIGluamVjdCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0U2lkZW5hdiwgTWF0U2lkZW5hdk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgTWF0TGlzdE1vZHVsZSwgTWF0TmF2TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xpc3QnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgUm91dGVyTGluaywgUm91dGVyT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFwcENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gJy4uL2FwcC1jb250YWluZXIvYXBwLWNvbnRhaW5lci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwQ29udGFpbmVyQ29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL2FwcC1jb250YWluZXItY29udGVudC9hcHAtY29udGFpbmVyLWNvbnRlbnQuY29tcG9uZW50JztcbmltcG9ydCB7IFRvcGJhckNvbXBvbmVudCB9IGZyb20gJy4uL3RvcGJhci90b3BiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcERyYXdlckNvbXBvbmVudCwgTElOSyB9IGZyb20gJy4uL2FwcC1kcmF3ZXIvYXBwLWRyYXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlciwgQnJlYWtwb2ludHMgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBUFBfTEFZT1VUIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXInO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtYXBwLWxheW91dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUm91dGVyTGluayxcbiAgICBSb3V0ZXJPdXRsZXQsXG4gICAgQXBwQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEFwcENvbnRhaW5lckNvbnRlbnRDb21wb25lbnQsXG4gICAgTWF0TGlzdE1vZHVsZSxcbiAgICBNYXROYXZMaXN0LFxuICAgIE1hdFNpZGVuYXYsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEljb25Nb2R1bGUsXG4gICAgTWF0U2lkZW5hdk1vZHVsZSxcbiAgICBUb3BiYXJDb21wb25lbnQsXG4gICAgQXBwRHJhd2VyQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vYXBwLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9hcHAtbGF5b3V0LmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEFwcExheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBIb3N0QmluZGluZygnaWQnKSBob3N0SWQgPSAncm9sYXRlY2gtYXBwLWxheW91dCc7XG4gIEBIb3N0QmluZGluZygnY2xhc3Mucm9sYXRlY2gtYXBwLWxheW91dCcpIGhhc0NsYXNzID0gdHJ1ZTtcbiAgYXBwTGF5b3V0ID0gaW5qZWN0KEFQUF9MQVlPVVQpO1xuICB0b3BiYXIgPSBjb250ZW50Q2hpbGQucmVxdWlyZWQoVG9wYmFyQ29tcG9uZW50KTtcbiAgZHJhd2VyID0gY29udGVudENoaWxkLnJlcXVpcmVkKEFwcERyYXdlckNvbXBvbmVudCk7XG4gIGVsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICBwbGF0Zm9ybUlkID0gaW5qZWN0KFBMQVRGT1JNX0lEKTtcbiAgYnJlYWtwb2ludE9ic2VydmVyID0gaW5qZWN0KEJyZWFrcG9pbnRPYnNlcnZlcik7XG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLnRvcGJhcigpKSB7XG4gICAgICB0aGlzLnRvcGJhcigpLnBlcnNpc3RlbnQgPSB0aGlzLmFwcExheW91dC5wZXJzaXN0ZW50O1xuICAgICAgdGhpcy50b3BiYXIoKS5hcHBEcmF3ZXIgPSB0aGlzLmRyYXdlcigpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kcmF3ZXIoKSkge1xuICAgICAgdGhpcy5kcmF3ZXIoKS5wZXJzaXN0ZW50ID0gdGhpcy5hcHBMYXlvdXQucGVyc2lzdGVudDtcbiAgICB9XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyXG4gICAgICAgIC5vYnNlcnZlKEJyZWFrcG9pbnRzLkhhbmRzZXQpXG4gICAgICAgIC5waXBlKG1hcCgocmVzdWx0KSA9PiByZXN1bHQubWF0Y2hlcykpXG4gICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAncGVyc2lzdGVudCcpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAncGVyc2lzdGVudCcsICcnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG4gIH1cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge31cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cInJvbGF0ZWNoLXRvcGJhclwiPjwvbmctY29udGVudD5cbjxuZy1jb250ZW50IHNlbGVjdD1cInJvbGF0ZWNoLWFwcC1kcmF3ZXJcIj48L25nLWNvbnRlbnQ+XG48bmctY29udGVudCBzZWxlY3Q9XCJyb2xhdGVjaC1hcHAtcGFnZVwiPjwvbmctY29udGVudD5cbjxkaXYgY2xhc3M9XCJmbGV4LTFcIj48L2Rpdj5cbjxuZy1jb250ZW50IHNlbGVjdD1cInJvbGF0ZWNoLWFwcC1mb290ZXJcIj48L25nLWNvbnRlbnQ+XG4iXX0=
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2FwcC1sYXlvdXQvYXBwLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL2FwcC1sYXlvdXQvYXBwLWxheW91dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUVYLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFlBQVksRUFDWixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsa0JBQWtCLEVBQVEsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFr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eUIsUUFBUTtzQkFBakQsV0FBVzt1QkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgT25Jbml0LFxuICBQTEFURk9STV9JRCxcbiAgUmVuZGVyZXIyLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgY29udGVudENoaWxkLFxuICBpbmplY3QsXG4gIHZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdFNpZGVuYXYsIE1hdFNpZGVuYXZNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IE1hdExpc3RNb2R1bGUsIE1hdE5hdkxpc3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9saXN0JztcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcbmltcG9ydCB7IFJvdXRlckxpbmssIFJvdXRlck91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBcHBDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9hcHAtY29udGFpbmVyL2FwcC1jb250YWluZXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcENvbnRhaW5lckNvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9hcHAtY29udGFpbmVyLWNvbnRlbnQvYXBwLWNvbnRhaW5lci1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb3BiYXJDb21wb25lbnQgfSBmcm9tICcuLi90b3BiYXIvdG9wYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBEcmF3ZXJDb21wb25lbnQsIExJTksgfSBmcm9tICcuLi9hcHAtZHJhd2VyL2FwcC1kcmF3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIsIEJyZWFrcG9pbnRzIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVBQX0xBWU9VVCB9IGZyb20gJy4uLy4uL3Byb3ZpZGVyJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLWFwcC1sYXlvdXQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJvdXRlckxpbmssXG4gICAgUm91dGVyT3V0bGV0LFxuICAgIEFwcENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBBcHBDb250YWluZXJDb250ZW50Q29tcG9uZW50LFxuICAgIE1hdExpc3RNb2R1bGUsXG4gICAgTWF0TmF2TGlzdCxcbiAgICBNYXRTaWRlbmF2LFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFNpZGVuYXZNb2R1bGUsXG4gICAgVG9wYmFyQ29tcG9uZW50LFxuICAgIEFwcERyYXdlckNvbXBvbmVudCxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcC1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYXBwLWxheW91dC5jb21wb25lbnQuc2NzcycsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBBcHBMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyQ29udGVudEluaXQge1xuICBASG9zdEJpbmRpbmcoJ2lkJykgaG9zdElkID0gJ3JvbGF0ZWNoLWFwcC1sYXlvdXQnO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnJvbGF0ZWNoLWFwcC1sYXlvdXQnKSBoYXNDbGFzcyA9IHRydWU7XG4gIGFwcExheW91dCA9IGluamVjdChBUFBfTEFZT1VUKTtcbiAgdG9wYmFyID0gY29udGVudENoaWxkLnJlcXVpcmVkKFRvcGJhckNvbXBvbmVudCk7XG4gIGRyYXdlciA9IGNvbnRlbnRDaGlsZC5yZXF1aXJlZChBcHBEcmF3ZXJDb21wb25lbnQpO1xuICBlbCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcGxhdGZvcm1JZCA9IGluamVjdChQTEFURk9STV9JRCk7XG4gIGJyZWFrcG9pbnRPYnNlcnZlciA9IGluamVjdChCcmVha3BvaW50T2JzZXJ2ZXIpO1xuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAodGhpcy50b3BiYXIoKSkge1xuICAgICAgdGhpcy50b3BiYXIoKS5wZXJzaXN0ZW50ID0gdGhpcy5hcHBMYXlvdXQucGVyc2lzdGVudDtcbiAgICAgIHRoaXMudG9wYmFyKCkuYXBwRHJhd2VyID0gdGhpcy5kcmF3ZXIoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZHJhd2VyKCkpIHtcbiAgICAgIHRoaXMuZHJhd2VyKCkucGVyc2lzdGVudCA9IHRoaXMuYXBwTGF5b3V0LnBlcnNpc3RlbnQ7XG4gICAgfVxuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclxuICAgICAgICAub2JzZXJ2ZShCcmVha3BvaW50cy5IYW5kc2V0KVxuICAgICAgICAucGlwZShtYXAoKHJlc3VsdCkgPT4gcmVzdWx0Lm1hdGNoZXMpKVxuICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICBuZXh0OiAocmVzKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3BlcnNpc3RlbnQnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ3BlcnNpc3RlbnQnLCAnJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHt9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJyb2xhdGVjaC10b3BiYXJcIj48L25nLWNvbnRlbnQ+XG48bmctY29udGVudCBzZWxlY3Q9XCJyb2xhdGVjaC1hcHAtZHJhd2VyXCI+PC9uZy1jb250ZW50PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwicm9sYXRlY2gtYXBwLXBhZ2VcIj48L25nLWNvbnRlbnQ+XG48ZGl2IGNsYXNzPVwiZmxleC0xXCI+PC9kaXY+XG48bmctY29udGVudCBzZWxlY3Q9XCJyb2xhdGVjaC1hcHAtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuIl19
@@ -1,12 +1,14 @@
1
- import { Component, computed, input } from '@angular/core';
1
+ import { Component, computed, inject, input } from '@angular/core';
2
2
  import { MatIconModule } from '@angular/material/icon';
3
3
  import { MatMenuModule } from '@angular/material/menu';
4
+ import { APP_CONFIG } from '@rolatech/angular-common';
4
5
  import * as i0 from "@angular/core";
5
6
  import * as i1 from "@angular/material/menu";
6
7
  import * as i2 from "@angular/material/icon";
7
8
  export class MenuUserComponent {
9
+ environment = inject(APP_CONFIG);
10
+ myaccountUrl = this.environment.myaccountUrl;
8
11
  user = input();
9
- myaccountUrl = input();
10
12
  avatar = computed(() => {
11
13
  return this.user().avatar;
12
14
  });
@@ -16,10 +18,10 @@ export class MenuUserComponent {
16
18
  // });
17
19
  }
18
20
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MenuUserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", type: MenuUserComponent, isStandalone: true, selector: "rolatech-menu-user", inputs: { user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: false, transformFunction: null }, myaccountUrl: { classPropertyName: "myaccountUrl", publicName: "myaccountUrl", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"min-w-[256px]\">\n @if (user()) {\n <div class=\"px-6 py-3\">\n <div class=\"flex flex-row items-center\">\n <div class=\"mr-3 w-14 h-14 rounded-full bg-orange-600\">\n @if (user().avatar) {\n <img [src]=\"user().avatar\" class=\"w-14 h-14 object-cover rounded-full\" />\n }\n </div>\n <div class=\"flex flex-col\">\n <div>\n <div class=\"text-lg font-bold\">{{ user().name }}</div>\n <div class=\"formated-string\">\n <span>&#64;{{ user().username }}</span>\n </div>\n </div>\n </div>\n </div>\n <!-- <div class=\"flex\">\n <a\n [href]=\"myaccountUrl\"\n target=\"_blank\"\n class=\"text-sm my-2 p-1 px-6 ml-24 rounded border border-gray-300 hover:bg-gray-200\"\n >\u7528\u6237\u4E2D\u5FC3</a\n >\n </div> -->\n </div>\n }\n\n <div class=\"flex justify-between items-center\">\n <a mat-menu-item [href]=\"myaccountUrl\" target=\"_blank\" class=\"px-6\">\n <span class=\"flex justify-between items-center\">\n <span class=\"pl-2\"> \u7528\u6237\u4E2D\u5FC3 </span>\n <span class=\"flex\"> <mat-icon>open_in_new</mat-icon></span>\n </span>\n </a>\n </div>\n</div>\n", styles: [".formated-string{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}\n"], dependencies: [{ kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
21
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", type: MenuUserComponent, isStandalone: true, selector: "rolatech-menu-user", inputs: { user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"min-w-[256px]\">\n @if (user()) {\n <div class=\"px-6 py-3\">\n <div class=\"flex flex-row items-center\">\n <div class=\"mr-3 w-14 h-14 rounded-full bg-orange-600\">\n @if (user().avatar) {\n <img [src]=\"user().avatar\" class=\"w-14 h-14 object-cover rounded-full\" />\n }\n </div>\n <div class=\"flex flex-col\">\n <div>\n <div class=\"text-lg font-bold\">{{ user().name }}</div>\n <div class=\"formated-string\">\n <span>&#64;{{ user().username }}</span>\n </div>\n </div>\n </div>\n </div>\n <!-- <div class=\"flex\">\n <a\n [href]=\"myaccountUrl\"\n target=\"_blank\"\n class=\"text-sm my-2 p-1 px-6 ml-24 rounded border border-gray-300 hover:bg-gray-200\"\n >\u7528\u6237\u4E2D\u5FC3</a\n >\n </div> -->\n </div>\n }\n\n <div class=\"flex justify-between items-center\">\n <a mat-menu-item [href]=\"myaccountUrl\" target=\"_blank\" class=\"px-6\">\n <span class=\"flex justify-between items-center\">\n <span class=\"pl-2\"> \u7528\u6237\u4E2D\u5FC3 </span>\n <span class=\"flex\"> <mat-icon>open_in_new</mat-icon></span>\n </span>\n </a>\n </div>\n</div>\n", styles: [".formated-string{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}\n"], dependencies: [{ kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
20
22
  }
21
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MenuUserComponent, decorators: [{
22
24
  type: Component,
23
25
  args: [{ standalone: true, imports: [MatMenuModule, MatIconModule], selector: 'rolatech-menu-user', template: "<div class=\"min-w-[256px]\">\n @if (user()) {\n <div class=\"px-6 py-3\">\n <div class=\"flex flex-row items-center\">\n <div class=\"mr-3 w-14 h-14 rounded-full bg-orange-600\">\n @if (user().avatar) {\n <img [src]=\"user().avatar\" class=\"w-14 h-14 object-cover rounded-full\" />\n }\n </div>\n <div class=\"flex flex-col\">\n <div>\n <div class=\"text-lg font-bold\">{{ user().name }}</div>\n <div class=\"formated-string\">\n <span>&#64;{{ user().username }}</span>\n </div>\n </div>\n </div>\n </div>\n <!-- <div class=\"flex\">\n <a\n [href]=\"myaccountUrl\"\n target=\"_blank\"\n class=\"text-sm my-2 p-1 px-6 ml-24 rounded border border-gray-300 hover:bg-gray-200\"\n >\u7528\u6237\u4E2D\u5FC3</a\n >\n </div> -->\n </div>\n }\n\n <div class=\"flex justify-between items-center\">\n <a mat-menu-item [href]=\"myaccountUrl\" target=\"_blank\" class=\"px-6\">\n <span class=\"flex justify-between items-center\">\n <span class=\"pl-2\"> \u7528\u6237\u4E2D\u5FC3 </span>\n <span class=\"flex\"> <mat-icon>open_in_new</mat-icon></span>\n </span>\n </a>\n </div>\n</div>\n", styles: [".formated-string{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}\n"] }]
24
26
  }], ctorParameters: () => [] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS11c2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvbWVudS11c2VyL21lbnUtdXNlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL21lbnUtdXNlci9tZW51LXVzZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFjdkQsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixJQUFJLEdBQUcsS0FBSyxFQUFrQixDQUFDO0lBQy9CLFlBQVksR0FBRyxLQUFLLEVBQVUsQ0FBQztJQUMvQixNQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUNyQixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUM7SUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDSDtRQUNFLGlCQUFpQjtRQUNqQiw2QkFBNkI7UUFDN0IsTUFBTTtJQUNSLENBQUM7dUdBVlUsaUJBQWlCOzJGQUFqQixpQkFBaUIsNFZDaEI5Qixrd0NBc0NBLCtNRDNCWSxhQUFhLGtMQUFFLGFBQWE7OzJGQUszQixpQkFBaUI7a0JBUDdCLFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxZQUM3QixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBlZmZlY3QsIGlucHV0LCBtb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuZXhwb3J0IGludGVyZmFjZSBNZW51VXNlciB7XG4gIG5hbWU6IHN0cmluZztcbiAgYXZhdGFyOiBzdHJpbmc7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG59XG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdE1lbnVNb2R1bGUsIE1hdEljb25Nb2R1bGVdLFxuICBzZWxlY3RvcjogJ3JvbGF0ZWNoLW1lbnUtdXNlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LXVzZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZW51LXVzZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTWVudVVzZXJDb21wb25lbnQge1xuICB1c2VyID0gaW5wdXQ8TWVudVVzZXIgfCBhbnk+KCk7XG4gIG15YWNjb3VudFVybCA9IGlucHV0PHN0cmluZz4oKTtcbiAgYXZhdGFyID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLnVzZXIoKS5hdmF0YXI7XG4gIH0pO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBlZmZlY3QoKCkgPT4ge1xuICAgIC8vICAgdGhpcy5kYXRhID0gdGhpcy51c2VyKCk7XG4gICAgLy8gfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtaW4tdy1bMjU2cHhdXCI+XG4gIEBpZiAodXNlcigpKSB7XG4gICAgPGRpdiBjbGFzcz1cInB4LTYgcHktM1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtci0zIHctMTQgaC0xNCByb3VuZGVkLWZ1bGwgYmctb3JhbmdlLTYwMFwiPlxuICAgICAgICAgIEBpZiAodXNlcigpLmF2YXRhcikge1xuICAgICAgICAgICAgPGltZyBbc3JjXT1cInVzZXIoKS5hdmF0YXJcIiBjbGFzcz1cInctMTQgaC0xNCBvYmplY3QtY292ZXIgcm91bmRlZC1mdWxsXCIgLz5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1sZyBmb250LWJvbGRcIj57eyB1c2VyKCkubmFtZSB9fTwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm1hdGVkLXN0cmluZ1wiPlxuICAgICAgICAgICAgICA8c3Bhbj4mIzY0O3t7IHVzZXIoKS51c2VybmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmxleFwiPlxuICAgIDxhXG4gICAgICBbaHJlZl09XCJteWFjY291bnRVcmxcIlxuICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgIGNsYXNzPVwidGV4dC1zbSBteS0yIHAtMSBweC02IG1sLTI0IHJvdW5kZWQgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCBob3ZlcjpiZy1ncmF5LTIwMFwiXG4gICAgICA+55So5oi35Lit5b+DPC9hXG4gICAgPlxuICA8L2Rpdj4gLS0+XG4gICAgPC9kaXY+XG4gIH1cblxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XG4gICAgPGEgbWF0LW1lbnUtaXRlbSBbaHJlZl09XCJteWFjY291bnRVcmxcIiB0YXJnZXQ9XCJfYmxhbmtcIiBjbGFzcz1cInB4LTZcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicGwtMlwiPiDnlKjmiLfkuK3lv4MgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImZsZXhcIj4gPG1hdC1pY29uPm9wZW5faW5fbmV3PC9tYXQtaWNvbj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgPC9hPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS11c2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvbWVudS11c2VyL21lbnUtdXNlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItY29tcG9uZW50cy9zcmMvbGliL21lbnUtdXNlci9tZW51LXVzZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQVUsTUFBTSxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQWN0RCxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakMsWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDO0lBQzdDLElBQUksR0FBRyxLQUFLLEVBQWtCLENBQUM7SUFDL0IsTUFBTSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDckIsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDO0lBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ0g7UUFDRSxpQkFBaUI7UUFDakIsNkJBQTZCO1FBQzdCLE1BQU07SUFDUixDQUFDO3VHQVhVLGlCQUFpQjsyRkFBakIsaUJBQWlCLCtNQ2pCOUIsa3dDQXNDQSwrTUQxQlksYUFBYSxrTEFBRSxhQUFhOzsyRkFLM0IsaUJBQWlCO2tCQVA3QixTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUMsWUFDN0Isb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBtb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgQVBQX0NPTkZJRyB9IGZyb20gJ0Byb2xhdGVjaC9hbmd1bGFyLWNvbW1vbic7XG5leHBvcnQgaW50ZXJmYWNlIE1lbnVVc2VyIHtcbiAgbmFtZTogc3RyaW5nO1xuICBhdmF0YXI6IHN0cmluZztcbiAgZW1haWw6IHN0cmluZztcbiAgdXNlcm5hbWU6IHN0cmluZztcbn1cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTWF0TWVudU1vZHVsZSwgTWF0SWNvbk1vZHVsZV0sXG4gIHNlbGVjdG9yOiAncm9sYXRlY2gtbWVudS11c2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUtdXNlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lbnUtdXNlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNZW51VXNlckNvbXBvbmVudCB7XG4gIGVudmlyb25tZW50ID0gaW5qZWN0KEFQUF9DT05GSUcpO1xuICBteWFjY291bnRVcmwgPSB0aGlzLmVudmlyb25tZW50Lm15YWNjb3VudFVybDtcbiAgdXNlciA9IGlucHV0PE1lbnVVc2VyIHwgYW55PigpO1xuICBhdmF0YXIgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudXNlcigpLmF2YXRhcjtcbiAgfSk7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIGVmZmVjdCgoKSA9PiB7XG4gICAgLy8gICB0aGlzLmRhdGEgPSB0aGlzLnVzZXIoKTtcbiAgICAvLyB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1pbi13LVsyNTZweF1cIj5cbiAgQGlmICh1c2VyKCkpIHtcbiAgICA8ZGl2IGNsYXNzPVwicHgtNiBweS0zXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yLTMgdy0xNCBoLTE0IHJvdW5kZWQtZnVsbCBiZy1vcmFuZ2UtNjAwXCI+XG4gICAgICAgICAgQGlmICh1c2VyKCkuYXZhdGFyKSB7XG4gICAgICAgICAgICA8aW1nIFtzcmNdPVwidXNlcigpLmF2YXRhclwiIGNsYXNzPVwidy0xNCBoLTE0IG9iamVjdC1jb3ZlciByb3VuZGVkLWZ1bGxcIiAvPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWxnIGZvbnQtYm9sZFwiPnt7IHVzZXIoKS5uYW1lIH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybWF0ZWQtc3RyaW5nXCI+XG4gICAgICAgICAgICAgIDxzcGFuPiYjNjQ7e3sgdXNlcigpLnVzZXJuYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmbGV4XCI+XG4gICAgPGFcbiAgICAgIFtocmVmXT1cIm15YWNjb3VudFVybFwiXG4gICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgY2xhc3M9XCJ0ZXh0LXNtIG15LTIgcC0xIHB4LTYgbWwtMjQgcm91bmRlZCBib3JkZXIgYm9yZGVyLWdyYXktMzAwIGhvdmVyOmJnLWdyYXktMjAwXCJcbiAgICAgID7nlKjmiLfkuK3lv4M8L2FcbiAgICA+XG4gIDwvZGl2PiAtLT5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXJcIj5cbiAgICA8YSBtYXQtbWVudS1pdGVtIFtocmVmXT1cIm15YWNjb3VudFVybFwiIHRhcmdldD1cIl9ibGFua1wiIGNsYXNzPVwicHgtNlwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwbC0yXCI+IOeUqOaIt+S4reW/gyA8L3NwYW4+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZmxleFwiPiA8bWF0LWljb24+b3Blbl9pbl9uZXc8L21hdC1pY29uPjwvc3Bhbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2E+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -432,8 +432,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
432
432
  }] });
433
433
 
434
434
  class MenuUserComponent {
435
+ environment = inject(APP_CONFIG);
436
+ myaccountUrl = this.environment.myaccountUrl;
435
437
  user = input();
436
- myaccountUrl = input();
437
438
  avatar = computed(() => {
438
439
  return this.user().avatar;
439
440
  });
@@ -443,7 +444,7 @@ class MenuUserComponent {
443
444
  // });
444
445
  }
445
446
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MenuUserComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
446
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", type: MenuUserComponent, isStandalone: true, selector: "rolatech-menu-user", inputs: { user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: false, transformFunction: null }, myaccountUrl: { classPropertyName: "myaccountUrl", publicName: "myaccountUrl", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"min-w-[256px]\">\n @if (user()) {\n <div class=\"px-6 py-3\">\n <div class=\"flex flex-row items-center\">\n <div class=\"mr-3 w-14 h-14 rounded-full bg-orange-600\">\n @if (user().avatar) {\n <img [src]=\"user().avatar\" class=\"w-14 h-14 object-cover rounded-full\" />\n }\n </div>\n <div class=\"flex flex-col\">\n <div>\n <div class=\"text-lg font-bold\">{{ user().name }}</div>\n <div class=\"formated-string\">\n <span>&#64;{{ user().username }}</span>\n </div>\n </div>\n </div>\n </div>\n <!-- <div class=\"flex\">\n <a\n [href]=\"myaccountUrl\"\n target=\"_blank\"\n class=\"text-sm my-2 p-1 px-6 ml-24 rounded border border-gray-300 hover:bg-gray-200\"\n >\u7528\u6237\u4E2D\u5FC3</a\n >\n </div> -->\n </div>\n }\n\n <div class=\"flex justify-between items-center\">\n <a mat-menu-item [href]=\"myaccountUrl\" target=\"_blank\" class=\"px-6\">\n <span class=\"flex justify-between items-center\">\n <span class=\"pl-2\"> \u7528\u6237\u4E2D\u5FC3 </span>\n <span class=\"flex\"> <mat-icon>open_in_new</mat-icon></span>\n </span>\n </a>\n </div>\n</div>\n", styles: [".formated-string{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}\n"], dependencies: [{ kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
447
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.0", type: MenuUserComponent, isStandalone: true, selector: "rolatech-menu-user", inputs: { user: { classPropertyName: "user", publicName: "user", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"min-w-[256px]\">\n @if (user()) {\n <div class=\"px-6 py-3\">\n <div class=\"flex flex-row items-center\">\n <div class=\"mr-3 w-14 h-14 rounded-full bg-orange-600\">\n @if (user().avatar) {\n <img [src]=\"user().avatar\" class=\"w-14 h-14 object-cover rounded-full\" />\n }\n </div>\n <div class=\"flex flex-col\">\n <div>\n <div class=\"text-lg font-bold\">{{ user().name }}</div>\n <div class=\"formated-string\">\n <span>&#64;{{ user().username }}</span>\n </div>\n </div>\n </div>\n </div>\n <!-- <div class=\"flex\">\n <a\n [href]=\"myaccountUrl\"\n target=\"_blank\"\n class=\"text-sm my-2 p-1 px-6 ml-24 rounded border border-gray-300 hover:bg-gray-200\"\n >\u7528\u6237\u4E2D\u5FC3</a\n >\n </div> -->\n </div>\n }\n\n <div class=\"flex justify-between items-center\">\n <a mat-menu-item [href]=\"myaccountUrl\" target=\"_blank\" class=\"px-6\">\n <span class=\"flex justify-between items-center\">\n <span class=\"pl-2\"> \u7528\u6237\u4E2D\u5FC3 </span>\n <span class=\"flex\"> <mat-icon>open_in_new</mat-icon></span>\n </span>\n </a>\n </div>\n</div>\n", styles: [".formated-string{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif}\n"], dependencies: [{ kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
447
448
  }
448
449
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: MenuUserComponent, decorators: [{
449
450
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"rolatech-angular-components.mjs","sources":["../../../../libs/angular-components/src/lib/icon/icon.component.ts","../../../../libs/angular-components/src/lib/icon/icon.component.html","../../../../libs/angular-components/src/lib/icon-button/icon-button.component.ts","../../../../libs/angular-components/src/lib/icon-button/icon-button.component.html","../../../../libs/angular-components/src/lib/title/title.component.ts","../../../../libs/angular-components/src/lib/title/title.component.html","../../../../libs/angular-components/src/lib/app-container/app-container.component.ts","../../../../libs/angular-components/src/lib/app-container/app-container.component.html","../../../../libs/angular-components/src/lib/app-container-content/app-container-content.component.ts","../../../../libs/angular-components/src/lib/app-container-content/app-container-content.component.html","../../../../libs/angular-components/src/provider.ts","../../../../libs/angular-components/src/lib/topbar/topbar.component.ts","../../../../libs/angular-components/src/lib/topbar/topbar.component.html","../../../../libs/angular-components/src/lib/app-drawer/expansion-animations.ts","../../../../libs/angular-components/src/lib/app-drawer/app-drawer.component.ts","../../../../libs/angular-components/src/lib/app-drawer/app-drawer.component.html","../../../../libs/angular-components/src/lib/app-layout/app-layout.component.ts","../../../../libs/angular-components/src/lib/app-layout/app-layout.component.html","../../../../libs/angular-components/src/lib/app-page/app-page.component.ts","../../../../libs/angular-components/src/lib/app-page/app-page.component.html","../../../../libs/angular-components/src/lib/app-footer/app-footer.component.ts","../../../../libs/angular-components/src/lib/app-footer/app-footer.component.html","../../../../libs/angular-components/src/lib/console-layout/console-layout.component.ts","../../../../libs/angular-components/src/lib/console-layout/console-layout.component.html","../../../../libs/angular-components/src/lib/menu-user/menu-user.component.ts","../../../../libs/angular-components/src/lib/menu-user/menu-user.component.html","../../../../libs/angular-components/src/lib/topbar-avatar-menu/topbar-avatar-menu.component.ts","../../../../libs/angular-components/src/lib/topbar-avatar-menu/topbar-avatar-menu.component.html","../../../../libs/angular-components/src/lib/folder/folder.component.ts","../../../../libs/angular-components/src/lib/folder/folder.component.html","../../../../libs/angular-components/src/lib/media-preview-dialog/media-preview-dialog.component.ts","../../../../libs/angular-components/src/lib/media-preview-dialog/media-preview-dialog.component.html","../../../../libs/angular-components/src/lib/material.module.ts","../../../../libs/angular-components/src/lib/angular-components.module.ts","../../../../libs/angular-components/src/lib/loading-spinner/loading-spinner.component.ts","../../../../libs/angular-components/src/lib/loading-spinner/loading-spinner.component.html","../../../../libs/angular-components/src/lib/media-upload/media-upload.component.ts","../../../../libs/angular-components/src/lib/media-upload/media-upload.component.html","../../../../libs/angular-components/src/lib/storage-bucket-create/storage-bucket-create.component.ts","../../../../libs/angular-components/src/lib/storage-bucket-create/storage-bucket-create.component.html","../../../../libs/angular-components/src/lib/storage-file-upload/storage-file-upload.component.ts","../../../../libs/angular-components/src/lib/storage-file-upload/storage-file-upload.component.html","../../../../libs/angular-components/src/lib/storage-folder-create/storage-folder-create.component.ts","../../../../libs/angular-components/src/lib/storage-folder-create/storage-folder-create.component.html","../../../../libs/angular-components/src/lib/wechat-connect-dialog/wechat-connect-dialog.component.ts","../../../../libs/angular-components/src/lib/wechat-connect-dialog/wechat-connect-dialog.component.html","../../../../libs/angular-components/src/lib/media-upload-dialog/media-upload-dialog.component.ts","../../../../libs/angular-components/src/lib/media-upload-dialog/media-upload-dialog.component.html","../../../../libs/angular-components/src/lib/spacer/spacer.component.ts","../../../../libs/angular-components/src/lib/spacer/spacer.component.html","../../../../libs/angular-components/src/lib/media-list/media-list.component.ts","../../../../libs/angular-components/src/lib/media-list/media-list.component.html","../../../../libs/angular-components/src/lib/media-list-item/media-list-item.component.ts","../../../../libs/angular-components/src/lib/media-list-item/media-list-item.component.html","../../../../libs/angular-components/src/lib/not-found/not-found.component.ts","../../../../libs/angular-components/src/lib/not-found/not-found.component.html","../../../../libs/angular-components/src/lib/confirmation-dialog/confirmation-dialog.component.ts","../../../../libs/angular-components/src/lib/confirmation-dialog/confirmation-dialog.component.html","../../../../libs/angular-components/src/lib/base.component.ts","../../../../libs/angular-components/src/lib/table/table.component.ts","../../../../libs/angular-components/src/lib/table/table.component.html","../../../../libs/angular-components/src/lib/paginator/paginator.component.ts","../../../../libs/angular-components/src/lib/paginator/paginator.component.html","../../../../libs/angular-components/src/rolatech-angular-components.ts"],"sourcesContent":["import { Component, HostBinding, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n selector: 'rolatech-icon',\n standalone: true,\n imports: [CommonModule, MatIcon],\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class IconComponent {\n @HostBinding('class.rolatech-icon') hasClass = true;\n}\n","<mat-icon>\n <ng-content></ng-content>\n</mat-icon>\n","import { Component, HostBinding, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n selector: 'rolatech-icon-button',\n standalone: true,\n imports: [CommonModule, IconComponent],\n templateUrl: './icon-button.component.html',\n styleUrl: './icon-button.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class IconButtonComponent {\n @HostBinding('class.rolatech-icon-button') hasClass = true;\n}\n","<button\n id=\"button\"\n class=\"w-10 h-10 p-2 inline-block relative cursor-pointer hover:bg-gray-100 rounded-full rolatech-icon-button\"\n onclick=\"this.blur()\"\n>\n <!-- <ng-content select=\"rolatech-icon\"></ng-content> -->\n <rolatech-icon>\n <ng-content></ng-content>\n </rolatech-icon>\n</button>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-title',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './title.component.html',\n styleUrl: './title.component.scss',\n})\nexport class TitleComponent {}\n","<a class=\"text-xl font-medium py-3 cursor-pointer\">\n <ng-content></ng-content>\n</a>\n","import { Component, HostBinding } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-app-container',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './app-container.component.html',\n styleUrl: './app-container.component.scss',\n})\nexport class AppContainerComponent {\n @HostBinding('class.rolatech-app-container') hasClass = true;\n}\n","<div class=\"px-4 xl:max-w-[1024px] 2xl:max-w-[1280px] m-auto\">\n <ng-content></ng-content>\n</div>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatSidenavModule } from '@angular/material/sidenav';\n\n@Component({\n selector: 'rolatech-app-container-content',\n standalone: true,\n imports: [CommonModule, MatSidenavModule],\n templateUrl: './app-container-content.component.html',\n styleUrl: './app-container-content.component.scss',\n})\nexport class AppContainerContentComponent {}\n","<div>\n <ng-content></ng-content>\n</div>\n","import { EnvironmentProviders, InjectionToken, Provider, makeEnvironmentProviders } from '@angular/core';\n\nexport interface AppDrawerConfig {\n persistent: boolean;\n}\nexport interface AppTopbarConfig {\n persistent: boolean;\n}\nexport interface AppLayoutConfig {\n title: string;\n subtitle?: string;\n persistent?: boolean | undefined;\n topbar?: AppTopbarConfig;\n drawer?: AppDrawerConfig;\n}\n\nexport const APP_LAYOUT = new InjectionToken<AppLayoutConfig>('APP_LAYOUT');\n\nexport function provideAngularLayout(config?: AppLayoutConfig): EnvironmentProviders {\n const providers: (Provider | EnvironmentProviders)[] = [\n {\n provide: APP_LAYOUT,\n useValue: config,\n },\n ];\n return makeEnvironmentProviders(providers);\n}\n","import { Component, ElementRef, HostBinding, OnInit, PLATFORM_ID, Renderer2, ViewEncapsulation, inject } from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Observable, map, shareReplay } from 'rxjs';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { APP_LAYOUT } from '../../provider';\nimport { AppDrawerComponent } from '../app-drawer/app-drawer.component';\n\n@Component({\n selector: 'rolatech-topbar',\n standalone: true,\n imports: [CommonModule, RouterLink, IconButtonComponent, MatButtonModule, MatIcon],\n templateUrl: './topbar.component.html',\n styleUrl: './topbar.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class TopbarComponent implements OnInit {\n @HostBinding('id') hostId = 'rolatech-topbar';\n @HostBinding('class.rolatech-topbar') hasClass = true;\n persistent!: boolean | undefined;\n el = inject(ElementRef);\n renderer = inject(Renderer2);\n platformId = inject(PLATFORM_ID);\n breakpointObserver = inject(BreakpointObserver);\n appLayout = inject(APP_LAYOUT);\n isHandset$: Observable<boolean>;\n appDrawer!: AppDrawerComponent;\n constructor() {\n this.isHandset$ = this.breakpointObserver.observe([Breakpoints.Handset]).pipe(\n map((result) => result.matches),\n shareReplay(),\n );\n }\n ngOnInit(): void {\n this.setMenuIconVisible();\n }\n setMenuIconVisible() {\n if (this.persistent) {\n return;\n }\n if (isPlatformBrowser(this.platformId)) {\n this.breakpointObserver\n .observe(Breakpoints.Handset)\n .pipe(map((result) => result.matches))\n .subscribe({\n next: (res) => {\n if (res) {\n this.renderer.removeAttribute(this.el.nativeElement, 'persistent');\n } else {\n this.renderer.setAttribute(this.el.nativeElement, 'persistent', '');\n }\n },\n });\n }\n }\n\n onToggle() {\n this.appDrawer.toggle();\n }\n}\n","<div class=\"h-14 px-2 sm:px-4 flex items-center\">\n @if (persistent || (isHandset$ | async)) {\n <rolatech-icon-button id=\"topbar-menu-button\" (click)=\"onToggle()\">menu</rolatech-icon-button>\n }\n <div id=\"title\" class=\"cursor-pointer\" routerLink=\"/\">\n <div class=\"text-black text-lg sm:text-xl font-bold\">\n <span class=\"text-orange-600\">{{ appLayout.title }}</span>\n <span>{{ appLayout.subtitle }}</span>\n </div>\n </div>\n <div class=\"flex-1\"></div>\n <ng-content></ng-content>\n</div>\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\n/** Time and timing curve for expansion panel animations. */\n// Note: Keep this in sync with the Sass variable for the panel header animation.\nexport const EXPANSION_PANEL_ANIMATION_TIMING = '225ms cubic-bezier(0.4,0.0,0.2,1)';\nexport const matExpansionAnimations: {\n readonly indicatorRotate: AnimationTriggerMetadata;\n readonly bodyExpansion: AnimationTriggerMetadata;\n} = {\n /** Animation that rotates the indicator arrow. */\n indicatorRotate: trigger('indicatorRotate', [\n state('collapsed, void', style({ transform: 'rotate(0deg)' })),\n state('expanded', style({ transform: 'rotate(180deg)' })),\n transition('expanded <=> collapsed, void => collapsed', animate(EXPANSION_PANEL_ANIMATION_TIMING)),\n ]),\n /** Animation that expands and collapses the panel content. */\n bodyExpansion: trigger('bodyExpansion', [\n state('collapsed, void', style({ height: '0px', visibility: 'hidden' })),\n // Clear the `visibility` while open, otherwise the content will be visible when placed in\n // a parent that's `visibility: hidden`, because `visibility` doesn't apply to descendants\n // that have a `visibility` of their own (see #27436).\n state('expanded', style({ height: '*', visibility: '' })),\n transition('expanded <=> collapsed, void => collapsed', animate(EXPANSION_PANEL_ANIMATION_TIMING)),\n ]),\n};\nexport const heightAnimation = trigger('heightAnimation', [\n state(\n 'open',\n style({\n height: '*',\n visibility: '',\n }),\n ),\n state(\n 'closed',\n style({\n height: '0px',\n visibility: 'hidden',\n }),\n ),\n transition('open <=> closed', [animate(EXPANSION_PANEL_ANIMATION_TIMING)]),\n]);\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n ViewEncapsulation,\n inject,\n input,\n viewChild,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { MatNavList } from '@angular/material/list';\nimport { ActivatedRoute, NavigationEnd, Router, RouterLink, RouterLinkActive } from '@angular/router';\nimport { Observable, filter, map } from 'rxjs';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { APP_LAYOUT } from '../../provider';\nimport { MatExpansionPanel, MatExpansionPanelHeader } from '@angular/material/expansion';\nimport { MatIcon } from '@angular/material/icon';\nimport { heightAnimation } from './expansion-animations';\nexport const EXPANSION_PANEL_ANIMATION_TIMING = '225ms cubic-bezier(0.4,0.0,0.2,1)';\n\nexport interface LINK {\n title: string;\n subtitle?: string;\n openinView?: boolean;\n icon?: string;\n link: string;\n children?: LINK[];\n}\n@Component({\n selector: 'rolatech-app-drawer',\n standalone: true,\n imports: [\n CommonModule,\n MatNavList,\n RouterLink,\n MatExpansionPanel,\n MatExpansionPanelHeader,\n MatIcon,\n RouterLinkActive,\n IconButtonComponent,\n IconComponent,\n ],\n templateUrl: './app-drawer.component.html',\n styleUrl: './app-drawer.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [heightAnimation], // Apply the animation to the component\n})\nexport class AppDrawerComponent implements OnInit {\n opened = false;\n links = input<LINK[]>();\n @HostBinding('id') hostId = 'rolatech-app-drawer';\n @HostBinding('class.rolatech-app-drawer') hasClass = true;\n @HostBinding('style.transition-duration') duration = '200ms';\n persistent: boolean | undefined;\n el = inject(ElementRef);\n renderer = inject(Renderer2);\n platformId = inject(PLATFORM_ID);\n breakpointObserver = inject(BreakpointObserver);\n appLayout = inject(APP_LAYOUT);\n guideEl = viewChild<ElementRef>('guide');\n content = viewChild<ElementRef>('content');\n scrimEl = viewChild<ElementRef>('scrim');\n headerEl = viewChild<ElementRef>('header');\n isHandset$!: Observable<boolean>;\n isMobile = false;\n isPersistent = true;\n completed = false;\n panelOpenState = false;\n\n open() {\n this.opened = true;\n this.renderer.setAttribute(this.el.nativeElement, 'opened', '');\n this.renderer.setAttribute(this.content()?.nativeElement, 'opened', '');\n if (this.isMobile) {\n this.renderer.addClass(this.scrimEl()?.nativeElement, 'visible');\n }\n }\n close() {\n this.opened = false;\n this.renderer.removeAttribute(this.el.nativeElement, 'opened');\n this.renderer.removeAttribute(this.content()?.nativeElement, 'opened');\n if (this.isMobile) {\n this.renderer.removeClass(this.scrimEl()?.nativeElement, 'visible');\n }\n }\n toggle() {\n this.opened ? this.close() : this.open();\n }\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.completed = false;\n this.isHandset$ = this.breakpointObserver.observe(Breakpoints.Handset).pipe(map((result) => result.matches));\n this.isHandset$.subscribe({\n next: (res: any) => {\n this.opened = !res;\n this.isMobile = res;\n this.isPersistent = !res;\n if (res) {\n if (this.persistent) {\n this.renderer.removeAttribute(this.el.nativeElement, 'persistent');\n this.renderer.removeAttribute(this.headerEl()?.nativeElement, 'hidden', '');\n this.renderer.removeAttribute(this.el.nativeElement, 'opened');\n this.renderer.removeAttribute(this.content()?.nativeElement, 'opened');\n }\n } else {\n if (this.persistent) {\n this.renderer.setAttribute(this.el.nativeElement, 'persistent', '');\n this.renderer.setAttribute(this.headerEl()?.nativeElement, 'hidden', '');\n this.renderer.setAttribute(this.el.nativeElement, 'opened', '');\n this.renderer.setAttribute(this.content()?.nativeElement, 'opened', '');\n }\n }\n this.completed = true;\n },\n });\n }\n }\n}\n","<div id=\"scrim\" #scrim class=\"tp-yt-app-drawer\" (click)=\"close()\" style=\"transition-duration: 200ms\"></div>\n<div id=\"contentContainer\" #content class=\"tp-yt-app-drawer\" style=\"transition-duration: 200ms\">\n <div id=\"guide-wrapper\">\n <div id=\"guide-spacer\"></div>\n <div id=\"guide-content\">\n <div id=\"header\" #header class=\"flex pl-4 h-14 items-center\">\n <rolatech-icon-button #menuButton (click)=\"this.toggle()\" onclick=\"this.blur()\">menu</rolatech-icon-button>\n <div class=\"text-black text-lg sm:text-xl font-bold\" routerLink=\"/\">\n <span class=\"text-orange-600\">{{ appLayout.title }}</span>\n <span>{{ appLayout.subtitle }}</span>\n </div>\n </div>\n <div id=\"guide-inner-content\" class=\"flex flex-col ytd-app\">\n @if (completed) {\n <div class=\"flex p-3 flex-col gap-2\">\n @for (item of links(); track $index) {\n @if (item.children) {\n <div class=\"cursor-pointer panel\">\n <div class=\"flex items-center h-11 mr-2\" (click)=\"panelOpenState = !panelOpenState\">\n <rolatech-icon class=\"ml-3\">{{ item.icon }}</rolatech-icon>\n <span class=\"ml-3\">{{ item.title }}</span>\n <div class=\"flex-1\"></div>\n <rolatech-icon\n style=\"transition-duration:.5s;transform: {{ panelOpenState ? 'rotate(180deg)' : 'rotate(0deg)' }};\"\n >expand_more</rolatech-icon\n >\n </div>\n <div class=\"flex flex-col pl-8\" [@heightAnimation]=\"panelOpenState === true ? 'open' : 'closed'\">\n @for (child of item.children; track child) {\n <a\n [routerLink]=\"child.link\"\n routerLinkActive=\"drawer-active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n class=\"p-3\"\n (click)=\"this.isPersistent ? '' : this.close()\"\n >\n <span class=\"text-sm\">{{ child.title }}</span>\n </a>\n }\n </div>\n </div>\n } @else {\n @if (item.openinView) {\n <a\n class=\"flex hover:bg-gray-100 min-h-11\"\n [href]=\"item.link\"\n target=\"_blank\"\n (click)=\"this.isPersistent ? '' : this.close()\"\n >\n <div class=\"flex justify-between items-center w-full\">\n <div class=\"flex justify-start\">\n @if (item.icon) {\n <rolatech-icon class=\"ml-3\">{{ item.icon }}</rolatech-icon>\n }\n <div class=\"flex flex-col ml-3\">\n <span>{{ item.title }}</span>\n <span class=\"text-sm opacity-75\">{{ item.subtitle }}</span>\n </div>\n </div>\n <rolatech-icon class=\"scale-90\">open_in_new</rolatech-icon>\n </div>\n </a>\n } @else {\n <a\n class=\"flex hover:bg-gray-100 min-h-11\"\n [routerLink]=\"item.link\"\n (click)=\"this.isPersistent ? '' : this.close()\"\n routerLinkActive=\"drawer-active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n #routerLink=\"routerLinkActive\"\n >\n <div class=\"flex justify-between items-center w-full\">\n <div class=\"flex justify-start\">\n @if (item.icon) {\n <rolatech-icon class=\"ml-3\">{{ item.icon }}</rolatech-icon>\n }\n <div class=\"flex flex-col ml-3\">\n <span>{{ item.title }}</span>\n <span class=\"text-sm\">{{ item.subtitle }}</span>\n </div>\n </div>\n </div>\n </a>\n }\n }\n }\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n PLATFORM_ID,\n QueryList,\n Renderer2,\n ViewChild,\n ViewEncapsulation,\n contentChild,\n inject,\n viewChild,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { MatSidenav, MatSidenavModule } from '@angular/material/sidenav';\nimport { MatListModule, MatNavList } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterLink, RouterOutlet } from '@angular/router';\nimport { AppContainerComponent } from '../app-container/app-container.component';\nimport { AppContainerContentComponent } from '../app-container-content/app-container-content.component';\nimport { TopbarComponent } from '../topbar/topbar.component';\nimport { AppDrawerComponent, LINK } from '../app-drawer/app-drawer.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { map, startWith } from 'rxjs';\nimport { APP_LAYOUT } from '../../provider';\n@Component({\n selector: 'rolatech-app-layout',\n standalone: true,\n imports: [\n CommonModule,\n RouterLink,\n RouterOutlet,\n AppContainerComponent,\n AppContainerContentComponent,\n MatListModule,\n MatNavList,\n MatSidenav,\n MatButtonModule,\n MatIconModule,\n MatSidenavModule,\n TopbarComponent,\n AppDrawerComponent,\n ],\n templateUrl: './app-layout.component.html',\n styleUrl: './app-layout.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AppLayoutComponent implements OnInit, AfterContentInit {\n @HostBinding('id') hostId = 'rolatech-app-layout';\n @HostBinding('class.rolatech-app-layout') hasClass = true;\n appLayout = inject(APP_LAYOUT);\n topbar = contentChild.required(TopbarComponent);\n drawer = contentChild.required(AppDrawerComponent);\n el = inject(ElementRef);\n renderer = inject(Renderer2);\n platformId = inject(PLATFORM_ID);\n breakpointObserver = inject(BreakpointObserver);\n ngOnInit() {\n if (this.topbar()) {\n this.topbar().persistent = this.appLayout.persistent;\n this.topbar().appDrawer = this.drawer();\n }\n if (this.drawer()) {\n this.drawer().persistent = this.appLayout.persistent;\n }\n if (isPlatformBrowser(this.platformId)) {\n this.breakpointObserver\n .observe(Breakpoints.Handset)\n .pipe(map((result) => result.matches))\n .subscribe({\n next: (res) => {\n if (res) {\n this.renderer.removeAttribute(this.el.nativeElement, 'persistent');\n } else {\n this.renderer.setAttribute(this.el.nativeElement, 'persistent', '');\n }\n },\n });\n }\n }\n ngAfterContentInit(): void {}\n}\n","<ng-content select=\"rolatech-topbar\"></ng-content>\n<ng-content select=\"rolatech-app-drawer\"></ng-content>\n<ng-content select=\"rolatech-app-page\"></ng-content>\n<div class=\"flex-1\"></div>\n<ng-content select=\"rolatech-app-footer\"></ng-content>\n","import { Component, HostBinding, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-app-page',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './app-page.component.html',\n styleUrl: './app-page.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AppPageComponent {\n @HostBinding('id') hostId = 'rolatech-app-page';\n @HostBinding('class.rolatech-app-page') hasClass = true;\n}\n","<ng-content></ng-content>\n","import { Component, HostBinding, ViewEncapsulation, inject, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { APP_CONFIG } from '@rolatech/angular-common';\n\n@Component({\n selector: 'rolatech-app-footer',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './app-footer.component.html',\n styleUrl: './app-footer.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AppFooterComponent {\n @HostBinding('id') hostId = 'rolatech-app-footer';\n @HostBinding('class.rolatech-app-footer') hasClass = true;\n config = inject(APP_CONFIG);\n title = input<string>();\n copyright = input<string>('');\n}\n","<div class=\"bg-gray-100 text-black flex flex-col justify-between px-5 sm:px-16 py-6\">\n <div class=\"flex flex-col sm:flex-row sm:gap-10 gap-3 py-3\">\n <ng-content></ng-content>\n </div>\n <div class=\"flex justify-between mt-6\">\n <div class=\"cursor-pointer\">\n <a href=\"/\" target=\"_blank\" class=\"text-lg font-bold\">{{ title() }}</a>\n </div>\n <span class=\"text-sm font-thin\">©{{ copyright() }}</span>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-console-layout',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './console-layout.component.html',\n styleUrl: './console-layout.component.scss',\n})\nexport class ConsoleLayoutComponent {}\n","<p>console-layout works!</p>\n","import { Component, computed, effect, input, model } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nexport interface MenuUser {\n name: string;\n avatar: string;\n email: string;\n username: string;\n}\n@Component({\n standalone: true,\n imports: [MatMenuModule, MatIconModule],\n selector: 'rolatech-menu-user',\n templateUrl: './menu-user.component.html',\n styleUrls: ['./menu-user.component.scss'],\n})\nexport class MenuUserComponent {\n user = input<MenuUser | any>();\n myaccountUrl = input<string>();\n avatar = computed(() => {\n return this.user().avatar;\n });\n constructor() {\n // effect(() => {\n // this.data = this.user();\n // });\n }\n}\n","<div class=\"min-w-[256px]\">\n @if (user()) {\n <div class=\"px-6 py-3\">\n <div class=\"flex flex-row items-center\">\n <div class=\"mr-3 w-14 h-14 rounded-full bg-orange-600\">\n @if (user().avatar) {\n <img [src]=\"user().avatar\" class=\"w-14 h-14 object-cover rounded-full\" />\n }\n </div>\n <div class=\"flex flex-col\">\n <div>\n <div class=\"text-lg font-bold\">{{ user().name }}</div>\n <div class=\"formated-string\">\n <span>&#64;{{ user().username }}</span>\n </div>\n </div>\n </div>\n </div>\n <!-- <div class=\"flex\">\n <a\n [href]=\"myaccountUrl\"\n target=\"_blank\"\n class=\"text-sm my-2 p-1 px-6 ml-24 rounded border border-gray-300 hover:bg-gray-200\"\n >用户中心</a\n >\n </div> -->\n </div>\n }\n\n <div class=\"flex justify-between items-center\">\n <a mat-menu-item [href]=\"myaccountUrl\" target=\"_blank\" class=\"px-6\">\n <span class=\"flex justify-between items-center\">\n <span class=\"pl-2\"> 用户中心 </span>\n <span class=\"flex\"> <mat-icon>open_in_new</mat-icon></span>\n </span>\n </a>\n </div>\n</div>\n","import { Component, PLATFORM_ID, inject, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatMenuModule, MatMenuPanel } from '@angular/material/menu';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { RouterLink, RouterOutlet } from '@angular/router';\nimport { MenuUserComponent } from '../menu-user/menu-user.component';\nimport { APP_CONFIG } from '@rolatech/angular-common';\n\n@Component({\n selector: 'rolatech-topbar-avatar-menu',\n standalone: true,\n imports: [\n CommonModule,\n MatSidenavModule,\n RouterLink,\n MatListModule,\n MatIconModule,\n MatMenuModule,\n RouterOutlet,\n MenuUserComponent,\n ],\n templateUrl: './topbar-avatar-menu.component.html',\n styleUrl: './topbar-avatar-menu.component.scss',\n})\nexport class TopbarAvatarMenuComponent {\n environment = inject(APP_CONFIG);\n platformId = inject(PLATFORM_ID);\n menu = input.required<MatMenuPanel<any>>();\n user = input<any>();\n}\n","@if (user()) {\n <div class=\"flex\">\n <a\n class=\"flex justify-center items-center rounded-full overflow-hidden cursor-pointer hover:outline-gray-200 outline outline-transparent outline-4\"\n [matMenuTriggerFor]=\"menu()\"\n >\n <div class=\"bg-orange-600 w-9 h-9\">\n @if (user().avatar) {\n <img class=\"w-9 h-9 object-cover\" [src]=\"user().avatar\" />\n }\n </div>\n </a>\n </div>\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'rolatech-folder',\n templateUrl: './folder.component.html',\n styleUrls: ['./folder.component.scss'],\n standalone: true,\n})\nexport class FolderComponent {}\n","<div></div>\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'rolatech-media-preview-dialog',\n templateUrl: './media-preview-dialog.component.html',\n styleUrls: ['./media-preview-dialog.component.scss'],\n standalone: true,\n imports: [MatIconModule, MatDividerModule, MatButtonModule],\n})\nexport class MediaPreviewDialogComponent implements OnInit {\n selected: any;\n index = 0;\n prevDisabled = false;\n nextDisabled = false;\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialogRef: MatDialogRef<MediaPreviewDialogComponent>,\n ) {\n this.data.title = '图片预览';\n }\n\n ngOnInit(): void {\n this.selected = this.data.selected;\n this.prevDisabled = this.selected === 0;\n this.nextDisabled = this.selected === this.data.media.length - 1;\n }\n close(): void {\n this.dialogRef.close();\n }\n prev() {\n this.selected--;\n this.prevDisabled = this.selected === 0;\n this.nextDisabled = this.selected === this.data.media.length - 1;\n }\n next() {\n this.selected++;\n this.prevDisabled = this.selected === 0;\n this.nextDisabled = this.selected === this.data.media.length - 1;\n }\n}\n","<div class=\"flex flex-col h-full overflow-hidden\">\n <div class=\"h-16 flex justify-between items-center px-5\">\n @if (data.title) {\n <div class=\"text-md font-medium\">{{ data.title }}</div>\n }\n <div class=\"cursor-pointer\" (click)=\"close()\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"flex-1 overflow-hidden overflow-y-auto\">\n <div class=\"p-3 flex justify-center items-center\">\n <img class=\"object-cover\" [src]=\"data.media[selected].url\" />\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"h-16 flex justify-between items-center px-5\">\n <button mat-flat-button [disabled]=\"prevDisabled\" (click)=\"prev()\">Prev</button>\n <div>{{ selected + 1 }} / {{ data.media.length }}</div>\n <button mat-flat-button [disabled]=\"nextDisabled\" (click)=\"next()\">Next</button>\n </div>\n</div>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CdkStepperModule } from '@angular/cdk/stepper';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { CdkTreeModule } from '@angular/cdk/tree';\nimport { NgModule } from '@angular/core';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatTreeModule } from '@angular/material/tree';\n\nconst MAT_MODULE = [\n A11yModule,\n ClipboardModule,\n CdkStepperModule,\n CdkTableModule,\n CdkTreeModule,\n DragDropModule,\n LayoutModule,\n MatAutocompleteModule,\n MatBadgeModule,\n MatBottomSheetModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatStepperModule,\n MatDatepickerModule,\n MatDialogModule,\n MatDividerModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatFormFieldModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatTreeModule,\n PortalModule,\n ScrollingModule,\n];\n\n@NgModule({\n imports: [...MAT_MODULE],\n exports: [...MAT_MODULE],\n})\nexport class MaterialModule {}\n","import { NgModule } from '@angular/core';\nimport { MaterialModule } from './material.module';\n\n@NgModule({\n imports: [MaterialModule],\n exports: [MaterialModule],\n})\nexport class AngularComponentsModule {}\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, OnDestroy, inject, input } from '@angular/core';\nimport { LoadingService } from '@rolatech/angular-services';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'rolatech-loading-spinner',\n templateUrl: './loading-spinner.component.html',\n styleUrls: ['./loading-spinner.component.scss'],\n standalone: true,\n})\nexport class LoadingSpinnerComponent implements AfterViewInit, OnDestroy {\n title = input<string>();\n isLoading!: boolean;\n loadingSubscription!: Subscription;\n loadingService = inject(LoadingService);\n _elmRef = inject(ElementRef);\n _changeDetectorRef = inject(ChangeDetectorRef);\n ngAfterViewInit(): void {\n // this.isLoading = true;\n this._elmRef.nativeElement.style.display = 'none';\n this.loadingSubscription = this.loadingService.loading$.pipe().subscribe((status: boolean) => {\n this._elmRef.nativeElement.style.display = status ? 'block' : 'none';\n this._changeDetectorRef.detectChanges();\n this.isLoading = status;\n });\n }\n\n ngOnDestroy(): void {\n if (this.loadingSubscription) this.loadingSubscription.unsubscribe();\n }\n}\n","<div class=\"spinner-container flex flex-col\">\n <div class=\"sk-fading-circle\">\n <div class=\"sk-circle1 sk-circle\"></div>\n <div class=\"sk-circle2 sk-circle\"></div>\n <div class=\"sk-circle3 sk-circle\"></div>\n <div class=\"sk-circle4 sk-circle\"></div>\n <div class=\"sk-circle5 sk-circle\"></div>\n <div class=\"sk-circle6 sk-circle\"></div>\n <div class=\"sk-circle7 sk-circle\"></div>\n <div class=\"sk-circle8 sk-circle\"></div>\n <div class=\"sk-circle9 sk-circle\"></div>\n <div class=\"sk-circle10 sk-circle\"></div>\n <div class=\"sk-circle11 sk-circle\"></div>\n <div class=\"sk-circle12 sk-circle\"></div>\n </div>\n <div class=\"text-lg font-bold text-center\">{{ title() }}</div>\n</div>\n","import { Component, inject, input, output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AngularCommonModule, Media } from '@rolatech/angular-common';\nimport { MediaPreviewDialogComponent } from '../media-preview-dialog/media-preview-dialog.component';\nimport { AngularComponentsModule } from '../angular-components.module';\nimport { LoadingSpinnerComponent } from '../loading-spinner/loading-spinner.component';\n\n@Component({\n standalone: true,\n imports: [AngularCommonModule, AngularComponentsModule, LoadingSpinnerComponent],\n selector: 'rolatech-media-upload',\n templateUrl: './media-upload.component.html',\n styleUrls: ['./media-upload.component.scss'],\n})\nexport class MediaUploadComponent {\n title = input<string>('上传图片');\n subtitle = input<string>('文件大小');\n description = input<string>('不能超过5MB');\n isUploading = input<boolean>(false);\n\n mediaItemClick = output<Media>();\n upload = output<FormData | null>();\n\n media: Media[] = [];\n dialog = inject(MatDialog);\n\n onMediaItemClick(item: Media) {\n this.mediaItemClick.emit(item);\n }\n onMediaClick(i: any) {\n const dialogRef = this.dialog.open(MediaPreviewDialogComponent, {\n maxWidth: '80vw',\n maxHeight: '80vh',\n height: '80%',\n width: '80%',\n panelClass: 'full-screen-modal',\n data: {\n media: this.media,\n selected: i,\n },\n });\n dialogRef.afterClosed().subscribe((result) => {});\n }\n onUpload(event: any) {\n const file = event.target.files[0];\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n (this.media as any).push({\n url: reader.result,\n alt: 'upload image',\n });\n const formData = new FormData();\n formData.append('file', file);\n this.upload.emit(formData);\n };\n }\n }\n}\n","<div class=\"bg-gray-100 rounded p-6 min-h-[320px] flex items-center justify-center\">\n @if (isUploading()) {\n <div class=\"flex flex-col items-center justify-center\">\n <div class=\"p-3\">\n <mat-icon>upload</mat-icon>\n </div>\n <div class=\"flex flex-col items-center justify-center\">\n <div class=\"font-lg font-bold py-3\">{{ title() }}</div>\n <div class=\"font-sm text-gray-400\">{{ subtitle() }}</div>\n <div class=\"font-sm text-gray-400\">{{ description() }}</div>\n </div>\n <div class=\"py-2\">\n <input style=\"display: none\" type=\"file\" (change)=\"onUpload($event)\" #fileInput />\n <button mat-flat-button color=\"primary\" (click)=\"fileInput.click()\">上传图片</button>\n </div>\n </div>\n } @else {\n <rolatech-loading-spinner title=\"上传中\"></rolatech-loading-spinner>\n }\n</div>\n<div class=\"flex flex-row\">\n @for (media of media; track $index) {\n <div (click)=\"onMediaClick($index)\" class=\"inline-flex flex-row mt-3 mr-3 cursor-pointer rounded-md\">\n <img class=\"rounded-md aspect-video object-cover w-32\" [src]=\"media.url\" />\n </div>\n }\n</div>\n","import { Component, DoCheck, OnInit, input, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\n@Component({\n selector: 'rolatech-storage-bucket-create',\n templateUrl: './storage-bucket-create.component.html',\n styleUrls: ['./storage-bucket-create.component.scss'],\n standalone: true,\n imports: [MatFormFieldModule, MatInputModule, FormsModule],\n})\nexport class StorageBucketCreateComponent implements OnInit, DoCheck {\n name = input<string>();\n output = output<any>();\n\n ngOnInit(): void {}\n ngDoCheck(): void {\n this.output.emit(this.name());\n }\n}\n","<div>\n <mat-form-field>\n <mat-label>名称</mat-label>\n <input matInput placeholder=\"输入名称\" [(ngModel)]=\"name\" />\n </mat-form-field>\n</div>\n","import { Component, DoCheck, OnInit, input, output } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\n@Component({\n selector: 'rolatech-storage-file-upload',\n templateUrl: './storage-file-upload.component.html',\n styleUrls: ['./storage-file-upload.component.scss'],\n standalone: true,\n imports: [MatFormFieldModule, MatInputModule, FormsModule, MatButtonModule, MatIconModule],\n})\nexport class StorageFileUploadComponent implements OnInit, DoCheck {\n title = input<string>();\n output = output<any>();\n\n fileData: any;\n progressInfos: any = [];\n isFinished = false;\n isUploaded = false;\n file: any;\n\n ngOnInit(): void {}\n ngDoCheck(): void {\n this.output.emit({\n title: this.title,\n file: this.file,\n });\n }\n selectFiles(event: any) {\n this.isFinished = false;\n this.file = event.target.files[0];\n event.target.value = '';\n }\n removeFile() {\n this.file = null;\n }\n}\n","<div>\n <mat-form-field>\n <mat-label>标题</mat-label>\n <input matInput placeholder=\"输入标题\" [(ngModel)]=\"title\" />\n </mat-form-field>\n\n <div class=\"mt-2\">\n <input #fileInput class=\"hidden\" type=\"file\" (change)=\"selectFiles($event)\" />\n <button mat-raised-button (click)=\"fileInput.click()\">选择文件</button>\n </div>\n @if (file) {\n <div class=\"p-2 flex justify-between items-center\">\n <div>{{ file.name }}</div>\n <button matSuffix mat-icon-button (click)=\"removeFile()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n }\n</div>\n","import { Component, DoCheck, OnInit, input, output } from '@angular/core';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\n@Component({\n selector: 'rolatech-storage-folder-create',\n templateUrl: './storage-folder-create.component.html',\n styleUrls: ['./storage-folder-create.component.scss'],\n standalone: true,\n imports: [MatFormFieldModule, MatInputModule, FormsModule, MatCheckboxModule],\n})\nexport class StorageFolderCreateComponent implements OnInit, DoCheck {\n name = input<string>();\n isPublic = input<boolean>(true);\n output = output<any>();\n\n ngOnInit(): void {}\n ngDoCheck(): void {\n this.output.emit({ name: this.name(), isPublic: this.isPublic() });\n }\n}\n","<div>\n <mat-form-field>\n <mat-label>名称</mat-label>\n <input matInput placeholder=\"输入名称\" [(ngModel)]=\"name\" />\n </mat-form-field>\n <div class=\"flex flex-col\">\n <mat-checkbox class=\"example-margin\" [(ngModel)]=\"isPublic\">公开资源</mat-checkbox>\n <span class=\"text-sm text-gray-500 ml-2 mt-1\">文件夹为图片内容时, 请取消勾选此项</span>\n </div>\n</div>\n","import { Component, HostListener, inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { SafeResourceUrl, DomSanitizer } from '@angular/platform-browser';\nimport { APP_CONFIG } from '@rolatech/angular-common';\n\n@Component({\n selector: 'rolatech-wechat-connect-dialog',\n templateUrl: './wechat-connect-dialog.component.html',\n styleUrls: ['./wechat-connect-dialog.component.scss'],\n standalone: true,\n})\nexport class WechatConnectDialogComponent {\n dialogRef = inject(MatDialogRef);\n environment = inject(APP_CONFIG);\n data = inject(MAT_DIALOG_DATA);\n urlSafe: SafeResourceUrl;\n sanitizer = inject(DomSanitizer);\n baseUrl = 'https://open.weixin.qq.com/connect/qrconnect';\n\n constructor() {\n const href = 'https://cloudcache.tencent-cloud.com/open_proj/proj_qcloud_v2/gateway/login-regist/css/link-wx-login.css';\n const encodedURI = encodeURI(this.data.redirect_uri);\n const src = `${this.baseUrl}?appid=${this.data.appid}&response_type=code&self_redirect=true&scope=snsapi_login&href=${href}&redirect_uri=${encodedURI}&state=${this.data.state}#wechat_redirect`;\n this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(src);\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n @HostListener('window:message', ['$event'])\n onLogin(event: any): void {\n if (event.origin === this.environment.accountsUrl && event.data.code === 200) {\n this.dialogRef.close();\n }\n }\n}\n","<div class=\"flex flex-col p-3\">\n <div class=\"text-xl font-bold\">扫码绑定微信,提升账号安全和使用便利性</div>\n <div class=\"w-[190px] h-[190px]\">\n <iframe [src]=\"urlSafe\" class=\"w-full h-full inline\" scrolling=\"no\" frameBorder=\"no\"></iframe>\n <div></div>\n </div>\n</div>\n","import { filter } from 'rxjs';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialogContent, MatDialogActions, MatDialogClose } from '@angular/material/dialog';\nimport { HttpEventType, HttpResponse } from '@angular/common/http';\nimport { remove } from 'lodash';\nimport { Media } from '@rolatech/angular-common';\nimport { MediaService } from '@rolatech/angular-services';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { NgClass } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nexport interface PreMedia {\n url: string;\n alt: string;\n isUploading: boolean;\n isUploaded: boolean;\n file: File;\n}\n@Component({\n selector: 'rolatech-media-upload-dialog',\n templateUrl: './media-upload-dialog.component.html',\n styleUrls: ['./media-upload-dialog.component.scss'],\n standalone: true,\n imports: [MatDialogContent, MatButtonModule, NgClass, MatProgressSpinnerModule, MatDialogActions, MatDialogClose],\n})\nexport class MediaUploadDialogComponent implements OnInit {\n fileData: any;\n progressInfos: any = [];\n media: Media[] = [];\n preMedia: PreMedia[] = [];\n isFinished = false;\n\n isUploaded = false;\n\n constructor(\n public dialogRef: MatDialogRef<MediaUploadDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private mediaService: MediaService,\n ) {}\n\n ngOnInit(): void {}\n\n selectFiles(event: any) {\n this.isFinished = false;\n for (const file of event.target.files) {\n this.addImage(file);\n }\n event.target.value = '';\n }\n addImage(file: any) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n (this.preMedia as any).push({\n url: reader.result,\n alt: 'upload image',\n isUploading: false,\n isUploaded: false,\n file: file,\n });\n };\n reader.onerror = (error) => {};\n }\n removeImage(index: any) {\n this.preMedia.splice(index, 1);\n }\n uploadFiles() {\n for (let i = 0; i < this.preMedia.length; i++) {\n if (!this.preMedia[i].isUploaded) {\n this.upload(i, this.preMedia[i].file);\n }\n }\n }\n upload(idx: any, file: any) {\n this.progressInfos[idx] = { value: 0, fileName: file.name };\n const formData = new FormData();\n formData.append('file', file);\n this.preMedia[idx].isUploading = true;\n formData.append('groupId', this.data.groupId);\n\n this.mediaService.uploadAndSave(formData).subscribe({\n next: (res: any) => {\n this.media.push(res.data);\n this.preMedia[idx].isUploading = false;\n this.preMedia[idx].isUploaded = true;\n this.progressInfos[idx].value = 100;\n\n const tmp = this.progressInfos.filter((item: any) => item.value !== 100);\n if (tmp.length <= 0) {\n this.isFinished = true;\n }\n },\n error: (error: any) => {\n this.progressInfos[idx].value = 0;\n },\n });\n }\n}\n","<mat-dialog-content>\n <div class=\"border-dashed border-2 border-gray-400 py-12 flex flex-col justify-center items-center\">\n <input #fileInput multiple class=\"hidden\" type=\"file\" (change)=\"selectFiles($event)\" />\n <button mat-button (click)=\"fileInput.click()\">上传图片</button>\n </div>\n <div class=\"mt-4\">\n <h2 class=\"\">预览</h2>\n <div>\n <ul id=\"gallery\" class=\"flex flex-1 flex-wrap -m-1\">\n @for (item of preMedia; track item.url; let i = $index) {\n <li class=\"block p-1 w-1/2 sm:w-1/3 md:w-1/4 lg:w-1/6 xl:w-1/8 h-24\">\n <article\n tabindex=\"0\"\n [ngClass]=\"item.isUploading ? 'isUploading' : ''\"\n class=\"group hasImage w-full h-full rounded-md focus:outline-none focus:shadow-outline bg-gray-100 cursor-pointer relative text-transparent hover:text-white shadow-sm\"\n >\n <img [src]=\"item.url\" class=\"img-preview w-full h-full sticky object-cover rounded-md bg-fixed\" />\n <section class=\"flex flex-col rounded-md text-xs break-words w-full h-full z-20 absolute top-0 py-2 px-3\">\n @if (item.isUploading) {\n <div class=\"flex justify-center items-center w-full h-full\">\n <mat-spinner color=\"white\" diameter=\"28\"></mat-spinner>\n </div>\n } @else {\n <div class=\"flex\">\n <button (click)=\"removeImage(i)\" class=\"delete ml-auto focus:outline-none hover:bg-gray-300 p-1 rounded-md\">\n <svg\n class=\"pointer-events-none fill-current w-4 h-4 ml-auto\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n class=\"pointer-events-none\"\n d=\"M3 6l3 18h12l3-18h-18zm19-4v2h-20v-2h5.711c.9 0 1.631-1.099 1.631-2h5.316c0 .901.73 2 1.631 2h5.711z\"\n />\n </svg>\n </button>\n </div>\n }\n </section>\n </article>\n </li>\n }\n </ul>\n </div>\n @if (preMedia.length <= 0) {\n <div class=\"flex flex-1 flex-wrap\">\n <div class=\"h-full w-full text-center flex flex-col justify-center items-center py-6\">\n <span class=\"text-small text-gray-500\">No files selected</span>\n </div>\n </div>\n }\n </div>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-button mat-dialog-close>取消</button>\n @if (preMedia.length <= 0) {\n <button mat-button>等待选择</button>\n }\n @if (!isFinished && preMedia.length > 0) {\n <button mat-button (click)=\"uploadFiles()\">立刻上传</button>\n }\n @if (isFinished) {\n <button mat-button [mat-dialog-close]=\"media\">完成</button>\n }\n</mat-dialog-actions>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'rolatech-spacer',\n templateUrl: './spacer.component.html',\n styleUrls: ['./spacer.component.scss'],\n standalone: true,\n})\nexport class SpacerComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<span class=\"app-spacer\"></span>\n","import { Component, input, output } from '@angular/core';\nimport { Media } from '@rolatech/angular-common';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\n\n@Component({\n selector: 'rolatech-media-list',\n templateUrl: './media-list.component.html',\n styleUrls: ['./media-list.component.scss'],\n standalone: true,\n imports: [MatProgressBarModule],\n})\nexport class MediaListComponent {\n isUploading = input<boolean>();\n media = input<Media[]>();\n showAdd = input<boolean>(true);\n mediaItemClick = output<Media>();\n upload = output<FormData | null>();\n\n onMediaItemClick(item: Media) {\n this.mediaItemClick.emit(item);\n }\n onUpload(event: any) {\n this.upload.emit(event);\n }\n}\n","<div class=\"flex flex-row flex-wrap box-border items-center\">\n <div class=\"progress-bar\">\n @if (isUploading()) {\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n }\n </div>\n <div class=\"flex flex-row flex-wrap box-border items-center gap-2\">\n <ng-content></ng-content>\n <div>\n <input style=\"display: none\" type=\"file\" accept=\"image/*, video/*\" (change)=\"onUpload($event)\" #fileInput />\n @if (showAdd()) {\n <div class=\"add-button\">\n <img (click)=\"fileInput.click()\" class=\"tile-media\" src=\"assets/images/baseline_add_black_48dp.png\" alt=\"add image\" />\n </div>\n }\n </div>\n </div>\n</div>\n","import { Component, input, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { Media } from '@rolatech/angular-common';\n\n@Component({\n selector: 'rolatech-media-list-item',\n templateUrl: './media-list-item.component.html',\n styleUrls: ['./media-list-item.component.scss'],\n standalone: true,\n imports: [MatButtonModule, MatMenuModule, MatIconModule],\n})\nexport class MediaListItemComponent {\n media = input.required<Media>();\n uploadProgress = input<number>(0);\n\n mediaItemClick = output<{\n selected: number;\n media: Media;\n }>();\n deleteMedia = output<Media>();\n\n onMediaItemClick(event: any) {\n this.mediaItemClick.emit(event);\n }\n onDeleteMedia(media: Media) {\n this.deleteMedia.emit(media);\n }\n}\n","<div\n class=\"media-list-item relative hasImage focus:outline-none focus:shadow-outline bg-gray-100 cursor-pointer text-transparent hover:text-white shadow-sm\"\n>\n <div class=\"absolute z-30 right-0\">\n <div class=\"flex-1\"></div>\n <div>\n <button mat-icon-button [matMenuTriggerFor]=\"beforeMenu\" class=\"ml-auto focus:outline-none hover:bg-gray-300 p-1\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #beforeMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item (click)=\"onDeleteMedia(media())\">\n <span>删除</span>\n </button>\n </mat-menu>\n </div>\n </div>\n <div id=\"thumbnail\" class=\"thumbnail\">\n <img class=\"tile-media\" (click)=\"onMediaItemClick(media)\" [src]=\"media().url\" [alt]=\"media().alt\" />\n </div>\n <section\n (click)=\"onMediaItemClick(media())\"\n class=\"flex flex-col text-xs break-words w-full h-full z-20 absolute top-0\"\n ></section>\n</div>\n","import { Router, RouterEvent, NavigationEnd, Event } from '@angular/router';\nimport { Component, OnInit } from '@angular/core';\nimport { filter } from 'rxjs';\n\n@Component({\n selector: 'rolatech-not-found',\n templateUrl: './not-found.component.html',\n styleUrls: ['./not-found.component.scss'],\n standalone: true,\n})\nexport class NotFoundComponent implements OnInit {\n url!: string;\n constructor(private router: Router) {\n router.events.pipe(filter((e: Event) => e instanceof RouterEvent)).subscribe((e) => {\n if (e instanceof NavigationEnd) {\n this.url = e.url;\n }\n });\n }\n\n ngOnInit() {\n this.router.events.pipe(filter((e: Event) => e instanceof RouterEvent)).subscribe((e) => {\n if (e instanceof NavigationEnd) {\n this.url = e.url;\n }\n });\n }\n}\n","<div class=\"not-found-content\">\n <p>\n <b>404.</b>\n <ins>That’s an error.</ins>\n </p>\n <p>\n The requested URL <code>{{ url }}</code> not found on this server.\n </p>\n <a href=\"/\">return home</a>\n</div>\n","import { Component, inject, Inject, OnInit } from '@angular/core';\nimport {\n MatDialogRef,\n MAT_DIALOG_DATA,\n MatDialogTitle,\n MatDialogContent,\n MatDialogActions,\n MatDialogClose,\n} from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\n\nexport interface DialogData {\n title: string;\n message: string;\n}\n\n@Component({\n selector: 'rolatech-confirmation-dialog',\n templateUrl: './confirmation-dialog.component.html',\n styleUrls: ['./confirmation-dialog.component.scss'],\n standalone: true,\n imports: [MatDialogTitle, MatDialogContent, MatDialogActions, MatButtonModule, MatDialogClose],\n})\nexport class ConfirmationDialogComponent {\n data: DialogData = inject(MAT_DIALOG_DATA);\n dialogRef!: MatDialogRef<ConfirmationDialogComponent>;\n onNoClick(): void {\n this.dialogRef.close();\n }\n}\n","@if (data.title) {\n <h2 mat-dialog-title>{{ data.title }}</h2>\n}\n<div mat-dialog-content>\n {{ data.message }}\n</div>\n<div mat-dialog-actions align=\"end\">\n <button mat-button mat-dialog-close>取消</button>\n <button mat-button [mat-dialog-close]=\"true\" cdkFocusInitial>确定</button>\n</div>\n","import { MatDialog } from '@angular/material/dialog';\nimport { inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { DialogService, SnackBarService } from '@rolatech/angular-services';\nimport { Title } from '@angular/platform-browser';\n\nexport class BaseComponent {\n route = inject(ActivatedRoute);\n router = inject(Router);\n id = this.route.snapshot.params['id'];\n dialogService = inject(DialogService);\n dialog = inject(MatDialog);\n snackBarService = inject(SnackBarService);\n titleService = inject(Title);\n}\n","import { Component, OnInit, computed, effect, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport { RouterModule } from '@angular/router';\nimport { DataSource } from '@angular/cdk/collections';\nimport { CdkTableDataSourceInput } from '@angular/cdk/table';\nimport { map } from 'lodash';\nexport interface Column {\n ref: string;\n name: string;\n}\nexport interface TableData<T> {\n columns: Column[];\n data: CdkTableDataSourceInput<T>;\n}\n\n@Component({\n selector: 'rolatech-table',\n standalone: true,\n imports: [CommonModule, MatTableModule, RouterModule],\n templateUrl: './table.component.html',\n styleUrl: './table.component.scss',\n})\nexport class TableComponent implements OnInit {\n // dataSource = new MatTableDataSource<TableData<any>>();\n dataSource = input.required<TableData<any>>();\n // displayedColumns: string[] = ['name', 'description', 'resource', 'code', 'pattern', 'method', 'actions'];\n // displayedColumns = effect(() => {\n // const keyToFind = 'ref';\n // const newArray = map(this.dataSource().columns, keyToFind);\n // console.log(newArray);\n // return newArray;\n\n // // return this.dataSource().columns.reduce((acc: any, obj) => {\n // // if (keyToFind in obj) {\n // // acc.push(obj[keyToFind]);\n // // }\n // // console.log(acc);\n // // return acc;\n // // }, []);\n // });\n displayedColumns: string[] = [];\n ngOnInit(): void {\n this.displayedColumns = map(this.dataSource().columns, 'ref');\n // console.log(this.displayedColumns);\n }\n}\n","<table mat-table [dataSource]=\"dataSource().data\">\n @for (column of dataSource().columns; track $index) {\n <ng-container [matColumnDef]=\"column.ref\" sticky>\n <th mat-header-cell *matHeaderCellDef>{{ column.name }}</th>\n <td mat-cell *matCellDef=\"let item\">{{ item[column.ref] }}</td>\n </ng-container>\n }\n <!-- <ng-container matColumnDef=\"actions\" stickyEnd>\n <th mat-header-cell *matHeaderCellDef class=\"actions\">详情</th>\n <td mat-cell *matCellDef=\"let item\" class=\"actions\">\n <a [routerLink]=\"['../', item.id]\"> 详情 </a>\n </td>\n </ng-container> -->\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n</table>\n","import { Component, output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatPaginatorModule, PageEvent } from '@angular/material/paginator';\n\n@Component({\n selector: 'rolatech-paginator',\n standalone: true,\n imports: [CommonModule, MatPaginatorModule],\n templateUrl: './paginator.component.html',\n styleUrl: './paginator.component.scss',\n})\nexport class PaginatorComponent {\n length = 100;\n pageSize = 15;\n pageSizeOptions: number[] = [5, 10, 25, 100];\n pageEvent!: PageEvent;\n page = output<any>();\n onPage(event: any) {\n this.page.emit(event);\n }\n}\n","<mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"onPage($event)\"\n hidePageSize\n showFirstLastButtons\n>\n</mat-paginator>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["EXPANSION_PANEL_ANIMATION_TIMING","i2","i1","i3","i5","i4","map"],"mappings":"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"}
1
+ {"version":3,"file":"rolatech-angular-components.mjs","sources":["../../../../libs/angular-components/src/lib/icon/icon.component.ts","../../../../libs/angular-components/src/lib/icon/icon.component.html","../../../../libs/angular-components/src/lib/icon-button/icon-button.component.ts","../../../../libs/angular-components/src/lib/icon-button/icon-button.component.html","../../../../libs/angular-components/src/lib/title/title.component.ts","../../../../libs/angular-components/src/lib/title/title.component.html","../../../../libs/angular-components/src/lib/app-container/app-container.component.ts","../../../../libs/angular-components/src/lib/app-container/app-container.component.html","../../../../libs/angular-components/src/lib/app-container-content/app-container-content.component.ts","../../../../libs/angular-components/src/lib/app-container-content/app-container-content.component.html","../../../../libs/angular-components/src/provider.ts","../../../../libs/angular-components/src/lib/topbar/topbar.component.ts","../../../../libs/angular-components/src/lib/topbar/topbar.component.html","../../../../libs/angular-components/src/lib/app-drawer/expansion-animations.ts","../../../../libs/angular-components/src/lib/app-drawer/app-drawer.component.ts","../../../../libs/angular-components/src/lib/app-drawer/app-drawer.component.html","../../../../libs/angular-components/src/lib/app-layout/app-layout.component.ts","../../../../libs/angular-components/src/lib/app-layout/app-layout.component.html","../../../../libs/angular-components/src/lib/app-page/app-page.component.ts","../../../../libs/angular-components/src/lib/app-page/app-page.component.html","../../../../libs/angular-components/src/lib/app-footer/app-footer.component.ts","../../../../libs/angular-components/src/lib/app-footer/app-footer.component.html","../../../../libs/angular-components/src/lib/console-layout/console-layout.component.ts","../../../../libs/angular-components/src/lib/console-layout/console-layout.component.html","../../../../libs/angular-components/src/lib/menu-user/menu-user.component.ts","../../../../libs/angular-components/src/lib/menu-user/menu-user.component.html","../../../../libs/angular-components/src/lib/topbar-avatar-menu/topbar-avatar-menu.component.ts","../../../../libs/angular-components/src/lib/topbar-avatar-menu/topbar-avatar-menu.component.html","../../../../libs/angular-components/src/lib/folder/folder.component.ts","../../../../libs/angular-components/src/lib/folder/folder.component.html","../../../../libs/angular-components/src/lib/media-preview-dialog/media-preview-dialog.component.ts","../../../../libs/angular-components/src/lib/media-preview-dialog/media-preview-dialog.component.html","../../../../libs/angular-components/src/lib/material.module.ts","../../../../libs/angular-components/src/lib/angular-components.module.ts","../../../../libs/angular-components/src/lib/loading-spinner/loading-spinner.component.ts","../../../../libs/angular-components/src/lib/loading-spinner/loading-spinner.component.html","../../../../libs/angular-components/src/lib/media-upload/media-upload.component.ts","../../../../libs/angular-components/src/lib/media-upload/media-upload.component.html","../../../../libs/angular-components/src/lib/storage-bucket-create/storage-bucket-create.component.ts","../../../../libs/angular-components/src/lib/storage-bucket-create/storage-bucket-create.component.html","../../../../libs/angular-components/src/lib/storage-file-upload/storage-file-upload.component.ts","../../../../libs/angular-components/src/lib/storage-file-upload/storage-file-upload.component.html","../../../../libs/angular-components/src/lib/storage-folder-create/storage-folder-create.component.ts","../../../../libs/angular-components/src/lib/storage-folder-create/storage-folder-create.component.html","../../../../libs/angular-components/src/lib/wechat-connect-dialog/wechat-connect-dialog.component.ts","../../../../libs/angular-components/src/lib/wechat-connect-dialog/wechat-connect-dialog.component.html","../../../../libs/angular-components/src/lib/media-upload-dialog/media-upload-dialog.component.ts","../../../../libs/angular-components/src/lib/media-upload-dialog/media-upload-dialog.component.html","../../../../libs/angular-components/src/lib/spacer/spacer.component.ts","../../../../libs/angular-components/src/lib/spacer/spacer.component.html","../../../../libs/angular-components/src/lib/media-list/media-list.component.ts","../../../../libs/angular-components/src/lib/media-list/media-list.component.html","../../../../libs/angular-components/src/lib/media-list-item/media-list-item.component.ts","../../../../libs/angular-components/src/lib/media-list-item/media-list-item.component.html","../../../../libs/angular-components/src/lib/not-found/not-found.component.ts","../../../../libs/angular-components/src/lib/not-found/not-found.component.html","../../../../libs/angular-components/src/lib/confirmation-dialog/confirmation-dialog.component.ts","../../../../libs/angular-components/src/lib/confirmation-dialog/confirmation-dialog.component.html","../../../../libs/angular-components/src/lib/base.component.ts","../../../../libs/angular-components/src/lib/table/table.component.ts","../../../../libs/angular-components/src/lib/table/table.component.html","../../../../libs/angular-components/src/lib/paginator/paginator.component.ts","../../../../libs/angular-components/src/lib/paginator/paginator.component.html","../../../../libs/angular-components/src/rolatech-angular-components.ts"],"sourcesContent":["import { Component, HostBinding, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIcon } from '@angular/material/icon';\n\n@Component({\n selector: 'rolatech-icon',\n standalone: true,\n imports: [CommonModule, MatIcon],\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class IconComponent {\n @HostBinding('class.rolatech-icon') hasClass = true;\n}\n","<mat-icon>\n <ng-content></ng-content>\n</mat-icon>\n","import { Component, HostBinding, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IconComponent } from '../icon/icon.component';\n\n@Component({\n selector: 'rolatech-icon-button',\n standalone: true,\n imports: [CommonModule, IconComponent],\n templateUrl: './icon-button.component.html',\n styleUrl: './icon-button.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class IconButtonComponent {\n @HostBinding('class.rolatech-icon-button') hasClass = true;\n}\n","<button\n id=\"button\"\n class=\"w-10 h-10 p-2 inline-block relative cursor-pointer hover:bg-gray-100 rounded-full rolatech-icon-button\"\n onclick=\"this.blur()\"\n>\n <!-- <ng-content select=\"rolatech-icon\"></ng-content> -->\n <rolatech-icon>\n <ng-content></ng-content>\n </rolatech-icon>\n</button>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-title',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './title.component.html',\n styleUrl: './title.component.scss',\n})\nexport class TitleComponent {}\n","<a class=\"text-xl font-medium py-3 cursor-pointer\">\n <ng-content></ng-content>\n</a>\n","import { Component, HostBinding } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-app-container',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './app-container.component.html',\n styleUrl: './app-container.component.scss',\n})\nexport class AppContainerComponent {\n @HostBinding('class.rolatech-app-container') hasClass = true;\n}\n","<div class=\"px-4 xl:max-w-[1024px] 2xl:max-w-[1280px] m-auto\">\n <ng-content></ng-content>\n</div>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatSidenavModule } from '@angular/material/sidenav';\n\n@Component({\n selector: 'rolatech-app-container-content',\n standalone: true,\n imports: [CommonModule, MatSidenavModule],\n templateUrl: './app-container-content.component.html',\n styleUrl: './app-container-content.component.scss',\n})\nexport class AppContainerContentComponent {}\n","<div>\n <ng-content></ng-content>\n</div>\n","import { EnvironmentProviders, InjectionToken, Provider, makeEnvironmentProviders } from '@angular/core';\n\nexport interface AppDrawerConfig {\n persistent: boolean;\n}\nexport interface AppTopbarConfig {\n persistent: boolean;\n}\nexport interface AppLayoutConfig {\n title: string;\n subtitle?: string;\n persistent?: boolean | undefined;\n topbar?: AppTopbarConfig;\n drawer?: AppDrawerConfig;\n}\n\nexport const APP_LAYOUT = new InjectionToken<AppLayoutConfig>('APP_LAYOUT');\n\nexport function provideAngularLayout(config?: AppLayoutConfig): EnvironmentProviders {\n const providers: (Provider | EnvironmentProviders)[] = [\n {\n provide: APP_LAYOUT,\n useValue: config,\n },\n ];\n return makeEnvironmentProviders(providers);\n}\n","import { Component, ElementRef, HostBinding, OnInit, PLATFORM_ID, Renderer2, ViewEncapsulation, inject } from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { RouterLink } from '@angular/router';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIcon } from '@angular/material/icon';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { Observable, map, shareReplay } from 'rxjs';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { APP_LAYOUT } from '../../provider';\nimport { AppDrawerComponent } from '../app-drawer/app-drawer.component';\n\n@Component({\n selector: 'rolatech-topbar',\n standalone: true,\n imports: [CommonModule, RouterLink, IconButtonComponent, MatButtonModule, MatIcon],\n templateUrl: './topbar.component.html',\n styleUrl: './topbar.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class TopbarComponent implements OnInit {\n @HostBinding('id') hostId = 'rolatech-topbar';\n @HostBinding('class.rolatech-topbar') hasClass = true;\n persistent!: boolean | undefined;\n el = inject(ElementRef);\n renderer = inject(Renderer2);\n platformId = inject(PLATFORM_ID);\n breakpointObserver = inject(BreakpointObserver);\n appLayout = inject(APP_LAYOUT);\n isHandset$: Observable<boolean>;\n appDrawer!: AppDrawerComponent;\n constructor() {\n this.isHandset$ = this.breakpointObserver.observe([Breakpoints.Handset]).pipe(\n map((result) => result.matches),\n shareReplay(),\n );\n }\n ngOnInit(): void {\n this.setMenuIconVisible();\n }\n setMenuIconVisible() {\n if (this.persistent) {\n return;\n }\n if (isPlatformBrowser(this.platformId)) {\n this.breakpointObserver\n .observe(Breakpoints.Handset)\n .pipe(map((result) => result.matches))\n .subscribe({\n next: (res) => {\n if (res) {\n this.renderer.removeAttribute(this.el.nativeElement, 'persistent');\n } else {\n this.renderer.setAttribute(this.el.nativeElement, 'persistent', '');\n }\n },\n });\n }\n }\n\n onToggle() {\n this.appDrawer.toggle();\n }\n}\n","<div class=\"h-14 px-2 sm:px-4 flex items-center\">\n @if (persistent || (isHandset$ | async)) {\n <rolatech-icon-button id=\"topbar-menu-button\" (click)=\"onToggle()\">menu</rolatech-icon-button>\n }\n <div id=\"title\" class=\"cursor-pointer\" routerLink=\"/\">\n <div class=\"text-black text-lg sm:text-xl font-bold\">\n <span class=\"text-orange-600\">{{ appLayout.title }}</span>\n <span>{{ appLayout.subtitle }}</span>\n </div>\n </div>\n <div class=\"flex-1\"></div>\n <ng-content></ng-content>\n</div>\n","import { animate, AnimationTriggerMetadata, state, style, transition, trigger } from '@angular/animations';\n\n/** Time and timing curve for expansion panel animations. */\n// Note: Keep this in sync with the Sass variable for the panel header animation.\nexport const EXPANSION_PANEL_ANIMATION_TIMING = '225ms cubic-bezier(0.4,0.0,0.2,1)';\nexport const matExpansionAnimations: {\n readonly indicatorRotate: AnimationTriggerMetadata;\n readonly bodyExpansion: AnimationTriggerMetadata;\n} = {\n /** Animation that rotates the indicator arrow. */\n indicatorRotate: trigger('indicatorRotate', [\n state('collapsed, void', style({ transform: 'rotate(0deg)' })),\n state('expanded', style({ transform: 'rotate(180deg)' })),\n transition('expanded <=> collapsed, void => collapsed', animate(EXPANSION_PANEL_ANIMATION_TIMING)),\n ]),\n /** Animation that expands and collapses the panel content. */\n bodyExpansion: trigger('bodyExpansion', [\n state('collapsed, void', style({ height: '0px', visibility: 'hidden' })),\n // Clear the `visibility` while open, otherwise the content will be visible when placed in\n // a parent that's `visibility: hidden`, because `visibility` doesn't apply to descendants\n // that have a `visibility` of their own (see #27436).\n state('expanded', style({ height: '*', visibility: '' })),\n transition('expanded <=> collapsed, void => collapsed', animate(EXPANSION_PANEL_ANIMATION_TIMING)),\n ]),\n};\nexport const heightAnimation = trigger('heightAnimation', [\n state(\n 'open',\n style({\n height: '*',\n visibility: '',\n }),\n ),\n state(\n 'closed',\n style({\n height: '0px',\n visibility: 'hidden',\n }),\n ),\n transition('open <=> closed', [animate(EXPANSION_PANEL_ANIMATION_TIMING)]),\n]);\n","import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n Input,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n ViewEncapsulation,\n inject,\n input,\n viewChild,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { MatNavList } from '@angular/material/list';\nimport { ActivatedRoute, NavigationEnd, Router, RouterLink, RouterLinkActive } from '@angular/router';\nimport { Observable, filter, map } from 'rxjs';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { IconButtonComponent } from '../icon-button/icon-button.component';\nimport { IconComponent } from '../icon/icon.component';\nimport { APP_LAYOUT } from '../../provider';\nimport { MatExpansionPanel, MatExpansionPanelHeader } from '@angular/material/expansion';\nimport { MatIcon } from '@angular/material/icon';\nimport { heightAnimation } from './expansion-animations';\nexport const EXPANSION_PANEL_ANIMATION_TIMING = '225ms cubic-bezier(0.4,0.0,0.2,1)';\n\nexport interface LINK {\n title: string;\n subtitle?: string;\n openinView?: boolean;\n icon?: string;\n link: string;\n children?: LINK[];\n}\n@Component({\n selector: 'rolatech-app-drawer',\n standalone: true,\n imports: [\n CommonModule,\n MatNavList,\n RouterLink,\n MatExpansionPanel,\n MatExpansionPanelHeader,\n MatIcon,\n RouterLinkActive,\n IconButtonComponent,\n IconComponent,\n ],\n templateUrl: './app-drawer.component.html',\n styleUrl: './app-drawer.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n animations: [heightAnimation], // Apply the animation to the component\n})\nexport class AppDrawerComponent implements OnInit {\n opened = false;\n links = input<LINK[]>();\n @HostBinding('id') hostId = 'rolatech-app-drawer';\n @HostBinding('class.rolatech-app-drawer') hasClass = true;\n @HostBinding('style.transition-duration') duration = '200ms';\n persistent: boolean | undefined;\n el = inject(ElementRef);\n renderer = inject(Renderer2);\n platformId = inject(PLATFORM_ID);\n breakpointObserver = inject(BreakpointObserver);\n appLayout = inject(APP_LAYOUT);\n guideEl = viewChild<ElementRef>('guide');\n content = viewChild<ElementRef>('content');\n scrimEl = viewChild<ElementRef>('scrim');\n headerEl = viewChild<ElementRef>('header');\n isHandset$!: Observable<boolean>;\n isMobile = false;\n isPersistent = true;\n completed = false;\n panelOpenState = false;\n\n open() {\n this.opened = true;\n this.renderer.setAttribute(this.el.nativeElement, 'opened', '');\n this.renderer.setAttribute(this.content()?.nativeElement, 'opened', '');\n if (this.isMobile) {\n this.renderer.addClass(this.scrimEl()?.nativeElement, 'visible');\n }\n }\n close() {\n this.opened = false;\n this.renderer.removeAttribute(this.el.nativeElement, 'opened');\n this.renderer.removeAttribute(this.content()?.nativeElement, 'opened');\n if (this.isMobile) {\n this.renderer.removeClass(this.scrimEl()?.nativeElement, 'visible');\n }\n }\n toggle() {\n this.opened ? this.close() : this.open();\n }\n ngOnInit() {\n if (isPlatformBrowser(this.platformId)) {\n this.completed = false;\n this.isHandset$ = this.breakpointObserver.observe(Breakpoints.Handset).pipe(map((result) => result.matches));\n this.isHandset$.subscribe({\n next: (res: any) => {\n this.opened = !res;\n this.isMobile = res;\n this.isPersistent = !res;\n if (res) {\n if (this.persistent) {\n this.renderer.removeAttribute(this.el.nativeElement, 'persistent');\n this.renderer.removeAttribute(this.headerEl()?.nativeElement, 'hidden', '');\n this.renderer.removeAttribute(this.el.nativeElement, 'opened');\n this.renderer.removeAttribute(this.content()?.nativeElement, 'opened');\n }\n } else {\n if (this.persistent) {\n this.renderer.setAttribute(this.el.nativeElement, 'persistent', '');\n this.renderer.setAttribute(this.headerEl()?.nativeElement, 'hidden', '');\n this.renderer.setAttribute(this.el.nativeElement, 'opened', '');\n this.renderer.setAttribute(this.content()?.nativeElement, 'opened', '');\n }\n }\n this.completed = true;\n },\n });\n }\n }\n}\n","<div id=\"scrim\" #scrim class=\"tp-yt-app-drawer\" (click)=\"close()\" style=\"transition-duration: 200ms\"></div>\n<div id=\"contentContainer\" #content class=\"tp-yt-app-drawer\" style=\"transition-duration: 200ms\">\n <div id=\"guide-wrapper\">\n <div id=\"guide-spacer\"></div>\n <div id=\"guide-content\">\n <div id=\"header\" #header class=\"flex pl-4 h-14 items-center\">\n <rolatech-icon-button #menuButton (click)=\"this.toggle()\" onclick=\"this.blur()\">menu</rolatech-icon-button>\n <div class=\"text-black text-lg sm:text-xl font-bold\" routerLink=\"/\">\n <span class=\"text-orange-600\">{{ appLayout.title }}</span>\n <span>{{ appLayout.subtitle }}</span>\n </div>\n </div>\n <div id=\"guide-inner-content\" class=\"flex flex-col ytd-app\">\n @if (completed) {\n <div class=\"flex p-3 flex-col gap-2\">\n @for (item of links(); track $index) {\n @if (item.children) {\n <div class=\"cursor-pointer panel\">\n <div class=\"flex items-center h-11 mr-2\" (click)=\"panelOpenState = !panelOpenState\">\n <rolatech-icon class=\"ml-3\">{{ item.icon }}</rolatech-icon>\n <span class=\"ml-3\">{{ item.title }}</span>\n <div class=\"flex-1\"></div>\n <rolatech-icon\n style=\"transition-duration:.5s;transform: {{ panelOpenState ? 'rotate(180deg)' : 'rotate(0deg)' }};\"\n >expand_more</rolatech-icon\n >\n </div>\n <div class=\"flex flex-col pl-8\" [@heightAnimation]=\"panelOpenState === true ? 'open' : 'closed'\">\n @for (child of item.children; track child) {\n <a\n [routerLink]=\"child.link\"\n routerLinkActive=\"drawer-active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n class=\"p-3\"\n (click)=\"this.isPersistent ? '' : this.close()\"\n >\n <span class=\"text-sm\">{{ child.title }}</span>\n </a>\n }\n </div>\n </div>\n } @else {\n @if (item.openinView) {\n <a\n class=\"flex hover:bg-gray-100 min-h-11\"\n [href]=\"item.link\"\n target=\"_blank\"\n (click)=\"this.isPersistent ? '' : this.close()\"\n >\n <div class=\"flex justify-between items-center w-full\">\n <div class=\"flex justify-start\">\n @if (item.icon) {\n <rolatech-icon class=\"ml-3\">{{ item.icon }}</rolatech-icon>\n }\n <div class=\"flex flex-col ml-3\">\n <span>{{ item.title }}</span>\n <span class=\"text-sm opacity-75\">{{ item.subtitle }}</span>\n </div>\n </div>\n <rolatech-icon class=\"scale-90\">open_in_new</rolatech-icon>\n </div>\n </a>\n } @else {\n <a\n class=\"flex hover:bg-gray-100 min-h-11\"\n [routerLink]=\"item.link\"\n (click)=\"this.isPersistent ? '' : this.close()\"\n routerLinkActive=\"drawer-active\"\n [routerLinkActiveOptions]=\"{ exact: true }\"\n #routerLink=\"routerLinkActive\"\n >\n <div class=\"flex justify-between items-center w-full\">\n <div class=\"flex justify-start\">\n @if (item.icon) {\n <rolatech-icon class=\"ml-3\">{{ item.icon }}</rolatech-icon>\n }\n <div class=\"flex flex-col ml-3\">\n <span>{{ item.title }}</span>\n <span class=\"text-sm\">{{ item.subtitle }}</span>\n </div>\n </div>\n </div>\n </a>\n }\n }\n }\n </div>\n }\n </div>\n </div>\n </div>\n</div>\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostBinding,\n OnInit,\n PLATFORM_ID,\n Renderer2,\n ViewEncapsulation,\n contentChild,\n inject,\n viewChild,\n} from '@angular/core';\nimport { CommonModule, isPlatformBrowser } from '@angular/common';\nimport { MatSidenav, MatSidenavModule } from '@angular/material/sidenav';\nimport { MatListModule, MatNavList } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { RouterLink, RouterOutlet } from '@angular/router';\nimport { AppContainerComponent } from '../app-container/app-container.component';\nimport { AppContainerContentComponent } from '../app-container-content/app-container-content.component';\nimport { TopbarComponent } from '../topbar/topbar.component';\nimport { AppDrawerComponent, LINK } from '../app-drawer/app-drawer.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { map, startWith } from 'rxjs';\nimport { APP_LAYOUT } from '../../provider';\n@Component({\n selector: 'rolatech-app-layout',\n standalone: true,\n imports: [\n CommonModule,\n RouterLink,\n RouterOutlet,\n AppContainerComponent,\n AppContainerContentComponent,\n MatListModule,\n MatNavList,\n MatSidenav,\n MatButtonModule,\n MatIconModule,\n MatSidenavModule,\n TopbarComponent,\n AppDrawerComponent,\n ],\n templateUrl: './app-layout.component.html',\n styleUrl: './app-layout.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AppLayoutComponent implements OnInit, AfterContentInit {\n @HostBinding('id') hostId = 'rolatech-app-layout';\n @HostBinding('class.rolatech-app-layout') hasClass = true;\n appLayout = inject(APP_LAYOUT);\n topbar = contentChild.required(TopbarComponent);\n drawer = contentChild.required(AppDrawerComponent);\n el = inject(ElementRef);\n renderer = inject(Renderer2);\n platformId = inject(PLATFORM_ID);\n breakpointObserver = inject(BreakpointObserver);\n ngOnInit() {\n if (this.topbar()) {\n this.topbar().persistent = this.appLayout.persistent;\n this.topbar().appDrawer = this.drawer();\n }\n if (this.drawer()) {\n this.drawer().persistent = this.appLayout.persistent;\n }\n if (isPlatformBrowser(this.platformId)) {\n this.breakpointObserver\n .observe(Breakpoints.Handset)\n .pipe(map((result) => result.matches))\n .subscribe({\n next: (res) => {\n if (res) {\n this.renderer.removeAttribute(this.el.nativeElement, 'persistent');\n } else {\n this.renderer.setAttribute(this.el.nativeElement, 'persistent', '');\n }\n },\n });\n }\n }\n ngAfterContentInit(): void {}\n}\n","<ng-content select=\"rolatech-topbar\"></ng-content>\n<ng-content select=\"rolatech-app-drawer\"></ng-content>\n<ng-content select=\"rolatech-app-page\"></ng-content>\n<div class=\"flex-1\"></div>\n<ng-content select=\"rolatech-app-footer\"></ng-content>\n","import { Component, HostBinding, ViewEncapsulation } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-app-page',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './app-page.component.html',\n styleUrl: './app-page.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AppPageComponent {\n @HostBinding('id') hostId = 'rolatech-app-page';\n @HostBinding('class.rolatech-app-page') hasClass = true;\n}\n","<ng-content></ng-content>\n","import { Component, HostBinding, ViewEncapsulation, inject, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { APP_CONFIG } from '@rolatech/angular-common';\n\n@Component({\n selector: 'rolatech-app-footer',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './app-footer.component.html',\n styleUrl: './app-footer.component.scss',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AppFooterComponent {\n @HostBinding('id') hostId = 'rolatech-app-footer';\n @HostBinding('class.rolatech-app-footer') hasClass = true;\n config = inject(APP_CONFIG);\n title = input<string>();\n copyright = input<string>('');\n}\n","<div class=\"bg-gray-100 text-black flex flex-col justify-between px-5 sm:px-16 py-6\">\n <div class=\"flex flex-col sm:flex-row sm:gap-10 gap-3 py-3\">\n <ng-content></ng-content>\n </div>\n <div class=\"flex justify-between mt-6\">\n <div class=\"cursor-pointer\">\n <a href=\"/\" target=\"_blank\" class=\"text-lg font-bold\">{{ title() }}</a>\n </div>\n <span class=\"text-sm font-thin\">©{{ copyright() }}</span>\n </div>\n</div>\n","import { Component } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'rolatech-console-layout',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './console-layout.component.html',\n styleUrl: './console-layout.component.scss',\n})\nexport class ConsoleLayoutComponent {}\n","<p>console-layout works!</p>\n","import { Component, computed, effect, inject, input, model } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { APP_CONFIG } from '@rolatech/angular-common';\nexport interface MenuUser {\n name: string;\n avatar: string;\n email: string;\n username: string;\n}\n@Component({\n standalone: true,\n imports: [MatMenuModule, MatIconModule],\n selector: 'rolatech-menu-user',\n templateUrl: './menu-user.component.html',\n styleUrls: ['./menu-user.component.scss'],\n})\nexport class MenuUserComponent {\n environment = inject(APP_CONFIG);\n myaccountUrl = this.environment.myaccountUrl;\n user = input<MenuUser | any>();\n avatar = computed(() => {\n return this.user().avatar;\n });\n constructor() {\n // effect(() => {\n // this.data = this.user();\n // });\n }\n}\n","<div class=\"min-w-[256px]\">\n @if (user()) {\n <div class=\"px-6 py-3\">\n <div class=\"flex flex-row items-center\">\n <div class=\"mr-3 w-14 h-14 rounded-full bg-orange-600\">\n @if (user().avatar) {\n <img [src]=\"user().avatar\" class=\"w-14 h-14 object-cover rounded-full\" />\n }\n </div>\n <div class=\"flex flex-col\">\n <div>\n <div class=\"text-lg font-bold\">{{ user().name }}</div>\n <div class=\"formated-string\">\n <span>&#64;{{ user().username }}</span>\n </div>\n </div>\n </div>\n </div>\n <!-- <div class=\"flex\">\n <a\n [href]=\"myaccountUrl\"\n target=\"_blank\"\n class=\"text-sm my-2 p-1 px-6 ml-24 rounded border border-gray-300 hover:bg-gray-200\"\n >用户中心</a\n >\n </div> -->\n </div>\n }\n\n <div class=\"flex justify-between items-center\">\n <a mat-menu-item [href]=\"myaccountUrl\" target=\"_blank\" class=\"px-6\">\n <span class=\"flex justify-between items-center\">\n <span class=\"pl-2\"> 用户中心 </span>\n <span class=\"flex\"> <mat-icon>open_in_new</mat-icon></span>\n </span>\n </a>\n </div>\n</div>\n","import { Component, PLATFORM_ID, inject, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatMenuModule, MatMenuPanel } from '@angular/material/menu';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { RouterLink, RouterOutlet } from '@angular/router';\nimport { MenuUserComponent } from '../menu-user/menu-user.component';\nimport { APP_CONFIG } from '@rolatech/angular-common';\n\n@Component({\n selector: 'rolatech-topbar-avatar-menu',\n standalone: true,\n imports: [\n CommonModule,\n MatSidenavModule,\n RouterLink,\n MatListModule,\n MatIconModule,\n MatMenuModule,\n RouterOutlet,\n MenuUserComponent,\n ],\n templateUrl: './topbar-avatar-menu.component.html',\n styleUrl: './topbar-avatar-menu.component.scss',\n})\nexport class TopbarAvatarMenuComponent {\n environment = inject(APP_CONFIG);\n platformId = inject(PLATFORM_ID);\n menu = input.required<MatMenuPanel<any>>();\n user = input<any>();\n}\n","@if (user()) {\n <div class=\"flex\">\n <a\n class=\"flex justify-center items-center rounded-full overflow-hidden cursor-pointer hover:outline-gray-200 outline outline-transparent outline-4\"\n [matMenuTriggerFor]=\"menu()\"\n >\n <div class=\"bg-orange-600 w-9 h-9\">\n @if (user().avatar) {\n <img class=\"w-9 h-9 object-cover\" [src]=\"user().avatar\" />\n }\n </div>\n </a>\n </div>\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'rolatech-folder',\n templateUrl: './folder.component.html',\n styleUrls: ['./folder.component.scss'],\n standalone: true,\n})\nexport class FolderComponent {}\n","<div></div>\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\n\n@Component({\n selector: 'rolatech-media-preview-dialog',\n templateUrl: './media-preview-dialog.component.html',\n styleUrls: ['./media-preview-dialog.component.scss'],\n standalone: true,\n imports: [MatIconModule, MatDividerModule, MatButtonModule],\n})\nexport class MediaPreviewDialogComponent implements OnInit {\n selected: any;\n index = 0;\n prevDisabled = false;\n nextDisabled = false;\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: any,\n private dialogRef: MatDialogRef<MediaPreviewDialogComponent>,\n ) {\n this.data.title = '图片预览';\n }\n\n ngOnInit(): void {\n this.selected = this.data.selected;\n this.prevDisabled = this.selected === 0;\n this.nextDisabled = this.selected === this.data.media.length - 1;\n }\n close(): void {\n this.dialogRef.close();\n }\n prev() {\n this.selected--;\n this.prevDisabled = this.selected === 0;\n this.nextDisabled = this.selected === this.data.media.length - 1;\n }\n next() {\n this.selected++;\n this.prevDisabled = this.selected === 0;\n this.nextDisabled = this.selected === this.data.media.length - 1;\n }\n}\n","<div class=\"flex flex-col h-full overflow-hidden\">\n <div class=\"h-16 flex justify-between items-center px-5\">\n @if (data.title) {\n <div class=\"text-md font-medium\">{{ data.title }}</div>\n }\n <div class=\"cursor-pointer\" (click)=\"close()\">\n <mat-icon fontIcon=\"close\"></mat-icon>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"flex-1 overflow-hidden overflow-y-auto\">\n <div class=\"p-3 flex justify-center items-center\">\n <img class=\"object-cover\" [src]=\"data.media[selected].url\" />\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"h-16 flex justify-between items-center px-5\">\n <button mat-flat-button [disabled]=\"prevDisabled\" (click)=\"prev()\">Prev</button>\n <div>{{ selected + 1 }} / {{ data.media.length }}</div>\n <button mat-flat-button [disabled]=\"nextDisabled\" (click)=\"next()\">Next</button>\n </div>\n</div>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { LayoutModule } from '@angular/cdk/layout';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CdkStepperModule } from '@angular/cdk/stepper';\nimport { CdkTableModule } from '@angular/cdk/table';\nimport { CdkTreeModule } from '@angular/cdk/tree';\nimport { NgModule } from '@angular/core';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatExpansionModule } from '@angular/material/expansion';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatGridListModule } from '@angular/material/grid-list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatPaginatorModule } from '@angular/material/paginator';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { MatSortModule } from '@angular/material/sort';\nimport { MatStepperModule } from '@angular/material/stepper';\nimport { MatTableModule } from '@angular/material/table';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatTreeModule } from '@angular/material/tree';\n\nconst MAT_MODULE = [\n A11yModule,\n ClipboardModule,\n CdkStepperModule,\n CdkTableModule,\n CdkTreeModule,\n DragDropModule,\n LayoutModule,\n MatAutocompleteModule,\n MatBadgeModule,\n MatBottomSheetModule,\n MatButtonModule,\n MatButtonToggleModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatStepperModule,\n MatDatepickerModule,\n MatDialogModule,\n MatDividerModule,\n MatExpansionModule,\n MatGridListModule,\n MatIconModule,\n MatFormFieldModule,\n MatInputModule,\n MatListModule,\n MatMenuModule,\n MatNativeDateModule,\n MatPaginatorModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatRadioModule,\n MatRippleModule,\n MatSelectModule,\n MatSidenavModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSnackBarModule,\n MatSortModule,\n MatTableModule,\n MatTabsModule,\n MatToolbarModule,\n MatTooltipModule,\n MatTreeModule,\n PortalModule,\n ScrollingModule,\n];\n\n@NgModule({\n imports: [...MAT_MODULE],\n exports: [...MAT_MODULE],\n})\nexport class MaterialModule {}\n","import { NgModule } from '@angular/core';\nimport { MaterialModule } from './material.module';\n\n@NgModule({\n imports: [MaterialModule],\n exports: [MaterialModule],\n})\nexport class AngularComponentsModule {}\n","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, OnDestroy, inject, input } from '@angular/core';\nimport { LoadingService } from '@rolatech/angular-services';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'rolatech-loading-spinner',\n templateUrl: './loading-spinner.component.html',\n styleUrls: ['./loading-spinner.component.scss'],\n standalone: true,\n})\nexport class LoadingSpinnerComponent implements AfterViewInit, OnDestroy {\n title = input<string>();\n isLoading!: boolean;\n loadingSubscription!: Subscription;\n loadingService = inject(LoadingService);\n _elmRef = inject(ElementRef);\n _changeDetectorRef = inject(ChangeDetectorRef);\n ngAfterViewInit(): void {\n // this.isLoading = true;\n this._elmRef.nativeElement.style.display = 'none';\n this.loadingSubscription = this.loadingService.loading$.pipe().subscribe((status: boolean) => {\n this._elmRef.nativeElement.style.display = status ? 'block' : 'none';\n this._changeDetectorRef.detectChanges();\n this.isLoading = status;\n });\n }\n\n ngOnDestroy(): void {\n if (this.loadingSubscription) this.loadingSubscription.unsubscribe();\n }\n}\n","<div class=\"spinner-container flex flex-col\">\n <div class=\"sk-fading-circle\">\n <div class=\"sk-circle1 sk-circle\"></div>\n <div class=\"sk-circle2 sk-circle\"></div>\n <div class=\"sk-circle3 sk-circle\"></div>\n <div class=\"sk-circle4 sk-circle\"></div>\n <div class=\"sk-circle5 sk-circle\"></div>\n <div class=\"sk-circle6 sk-circle\"></div>\n <div class=\"sk-circle7 sk-circle\"></div>\n <div class=\"sk-circle8 sk-circle\"></div>\n <div class=\"sk-circle9 sk-circle\"></div>\n <div class=\"sk-circle10 sk-circle\"></div>\n <div class=\"sk-circle11 sk-circle\"></div>\n <div class=\"sk-circle12 sk-circle\"></div>\n </div>\n <div class=\"text-lg font-bold text-center\">{{ title() }}</div>\n</div>\n","import { Component, inject, input, output } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AngularCommonModule, Media } from '@rolatech/angular-common';\nimport { MediaPreviewDialogComponent } from '../media-preview-dialog/media-preview-dialog.component';\nimport { AngularComponentsModule } from '../angular-components.module';\nimport { LoadingSpinnerComponent } from '../loading-spinner/loading-spinner.component';\n\n@Component({\n standalone: true,\n imports: [AngularCommonModule, AngularComponentsModule, LoadingSpinnerComponent],\n selector: 'rolatech-media-upload',\n templateUrl: './media-upload.component.html',\n styleUrls: ['./media-upload.component.scss'],\n})\nexport class MediaUploadComponent {\n title = input<string>('上传图片');\n subtitle = input<string>('文件大小');\n description = input<string>('不能超过5MB');\n isUploading = input<boolean>(false);\n\n mediaItemClick = output<Media>();\n upload = output<FormData | null>();\n\n media: Media[] = [];\n dialog = inject(MatDialog);\n\n onMediaItemClick(item: Media) {\n this.mediaItemClick.emit(item);\n }\n onMediaClick(i: any) {\n const dialogRef = this.dialog.open(MediaPreviewDialogComponent, {\n maxWidth: '80vw',\n maxHeight: '80vh',\n height: '80%',\n width: '80%',\n panelClass: 'full-screen-modal',\n data: {\n media: this.media,\n selected: i,\n },\n });\n dialogRef.afterClosed().subscribe((result) => {});\n }\n onUpload(event: any) {\n const file = event.target.files[0];\n if (file) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n (this.media as any).push({\n url: reader.result,\n alt: 'upload image',\n });\n const formData = new FormData();\n formData.append('file', file);\n this.upload.emit(formData);\n };\n }\n }\n}\n","<div class=\"bg-gray-100 rounded p-6 min-h-[320px] flex items-center justify-center\">\n @if (isUploading()) {\n <div class=\"flex flex-col items-center justify-center\">\n <div class=\"p-3\">\n <mat-icon>upload</mat-icon>\n </div>\n <div class=\"flex flex-col items-center justify-center\">\n <div class=\"font-lg font-bold py-3\">{{ title() }}</div>\n <div class=\"font-sm text-gray-400\">{{ subtitle() }}</div>\n <div class=\"font-sm text-gray-400\">{{ description() }}</div>\n </div>\n <div class=\"py-2\">\n <input style=\"display: none\" type=\"file\" (change)=\"onUpload($event)\" #fileInput />\n <button mat-flat-button color=\"primary\" (click)=\"fileInput.click()\">上传图片</button>\n </div>\n </div>\n } @else {\n <rolatech-loading-spinner title=\"上传中\"></rolatech-loading-spinner>\n }\n</div>\n<div class=\"flex flex-row\">\n @for (media of media; track $index) {\n <div (click)=\"onMediaClick($index)\" class=\"inline-flex flex-row mt-3 mr-3 cursor-pointer rounded-md\">\n <img class=\"rounded-md aspect-video object-cover w-32\" [src]=\"media.url\" />\n </div>\n }\n</div>\n","import { Component, DoCheck, OnInit, input, output } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\n@Component({\n selector: 'rolatech-storage-bucket-create',\n templateUrl: './storage-bucket-create.component.html',\n styleUrls: ['./storage-bucket-create.component.scss'],\n standalone: true,\n imports: [MatFormFieldModule, MatInputModule, FormsModule],\n})\nexport class StorageBucketCreateComponent implements OnInit, DoCheck {\n name = input<string>();\n output = output<any>();\n\n ngOnInit(): void {}\n ngDoCheck(): void {\n this.output.emit(this.name());\n }\n}\n","<div>\n <mat-form-field>\n <mat-label>名称</mat-label>\n <input matInput placeholder=\"输入名称\" [(ngModel)]=\"name\" />\n </mat-form-field>\n</div>\n","import { Component, DoCheck, OnInit, input, output } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\n@Component({\n selector: 'rolatech-storage-file-upload',\n templateUrl: './storage-file-upload.component.html',\n styleUrls: ['./storage-file-upload.component.scss'],\n standalone: true,\n imports: [MatFormFieldModule, MatInputModule, FormsModule, MatButtonModule, MatIconModule],\n})\nexport class StorageFileUploadComponent implements OnInit, DoCheck {\n title = input<string>();\n output = output<any>();\n\n fileData: any;\n progressInfos: any = [];\n isFinished = false;\n isUploaded = false;\n file: any;\n\n ngOnInit(): void {}\n ngDoCheck(): void {\n this.output.emit({\n title: this.title,\n file: this.file,\n });\n }\n selectFiles(event: any) {\n this.isFinished = false;\n this.file = event.target.files[0];\n event.target.value = '';\n }\n removeFile() {\n this.file = null;\n }\n}\n","<div>\n <mat-form-field>\n <mat-label>标题</mat-label>\n <input matInput placeholder=\"输入标题\" [(ngModel)]=\"title\" />\n </mat-form-field>\n\n <div class=\"mt-2\">\n <input #fileInput class=\"hidden\" type=\"file\" (change)=\"selectFiles($event)\" />\n <button mat-raised-button (click)=\"fileInput.click()\">选择文件</button>\n </div>\n @if (file) {\n <div class=\"p-2 flex justify-between items-center\">\n <div>{{ file.name }}</div>\n <button matSuffix mat-icon-button (click)=\"removeFile()\">\n <mat-icon>close</mat-icon>\n </button>\n </div>\n }\n</div>\n","import { Component, DoCheck, OnInit, input, output } from '@angular/core';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { FormsModule } from '@angular/forms';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\n\n@Component({\n selector: 'rolatech-storage-folder-create',\n templateUrl: './storage-folder-create.component.html',\n styleUrls: ['./storage-folder-create.component.scss'],\n standalone: true,\n imports: [MatFormFieldModule, MatInputModule, FormsModule, MatCheckboxModule],\n})\nexport class StorageFolderCreateComponent implements OnInit, DoCheck {\n name = input<string>();\n isPublic = input<boolean>(true);\n output = output<any>();\n\n ngOnInit(): void {}\n ngDoCheck(): void {\n this.output.emit({ name: this.name(), isPublic: this.isPublic() });\n }\n}\n","<div>\n <mat-form-field>\n <mat-label>名称</mat-label>\n <input matInput placeholder=\"输入名称\" [(ngModel)]=\"name\" />\n </mat-form-field>\n <div class=\"flex flex-col\">\n <mat-checkbox class=\"example-margin\" [(ngModel)]=\"isPublic\">公开资源</mat-checkbox>\n <span class=\"text-sm text-gray-500 ml-2 mt-1\">文件夹为图片内容时, 请取消勾选此项</span>\n </div>\n</div>\n","import { Component, HostListener, inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { SafeResourceUrl, DomSanitizer } from '@angular/platform-browser';\nimport { APP_CONFIG } from '@rolatech/angular-common';\n\n@Component({\n selector: 'rolatech-wechat-connect-dialog',\n templateUrl: './wechat-connect-dialog.component.html',\n styleUrls: ['./wechat-connect-dialog.component.scss'],\n standalone: true,\n})\nexport class WechatConnectDialogComponent {\n dialogRef = inject(MatDialogRef);\n environment = inject(APP_CONFIG);\n data = inject(MAT_DIALOG_DATA);\n urlSafe: SafeResourceUrl;\n sanitizer = inject(DomSanitizer);\n baseUrl = 'https://open.weixin.qq.com/connect/qrconnect';\n\n constructor() {\n const href = 'https://cloudcache.tencent-cloud.com/open_proj/proj_qcloud_v2/gateway/login-regist/css/link-wx-login.css';\n const encodedURI = encodeURI(this.data.redirect_uri);\n const src = `${this.baseUrl}?appid=${this.data.appid}&response_type=code&self_redirect=true&scope=snsapi_login&href=${href}&redirect_uri=${encodedURI}&state=${this.data.state}#wechat_redirect`;\n this.urlSafe = this.sanitizer.bypassSecurityTrustResourceUrl(src);\n }\n\n onNoClick(): void {\n this.dialogRef.close();\n }\n\n @HostListener('window:message', ['$event'])\n onLogin(event: any): void {\n if (event.origin === this.environment.accountsUrl && event.data.code === 200) {\n this.dialogRef.close();\n }\n }\n}\n","<div class=\"flex flex-col p-3\">\n <div class=\"text-xl font-bold\">扫码绑定微信,提升账号安全和使用便利性</div>\n <div class=\"w-[190px] h-[190px]\">\n <iframe [src]=\"urlSafe\" class=\"w-full h-full inline\" scrolling=\"no\" frameBorder=\"no\"></iframe>\n <div></div>\n </div>\n</div>\n","import { filter } from 'rxjs';\nimport { Component, Inject, OnInit } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialogContent, MatDialogActions, MatDialogClose } from '@angular/material/dialog';\nimport { HttpEventType, HttpResponse } from '@angular/common/http';\nimport { remove } from 'lodash';\nimport { Media } from '@rolatech/angular-common';\nimport { MediaService } from '@rolatech/angular-services';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { NgClass } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nexport interface PreMedia {\n url: string;\n alt: string;\n isUploading: boolean;\n isUploaded: boolean;\n file: File;\n}\n@Component({\n selector: 'rolatech-media-upload-dialog',\n templateUrl: './media-upload-dialog.component.html',\n styleUrls: ['./media-upload-dialog.component.scss'],\n standalone: true,\n imports: [MatDialogContent, MatButtonModule, NgClass, MatProgressSpinnerModule, MatDialogActions, MatDialogClose],\n})\nexport class MediaUploadDialogComponent implements OnInit {\n fileData: any;\n progressInfos: any = [];\n media: Media[] = [];\n preMedia: PreMedia[] = [];\n isFinished = false;\n\n isUploaded = false;\n\n constructor(\n public dialogRef: MatDialogRef<MediaUploadDialogComponent>,\n @Inject(MAT_DIALOG_DATA) public data: any,\n private mediaService: MediaService,\n ) {}\n\n ngOnInit(): void {}\n\n selectFiles(event: any) {\n this.isFinished = false;\n for (const file of event.target.files) {\n this.addImage(file);\n }\n event.target.value = '';\n }\n addImage(file: any) {\n const reader = new FileReader();\n reader.readAsDataURL(file);\n reader.onload = () => {\n (this.preMedia as any).push({\n url: reader.result,\n alt: 'upload image',\n isUploading: false,\n isUploaded: false,\n file: file,\n });\n };\n reader.onerror = (error) => {};\n }\n removeImage(index: any) {\n this.preMedia.splice(index, 1);\n }\n uploadFiles() {\n for (let i = 0; i < this.preMedia.length; i++) {\n if (!this.preMedia[i].isUploaded) {\n this.upload(i, this.preMedia[i].file);\n }\n }\n }\n upload(idx: any, file: any) {\n this.progressInfos[idx] = { value: 0, fileName: file.name };\n const formData = new FormData();\n formData.append('file', file);\n this.preMedia[idx].isUploading = true;\n formData.append('groupId', this.data.groupId);\n\n this.mediaService.uploadAndSave(formData).subscribe({\n next: (res: any) => {\n this.media.push(res.data);\n this.preMedia[idx].isUploading = false;\n this.preMedia[idx].isUploaded = true;\n this.progressInfos[idx].value = 100;\n\n const tmp = this.progressInfos.filter((item: any) => item.value !== 100);\n if (tmp.length <= 0) {\n this.isFinished = true;\n }\n },\n error: (error: any) => {\n this.progressInfos[idx].value = 0;\n },\n });\n }\n}\n","<mat-dialog-content>\n <div class=\"border-dashed border-2 border-gray-400 py-12 flex flex-col justify-center items-center\">\n <input #fileInput multiple class=\"hidden\" type=\"file\" (change)=\"selectFiles($event)\" />\n <button mat-button (click)=\"fileInput.click()\">上传图片</button>\n </div>\n <div class=\"mt-4\">\n <h2 class=\"\">预览</h2>\n <div>\n <ul id=\"gallery\" class=\"flex flex-1 flex-wrap -m-1\">\n @for (item of preMedia; track item.url; let i = $index) {\n <li class=\"block p-1 w-1/2 sm:w-1/3 md:w-1/4 lg:w-1/6 xl:w-1/8 h-24\">\n <article\n tabindex=\"0\"\n [ngClass]=\"item.isUploading ? 'isUploading' : ''\"\n class=\"group hasImage w-full h-full rounded-md focus:outline-none focus:shadow-outline bg-gray-100 cursor-pointer relative text-transparent hover:text-white shadow-sm\"\n >\n <img [src]=\"item.url\" class=\"img-preview w-full h-full sticky object-cover rounded-md bg-fixed\" />\n <section class=\"flex flex-col rounded-md text-xs break-words w-full h-full z-20 absolute top-0 py-2 px-3\">\n @if (item.isUploading) {\n <div class=\"flex justify-center items-center w-full h-full\">\n <mat-spinner color=\"white\" diameter=\"28\"></mat-spinner>\n </div>\n } @else {\n <div class=\"flex\">\n <button (click)=\"removeImage(i)\" class=\"delete ml-auto focus:outline-none hover:bg-gray-300 p-1 rounded-md\">\n <svg\n class=\"pointer-events-none fill-current w-4 h-4 ml-auto\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n >\n <path\n class=\"pointer-events-none\"\n d=\"M3 6l3 18h12l3-18h-18zm19-4v2h-20v-2h5.711c.9 0 1.631-1.099 1.631-2h5.316c0 .901.73 2 1.631 2h5.711z\"\n />\n </svg>\n </button>\n </div>\n }\n </section>\n </article>\n </li>\n }\n </ul>\n </div>\n @if (preMedia.length <= 0) {\n <div class=\"flex flex-1 flex-wrap\">\n <div class=\"h-full w-full text-center flex flex-col justify-center items-center py-6\">\n <span class=\"text-small text-gray-500\">No files selected</span>\n </div>\n </div>\n }\n </div>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-button mat-dialog-close>取消</button>\n @if (preMedia.length <= 0) {\n <button mat-button>等待选择</button>\n }\n @if (!isFinished && preMedia.length > 0) {\n <button mat-button (click)=\"uploadFiles()\">立刻上传</button>\n }\n @if (isFinished) {\n <button mat-button [mat-dialog-close]=\"media\">完成</button>\n }\n</mat-dialog-actions>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'rolatech-spacer',\n templateUrl: './spacer.component.html',\n styleUrls: ['./spacer.component.scss'],\n standalone: true,\n})\nexport class SpacerComponent implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<span class=\"app-spacer\"></span>\n","import { Component, input, output } from '@angular/core';\nimport { Media } from '@rolatech/angular-common';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\n\n@Component({\n selector: 'rolatech-media-list',\n templateUrl: './media-list.component.html',\n styleUrls: ['./media-list.component.scss'],\n standalone: true,\n imports: [MatProgressBarModule],\n})\nexport class MediaListComponent {\n isUploading = input<boolean>();\n media = input<Media[]>();\n showAdd = input<boolean>(true);\n mediaItemClick = output<Media>();\n upload = output<FormData | null>();\n\n onMediaItemClick(item: Media) {\n this.mediaItemClick.emit(item);\n }\n onUpload(event: any) {\n this.upload.emit(event);\n }\n}\n","<div class=\"flex flex-row flex-wrap box-border items-center\">\n <div class=\"progress-bar\">\n @if (isUploading()) {\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\n }\n </div>\n <div class=\"flex flex-row flex-wrap box-border items-center gap-2\">\n <ng-content></ng-content>\n <div>\n <input style=\"display: none\" type=\"file\" accept=\"image/*, video/*\" (change)=\"onUpload($event)\" #fileInput />\n @if (showAdd()) {\n <div class=\"add-button\">\n <img (click)=\"fileInput.click()\" class=\"tile-media\" src=\"assets/images/baseline_add_black_48dp.png\" alt=\"add image\" />\n </div>\n }\n </div>\n </div>\n</div>\n","import { Component, input, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { Media } from '@rolatech/angular-common';\n\n@Component({\n selector: 'rolatech-media-list-item',\n templateUrl: './media-list-item.component.html',\n styleUrls: ['./media-list-item.component.scss'],\n standalone: true,\n imports: [MatButtonModule, MatMenuModule, MatIconModule],\n})\nexport class MediaListItemComponent {\n media = input.required<Media>();\n uploadProgress = input<number>(0);\n\n mediaItemClick = output<{\n selected: number;\n media: Media;\n }>();\n deleteMedia = output<Media>();\n\n onMediaItemClick(event: any) {\n this.mediaItemClick.emit(event);\n }\n onDeleteMedia(media: Media) {\n this.deleteMedia.emit(media);\n }\n}\n","<div\n class=\"media-list-item relative hasImage focus:outline-none focus:shadow-outline bg-gray-100 cursor-pointer text-transparent hover:text-white shadow-sm\"\n>\n <div class=\"absolute z-30 right-0\">\n <div class=\"flex-1\"></div>\n <div>\n <button mat-icon-button [matMenuTriggerFor]=\"beforeMenu\" class=\"ml-auto focus:outline-none hover:bg-gray-300 p-1\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #beforeMenu=\"matMenu\" xPosition=\"before\">\n <button mat-menu-item (click)=\"onDeleteMedia(media())\">\n <span>删除</span>\n </button>\n </mat-menu>\n </div>\n </div>\n <div id=\"thumbnail\" class=\"thumbnail\">\n <img class=\"tile-media\" (click)=\"onMediaItemClick(media)\" [src]=\"media().url\" [alt]=\"media().alt\" />\n </div>\n <section\n (click)=\"onMediaItemClick(media())\"\n class=\"flex flex-col text-xs break-words w-full h-full z-20 absolute top-0\"\n ></section>\n</div>\n","import { Router, RouterEvent, NavigationEnd, Event } from '@angular/router';\nimport { Component, OnInit } from '@angular/core';\nimport { filter } from 'rxjs';\n\n@Component({\n selector: 'rolatech-not-found',\n templateUrl: './not-found.component.html',\n styleUrls: ['./not-found.component.scss'],\n standalone: true,\n})\nexport class NotFoundComponent implements OnInit {\n url!: string;\n constructor(private router: Router) {\n router.events.pipe(filter((e: Event) => e instanceof RouterEvent)).subscribe((e) => {\n if (e instanceof NavigationEnd) {\n this.url = e.url;\n }\n });\n }\n\n ngOnInit() {\n this.router.events.pipe(filter((e: Event) => e instanceof RouterEvent)).subscribe((e) => {\n if (e instanceof NavigationEnd) {\n this.url = e.url;\n }\n });\n }\n}\n","<div class=\"not-found-content\">\n <p>\n <b>404.</b>\n <ins>That’s an error.</ins>\n </p>\n <p>\n The requested URL <code>{{ url }}</code> not found on this server.\n </p>\n <a href=\"/\">return home</a>\n</div>\n","import { Component, inject, Inject, OnInit } from '@angular/core';\nimport {\n MatDialogRef,\n MAT_DIALOG_DATA,\n MatDialogTitle,\n MatDialogContent,\n MatDialogActions,\n MatDialogClose,\n} from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\n\nexport interface DialogData {\n title: string;\n message: string;\n}\n\n@Component({\n selector: 'rolatech-confirmation-dialog',\n templateUrl: './confirmation-dialog.component.html',\n styleUrls: ['./confirmation-dialog.component.scss'],\n standalone: true,\n imports: [MatDialogTitle, MatDialogContent, MatDialogActions, MatButtonModule, MatDialogClose],\n})\nexport class ConfirmationDialogComponent {\n data: DialogData = inject(MAT_DIALOG_DATA);\n dialogRef!: MatDialogRef<ConfirmationDialogComponent>;\n onNoClick(): void {\n this.dialogRef.close();\n }\n}\n","@if (data.title) {\n <h2 mat-dialog-title>{{ data.title }}</h2>\n}\n<div mat-dialog-content>\n {{ data.message }}\n</div>\n<div mat-dialog-actions align=\"end\">\n <button mat-button mat-dialog-close>取消</button>\n <button mat-button [mat-dialog-close]=\"true\" cdkFocusInitial>确定</button>\n</div>\n","import { MatDialog } from '@angular/material/dialog';\nimport { inject } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { DialogService, SnackBarService } from '@rolatech/angular-services';\nimport { Title } from '@angular/platform-browser';\n\nexport class BaseComponent {\n route = inject(ActivatedRoute);\n router = inject(Router);\n id = this.route.snapshot.params['id'];\n dialogService = inject(DialogService);\n dialog = inject(MatDialog);\n snackBarService = inject(SnackBarService);\n titleService = inject(Title);\n}\n","import { Component, OnInit, computed, effect, input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTableDataSource, MatTableModule } from '@angular/material/table';\nimport { RouterModule } from '@angular/router';\nimport { DataSource } from '@angular/cdk/collections';\nimport { CdkTableDataSourceInput } from '@angular/cdk/table';\nimport { map } from 'lodash';\nexport interface Column {\n ref: string;\n name: string;\n}\nexport interface TableData<T> {\n columns: Column[];\n data: CdkTableDataSourceInput<T>;\n}\n\n@Component({\n selector: 'rolatech-table',\n standalone: true,\n imports: [CommonModule, MatTableModule, RouterModule],\n templateUrl: './table.component.html',\n styleUrl: './table.component.scss',\n})\nexport class TableComponent implements OnInit {\n // dataSource = new MatTableDataSource<TableData<any>>();\n dataSource = input.required<TableData<any>>();\n // displayedColumns: string[] = ['name', 'description', 'resource', 'code', 'pattern', 'method', 'actions'];\n // displayedColumns = effect(() => {\n // const keyToFind = 'ref';\n // const newArray = map(this.dataSource().columns, keyToFind);\n // console.log(newArray);\n // return newArray;\n\n // // return this.dataSource().columns.reduce((acc: any, obj) => {\n // // if (keyToFind in obj) {\n // // acc.push(obj[keyToFind]);\n // // }\n // // console.log(acc);\n // // return acc;\n // // }, []);\n // });\n displayedColumns: string[] = [];\n ngOnInit(): void {\n this.displayedColumns = map(this.dataSource().columns, 'ref');\n // console.log(this.displayedColumns);\n }\n}\n","<table mat-table [dataSource]=\"dataSource().data\">\n @for (column of dataSource().columns; track $index) {\n <ng-container [matColumnDef]=\"column.ref\" sticky>\n <th mat-header-cell *matHeaderCellDef>{{ column.name }}</th>\n <td mat-cell *matCellDef=\"let item\">{{ item[column.ref] }}</td>\n </ng-container>\n }\n <!-- <ng-container matColumnDef=\"actions\" stickyEnd>\n <th mat-header-cell *matHeaderCellDef class=\"actions\">详情</th>\n <td mat-cell *matCellDef=\"let item\" class=\"actions\">\n <a [routerLink]=\"['../', item.id]\"> 详情 </a>\n </td>\n </ng-container> -->\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\"></tr>\n</table>\n","import { Component, output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatPaginatorModule, PageEvent } from '@angular/material/paginator';\n\n@Component({\n selector: 'rolatech-paginator',\n standalone: true,\n imports: [CommonModule, MatPaginatorModule],\n templateUrl: './paginator.component.html',\n styleUrl: './paginator.component.scss',\n})\nexport class PaginatorComponent {\n length = 100;\n pageSize = 15;\n pageSizeOptions: number[] = [5, 10, 25, 100];\n pageEvent!: PageEvent;\n page = output<any>();\n onPage(event: any) {\n this.page.emit(event);\n }\n}\n","<mat-paginator\n #paginator\n [length]=\"length\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"onPage($event)\"\n hidePageSize\n showFirstLastButtons\n>\n</mat-paginator>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["EXPANSION_PANEL_ANIMATION_TIMING","i2","i1","i3","i5","i4","map"],"mappings":"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"}
@@ -6,10 +6,11 @@ export interface MenuUser {
6
6
  username: string;
7
7
  }
8
8
  export declare class MenuUserComponent {
9
+ environment: any;
10
+ myaccountUrl: any;
9
11
  user: import("@angular/core").InputSignal<any>;
10
- myaccountUrl: import("@angular/core").InputSignal<string | undefined>;
11
12
  avatar: import("@angular/core").Signal<any>;
12
13
  constructor();
13
14
  static ɵfac: i0.ɵɵFactoryDeclaration<MenuUserComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<MenuUserComponent, "rolatech-menu-user", never, { "user": { "alias": "user"; "required": false; "isSignal": true; }; "myaccountUrl": { "alias": "myaccountUrl"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<MenuUserComponent, "rolatech-menu-user", never, { "user": { "alias": "user"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
15
16
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rolatech/angular-components",
3
- "version": "17.2.19",
3
+ "version": "17.2.20",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.2.0",
6
6
  "@angular/core": "^17.2.0"