@c8y/ngx-components 1023.4.6 → 1023.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/c8y-ngx-components-actility-device-registration.mjs +16 -16
- package/fesm2022/c8y-ngx-components-actility-device-registration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-advanced-software-management.mjs +7 -7
- package/fesm2022/c8y-ngx-components-advanced-software-management.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs +9 -9
- package/fesm2022/c8y-ngx-components-ai-agent-chat.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs +12 -12
- package/fesm2022/c8y-ngx-components-ai-ai-chat.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ai.mjs +3 -3
- package/fesm2022/c8y-ngx-components-ai.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs +34 -34
- package/fesm2022/c8y-ngx-components-alarm-event-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs +4 -4
- package/fesm2022/c8y-ngx-components-alarms-cockpit.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-alarms.mjs +76 -76
- package/fesm2022/c8y-ngx-components-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-api.mjs +7 -7
- package/fesm2022/c8y-ngx-components-api.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-app-logs.mjs +10 -10
- package/fesm2022/c8y-ngx-components-app-logs.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-asset-properties.mjs +39 -39
- package/fesm2022/c8y-ngx-components-asset-properties.mjs.map +1 -1
- package/fesm2022/{c8y-ngx-components-asset-property-grid.component-B0Yspstg.mjs → c8y-ngx-components-asset-property-grid.component-B1q7kXRu.mjs} +13 -13
- package/fesm2022/{c8y-ngx-components-asset-property-grid.component-B0Yspstg.mjs.map → c8y-ngx-components-asset-property-grid.component-B1q7kXRu.mjs.map} +1 -1
- package/fesm2022/c8y-ngx-components-assets-navigator.mjs +32 -32
- package/fesm2022/c8y-ngx-components-assets-navigator.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs +114 -114
- package/fesm2022/c8y-ngx-components-auth-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-binary-file-download.mjs +7 -7
- package/fesm2022/c8y-ngx-components-binary-file-download.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-bookmarks.mjs +13 -13
- package/fesm2022/c8y-ngx-components-bookmarks.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-base-branding.mjs +4 -4
- package/fesm2022/c8y-ngx-components-branding-base-branding.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs +7 -7
- package/fesm2022/c8y-ngx-components-branding-dark-theme.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs +7 -7
- package/fesm2022/c8y-ngx-components-branding-extra-css-branding-editor.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs +3 -3
- package/fesm2022/c8y-ngx-components-branding-plain-branding-editor-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs +7 -7
- package/fesm2022/c8y-ngx-components-branding-plain-branding-editor.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-data.mjs +15 -15
- package/fesm2022/c8y-ngx-components-branding-shared-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs +6 -6
- package/fesm2022/c8y-ngx-components-branding-shared-lazy-add-branding-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs +36 -36
- package/fesm2022/c8y-ngx-components-branding-shared-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-branding-shared.mjs +13 -13
- package/fesm2022/c8y-ngx-components-branding-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-child-devices.mjs +13 -13
- package/fesm2022/c8y-ngx-components-child-devices.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-cockpit-config.mjs +40 -40
- package/fesm2022/c8y-ngx-components-cockpit-config.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-computed-asset-properties-alarm-count-config.component-Bl18pHcM.mjs +68 -0
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-alarm-count-config.component-BeFT75x1.mjs.map → c8y-ngx-components-computed-asset-properties-alarm-count-config.component-Bl18pHcM.mjs.map} +1 -1
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-B8_RmTvv.mjs → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-C5QMFdX1.mjs} +4 -4
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-B8_RmTvv.mjs.map → c8y-ngx-components-computed-asset-properties-configuration-snapshot-config.component-C5QMFdX1.mjs.map} +1 -1
- package/fesm2022/c8y-ngx-components-computed-asset-properties-event-count-config.component-C-Lc5Ble.mjs +44 -0
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-event-count-config.component-BUxC3Tmh.mjs.map → c8y-ngx-components-computed-asset-properties-event-count-config.component-C-Lc5Ble.mjs.map} +1 -1
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-Dcmrw2Wg.mjs → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-BXfM7hTQ.mjs} +4 -4
- package/fesm2022/{c8y-ngx-components-computed-asset-properties-last-measurement-config.component-Dcmrw2Wg.mjs.map → c8y-ngx-components-computed-asset-properties-last-measurement-config.component-BXfM7hTQ.mjs.map} +1 -1
- package/fesm2022/c8y-ngx-components-computed-asset-properties.mjs +6 -6
- package/fesm2022/c8y-ngx-components-connectivity.mjs +53 -53
- package/fesm2022/c8y-ngx-components-connectivity.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-asset-add.mjs +10 -10
- package/fesm2022/c8y-ngx-components-context-dashboard-asset-add.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-asset-view.mjs +7 -7
- package/fesm2022/c8y-ngx-components-context-dashboard-asset-view.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs +11 -11
- package/fesm2022/c8y-ngx-components-context-dashboard-cockpit-home-dashboard.mjs.map +1 -1
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C30if8-Q.mjs → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BuGMpNrA.mjs} +4 -4
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-C30if8-Q.mjs.map → c8y-ngx-components-context-dashboard-dashboard-appearance-settings.component-BuGMpNrA.mjs.map} +1 -1
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-FBfdlVT1.mjs → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DN-f35bA.mjs} +10 -10
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-general-settings.component-FBfdlVT1.mjs.map → c8y-ngx-components-context-dashboard-dashboard-general-settings.component-DN-f35bA.mjs.map} +1 -1
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-DrVQS63v.mjs → c8y-ngx-components-context-dashboard-dashboard-version-history.component-BlIVEV__.mjs} +4 -4
- package/fesm2022/{c8y-ngx-components-context-dashboard-dashboard-version-history.component-DrVQS63v.mjs.map → c8y-ngx-components-context-dashboard-dashboard-version-history.component-BlIVEV__.mjs.map} +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs +10 -10
- package/fesm2022/c8y-ngx-components-context-dashboard-device-add.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs +7 -7
- package/fesm2022/c8y-ngx-components-context-dashboard-device-view.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs +3 -3
- package/fesm2022/c8y-ngx-components-context-dashboard-devicemanagement.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard-state.mjs +3 -3
- package/fesm2022/c8y-ngx-components-context-dashboard-state.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs +102 -102
- package/fesm2022/c8y-ngx-components-context-dashboard.mjs.map +1 -1
- package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-BHmaZVgy.mjs → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-m7YeEj9R.mjs} +16 -16
- package/fesm2022/{c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-BHmaZVgy.mjs.map → c8y-ngx-components-dashboard-details-advanced-tab-dashboard-details-advanced-tab.component-m7YeEj9R.mjs.map} +1 -1
- package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs +12 -12
- package/fesm2022/c8y-ngx-components-dashboard-details-advanced-tab.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs +6 -6
- package/fesm2022/c8y-ngx-components-dashboard-manager-devicemanagement.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-dashboard-manager.mjs +22 -22
- package/fesm2022/c8y-ngx-components-dashboard-manager.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-broker.mjs +7 -7
- package/fesm2022/c8y-ngx-components-data-broker.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs +3 -3
- package/fesm2022/c8y-ngx-components-data-grid-columns-asset-type.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-data-grid-columns.mjs +3 -3
- package/fesm2022/c8y-ngx-components-data-grid-columns.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs +24 -24
- package/fesm2022/c8y-ngx-components-datapoint-explorer-view.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs +7 -7
- package/fesm2022/c8y-ngx-components-datapoint-explorer.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs +3 -3
- package/fesm2022/c8y-ngx-components-datapoint-library-details.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs +3 -3
- package/fesm2022/c8y-ngx-components-datapoint-library-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-library-services.mjs +3 -3
- package/fesm2022/c8y-ngx-components-datapoint-library-services.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-library.mjs +4 -4
- package/fesm2022/c8y-ngx-components-datapoint-library.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs +40 -40
- package/fesm2022/c8y-ngx-components-datapoint-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs +33 -33
- package/fesm2022/c8y-ngx-components-datapoints-export-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-default-subscriptions.mjs +16 -16
- package/fesm2022/c8y-ngx-components-default-subscriptions.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-grid.mjs +43 -43
- package/fesm2022/c8y-ngx-components-device-grid.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-list.mjs +22 -22
- package/fesm2022/c8y-ngx-components-device-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-map.mjs +12 -12
- package/fesm2022/c8y-ngx-components-device-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-profile.mjs +34 -34
- package/fesm2022/c8y-ngx-components-device-profile.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs +3 -3
- package/fesm2022/c8y-ngx-components-device-protocol-object-mappings.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-protocols.mjs +16 -16
- package/fesm2022/c8y-ngx-components-device-protocols.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs +13 -13
- package/fesm2022/c8y-ngx-components-device-provisioned-certificates.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-device-shell.mjs +31 -31
- package/fesm2022/c8y-ngx-components-device-shell.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-diagnostics.mjs +13 -13
- package/fesm2022/c8y-ngx-components-diagnostics.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-echart.mjs +30 -30
- package/fesm2022/c8y-ngx-components-echart.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs +43 -43
- package/fesm2022/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs +7 -7
- package/fesm2022/c8y-ngx-components-ecosystem-archived-confirm.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs +10 -10
- package/fesm2022/c8y-ngx-components-ecosystem-license-confirm.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs +7 -7
- package/fesm2022/c8y-ngx-components-ecosystem-plugin-setup-stepper.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs +46 -46
- package/fesm2022/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-ecosystem.mjs +82 -82
- package/fesm2022/c8y-ngx-components-ecosystem.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-editor.mjs +6 -6
- package/fesm2022/c8y-ngx-components-editor.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-events-events-timeline.mjs +3 -3
- package/fesm2022/c8y-ngx-components-events-events-timeline.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-events.mjs +3 -3
- package/fesm2022/c8y-ngx-components-events.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-exports-list.mjs +6 -6
- package/fesm2022/c8y-ngx-components-exports-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-file-preview.mjs +7 -7
- package/fesm2022/c8y-ngx-components-file-preview.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-files-repository.mjs +19 -19
- package/fesm2022/c8y-ngx-components-files-repository.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-global-context.mjs +118 -118
- package/fesm2022/c8y-ngx-components-global-context.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-icon-selector.mjs +19 -19
- package/fesm2022/c8y-ngx-components-icon-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-interval-picker.mjs +3 -3
- package/fesm2022/c8y-ngx-components-interval-picker.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-location.mjs +28 -28
- package/fesm2022/c8y-ngx-components-location.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs +16 -16
- package/fesm2022/c8y-ngx-components-loriot-device-registration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-map.mjs +19 -19
- package/fesm2022/c8y-ngx-components-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-messaging-management.mjs +55 -55
- package/fesm2022/c8y-ngx-components-messaging-management.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-from-single.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs +19 -19
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-list-item.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-scheduler.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-bulk-operation-stepper.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-service.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-bulk-operations-stepper-container.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs +3 -3
- package/fesm2022/c8y-ngx-components-operations-bulk-single-operations-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-create-bulk-operation-details.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-device-selector.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-device-selector.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs +12 -12
- package/fesm2022/c8y-ngx-components-operations-grid-columns.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operation-details.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-operation-details.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-operation-summary.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs +10 -10
- package/fesm2022/c8y-ngx-components-operations-operations-list-item-details.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operations-list.mjs +12 -12
- package/fesm2022/c8y-ngx-components-operations-operations-list.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-operations-timeline.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-shared.mjs +10 -10
- package/fesm2022/c8y-ngx-components-operations-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-status-filter.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-status-filter.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-device-profile.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-firmware.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-stepper-bulk-type-software.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs +13 -13
- package/fesm2022/c8y-ngx-components-operations-stepper-frames.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-operations.mjs +7 -7
- package/fesm2022/c8y-ngx-components-operations.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-pending-mo-request.mjs +7 -7
- package/fesm2022/c8y-ngx-components-pending-mo-request.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-platform-configuration.mjs +10 -10
- package/fesm2022/c8y-ngx-components-platform-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs +38 -38
- package/fesm2022/c8y-ngx-components-protocol-lpwan.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs +58 -58
- package/fesm2022/c8y-ngx-components-protocol-opcua.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-register-device.mjs +58 -58
- package/fesm2022/c8y-ngx-components-register-device.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs +9 -9
- package/fesm2022/c8y-ngx-components-remote-access-configurations.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-data.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-passthrough.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-shared.mjs +6 -6
- package/fesm2022/c8y-ngx-components-remote-access-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-ssh-remote-access-ssh-endpoint-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-ssh.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-telnet.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-terminal-viewer.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-vnc-remote-access-vnc-endpoint-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs +6 -6
- package/fesm2022/c8y-ngx-components-remote-access-vnc-vnc-viewer.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs +3 -3
- package/fesm2022/c8y-ngx-components-remote-access-vnc.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs +6 -6
- package/fesm2022/c8y-ngx-components-replace-device-replace-device-wizard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-replace-device.mjs +10 -10
- package/fesm2022/c8y-ngx-components-replace-device.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-report-dashboard.mjs +16 -16
- package/fesm2022/c8y-ngx-components-report-dashboard.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-reports.mjs +19 -19
- package/fesm2022/c8y-ngx-components-reports.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs +48 -48
- package/fesm2022/c8y-ngx-components-repository-configuration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-firmware.mjs +33 -33
- package/fesm2022/c8y-ngx-components-repository-firmware.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-shared.mjs +34 -34
- package/fesm2022/c8y-ngx-components-repository-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository-software.mjs +42 -42
- package/fesm2022/c8y-ngx-components-repository-software.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-repository.mjs +4 -4
- package/fesm2022/c8y-ngx-components-repository.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-search.mjs +19 -19
- package/fesm2022/c8y-ngx-components-search.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs +6 -6
- package/fesm2022/c8y-ngx-components-sensor-phone-sensor-phone-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sensor-phone.mjs +7 -7
- package/fesm2022/c8y-ngx-components-sensor-phone.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs +3 -3
- package/fesm2022/c8y-ngx-components-services-service-command-tab.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-services-shared.mjs +3 -3
- package/fesm2022/c8y-ngx-components-services-shared.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-services.mjs +29 -29
- package/fesm2022/c8y-ngx-components-services.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs +16 -16
- package/fesm2022/c8y-ngx-components-sigfox-device-registration.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sms-gateway.mjs +7 -7
- package/fesm2022/c8y-ngx-components-sms-gateway.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-static-assets-data.mjs +3 -3
- package/fesm2022/c8y-ngx-components-static-assets-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-static-assets-modal.mjs +9 -9
- package/fesm2022/c8y-ngx-components-static-assets-modal.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-static-assets.mjs +6 -6
- package/fesm2022/c8y-ngx-components-static-assets.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-sub-assets.mjs +60 -60
- package/fesm2022/c8y-ngx-components-sub-assets.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-tenants.mjs +41 -41
- package/fesm2022/c8y-ngx-components-tenants.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-time-context.mjs +6 -6
- package/fesm2022/c8y-ngx-components-time-context.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-tracking.mjs +12 -12
- package/fesm2022/c8y-ngx-components-tracking.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-translation-editor-data.mjs +3 -3
- package/fesm2022/c8y-ngx-components-translation-editor-data.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs +12 -12
- package/fesm2022/c8y-ngx-components-translation-editor-lazy.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-translation-editor.mjs +6 -6
- package/fesm2022/c8y-ngx-components-translation-editor.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs +33 -33
- package/fesm2022/c8y-ngx-components-trusted-certificates.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs +4 -4
- package/fesm2022/c8y-ngx-components-upgrade-upgraded-services.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-upgrade.mjs +62 -43
- package/fesm2022/c8y-ngx-components-upgrade.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-user-roles.mjs +10 -10
- package/fesm2022/c8y-ngx-components-user-roles.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-definitions-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget-ai-config.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs +6 -6
- package/fesm2022/c8y-ngx-components-widgets-definitions-html-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-exports.mjs +8 -1
- package/fesm2022/c8y-ngx-components-widgets-exports.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs +19 -19
- package/fesm2022/c8y-ngx-components-widgets-implementations-alarms.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-asset-notes.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-legacy-welcome.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-cockpit-welcome.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs +6 -6
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-graph.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs +27 -27
- package/fesm2022/c8y-ngx-components-widgets-implementations-datapoints-table.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-device-control-message.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs +7 -7
- package/fesm2022/c8y-ngx-components-widgets-implementations-device-management-welcome.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs +3 -3
- package/fesm2022/c8y-ngx-components-widgets-implementations-help-and-service-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs +24 -24
- package/fesm2022/c8y-ngx-components-widgets-implementations-html-widget.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs +9 -9
- package/fesm2022/c8y-ngx-components-widgets-implementations-image.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs +18 -18
- package/fesm2022/c8y-ngx-components-widgets-implementations-info-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs +6 -6
- package/fesm2022/c8y-ngx-components-widgets-implementations-kpi.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs +6 -6
- package/fesm2022/c8y-ngx-components-widgets-implementations-linear-gauge.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs +9 -9
- package/fesm2022/c8y-ngx-components-widgets-implementations-map.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs +9 -9
- package/fesm2022/c8y-ngx-components-widgets-implementations-markdown.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs +18 -18
- package/fesm2022/c8y-ngx-components-widgets-implementations-quick-links.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs +9 -9
- package/fesm2022/c8y-ngx-components-widgets-implementations-three-d-rotation.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components-widgets-widget-providers.mjs +5 -2
- package/fesm2022/c8y-ngx-components-widgets-widget-providers.mjs.map +1 -1
- package/fesm2022/c8y-ngx-components.mjs +1329 -1325
- package/fesm2022/c8y-ngx-components.mjs.map +1 -1
- package/index.d.ts +7 -0
- package/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/upgrade/index.d.ts +1 -0
- package/upgrade/index.d.ts.map +1 -1
- package/widgets/cockpit-exports/index.d.ts +6 -0
- package/widgets/cockpit-exports/index.d.ts.map +1 -1
- package/widgets/device-management-exports/index.d.ts +6 -0
- package/widgets/device-management-exports/index.d.ts.map +1 -1
- package/widgets/exports/index.d.ts +8 -1
- package/widgets/exports/index.d.ts.map +1 -1
- package/widgets/widget-providers/index.d.ts.map +1 -1
- package/fesm2022/c8y-ngx-components-computed-asset-properties-alarm-count-config.component-BeFT75x1.mjs +0 -68
- package/fesm2022/c8y-ngx-components-computed-asset-properties-event-count-config.component-BUxC3Tmh.mjs +0 -44
|
@@ -69,10 +69,10 @@ class BinaryFileDownloadService {
|
|
|
69
69
|
}
|
|
70
70
|
return arrayBuffer;
|
|
71
71
|
}
|
|
72
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
73
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
72
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BinaryFileDownloadService, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.InventoryService }, { token: i3.AlertService }, { token: i3.ModalService }, { token: i4.TranslateService }, { token: i2.InventoryBinaryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
73
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BinaryFileDownloadService }); }
|
|
74
74
|
}
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BinaryFileDownloadService, decorators: [{
|
|
76
76
|
type: Injectable
|
|
77
77
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.InventoryService }, { type: i3.AlertService }, { type: i3.ModalService }, { type: i4.TranslateService }, { type: i2.InventoryBinaryService }] });
|
|
78
78
|
|
|
@@ -80,11 +80,11 @@ class BinaryFileDownloadModule {
|
|
|
80
80
|
constructor(binaryFileDownloadService) {
|
|
81
81
|
binaryFileDownloadService.run();
|
|
82
82
|
}
|
|
83
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
84
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
85
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
83
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BinaryFileDownloadModule, deps: [{ token: BinaryFileDownloadService }], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
84
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: BinaryFileDownloadModule, imports: [CommonModule, RouterModule] }); }
|
|
85
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BinaryFileDownloadModule, providers: [BinaryFileDownloadService], imports: [CommonModule, RouterModule] }); }
|
|
86
86
|
}
|
|
87
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
87
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BinaryFileDownloadModule, decorators: [{
|
|
88
88
|
type: NgModule,
|
|
89
89
|
args: [{
|
|
90
90
|
imports: [CommonModule, RouterModule],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-binary-file-download.mjs","sources":["../../binary-file-download/binary-file-download.service.ts","../../binary-file-download/binary-file-download.module.ts","../../binary-file-download/c8y-ngx-components-binary-file-download.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Router, NavigationEnd, ActivatedRoute } from '@angular/router';\nimport { filter, map } from 'rxjs/operators';\nimport { IManagedObject, InventoryBinaryService, InventoryService } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { AlertService, ModalService, Status } from '@c8y/ngx-components';\nimport { saveAs } from 'file-saver';\nimport { isUndefined } from 'lodash-es';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable()\nexport class BinaryFileDownloadService {\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private inventoryService: InventoryService,\n private alertService: AlertService,\n private modalService: ModalService,\n private translate: TranslateService,\n private inventoryBinary: InventoryBinaryService\n ) {}\n\n run() {\n this.router.events\n .pipe(\n filter(event => {\n return event instanceof NavigationEnd && this.route.snapshot.queryParams.download;\n }),\n map(() => this.route.snapshot.queryParams.download)\n )\n .subscribe(async downloadId => {\n try {\n const { data } = await this.inventoryService.detail(downloadId);\n if (!isUndefined(data.c8y_IsBinary)) {\n this.showDownloadModal(data);\n } else {\n const alertMessage = this.translate.instant(\n gettext(\n 'Could not download the file: object with ID \"{{ id }}\" is not a valid binary.'\n ),\n { id: data.id }\n );\n this.alertService.danger(alertMessage);\n }\n } catch (ex) {\n this.alertService.addServerFailure(ex);\n }\n });\n }\n\n async showDownloadModal(binaryMo: IManagedObject) {\n try {\n const modalBody = this.translate.instant(\n gettext('You are about to download file \"{{ fileName }}\". Do you want to proceed?'),\n { fileName: binaryMo.name }\n );\n await this.modalService.confirm(gettext('File download'), modalBody, Status.INFO, {\n ok: gettext('Download')\n });\n const arrayBuffer = await this.getArrayBuffer(binaryMo.id);\n const fileBinary = new File([arrayBuffer], binaryMo.name, { type: binaryMo.contentType });\n saveAs(fileBinary);\n } catch (e) {\n // empty body :(\n console.log({ e });\n }\n }\n\n private async getArrayBuffer(binaryId): Promise<ArrayBuffer> {\n let arrayBuffer: ArrayBuffer;\n try {\n const res = await this.inventoryBinary.download(binaryId);\n arrayBuffer = await res.arrayBuffer();\n } catch (ex) {\n const msg = gettext('Could not get the binary.');\n this.alertService.danger(msg);\n }\n\n return arrayBuffer;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@c8y/ngx-components';\nimport { BinaryFileDownloadService } from './binary-file-download.service';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n imports: [CommonModule, RouterModule],\n providers: [BinaryFileDownloadService]\n})\nexport class BinaryFileDownloadModule {\n constructor(binaryFileDownloadService: BinaryFileDownloadService) {\n binaryFileDownloadService.run();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BinaryFileDownloadService"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-binary-file-download.mjs","sources":["../../binary-file-download/binary-file-download.service.ts","../../binary-file-download/binary-file-download.module.ts","../../binary-file-download/c8y-ngx-components-binary-file-download.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { Router, NavigationEnd, ActivatedRoute } from '@angular/router';\nimport { filter, map } from 'rxjs/operators';\nimport { IManagedObject, InventoryBinaryService, InventoryService } from '@c8y/client';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { AlertService, ModalService, Status } from '@c8y/ngx-components';\nimport { saveAs } from 'file-saver';\nimport { isUndefined } from 'lodash-es';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Injectable()\nexport class BinaryFileDownloadService {\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private inventoryService: InventoryService,\n private alertService: AlertService,\n private modalService: ModalService,\n private translate: TranslateService,\n private inventoryBinary: InventoryBinaryService\n ) {}\n\n run() {\n this.router.events\n .pipe(\n filter(event => {\n return event instanceof NavigationEnd && this.route.snapshot.queryParams.download;\n }),\n map(() => this.route.snapshot.queryParams.download)\n )\n .subscribe(async downloadId => {\n try {\n const { data } = await this.inventoryService.detail(downloadId);\n if (!isUndefined(data.c8y_IsBinary)) {\n this.showDownloadModal(data);\n } else {\n const alertMessage = this.translate.instant(\n gettext(\n 'Could not download the file: object with ID \"{{ id }}\" is not a valid binary.'\n ),\n { id: data.id }\n );\n this.alertService.danger(alertMessage);\n }\n } catch (ex) {\n this.alertService.addServerFailure(ex);\n }\n });\n }\n\n async showDownloadModal(binaryMo: IManagedObject) {\n try {\n const modalBody = this.translate.instant(\n gettext('You are about to download file \"{{ fileName }}\". Do you want to proceed?'),\n { fileName: binaryMo.name }\n );\n await this.modalService.confirm(gettext('File download'), modalBody, Status.INFO, {\n ok: gettext('Download')\n });\n const arrayBuffer = await this.getArrayBuffer(binaryMo.id);\n const fileBinary = new File([arrayBuffer], binaryMo.name, { type: binaryMo.contentType });\n saveAs(fileBinary);\n } catch (e) {\n // empty body :(\n console.log({ e });\n }\n }\n\n private async getArrayBuffer(binaryId): Promise<ArrayBuffer> {\n let arrayBuffer: ArrayBuffer;\n try {\n const res = await this.inventoryBinary.download(binaryId);\n arrayBuffer = await res.arrayBuffer();\n } catch (ex) {\n const msg = gettext('Could not get the binary.');\n this.alertService.danger(msg);\n }\n\n return arrayBuffer;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@c8y/ngx-components';\nimport { BinaryFileDownloadService } from './binary-file-download.service';\nimport { RouterModule } from '@angular/router';\n\n@NgModule({\n imports: [CommonModule, RouterModule],\n providers: [BinaryFileDownloadService]\n})\nexport class BinaryFileDownloadModule {\n constructor(binaryFileDownloadService: BinaryFileDownloadService) {\n binaryFileDownloadService.run();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.BinaryFileDownloadService"],"mappings":"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"}
|
|
@@ -82,10 +82,10 @@ class BookmarkService {
|
|
|
82
82
|
this.userPreferencesService.set(this.USER_PREFERENCES_BOOKMARKS_KEY, bookmarks);
|
|
83
83
|
this.updatedBookmarks = bookmarks;
|
|
84
84
|
}
|
|
85
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
86
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
85
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BookmarkService, deps: [{ token: i1.TranslateService }, { token: i2.UserPreferencesService }, { token: i2.OptionsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
86
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BookmarkService, providedIn: 'root' }); }
|
|
87
87
|
}
|
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BookmarkService, decorators: [{
|
|
89
89
|
type: Injectable,
|
|
90
90
|
args: [{ providedIn: 'root' }]
|
|
91
91
|
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.UserPreferencesService }, { type: i2.OptionsService }] });
|
|
@@ -192,10 +192,10 @@ class EditBookmarksComponent {
|
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
196
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
195
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: EditBookmarksComponent, deps: [{ token: i1$1.BsModalRef }, { token: i2.AlertService }, { token: BookmarkService }, { token: i4.IconSelectorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
196
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: EditBookmarksComponent, isStandalone: true, selector: "c8y-edit-bookmarks", inputs: { bookmarks: "bookmarks" }, host: { listeners: { "document:keydown": "handleKeyboardEvent($event)" } }, ngImport: i0, template: "<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'bookmark'\"></i>\n <div\n class=\"h4\"\n id=\"modal-title\"\n translate\n >\n Bookmarks\n </div>\n </div>\n <div\n class=\"inner-scroll\"\n id=\"modal-body\"\n >\n <div class=\"p-16 text-center separator-bottom sticky-top bg-component\">\n <p class=\"text-medium text-16\">\n {{ 'Reorder, edit or delete bookmarks.' | translate }}\n </p>\n </div>\n <c8y-list-group\n class=\"cdk-droplist no-border-last\"\n *ngIf=\"bookmarks.length; else emptyList\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"bookmarks?.length < 2\"\n >\n <c8y-li\n *ngFor=\"let bookmark of bookmarks\"\n cdkDrag\n >\n <c8y-li-drag-handle\n title=\"{{ 'Drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n <c8y-li-icon\n style=\"{{ bookmarks?.length < 2 ? 'padding-left: 16px!important' : '' }}\"\n *ngIf=\"bookmark.icon\"\n >\n <c8y-change-icon\n [currentIcon]=\"bookmark.icon\"\n (onButtonClick)=\"changeBookmarkIcon(bookmark)\"\n ></c8y-change-icon>\n </c8y-li-icon>\n\n <div class=\"d-flex gap-8 a-i-center\">\n <form\n class=\"d-flex flex-grow\"\n name=\"bookmarksForm\"\n #bookmarksForm=\"ngForm\"\n >\n <div class=\"input-group input-group-editable\">\n <input\n class=\"form-control fit-w\"\n title=\"{{ bookmark.label }}\"\n id=\"label\"\n name=\"label\"\n type=\"text\"\n [(ngModel)]=\"bookmark.label\"\n #label=\"ngModel\"\n maxlength=\"50\"\n [placeholder]=\"'e.g. My bookmark' | translate\"\n />\n <span></span>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n (click)=\"updateBookmark(bookmark, 'label'); label.control.markAsPristine()\"\n [disabled]=\"label.invalid\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </form>\n <c8y-popover-confirm\n class=\"d-block\"\n [title]=\"'Delete bookmark' | translate\"\n [placement]=\"'left'\"\n [outsideClick]=\"true\"\n [adaptivePosition]=\"true\"\n [container]=\"''\"\n #poConfirm\n >\n <button\n class=\"btn btn-dot btn-dot--danger m-l-auto\"\n title=\"{{ 'Delete' | translate }}\"\n type=\"button\"\n (click)=\"removeBookmark(poConfirm, bookmark)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </c8y-popover-confirm>\n </div>\n </c8y-li>\n </c8y-list-group>\n </div>\n <div class=\"modal-footer\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"close()\"\n >\n {{ 'Close' | translate }}\n </button>\n </div>\n</div>\n<ng-template #emptyList>\n <c8y-ui-empty-state\n [icon]=\"'bookmark'\"\n [title]=\"'No bookmarks yet' | translate\"\n [subtitle]=\"\n 'Navigate to the desired page, open the right drawer and click the "Add current page" button.'\n | translate\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n</ng-template>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: C8yTranslateDirective, selector: "[translate],[ngx-translate]" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ListGroupComponent, selector: "c8y-list-group" }, { kind: "directive", type: CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer", "cdkDropListHasAnchor"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ListItemComponent, selector: "c8y-list-item, c8y-li", inputs: ["active", "highlighted", "emptyActions", "dense", "collapsed", "selectable"], outputs: ["collapsedChange"] }, { kind: "directive", type: CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: ListItemDragHandleComponent, selector: "c8y-list-item-drag-handle, c8y-li-drag-handle" }, { kind: "directive", type: CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: ListItemIconComponent, selector: "c8y-list-item-icon, c8y-li-icon", inputs: ["icon", "status"] }, { kind: "component", type: ChangeIconComponent, selector: "c8y-change-icon", inputs: ["currentIcon"], outputs: ["onButtonClick"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: PopoverConfirmComponent, selector: "c8y-popover-confirm", inputs: ["buttons", "message", "title", "isOpen", "containerClass", "placement", "outsideClick", "adaptivePosition", "container"] }, { kind: "component", type: EmptyStateComponent, selector: "c8y-ui-empty-state", inputs: ["icon", "title", "subtitle", "horizontal"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }] }); }
|
|
197
197
|
}
|
|
198
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
198
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: EditBookmarksComponent, decorators: [{
|
|
199
199
|
type: Component,
|
|
200
200
|
args: [{ selector: 'c8y-edit-bookmarks', imports: [
|
|
201
201
|
IconDirective,
|
|
@@ -282,10 +282,10 @@ class BookmarksComponent {
|
|
|
282
282
|
}
|
|
283
283
|
window.open(url, '_self');
|
|
284
284
|
}
|
|
285
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
286
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
285
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BookmarksComponent, deps: [{ token: DOCUMENT }, { token: BookmarkService }, { token: i2.AlertService }, { token: BookmarkService }, { token: i1$1.BsModalService }, { token: i4$1.Router }, { token: i2.HeaderService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
286
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: BookmarksComponent, isStandalone: true, selector: "c8y-bookmarks", ngImport: i0, template: "<div class=\"separator-top p-t-8 m-t-auto c8y-right-drawer__item sticky-top\">\n <i c8yIcon=\"bookmark\"></i>\n <span class=\"text-bold\">{{ 'Bookmarks' | translate }}</span>\n <button\n class=\"btn-dot m-l-auto\"\n [attr.aria-label]=\"'Edit bookmarks' | translate\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n tooltip=\"{{ 'Edit bookmarks' | translate }}\"\n placement=\"left\"\n container=\"body\"\n type=\"button\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n (click)=\"editBookmarks()\"\n >\n <i\n class=\"text-14 m-0\"\n c8yIcon=\"cog\"\n ></i>\n </button>\n</div>\n@if (bookmarks?.length) {\n <div class=\"c8y-right-drawer__item p-t-0 p-b-8\">\n <button\n class=\"btn btn-default btn-sm\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"addBookmark()\"\n >\n <i\n class=\"m-t-0 m-b-0 text-14\"\n c8yIcon=\"plus-circle-o\"\n ></i>\n <span>{{ addButtonText | translate }}</span>\n </button>\n </div>\n}\n@if (bookmarks?.length) {\n @for (bookmark of bookmarks; track bookmark.url) {\n <button\n class=\"c8y-right-drawer__link\"\n title=\"{{ bookmark.label }}\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"openUrl(bookmark.url)\"\n >\n @if (bookmark.icon) {\n <i [c8yIcon]=\"bookmark.icon\"></i>\n }\n <span class=\"text-truncate\">{{ bookmark.label }}</span>\n </button>\n }\n}\n\n<div class=\"p-t-8 p-b-8\">\n @if (!bookmarks?.length) {\n <span class=\"c8y-right-drawer__item text-muted text-bold text-14 p-b-0\">\n {{ emptyMessageHeader | translate }}\n </span>\n <span class=\"c8y-right-drawer__item text-12 p-t-0\">\n <span class=\"text-muted\">{{ emptyMessageBody | translate }}</span>\n </span>\n <div class=\"c8y-right-drawer__item\">\n <button\n class=\"btn btn-default btn-sm\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"addBookmark()\"\n >\n <i\n class=\"m-t-0 m-b-0 text-14\"\n c8yIcon=\"plus-circle-o\"\n ></i>\n <span>{{ addButtonText | translate }}</span>\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "directive", type: IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "pipe", type: C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
|
|
287
287
|
}
|
|
288
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
288
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BookmarksComponent, decorators: [{
|
|
289
289
|
type: Component,
|
|
290
290
|
args: [{ selector: 'c8y-bookmarks', imports: [IconDirective, TooltipDirective, C8yTranslatePipe, AsyncPipe], template: "<div class=\"separator-top p-t-8 m-t-auto c8y-right-drawer__item sticky-top\">\n <i c8yIcon=\"bookmark\"></i>\n <span class=\"text-bold\">{{ 'Bookmarks' | translate }}</span>\n <button\n class=\"btn-dot m-l-auto\"\n [attr.aria-label]=\"'Edit bookmarks' | translate\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n tooltip=\"{{ 'Edit bookmarks' | translate }}\"\n placement=\"left\"\n container=\"body\"\n type=\"button\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n (click)=\"editBookmarks()\"\n >\n <i\n class=\"text-14 m-0\"\n c8yIcon=\"cog\"\n ></i>\n </button>\n</div>\n@if (bookmarks?.length) {\n <div class=\"c8y-right-drawer__item p-t-0 p-b-8\">\n <button\n class=\"btn btn-default btn-sm\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"addBookmark()\"\n >\n <i\n class=\"m-t-0 m-b-0 text-14\"\n c8yIcon=\"plus-circle-o\"\n ></i>\n <span>{{ addButtonText | translate }}</span>\n </button>\n </div>\n}\n@if (bookmarks?.length) {\n @for (bookmark of bookmarks; track bookmark.url) {\n <button\n class=\"c8y-right-drawer__link\"\n title=\"{{ bookmark.label }}\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"openUrl(bookmark.url)\"\n >\n @if (bookmark.icon) {\n <i [c8yIcon]=\"bookmark.icon\"></i>\n }\n <span class=\"text-truncate\">{{ bookmark.label }}</span>\n </button>\n }\n}\n\n<div class=\"p-t-8 p-b-8\">\n @if (!bookmarks?.length) {\n <span class=\"c8y-right-drawer__item text-muted text-bold text-14 p-b-0\">\n {{ emptyMessageHeader | translate }}\n </span>\n <span class=\"c8y-right-drawer__item text-12 p-t-0\">\n <span class=\"text-muted\">{{ emptyMessageBody | translate }}</span>\n </span>\n <div class=\"c8y-right-drawer__item\">\n <button\n class=\"btn btn-default btn-sm\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"addBookmark()\"\n >\n <i\n class=\"m-t-0 m-b-0 text-14\"\n c8yIcon=\"plus-circle-o\"\n ></i>\n <span>{{ addButtonText | translate }}</span>\n </button>\n </div>\n }\n</div>\n" }]
|
|
291
291
|
}], ctorParameters: () => [{ type: DOCUMENT, decorators: [{
|
|
@@ -294,8 +294,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
294
294
|
}] }, { type: BookmarkService }, { type: i2.AlertService }, { type: BookmarkService }, { type: i1$1.BsModalService }, { type: i4$1.Router }, { type: i2.HeaderService }] });
|
|
295
295
|
|
|
296
296
|
class BookmarksModule {
|
|
297
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
298
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
297
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BookmarksModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
298
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: BookmarksModule, imports: [CoreModule,
|
|
299
299
|
CommonModule,
|
|
300
300
|
ListGroupModule,
|
|
301
301
|
DragDropModule,
|
|
@@ -304,7 +304,7 @@ class BookmarksModule {
|
|
|
304
304
|
ModalModule, i1$2.TooltipModule, ChangeIconComponent,
|
|
305
305
|
BookmarksComponent,
|
|
306
306
|
EditBookmarksComponent], exports: [BookmarksComponent] }); }
|
|
307
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
307
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BookmarksModule, providers: [
|
|
308
308
|
hookDrawer({
|
|
309
309
|
component: BookmarksComponent,
|
|
310
310
|
position: 'right',
|
|
@@ -322,7 +322,7 @@ class BookmarksModule {
|
|
|
322
322
|
ChangeIconComponent,
|
|
323
323
|
EditBookmarksComponent] }); }
|
|
324
324
|
}
|
|
325
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
325
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BookmarksModule, decorators: [{
|
|
326
326
|
type: NgModule,
|
|
327
327
|
args: [{
|
|
328
328
|
imports: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-bookmarks.mjs","sources":["../../bookmarks/bookmarks.service.ts","../../bookmarks/edit-bookmarks/edit-bookmarks.component.ts","../../bookmarks/edit-bookmarks/edit-bookmarks.component.html","../../bookmarks/bookmarks.component.ts","../../bookmarks/bookmarks.component.html","../../bookmarks/bookmarks.module.ts","../../bookmarks/c8y-ngx-components-bookmarks.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { OptionsService, UserPreferencesService } from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { uniqBy } from 'lodash-es';\nimport { firstValueFrom, map } from 'rxjs';\nimport { Bookmark } from './bookmark.model';\n\n@Injectable({ providedIn: 'root' })\nexport class BookmarkService {\n readonly USER_PREFERENCES_BOOKMARKS_KEY = 'bookmarks';\n\n updatedBookmarks: Bookmark[];\n\n constructor(\n private translateService: TranslateService,\n private userPreferencesService: UserPreferencesService,\n private options: OptionsService\n ) {}\n\n async updateBookmarksInStorage(newBookmarks: Bookmark[]): Promise<void> {\n const existingBookmarks = await this.getBookmarks();\n const mergedBookmarks = [...newBookmarks, ...existingBookmarks];\n const cleanedBookmarks = uniqBy(mergedBookmarks, 'id').filter(\n (bookmark: Bookmark) => !bookmark.markToRemove\n );\n\n this.setUserPreferencesBookmarks(cleanedBookmarks);\n }\n\n getCurrentActiveNodeIcon(document: Document): string {\n const BOOKMARK = 'bookmark';\n\n const iconElement = this.getIconElement(document);\n\n if (!iconElement) {\n return BOOKMARK;\n }\n\n const iconClassName = iconElement.className;\n const iconName = this.extractIconName(iconClassName);\n return iconName || BOOKMARK;\n }\n\n extractIconName(input: string): string | null {\n const iconRegex = /\\b(dlt-)?c8y-icon-(\\w+(?:-\\w+)*)\\b/g;\n const matches = [...input.matchAll(iconRegex)];\n const match = matches?.pop();\n\n if (!match) {\n return null;\n }\n const [, prefix, name] = match;\n\n return prefix ? name : `c8y-${name}`;\n }\n\n async getBookmarks(): Promise<Bookmark[]> {\n return await firstValueFrom(\n this.userPreferencesService\n .get(this.USER_PREFERENCES_BOOKMARKS_KEY)\n .pipe(map((bookmarks: Bookmark[]) => bookmarks ?? []))\n );\n }\n\n generateRandomID() {\n const array = new Uint8Array(16);\n crypto.getRandomValues(array);\n\n return Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('');\n }\n\n convertBookmarkLinkToObject(title: string, url: string, icon: string): Bookmark {\n const globalTitle = this.options.globalTitle ?? 'Cumulocity';\n return {\n id: this.generateRandomID(),\n label: title.includes(globalTitle)\n ? title.replace(`${globalTitle} - `, '')\n : this.translateService.instant(gettext('Bookmark')),\n url,\n icon\n };\n }\n\n private getIconElement(document: Document): HTMLElement | null {\n const currentActiveNode = document.querySelectorAll('.link.active') as NodeList;\n if (!currentActiveNode.length) {\n return null;\n }\n const activeNode = currentActiveNode.item(0) as HTMLElement;\n return activeNode.firstElementChild.firstChild as HTMLElement;\n }\n\n private setUserPreferencesBookmarks(bookmarks: Bookmark[]): void {\n this.userPreferencesService.set(this.USER_PREFERENCES_BOOKMARKS_KEY, bookmarks);\n this.updatedBookmarks = bookmarks;\n }\n}\n","import {\n CdkDragDrop,\n moveItemInArray,\n CdkDropList,\n CdkDrag,\n CdkDragHandle\n} from '@angular/cdk/drag-drop';\nimport { Component, HostListener, Input, OnInit } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n AlertService,\n PopoverConfirmButtons,\n PopoverConfirmComponent,\n IconDirective,\n C8yTranslateDirective,\n ListGroupComponent,\n ListItemComponent,\n ListItemDragHandleComponent,\n ListItemIconComponent,\n ChangeIconComponent,\n EmptyStateComponent,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { IconSelectorService } from '@c8y/ngx-components/icon-selector';\nimport { cloneDeep } from 'lodash-es';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { Bookmark } from '../bookmark.model';\nimport { BookmarkService } from '../bookmarks.service';\nimport { NgIf, NgFor } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'c8y-edit-bookmarks',\n templateUrl: './edit-bookmarks.component.html',\n imports: [\n IconDirective,\n C8yTranslateDirective,\n NgIf,\n ListGroupComponent,\n CdkDropList,\n NgFor,\n ListItemComponent,\n CdkDrag,\n ListItemDragHandleComponent,\n CdkDragHandle,\n ListItemIconComponent,\n ChangeIconComponent,\n FormsModule,\n PopoverConfirmComponent,\n EmptyStateComponent,\n C8yTranslatePipe\n ]\n})\nexport class EditBookmarksComponent implements OnInit {\n @Input() bookmarks: Bookmark[];\n private bookmarksToUpdate: Bookmark[];\n\n confirmRemoveColumnButtons: PopoverConfirmButtons[] = [\n {\n label: gettext('Cancel'),\n action: () => Promise.resolve(false)\n },\n {\n label: gettext('Delete'),\n status: 'danger',\n action: () => Promise.resolve(true)\n }\n ];\n\n result: Promise<Bookmark[]> = new Promise(resolve => {\n this._close = resolve;\n });\n\n private _close: (value: Bookmark[]) => void;\n\n constructor(\n private bsModalRef: BsModalRef,\n private alertService: AlertService,\n private bookmarkService: BookmarkService,\n private iconSelector: IconSelectorService\n ) {}\n\n ngOnInit(): void {\n this.bookmarksToUpdate = cloneDeep(this.bookmarks);\n }\n\n @HostListener('document:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.close();\n }\n }\n\n close(): void {\n if (this.bookmarkService.updatedBookmarks) {\n this._close(this.bookmarkService.updatedBookmarks);\n }\n this.bsModalRef.hide();\n }\n\n async drop(event: CdkDragDrop<Bookmark[]>): Promise<void> {\n try {\n moveItemInArray(this.bookmarks, event.previousIndex, event.currentIndex);\n moveItemInArray(this.bookmarksToUpdate, event.previousIndex, event.currentIndex);\n\n await this.bookmarkService.updateBookmarksInStorage(this.bookmarksToUpdate);\n this.alertService.success(gettext('Bookmarks order updated.'));\n } catch {\n this.alertService.success(gettext('Bookmarks order failed to update.'));\n }\n }\n\n async updateBookmark(\n updatedBookmark: Bookmark,\n type: keyof Pick<Bookmark, 'icon' | 'label' | 'markToRemove'>\n ): Promise<void> {\n try {\n this.bookmarksToUpdate = this.updateBookmarkProperty(updatedBookmark, type);\n await this.bookmarkService.updateBookmarksInStorage(this.bookmarksToUpdate);\n if (type !== 'markToRemove') {\n this.alertService.success(gettext('Bookmark updated.'));\n }\n } catch {\n if (type !== 'markToRemove') {\n this.alertService.warning(gettext('Bookmark update failed'));\n }\n }\n }\n\n updateBookmarkProperty(\n updatedBookmark: Bookmark,\n type: keyof Pick<Bookmark, 'icon' | 'label' | 'markToRemove'>\n ): Bookmark[] {\n const update = {\n icon: (bookmark: Bookmark) => ({ ...bookmark, icon: updatedBookmark.icon }),\n label: (bookmark: Bookmark) => ({ ...bookmark, label: updatedBookmark.label }),\n markToRemove: (bookmark: Bookmark) => ({ ...bookmark, markToRemove: true })\n }[type];\n\n return this.bookmarksToUpdate.map(bookmark =>\n bookmark.id === updatedBookmark.id ? update(bookmark) : bookmark\n );\n }\n\n async changeBookmarkIcon(updatedBookmark: Bookmark): Promise<void> {\n try {\n const newIcon = await this.iconSelector.selectIcon();\n updatedBookmark.icon = newIcon;\n await this.updateBookmark(updatedBookmark, 'icon');\n } catch {\n // nothing to do\n }\n }\n\n async removeBookmark(\n poConfirm: PopoverConfirmComponent,\n bookmarkToDelete: Bookmark\n ): Promise<void> {\n poConfirm.message = gettext('This action is irreversible.');\n\n try {\n const remove = await poConfirm.show(this.confirmRemoveColumnButtons);\n if (!remove) {\n return;\n }\n\n await this.updateBookmark(bookmarkToDelete, 'markToRemove');\n\n const bookmarkIndex = this.bookmarks.findIndex(\n bookmark => bookmark.id === bookmarkToDelete.id\n );\n\n if (bookmarkIndex === -1) {\n return;\n }\n\n this.bookmarks.splice(bookmarkIndex, 1);\n this.alertService.success(gettext('Bookmark removed.'));\n } catch (err) {\n /**\n * Prevents an alert message from being displayed if the user clicks outside of a popover.\n */\n if (err) {\n this.alertService.warning(gettext('Bookmarks deletion failed.'));\n }\n }\n }\n}\n","<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'bookmark'\"></i>\n <div\n class=\"h4\"\n id=\"modal-title\"\n translate\n >\n Bookmarks\n </div>\n </div>\n <div\n class=\"inner-scroll\"\n id=\"modal-body\"\n >\n <div class=\"p-16 text-center separator-bottom sticky-top bg-component\">\n <p class=\"text-medium text-16\">\n {{ 'Reorder, edit or delete bookmarks.' | translate }}\n </p>\n </div>\n <c8y-list-group\n class=\"cdk-droplist no-border-last\"\n *ngIf=\"bookmarks.length; else emptyList\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"bookmarks?.length < 2\"\n >\n <c8y-li\n *ngFor=\"let bookmark of bookmarks\"\n cdkDrag\n >\n <c8y-li-drag-handle\n title=\"{{ 'Drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n <c8y-li-icon\n style=\"{{ bookmarks?.length < 2 ? 'padding-left: 16px!important' : '' }}\"\n *ngIf=\"bookmark.icon\"\n >\n <c8y-change-icon\n [currentIcon]=\"bookmark.icon\"\n (onButtonClick)=\"changeBookmarkIcon(bookmark)\"\n ></c8y-change-icon>\n </c8y-li-icon>\n\n <div class=\"d-flex gap-8 a-i-center\">\n <form\n class=\"d-flex flex-grow\"\n name=\"bookmarksForm\"\n #bookmarksForm=\"ngForm\"\n >\n <div class=\"input-group input-group-editable\">\n <input\n class=\"form-control fit-w\"\n title=\"{{ bookmark.label }}\"\n id=\"label\"\n name=\"label\"\n type=\"text\"\n [(ngModel)]=\"bookmark.label\"\n #label=\"ngModel\"\n maxlength=\"50\"\n [placeholder]=\"'e.g. My bookmark' | translate\"\n />\n <span></span>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n (click)=\"updateBookmark(bookmark, 'label'); label.control.markAsPristine()\"\n [disabled]=\"label.invalid\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </form>\n <c8y-popover-confirm\n class=\"d-block\"\n [title]=\"'Delete bookmark' | translate\"\n [placement]=\"'left'\"\n [outsideClick]=\"true\"\n [adaptivePosition]=\"true\"\n [container]=\"''\"\n #poConfirm\n >\n <button\n class=\"btn btn-dot btn-dot--danger m-l-auto\"\n title=\"{{ 'Delete' | translate }}\"\n type=\"button\"\n (click)=\"removeBookmark(poConfirm, bookmark)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </c8y-popover-confirm>\n </div>\n </c8y-li>\n </c8y-list-group>\n </div>\n <div class=\"modal-footer\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"close()\"\n >\n {{ 'Close' | translate }}\n </button>\n </div>\n</div>\n<ng-template #emptyList>\n <c8y-ui-empty-state\n [icon]=\"'bookmark'\"\n [title]=\"'No bookmarks yet' | translate\"\n [subtitle]=\"\n 'Navigate to the desired page, open the right drawer and click the "Add current page" button.'\n | translate\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n</ng-template>\n","import { AsyncPipe } from '@angular/common';\nimport { Component, Inject, DOCUMENT as Document } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { AlertService, HeaderService, IconDirective, C8yTranslatePipe } from '@c8y/ngx-components';\nimport { cloneDeep } from 'lodash-es';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { Observable } from 'rxjs';\nimport { Bookmark } from './bookmark.model';\nimport { BookmarkService } from './bookmarks.service';\nimport { EditBookmarksComponent } from './edit-bookmarks/edit-bookmarks.component';\nimport { TooltipDirective } from 'ngx-bootstrap/tooltip';\n\n@Component({\n selector: 'c8y-bookmarks',\n templateUrl: './bookmarks.component.html',\n imports: [IconDirective, TooltipDirective, C8yTranslatePipe, AsyncPipe]\n})\nexport class BookmarksComponent {\n drawerOpen$: Observable<boolean>;\n bookmarks: Bookmark[] = [];\n emptyMessageHeader = gettext('No bookmarks yet');\n emptyMessageBody = gettext(\n 'Navigate to the desired page and click the \"Add current page\" button. Editing, deleting and reordering are possible by clicking on the cog wheel.'\n );\n addButtonText = gettext('Add current page');\n\n constructor(\n @Inject(Document) private document: Document,\n private bookmarksService: BookmarkService,\n private alertService: AlertService,\n private bookmarkService: BookmarkService,\n private bsModalService: BsModalService,\n private router: Router,\n private headerService: HeaderService\n ) {\n this.drawerOpen$ = this.headerService.rightDrawerOpen$;\n }\n\n async ngOnInit(): Promise<void> {\n this.bookmarks = await this.bookmarkService.getBookmarks();\n }\n\n async addBookmark(): Promise<void> {\n const currentHref = this.document.location.href;\n if (this.bookmarks.some(bookmark => bookmark.url === currentHref)) {\n this.alertService.warning(gettext('Bookmark with the same URL is already added.'));\n return;\n }\n const linkObject = this.bookmarkService.convertBookmarkLinkToObject(\n this.document.title,\n currentHref,\n this.bookmarksService.getCurrentActiveNodeIcon(this.document)\n );\n this.bookmarks.push(linkObject);\n await this.bookmarkService.updateBookmarksInStorage(this.bookmarks);\n this.alertService.success(gettext('Bookmark added.'));\n }\n\n async editBookmarks(): Promise<void> {\n try {\n const initialState: Pick<EditBookmarksComponent, 'bookmarks'> = {\n bookmarks: cloneDeep(this.bookmarks)\n };\n const modalRef = this.bsModalService.show(EditBookmarksComponent, {\n class: 'modal-md',\n ariaDescribedby: 'modal-body',\n ariaLabelledBy: 'modal-title',\n initialState: initialState,\n ignoreBackdropClick: true\n }).content as EditBookmarksComponent;\n this.bookmarks = await modalRef.result;\n } catch (err) {\n return;\n }\n }\n\n openUrl(url: string): void {\n const parsedUrl = new URL(url);\n\n if (\n parsedUrl.hostname === location.hostname &&\n parsedUrl.pathname.includes(location.pathname)\n ) {\n this.router.navigateByUrl(parsedUrl.hash.substring(1));\n return;\n }\n\n // only possible if the external bookmark URL has been saved using the API\n if (parsedUrl.hostname !== location.hostname) {\n return;\n }\n\n window.open(url, '_self');\n }\n}\n","<div class=\"separator-top p-t-8 m-t-auto c8y-right-drawer__item sticky-top\">\n <i c8yIcon=\"bookmark\"></i>\n <span class=\"text-bold\">{{ 'Bookmarks' | translate }}</span>\n <button\n class=\"btn-dot m-l-auto\"\n [attr.aria-label]=\"'Edit bookmarks' | translate\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n tooltip=\"{{ 'Edit bookmarks' | translate }}\"\n placement=\"left\"\n container=\"body\"\n type=\"button\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n (click)=\"editBookmarks()\"\n >\n <i\n class=\"text-14 m-0\"\n c8yIcon=\"cog\"\n ></i>\n </button>\n</div>\n@if (bookmarks?.length) {\n <div class=\"c8y-right-drawer__item p-t-0 p-b-8\">\n <button\n class=\"btn btn-default btn-sm\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"addBookmark()\"\n >\n <i\n class=\"m-t-0 m-b-0 text-14\"\n c8yIcon=\"plus-circle-o\"\n ></i>\n <span>{{ addButtonText | translate }}</span>\n </button>\n </div>\n}\n@if (bookmarks?.length) {\n @for (bookmark of bookmarks; track bookmark.url) {\n <button\n class=\"c8y-right-drawer__link\"\n title=\"{{ bookmark.label }}\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"openUrl(bookmark.url)\"\n >\n @if (bookmark.icon) {\n <i [c8yIcon]=\"bookmark.icon\"></i>\n }\n <span class=\"text-truncate\">{{ bookmark.label }}</span>\n </button>\n }\n}\n\n<div class=\"p-t-8 p-b-8\">\n @if (!bookmarks?.length) {\n <span class=\"c8y-right-drawer__item text-muted text-bold text-14 p-b-0\">\n {{ emptyMessageHeader | translate }}\n </span>\n <span class=\"c8y-right-drawer__item text-12 p-t-0\">\n <span class=\"text-muted\">{{ emptyMessageBody | translate }}</span>\n </span>\n <div class=\"c8y-right-drawer__item\">\n <button\n class=\"btn btn-default btn-sm\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"addBookmark()\"\n >\n <i\n class=\"m-t-0 m-b-0 text-14\"\n c8yIcon=\"plus-circle-o\"\n ></i>\n <span>{{ addButtonText | translate }}</span>\n </button>\n </div>\n }\n</div>\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport {\n ChangeIconComponent,\n CommonModule,\n CoreModule,\n FormsModule as c8yFormsModule,\n hookDrawer,\n ListGroupModule,\n ModalModule\n} from '@c8y/ngx-components';\nimport { BookmarksComponent } from './bookmarks.component';\nimport { EditBookmarksComponent } from './edit-bookmarks/edit-bookmarks.component';\n\n@NgModule({\n imports: [\n CoreModule,\n CommonModule,\n ListGroupModule,\n DragDropModule,\n FormsModule,\n c8yFormsModule,\n ModalModule,\n TooltipModule.forRoot(),\n ChangeIconComponent,\n BookmarksComponent,\n EditBookmarksComponent\n ],\n exports: [BookmarksComponent],\n providers: [\n hookDrawer({\n component: BookmarksComponent,\n position: 'right',\n priority: 50,\n id: 'bookmarks'\n })\n ]\n})\nexport class BookmarksModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3.BookmarkService","Document","i1.BookmarkService","i3","i4","c8yFormsModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-bookmarks.mjs","sources":["../../bookmarks/bookmarks.service.ts","../../bookmarks/edit-bookmarks/edit-bookmarks.component.ts","../../bookmarks/edit-bookmarks/edit-bookmarks.component.html","../../bookmarks/bookmarks.component.ts","../../bookmarks/bookmarks.component.html","../../bookmarks/bookmarks.module.ts","../../bookmarks/c8y-ngx-components-bookmarks.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { OptionsService, UserPreferencesService } from '@c8y/ngx-components';\nimport { TranslateService } from '@ngx-translate/core';\nimport { uniqBy } from 'lodash-es';\nimport { firstValueFrom, map } from 'rxjs';\nimport { Bookmark } from './bookmark.model';\n\n@Injectable({ providedIn: 'root' })\nexport class BookmarkService {\n readonly USER_PREFERENCES_BOOKMARKS_KEY = 'bookmarks';\n\n updatedBookmarks: Bookmark[];\n\n constructor(\n private translateService: TranslateService,\n private userPreferencesService: UserPreferencesService,\n private options: OptionsService\n ) {}\n\n async updateBookmarksInStorage(newBookmarks: Bookmark[]): Promise<void> {\n const existingBookmarks = await this.getBookmarks();\n const mergedBookmarks = [...newBookmarks, ...existingBookmarks];\n const cleanedBookmarks = uniqBy(mergedBookmarks, 'id').filter(\n (bookmark: Bookmark) => !bookmark.markToRemove\n );\n\n this.setUserPreferencesBookmarks(cleanedBookmarks);\n }\n\n getCurrentActiveNodeIcon(document: Document): string {\n const BOOKMARK = 'bookmark';\n\n const iconElement = this.getIconElement(document);\n\n if (!iconElement) {\n return BOOKMARK;\n }\n\n const iconClassName = iconElement.className;\n const iconName = this.extractIconName(iconClassName);\n return iconName || BOOKMARK;\n }\n\n extractIconName(input: string): string | null {\n const iconRegex = /\\b(dlt-)?c8y-icon-(\\w+(?:-\\w+)*)\\b/g;\n const matches = [...input.matchAll(iconRegex)];\n const match = matches?.pop();\n\n if (!match) {\n return null;\n }\n const [, prefix, name] = match;\n\n return prefix ? name : `c8y-${name}`;\n }\n\n async getBookmarks(): Promise<Bookmark[]> {\n return await firstValueFrom(\n this.userPreferencesService\n .get(this.USER_PREFERENCES_BOOKMARKS_KEY)\n .pipe(map((bookmarks: Bookmark[]) => bookmarks ?? []))\n );\n }\n\n generateRandomID() {\n const array = new Uint8Array(16);\n crypto.getRandomValues(array);\n\n return Array.from(array, byte => byte.toString(16).padStart(2, '0')).join('');\n }\n\n convertBookmarkLinkToObject(title: string, url: string, icon: string): Bookmark {\n const globalTitle = this.options.globalTitle ?? 'Cumulocity';\n return {\n id: this.generateRandomID(),\n label: title.includes(globalTitle)\n ? title.replace(`${globalTitle} - `, '')\n : this.translateService.instant(gettext('Bookmark')),\n url,\n icon\n };\n }\n\n private getIconElement(document: Document): HTMLElement | null {\n const currentActiveNode = document.querySelectorAll('.link.active') as NodeList;\n if (!currentActiveNode.length) {\n return null;\n }\n const activeNode = currentActiveNode.item(0) as HTMLElement;\n return activeNode.firstElementChild.firstChild as HTMLElement;\n }\n\n private setUserPreferencesBookmarks(bookmarks: Bookmark[]): void {\n this.userPreferencesService.set(this.USER_PREFERENCES_BOOKMARKS_KEY, bookmarks);\n this.updatedBookmarks = bookmarks;\n }\n}\n","import {\n CdkDragDrop,\n moveItemInArray,\n CdkDropList,\n CdkDrag,\n CdkDragHandle\n} from '@angular/cdk/drag-drop';\nimport { Component, HostListener, Input, OnInit } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport {\n AlertService,\n PopoverConfirmButtons,\n PopoverConfirmComponent,\n IconDirective,\n C8yTranslateDirective,\n ListGroupComponent,\n ListItemComponent,\n ListItemDragHandleComponent,\n ListItemIconComponent,\n ChangeIconComponent,\n EmptyStateComponent,\n C8yTranslatePipe\n} from '@c8y/ngx-components';\nimport { IconSelectorService } from '@c8y/ngx-components/icon-selector';\nimport { cloneDeep } from 'lodash-es';\nimport { BsModalRef } from 'ngx-bootstrap/modal';\nimport { Bookmark } from '../bookmark.model';\nimport { BookmarkService } from '../bookmarks.service';\nimport { NgIf, NgFor } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\n@Component({\n selector: 'c8y-edit-bookmarks',\n templateUrl: './edit-bookmarks.component.html',\n imports: [\n IconDirective,\n C8yTranslateDirective,\n NgIf,\n ListGroupComponent,\n CdkDropList,\n NgFor,\n ListItemComponent,\n CdkDrag,\n ListItemDragHandleComponent,\n CdkDragHandle,\n ListItemIconComponent,\n ChangeIconComponent,\n FormsModule,\n PopoverConfirmComponent,\n EmptyStateComponent,\n C8yTranslatePipe\n ]\n})\nexport class EditBookmarksComponent implements OnInit {\n @Input() bookmarks: Bookmark[];\n private bookmarksToUpdate: Bookmark[];\n\n confirmRemoveColumnButtons: PopoverConfirmButtons[] = [\n {\n label: gettext('Cancel'),\n action: () => Promise.resolve(false)\n },\n {\n label: gettext('Delete'),\n status: 'danger',\n action: () => Promise.resolve(true)\n }\n ];\n\n result: Promise<Bookmark[]> = new Promise(resolve => {\n this._close = resolve;\n });\n\n private _close: (value: Bookmark[]) => void;\n\n constructor(\n private bsModalRef: BsModalRef,\n private alertService: AlertService,\n private bookmarkService: BookmarkService,\n private iconSelector: IconSelectorService\n ) {}\n\n ngOnInit(): void {\n this.bookmarksToUpdate = cloneDeep(this.bookmarks);\n }\n\n @HostListener('document:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n this.close();\n }\n }\n\n close(): void {\n if (this.bookmarkService.updatedBookmarks) {\n this._close(this.bookmarkService.updatedBookmarks);\n }\n this.bsModalRef.hide();\n }\n\n async drop(event: CdkDragDrop<Bookmark[]>): Promise<void> {\n try {\n moveItemInArray(this.bookmarks, event.previousIndex, event.currentIndex);\n moveItemInArray(this.bookmarksToUpdate, event.previousIndex, event.currentIndex);\n\n await this.bookmarkService.updateBookmarksInStorage(this.bookmarksToUpdate);\n this.alertService.success(gettext('Bookmarks order updated.'));\n } catch {\n this.alertService.success(gettext('Bookmarks order failed to update.'));\n }\n }\n\n async updateBookmark(\n updatedBookmark: Bookmark,\n type: keyof Pick<Bookmark, 'icon' | 'label' | 'markToRemove'>\n ): Promise<void> {\n try {\n this.bookmarksToUpdate = this.updateBookmarkProperty(updatedBookmark, type);\n await this.bookmarkService.updateBookmarksInStorage(this.bookmarksToUpdate);\n if (type !== 'markToRemove') {\n this.alertService.success(gettext('Bookmark updated.'));\n }\n } catch {\n if (type !== 'markToRemove') {\n this.alertService.warning(gettext('Bookmark update failed'));\n }\n }\n }\n\n updateBookmarkProperty(\n updatedBookmark: Bookmark,\n type: keyof Pick<Bookmark, 'icon' | 'label' | 'markToRemove'>\n ): Bookmark[] {\n const update = {\n icon: (bookmark: Bookmark) => ({ ...bookmark, icon: updatedBookmark.icon }),\n label: (bookmark: Bookmark) => ({ ...bookmark, label: updatedBookmark.label }),\n markToRemove: (bookmark: Bookmark) => ({ ...bookmark, markToRemove: true })\n }[type];\n\n return this.bookmarksToUpdate.map(bookmark =>\n bookmark.id === updatedBookmark.id ? update(bookmark) : bookmark\n );\n }\n\n async changeBookmarkIcon(updatedBookmark: Bookmark): Promise<void> {\n try {\n const newIcon = await this.iconSelector.selectIcon();\n updatedBookmark.icon = newIcon;\n await this.updateBookmark(updatedBookmark, 'icon');\n } catch {\n // nothing to do\n }\n }\n\n async removeBookmark(\n poConfirm: PopoverConfirmComponent,\n bookmarkToDelete: Bookmark\n ): Promise<void> {\n poConfirm.message = gettext('This action is irreversible.');\n\n try {\n const remove = await poConfirm.show(this.confirmRemoveColumnButtons);\n if (!remove) {\n return;\n }\n\n await this.updateBookmark(bookmarkToDelete, 'markToRemove');\n\n const bookmarkIndex = this.bookmarks.findIndex(\n bookmark => bookmark.id === bookmarkToDelete.id\n );\n\n if (bookmarkIndex === -1) {\n return;\n }\n\n this.bookmarks.splice(bookmarkIndex, 1);\n this.alertService.success(gettext('Bookmark removed.'));\n } catch (err) {\n /**\n * Prevents an alert message from being displayed if the user clicks outside of a popover.\n */\n if (err) {\n this.alertService.warning(gettext('Bookmarks deletion failed.'));\n }\n }\n }\n}\n","<div class=\"viewport-modal\">\n <div class=\"modal-header dialog-header\">\n <i [c8yIcon]=\"'bookmark'\"></i>\n <div\n class=\"h4\"\n id=\"modal-title\"\n translate\n >\n Bookmarks\n </div>\n </div>\n <div\n class=\"inner-scroll\"\n id=\"modal-body\"\n >\n <div class=\"p-16 text-center separator-bottom sticky-top bg-component\">\n <p class=\"text-medium text-16\">\n {{ 'Reorder, edit or delete bookmarks.' | translate }}\n </p>\n </div>\n <c8y-list-group\n class=\"cdk-droplist no-border-last\"\n *ngIf=\"bookmarks.length; else emptyList\"\n cdkDropList\n (cdkDropListDropped)=\"drop($event)\"\n [cdkDropListDisabled]=\"bookmarks?.length < 2\"\n >\n <c8y-li\n *ngFor=\"let bookmark of bookmarks\"\n cdkDrag\n >\n <c8y-li-drag-handle\n title=\"{{ 'Drag to reorder' | translate }}\"\n cdkDragHandle\n >\n <i c8yIcon=\"drag-reorder\"></i>\n </c8y-li-drag-handle>\n <c8y-li-icon\n style=\"{{ bookmarks?.length < 2 ? 'padding-left: 16px!important' : '' }}\"\n *ngIf=\"bookmark.icon\"\n >\n <c8y-change-icon\n [currentIcon]=\"bookmark.icon\"\n (onButtonClick)=\"changeBookmarkIcon(bookmark)\"\n ></c8y-change-icon>\n </c8y-li-icon>\n\n <div class=\"d-flex gap-8 a-i-center\">\n <form\n class=\"d-flex flex-grow\"\n name=\"bookmarksForm\"\n #bookmarksForm=\"ngForm\"\n >\n <div class=\"input-group input-group-editable\">\n <input\n class=\"form-control fit-w\"\n title=\"{{ bookmark.label }}\"\n id=\"label\"\n name=\"label\"\n type=\"text\"\n [(ngModel)]=\"bookmark.label\"\n #label=\"ngModel\"\n maxlength=\"50\"\n [placeholder]=\"'e.g. My bookmark' | translate\"\n />\n <span></span>\n <div class=\"input-group-btn\">\n <button\n class=\"btn btn-primary\"\n title=\"{{ 'Save' | translate }}\"\n type=\"submit\"\n (click)=\"updateBookmark(bookmark, 'label'); label.control.markAsPristine()\"\n [disabled]=\"label.invalid\"\n >\n {{ 'Save' | translate }}\n </button>\n </div>\n </div>\n </form>\n <c8y-popover-confirm\n class=\"d-block\"\n [title]=\"'Delete bookmark' | translate\"\n [placement]=\"'left'\"\n [outsideClick]=\"true\"\n [adaptivePosition]=\"true\"\n [container]=\"''\"\n #poConfirm\n >\n <button\n class=\"btn btn-dot btn-dot--danger m-l-auto\"\n title=\"{{ 'Delete' | translate }}\"\n type=\"button\"\n (click)=\"removeBookmark(poConfirm, bookmark)\"\n >\n <i c8yIcon=\"minus-circle\"></i>\n </button>\n </c8y-popover-confirm>\n </div>\n </c8y-li>\n </c8y-list-group>\n </div>\n <div class=\"modal-footer\">\n <button\n class=\"btn btn-default\"\n title=\"{{ 'Cancel' | translate }}\"\n type=\"button\"\n (click)=\"close()\"\n >\n {{ 'Close' | translate }}\n </button>\n </div>\n</div>\n<ng-template #emptyList>\n <c8y-ui-empty-state\n [icon]=\"'bookmark'\"\n [title]=\"'No bookmarks yet' | translate\"\n [subtitle]=\"\n 'Navigate to the desired page, open the right drawer and click the "Add current page" button.'\n | translate\n \"\n [horizontal]=\"true\"\n ></c8y-ui-empty-state>\n</ng-template>\n","import { AsyncPipe } from '@angular/common';\nimport { Component, Inject, DOCUMENT as Document } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { AlertService, HeaderService, IconDirective, C8yTranslatePipe } from '@c8y/ngx-components';\nimport { cloneDeep } from 'lodash-es';\nimport { BsModalService } from 'ngx-bootstrap/modal';\nimport { Observable } from 'rxjs';\nimport { Bookmark } from './bookmark.model';\nimport { BookmarkService } from './bookmarks.service';\nimport { EditBookmarksComponent } from './edit-bookmarks/edit-bookmarks.component';\nimport { TooltipDirective } from 'ngx-bootstrap/tooltip';\n\n@Component({\n selector: 'c8y-bookmarks',\n templateUrl: './bookmarks.component.html',\n imports: [IconDirective, TooltipDirective, C8yTranslatePipe, AsyncPipe]\n})\nexport class BookmarksComponent {\n drawerOpen$: Observable<boolean>;\n bookmarks: Bookmark[] = [];\n emptyMessageHeader = gettext('No bookmarks yet');\n emptyMessageBody = gettext(\n 'Navigate to the desired page and click the \"Add current page\" button. Editing, deleting and reordering are possible by clicking on the cog wheel.'\n );\n addButtonText = gettext('Add current page');\n\n constructor(\n @Inject(Document) private document: Document,\n private bookmarksService: BookmarkService,\n private alertService: AlertService,\n private bookmarkService: BookmarkService,\n private bsModalService: BsModalService,\n private router: Router,\n private headerService: HeaderService\n ) {\n this.drawerOpen$ = this.headerService.rightDrawerOpen$;\n }\n\n async ngOnInit(): Promise<void> {\n this.bookmarks = await this.bookmarkService.getBookmarks();\n }\n\n async addBookmark(): Promise<void> {\n const currentHref = this.document.location.href;\n if (this.bookmarks.some(bookmark => bookmark.url === currentHref)) {\n this.alertService.warning(gettext('Bookmark with the same URL is already added.'));\n return;\n }\n const linkObject = this.bookmarkService.convertBookmarkLinkToObject(\n this.document.title,\n currentHref,\n this.bookmarksService.getCurrentActiveNodeIcon(this.document)\n );\n this.bookmarks.push(linkObject);\n await this.bookmarkService.updateBookmarksInStorage(this.bookmarks);\n this.alertService.success(gettext('Bookmark added.'));\n }\n\n async editBookmarks(): Promise<void> {\n try {\n const initialState: Pick<EditBookmarksComponent, 'bookmarks'> = {\n bookmarks: cloneDeep(this.bookmarks)\n };\n const modalRef = this.bsModalService.show(EditBookmarksComponent, {\n class: 'modal-md',\n ariaDescribedby: 'modal-body',\n ariaLabelledBy: 'modal-title',\n initialState: initialState,\n ignoreBackdropClick: true\n }).content as EditBookmarksComponent;\n this.bookmarks = await modalRef.result;\n } catch (err) {\n return;\n }\n }\n\n openUrl(url: string): void {\n const parsedUrl = new URL(url);\n\n if (\n parsedUrl.hostname === location.hostname &&\n parsedUrl.pathname.includes(location.pathname)\n ) {\n this.router.navigateByUrl(parsedUrl.hash.substring(1));\n return;\n }\n\n // only possible if the external bookmark URL has been saved using the API\n if (parsedUrl.hostname !== location.hostname) {\n return;\n }\n\n window.open(url, '_self');\n }\n}\n","<div class=\"separator-top p-t-8 m-t-auto c8y-right-drawer__item sticky-top\">\n <i c8yIcon=\"bookmark\"></i>\n <span class=\"text-bold\">{{ 'Bookmarks' | translate }}</span>\n <button\n class=\"btn-dot m-l-auto\"\n [attr.aria-label]=\"'Edit bookmarks' | translate\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n tooltip=\"{{ 'Edit bookmarks' | translate }}\"\n placement=\"left\"\n container=\"body\"\n type=\"button\"\n [adaptivePosition]=\"false\"\n [delay]=\"500\"\n (click)=\"editBookmarks()\"\n >\n <i\n class=\"text-14 m-0\"\n c8yIcon=\"cog\"\n ></i>\n </button>\n</div>\n@if (bookmarks?.length) {\n <div class=\"c8y-right-drawer__item p-t-0 p-b-8\">\n <button\n class=\"btn btn-default btn-sm\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"addBookmark()\"\n >\n <i\n class=\"m-t-0 m-b-0 text-14\"\n c8yIcon=\"plus-circle-o\"\n ></i>\n <span>{{ addButtonText | translate }}</span>\n </button>\n </div>\n}\n@if (bookmarks?.length) {\n @for (bookmark of bookmarks; track bookmark.url) {\n <button\n class=\"c8y-right-drawer__link\"\n title=\"{{ bookmark.label }}\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"openUrl(bookmark.url)\"\n >\n @if (bookmark.icon) {\n <i [c8yIcon]=\"bookmark.icon\"></i>\n }\n <span class=\"text-truncate\">{{ bookmark.label }}</span>\n </button>\n }\n}\n\n<div class=\"p-t-8 p-b-8\">\n @if (!bookmarks?.length) {\n <span class=\"c8y-right-drawer__item text-muted text-bold text-14 p-b-0\">\n {{ emptyMessageHeader | translate }}\n </span>\n <span class=\"c8y-right-drawer__item text-12 p-t-0\">\n <span class=\"text-muted\">{{ emptyMessageBody | translate }}</span>\n </span>\n <div class=\"c8y-right-drawer__item\">\n <button\n class=\"btn btn-default btn-sm\"\n [tabindex]=\"(drawerOpen$ | async) ? '0' : '-1'\"\n type=\"button\"\n (click)=\"addBookmark()\"\n >\n <i\n class=\"m-t-0 m-b-0 text-14\"\n c8yIcon=\"plus-circle-o\"\n ></i>\n <span>{{ addButtonText | translate }}</span>\n </button>\n </div>\n }\n</div>\n","import { DragDropModule } from '@angular/cdk/drag-drop';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TooltipModule } from 'ngx-bootstrap/tooltip';\nimport {\n ChangeIconComponent,\n CommonModule,\n CoreModule,\n FormsModule as c8yFormsModule,\n hookDrawer,\n ListGroupModule,\n ModalModule\n} from '@c8y/ngx-components';\nimport { BookmarksComponent } from './bookmarks.component';\nimport { EditBookmarksComponent } from './edit-bookmarks/edit-bookmarks.component';\n\n@NgModule({\n imports: [\n CoreModule,\n CommonModule,\n ListGroupModule,\n DragDropModule,\n FormsModule,\n c8yFormsModule,\n ModalModule,\n TooltipModule.forRoot(),\n ChangeIconComponent,\n BookmarksComponent,\n EditBookmarksComponent\n ],\n exports: [BookmarksComponent],\n providers: [\n hookDrawer({\n component: BookmarksComponent,\n position: 'right',\n priority: 50,\n id: 'bookmarks'\n })\n ]\n})\nexport class BookmarksModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i3.BookmarkService","Document","i1.BookmarkService","i3","i4","c8yFormsModule"],"mappings":";;;;;;;;;;;;;;;;;;MASa,eAAe,CAAA;AAK1B,IAAA,WAAA,CACU,gBAAkC,EAClC,sBAA8C,EAC9C,OAAuB,EAAA;QAFvB,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QAChB,IAAA,CAAA,sBAAsB,GAAtB,sBAAsB;QACtB,IAAA,CAAA,OAAO,GAAP,OAAO;QAPR,IAAA,CAAA,8BAA8B,GAAG,WAAW;IAQlD;IAEH,MAAM,wBAAwB,CAAC,YAAwB,EAAA;AACrD,QAAA,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE;QACnD,MAAM,eAAe,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,iBAAiB,CAAC;QAC/D,MAAM,gBAAgB,GAAG,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,MAAM,CAC3D,CAAC,QAAkB,KAAK,CAAC,QAAQ,CAAC,YAAY,CAC/C;AAED,QAAA,IAAI,CAAC,2BAA2B,CAAC,gBAAgB,CAAC;IACpD;AAEA,IAAA,wBAAwB,CAAC,QAAkB,EAAA;QACzC,MAAM,QAAQ,GAAG,UAAU;QAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;QAEjD,IAAI,CAAC,WAAW,EAAE;AAChB,YAAA,OAAO,QAAQ;QACjB;AAEA,QAAA,MAAM,aAAa,GAAG,WAAW,CAAC,SAAS;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;QACpD,OAAO,QAAQ,IAAI,QAAQ;IAC7B;AAEA,IAAA,eAAe,CAAC,KAAa,EAAA;QAC3B,MAAM,SAAS,GAAG,qCAAqC;QACvD,MAAM,OAAO,GAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAC9C,QAAA,MAAM,KAAK,GAAG,OAAO,EAAE,GAAG,EAAE;QAE5B,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,OAAO,IAAI;QACb;QACA,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,GAAG,KAAK;QAE9B,OAAO,MAAM,GAAG,IAAI,GAAG,CAAA,IAAA,EAAO,IAAI,CAAA,CAAE;IACtC;AAEA,IAAA,MAAM,YAAY,GAAA;AAChB,QAAA,OAAO,MAAM,cAAc,CACzB,IAAI,CAAC;AACF,aAAA,GAAG,CAAC,IAAI,CAAC,8BAA8B;AACvC,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,SAAqB,KAAK,SAAS,IAAI,EAAE,CAAC,CAAC,CACzD;IACH;IAEA,gBAAgB,GAAA;AACd,QAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC;AAChC,QAAA,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC;AAE7B,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/E;AAEA,IAAA,2BAA2B,CAAC,KAAa,EAAE,GAAW,EAAE,IAAY,EAAA;QAClE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,YAAY;QAC5D,OAAO;AACL,YAAA,EAAE,EAAE,IAAI,CAAC,gBAAgB,EAAE;AAC3B,YAAA,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;kBAC7B,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,CAAA,GAAA,CAAK,EAAE,EAAE;kBACrC,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACtD,GAAG;YACH;SACD;IACH;AAEQ,IAAA,cAAc,CAAC,QAAkB,EAAA;QACvC,MAAM,iBAAiB,GAAG,QAAQ,CAAC,gBAAgB,CAAC,cAAc,CAAa;AAC/E,QAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AAC7B,YAAA,OAAO,IAAI;QACb;QACA,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAgB;AAC3D,QAAA,OAAO,UAAU,CAAC,iBAAiB,CAAC,UAAyB;IAC/D;AAEQ,IAAA,2BAA2B,CAAC,SAAqB,EAAA;QACvD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,8BAA8B,EAAE,SAAS,CAAC;AAC/E,QAAA,IAAI,CAAC,gBAAgB,GAAG,SAAS;IACnC;+GAvFW,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cADF,MAAM,EAAA,CAAA,CAAA;;4FACnB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MC6CrB,sBAAsB,CAAA;AAsBjC,IAAA,WAAA,CACU,UAAsB,EACtB,YAA0B,EAC1B,eAAgC,EAChC,YAAiC,EAAA;QAHjC,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,eAAe,GAAf,eAAe;QACf,IAAA,CAAA,YAAY,GAAZ,YAAY;AAtBtB,QAAA,IAAA,CAAA,0BAA0B,GAA4B;AACpD,YAAA;AACE,gBAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;gBACxB,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK;AACpC,aAAA;AACD,YAAA;AACE,gBAAA,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC;AACxB,gBAAA,MAAM,EAAE,QAAQ;gBAChB,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI;AACnC;SACF;AAED,QAAA,IAAA,CAAA,MAAM,GAAwB,IAAI,OAAO,CAAC,OAAO,IAAG;AAClD,YAAA,IAAI,CAAC,MAAM,GAAG,OAAO;AACvB,QAAA,CAAC,CAAC;IASC;IAEH,QAAQ,GAAA;QACN,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;IACpD;AAGA,IAAA,mBAAmB,CAAC,KAAoB,EAAA;AACtC,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YAC1B,IAAI,CAAC,KAAK,EAAE;QACd;IACF;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,IAAI,CAAC,eAAe,CAAC,gBAAgB,EAAE;YACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;QACpD;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;IACxB;IAEA,MAAM,IAAI,CAAC,KAA8B,EAAA;AACvC,QAAA,IAAI;AACF,YAAA,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC;AACxE,YAAA,eAAe,CAAC,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,YAAY,CAAC;YAEhF,MAAM,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,CAAC;YAC3E,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC;QAChE;AAAE,QAAA,MAAM;YACN,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QACzE;IACF;AAEA,IAAA,MAAM,cAAc,CAClB,eAAyB,EACzB,IAA6D,EAAA;AAE7D,QAAA,IAAI;YACF,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,EAAE,IAAI,CAAC;YAC3E,MAAM,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,CAAC;AAC3E,YAAA,IAAI,IAAI,KAAK,cAAc,EAAE;gBAC3B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACzD;QACF;AAAE,QAAA,MAAM;AACN,YAAA,IAAI,IAAI,KAAK,cAAc,EAAE;gBAC3B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;YAC9D;QACF;IACF;IAEA,sBAAsB,CACpB,eAAyB,EACzB,IAA6D,EAAA;AAE7D,QAAA,MAAM,MAAM,GAAG;AACb,YAAA,IAAI,EAAE,CAAC,QAAkB,MAAM,EAAE,GAAG,QAAQ,EAAE,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,CAAC;AAC3E,YAAA,KAAK,EAAE,CAAC,QAAkB,MAAM,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,KAAK,EAAE,CAAC;AAC9E,YAAA,YAAY,EAAE,CAAC,QAAkB,MAAM,EAAE,GAAG,QAAQ,EAAE,YAAY,EAAE,IAAI,EAAE;SAC3E,CAAC,IAAI,CAAC;AAEP,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,QAAQ,IACxC,QAAQ,CAAC,EAAE,KAAK,eAAe,CAAC,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CACjE;IACH;IAEA,MAAM,kBAAkB,CAAC,eAAyB,EAAA;AAChD,QAAA,IAAI;YACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE;AACpD,YAAA,eAAe,CAAC,IAAI,GAAG,OAAO;YAC9B,MAAM,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,MAAM,CAAC;QACpD;AAAE,QAAA,MAAM;;QAER;IACF;AAEA,IAAA,MAAM,cAAc,CAClB,SAAkC,EAClC,gBAA0B,EAAA;AAE1B,QAAA,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC,8BAA8B,CAAC;AAE3D,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC;YACpE,IAAI,CAAC,MAAM,EAAE;gBACX;YACF;YAEA,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,EAAE,cAAc,CAAC;YAE3D,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAC5C,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,gBAAgB,CAAC,EAAE,CAChD;AAED,YAAA,IAAI,aAAa,KAAK,CAAC,CAAC,EAAE;gBACxB;YACF;YAEA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACzD;QAAE,OAAO,GAAG,EAAE;AACZ;;AAEG;YACH,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;YAClE;QACF;IACF;+GArIW,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,kBAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrDnC,szHA2HA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDxFI,aAAa,2EACb,qBAAqB,EAAA,QAAA,EAAA,6BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACJ,kBAAkB,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,WAAW,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,IAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,4BAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,+BAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,KAAK,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACL,iBAAiB,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,cAAA,EAAA,OAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACjB,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,iBAAA,EAAA,0BAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,2BAA2B,EAAA,QAAA,EAAA,+CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAC3B,aAAa,+FACb,qBAAqB,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACrB,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,4EAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,wDAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,uBAAuB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,OAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,mBAAmB,+GACnB,gBAAgB,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAGP,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAtBlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,OAAA,EAErB;wBACP,aAAa;wBACb,qBAAqB;wBACrB,IAAI;wBACJ,kBAAkB;wBAClB,WAAW;wBACX,KAAK;wBACL,iBAAiB;wBACjB,OAAO;wBACP,2BAA2B;wBAC3B,aAAa;wBACb,qBAAqB;wBACrB,mBAAmB;wBACnB,WAAW;wBACX,uBAAuB;wBACvB,mBAAmB;wBACnB;AACD,qBAAA,EAAA,QAAA,EAAA,szHAAA,EAAA;yKAGQ,SAAS,EAAA,CAAA;sBAAjB;gBAiCD,mBAAmB,EAAA,CAAA;sBADlB,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC;;;MEpEjC,kBAAkB,CAAA;AAS7B,IAAA,WAAA,CAC4B,QAAkB,EACpC,gBAAiC,EACjC,YAA0B,EAC1B,eAAgC,EAChC,cAA8B,EAC9B,MAAc,EACd,aAA4B,EAAA;QANV,IAAA,CAAA,QAAQ,GAAR,QAAQ;QAC1B,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;QAChB,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,eAAe,GAAf,eAAe;QACf,IAAA,CAAA,cAAc,GAAd,cAAc;QACd,IAAA,CAAA,MAAM,GAAN,MAAM;QACN,IAAA,CAAA,aAAa,GAAb,aAAa;QAdvB,IAAA,CAAA,SAAS,GAAe,EAAE;AAC1B,QAAA,IAAA,CAAA,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;AAChD,QAAA,IAAA,CAAA,gBAAgB,GAAG,OAAO,CACxB,mJAAmJ,CACpJ;AACD,QAAA,IAAA,CAAA,aAAa,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAWzC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB;IACxD;AAEA,IAAA,MAAM,QAAQ,GAAA;QACZ,IAAI,CAAC,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE;IAC5D;AAEA,IAAA,MAAM,WAAW,GAAA;QACf,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI;AAC/C,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,GAAG,KAAK,WAAW,CAAC,EAAE;YACjE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;YAClF;QACF;QACA,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,2BAA2B,CACjE,IAAI,CAAC,QAAQ,CAAC,KAAK,EACnB,WAAW,EACX,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC9D;AACD,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/B,MAAM,IAAI,CAAC,eAAe,CAAC,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC;QACnE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACvD;AAEA,IAAA,MAAM,aAAa,GAAA;AACjB,QAAA,IAAI;AACF,YAAA,MAAM,YAAY,GAA8C;AAC9D,gBAAA,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,SAAS;aACpC;YACD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChE,gBAAA,KAAK,EAAE,UAAU;AACjB,gBAAA,eAAe,EAAE,YAAY;AAC7B,gBAAA,cAAc,EAAE,aAAa;AAC7B,gBAAA,YAAY,EAAE,YAAY;AAC1B,gBAAA,mBAAmB,EAAE;aACtB,CAAC,CAAC,OAAiC;AACpC,YAAA,IAAI,CAAC,SAAS,GAAG,MAAM,QAAQ,CAAC,MAAM;QACxC;QAAE,OAAO,GAAG,EAAE;YACZ;QACF;IACF;AAEA,IAAA,OAAO,CAAC,GAAW,EAAA;AACjB,QAAA,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC;AAE9B,QAAA,IACE,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ;YACxC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC9C;AACA,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACtD;QACF;;QAGA,IAAI,SAAS,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE;YAC5C;QACF;AAEA,QAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC;IAC3B;AA5EW,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAUnBC,QAAQ,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAVP,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClB/B,8wEA8EA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED9DY,aAAa,2EAAE,gBAAgB,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,SAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAE3D,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,eAAe,EAAA,OAAA,EAEhB,CAAC,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,8wEAAA,EAAA;;0BAYpE,MAAM;2BAACH,QAAQ;;;MEYP,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAtBxB,UAAU;YACV,YAAY;YACZ,eAAe;YACf,cAAc;YACd,WAAW;YACXI,aAAc;AACd,YAAA,WAAW,sBAEX,mBAAmB;YACnB,kBAAkB;AAClB,YAAA,sBAAsB,aAEd,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAUjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAAA,SAAA,EATf;AACT,YAAA,UAAU,CAAC;AACT,gBAAA,SAAS,EAAE,kBAAkB;AAC7B,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,EAAE;AACZ,gBAAA,EAAE,EAAE;aACL;AACF,SAAA,EAAA,OAAA,EAAA,CApBC,UAAU;YACV,YAAY;YACZ,eAAe;YACf,cAAc;YACd,WAAW;YACXA,aAAc;YACd,WAAW;YACX,aAAa,CAAC,OAAO,EAAE;YACvB,mBAAmB;YAEnB,sBAAsB,CAAA,EAAA,CAAA,CAAA;;4FAYb,eAAe,EAAA,UAAA,EAAA,CAAA;kBAxB3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,UAAU;wBACV,YAAY;wBACZ,eAAe;wBACf,cAAc;wBACd,WAAW;wBACXA,aAAc;wBACd,WAAW;wBACX,aAAa,CAAC,OAAO,EAAE;wBACvB,mBAAmB;wBACnB,kBAAkB;wBAClB;AACD,qBAAA;oBACD,OAAO,EAAE,CAAC,kBAAkB,CAAC;AAC7B,oBAAA,SAAS,EAAE;AACT,wBAAA,UAAU,CAAC;AACT,4BAAA,SAAS,EAAE,kBAAkB;AAC7B,4BAAA,QAAQ,EAAE,OAAO;AACjB,4BAAA,QAAQ,EAAE,EAAE;AACZ,4BAAA,EAAE,EAAE;yBACL;AACF;AACF,iBAAA;;;ACvCD;;AAEG;;;;"}
|
|
@@ -3,11 +3,11 @@ import { NgModule } from '@angular/core';
|
|
|
3
3
|
import { SharedBrandingModule } from '@c8y/ngx-components/branding/shared';
|
|
4
4
|
|
|
5
5
|
class BaseBrandingModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BaseBrandingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: BaseBrandingModule, imports: [SharedBrandingModule] }); }
|
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BaseBrandingModule, imports: [SharedBrandingModule] }); }
|
|
9
9
|
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: BaseBrandingModule, decorators: [{
|
|
11
11
|
type: NgModule,
|
|
12
12
|
args: [{
|
|
13
13
|
imports: [SharedBrandingModule]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-branding-base-branding.mjs","sources":["../../branding/base-branding/base-branding.module.ts","../../branding/base-branding/c8y-ngx-components-branding-base-branding.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { SharedBrandingModule } from '@c8y/ngx-components/branding/shared';\n\n@NgModule({\n imports: [SharedBrandingModule]\n})\nexport class BaseBrandingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAMa,kBAAkB,CAAA
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-branding-base-branding.mjs","sources":["../../branding/base-branding/base-branding.module.ts","../../branding/base-branding/c8y-ngx-components-branding-base-branding.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { SharedBrandingModule } from '@c8y/ngx-components/branding/shared';\n\n@NgModule({\n imports: [SharedBrandingModule]\n})\nexport class BaseBrandingModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAMa,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAFnB,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAEnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAFnB,oBAAoB,CAAA,EAAA,CAAA,CAAA;;4FAEnB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,oBAAoB;AAC/B,iBAAA;;;ACLD;;AAEG;;;;"}
|
|
@@ -35,10 +35,10 @@ class DarkThemeTabFactory extends BrandingTabFactory {
|
|
|
35
35
|
shouldShowTab$() {
|
|
36
36
|
return this.options.get$('darkThemeAvailable', false, true).pipe(map(value => !!value));
|
|
37
37
|
}
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
39
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DarkThemeTabFactory, deps: [{ token: i1.OptionsService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
39
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DarkThemeTabFactory, providedIn: 'root' }); }
|
|
40
40
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DarkThemeTabFactory, decorators: [{
|
|
42
42
|
type: Injectable,
|
|
43
43
|
args: [{ providedIn: 'root' }]
|
|
44
44
|
}], ctorParameters: () => [{ type: i1.OptionsService }] });
|
|
@@ -52,11 +52,11 @@ BRANDING_EDIT_CHILD_ROUTES.push({
|
|
|
52
52
|
}
|
|
53
53
|
});
|
|
54
54
|
class DarkThemeModule {
|
|
55
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
56
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
57
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
55
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DarkThemeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
56
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: DarkThemeModule, imports: [SharedBrandingModule] }); }
|
|
57
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DarkThemeModule, providers: [hookTab(DarkThemeTabFactory)], imports: [SharedBrandingModule] }); }
|
|
58
58
|
}
|
|
59
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: DarkThemeModule, decorators: [{
|
|
60
60
|
type: NgModule,
|
|
61
61
|
args: [{
|
|
62
62
|
imports: [SharedBrandingModule],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-branding-dark-theme.mjs","sources":["../../branding/dark-theme/dark-theme-tab.factory.ts","../../branding/dark-theme/dark-theme.module.ts","../../branding/dark-theme/c8y-ngx-components-branding-dark-theme.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { OptionsService, Tab } from '@c8y/ngx-components';\nimport { BrandingTabFactory } from '@c8y/ngx-components/branding/shared';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport const darkThemeTabName = gettext('Dark theme');\n\n/**\n * Factory for creating the dark theme tab.\n * Extends the BrandingTabFactory to provide the dark theme tab.\n */\n@Injectable({ providedIn: 'root' })\nexport class DarkThemeTabFactory extends BrandingTabFactory {\n constructor(private options: OptionsService) {\n super();\n }\n\n /**\n * Overrides the `getTabsForVersion` method of `BrandingTabFactory` to provide the dark theme tab.\n */\n protected override getTabsForVersion(name: string): Tab[] {\n return [\n {\n path: this.getPathForBranding(name, 'dark'),\n label: darkThemeTabName,\n icon: 'moon',\n priority: 400\n }\n ];\n }\n\n /**\n * Overrides the `shouldShowTab$` method of `BrandingTabFactory` to show the dark theme tab only if the dark theme is available.\n */\n protected override shouldShowTab$(): Observable<boolean> {\n return this.options.get$('darkThemeAvailable', false, true).pipe(map(value => !!value));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { hookTab } from '@c8y/ngx-components';\nimport {\n BRANDING_EDIT_CHILD_ROUTES,\n SharedBrandingModule\n} from '@c8y/ngx-components/branding/shared';\nimport { DarkThemeTabFactory, darkThemeTabName } from './dark-theme-tab.factory';\n\nBRANDING_EDIT_CHILD_ROUTES.push({\n path: 'dark',\n loadComponent: () =>\n import('@c8y/ngx-components/branding/shared/lazy').then(m => m.BrandingThemeFormComponent),\n data: {\n dark: true,\n tabName: darkThemeTabName\n }\n});\n\n@NgModule({\n imports: [SharedBrandingModule],\n providers: [hookTab(DarkThemeTabFactory)]\n})\nexport class DarkThemeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAOO,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;AAErD;;;AAGG;AAEG,MAAO,mBAAoB,SAAQ,kBAAkB,CAAA;AACzD,IAAA,WAAA,CAAoB,OAAuB,EAAA;AACzC,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,OAAO,GAAP,OAAO;IAE3B;AAEA;;AAEG;AACgB,IAAA,iBAAiB,CAAC,IAAY,EAAA;QAC/C,OAAO;AACL,YAAA;gBACE,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC;AAC3C,gBAAA,KAAK,EAAE,gBAAgB;AACvB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,QAAQ,EAAE;AACX;SACF;IACH;AAEA;;AAEG;IACgB,cAAc,GAAA;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;IACzF
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-branding-dark-theme.mjs","sources":["../../branding/dark-theme/dark-theme-tab.factory.ts","../../branding/dark-theme/dark-theme.module.ts","../../branding/dark-theme/c8y-ngx-components-branding-dark-theme.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { OptionsService, Tab } from '@c8y/ngx-components';\nimport { BrandingTabFactory } from '@c8y/ngx-components/branding/shared';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport const darkThemeTabName = gettext('Dark theme');\n\n/**\n * Factory for creating the dark theme tab.\n * Extends the BrandingTabFactory to provide the dark theme tab.\n */\n@Injectable({ providedIn: 'root' })\nexport class DarkThemeTabFactory extends BrandingTabFactory {\n constructor(private options: OptionsService) {\n super();\n }\n\n /**\n * Overrides the `getTabsForVersion` method of `BrandingTabFactory` to provide the dark theme tab.\n */\n protected override getTabsForVersion(name: string): Tab[] {\n return [\n {\n path: this.getPathForBranding(name, 'dark'),\n label: darkThemeTabName,\n icon: 'moon',\n priority: 400\n }\n ];\n }\n\n /**\n * Overrides the `shouldShowTab$` method of `BrandingTabFactory` to show the dark theme tab only if the dark theme is available.\n */\n protected override shouldShowTab$(): Observable<boolean> {\n return this.options.get$('darkThemeAvailable', false, true).pipe(map(value => !!value));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { hookTab } from '@c8y/ngx-components';\nimport {\n BRANDING_EDIT_CHILD_ROUTES,\n SharedBrandingModule\n} from '@c8y/ngx-components/branding/shared';\nimport { DarkThemeTabFactory, darkThemeTabName } from './dark-theme-tab.factory';\n\nBRANDING_EDIT_CHILD_ROUTES.push({\n path: 'dark',\n loadComponent: () =>\n import('@c8y/ngx-components/branding/shared/lazy').then(m => m.BrandingThemeFormComponent),\n data: {\n dark: true,\n tabName: darkThemeTabName\n }\n});\n\n@NgModule({\n imports: [SharedBrandingModule],\n providers: [hookTab(DarkThemeTabFactory)]\n})\nexport class DarkThemeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAOO,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;AAErD;;;AAGG;AAEG,MAAO,mBAAoB,SAAQ,kBAAkB,CAAA;AACzD,IAAA,WAAA,CAAoB,OAAuB,EAAA;AACzC,QAAA,KAAK,EAAE;QADW,IAAA,CAAA,OAAO,GAAP,OAAO;IAE3B;AAEA;;AAEG;AACgB,IAAA,iBAAiB,CAAC,IAAY,EAAA;QAC/C,OAAO;AACL,YAAA;gBACE,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC;AAC3C,gBAAA,KAAK,EAAE,gBAAgB;AACvB,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,QAAQ,EAAE;AACX;SACF;IACH;AAEA;;AAEG;IACgB,cAAc,GAAA;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;IACzF;+GAxBW,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cADN,MAAM,EAAA,CAAA,CAAA;;4FACnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACLlC,0BAA0B,CAAC,IAAI,CAAC;AAC9B,IAAA,IAAI,EAAE,MAAM;AACZ,IAAA,aAAa,EAAE,MACb,OAAO,0CAA0C,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,0BAA0B,CAAC;AAC5F,IAAA,IAAI,EAAE;AACJ,QAAA,IAAI,EAAE,IAAI;AACV,QAAA,OAAO,EAAE;AACV;AACF,CAAA,CAAC;MAMW,eAAe,CAAA;+GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,YAHhB,oBAAoB,CAAA,EAAA,CAAA,CAAA;gHAGnB,eAAe,EAAA,SAAA,EAFf,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,YAD/B,oBAAoB,CAAA,EAAA,CAAA,CAAA;;4FAGnB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAC/B,oBAAA,SAAS,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC;AACzC,iBAAA;;;ACrBD;;AAEG;;;;"}
|
|
@@ -16,10 +16,10 @@ class ExtraCssBrandingEditorTabFactory extends BrandingTabFactory {
|
|
|
16
16
|
}
|
|
17
17
|
];
|
|
18
18
|
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
20
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ExtraCssBrandingEditorTabFactory, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ExtraCssBrandingEditorTabFactory, providedIn: 'root' }); }
|
|
21
21
|
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ExtraCssBrandingEditorTabFactory, decorators: [{
|
|
23
23
|
type: Injectable,
|
|
24
24
|
args: [{ providedIn: 'root' }]
|
|
25
25
|
}] });
|
|
@@ -35,11 +35,11 @@ BRANDING_EDIT_CHILD_ROUTES.push({
|
|
|
35
35
|
loadComponent: () => import('@c8y/ngx-components/branding/plain-branding-editor/lazy').then(m => m.AdvancedEditBrandingComponent)
|
|
36
36
|
});
|
|
37
37
|
class ExtraCssBrandingEditorModule {
|
|
38
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
39
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
40
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ExtraCssBrandingEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
39
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ExtraCssBrandingEditorModule, imports: [SharedBrandingModule] }); }
|
|
40
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ExtraCssBrandingEditorModule, providers: [hookTab(ExtraCssBrandingEditorTabFactory)], imports: [SharedBrandingModule] }); }
|
|
41
41
|
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ExtraCssBrandingEditorModule, decorators: [{
|
|
43
43
|
type: NgModule,
|
|
44
44
|
args: [{
|
|
45
45
|
imports: [SharedBrandingModule],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"c8y-ngx-components-branding-extra-css-branding-editor.mjs","sources":["../../branding/extra-css-branding-editor/extra-css-branding-editor-tab.factory.ts","../../branding/extra-css-branding-editor/extra-css-branding-editor.module.ts","../../branding/extra-css-branding-editor/c8y-ngx-components-branding-extra-css-branding-editor.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { Tab } from '@c8y/ngx-components';\nimport { BrandingTabFactory } from '@c8y/ngx-components/branding/shared';\n\nexport const extraCssTabLabel = gettext('Custom CSS');\n\n@Injectable({ providedIn: 'root' })\nexport class ExtraCssBrandingEditorTabFactory extends BrandingTabFactory {\n protected getTabsForVersion(name: string): Tab[] {\n return [\n {\n path: this.getPathForBranding(name, 'css'),\n label: extraCssTabLabel,\n icon: 'c8y-css',\n priority: 300\n }\n ];\n }\n}\n","import { NgModule } from '@angular/core';\nimport {\n ExtraCssBrandingEditorTabFactory,\n extraCssTabLabel\n} from './extra-css-branding-editor-tab.factory';\nimport { hookTab } from '@c8y/ngx-components';\nimport {\n SharedBrandingModule,\n BRANDING_EDIT_CHILD_ROUTES\n} from '@c8y/ngx-components/branding/shared';\nimport { gettext } from '@c8y/ngx-components/gettext';\n\nBRANDING_EDIT_CHILD_ROUTES.push({\n path: 'css',\n data: {\n attributeToEdit: 'extraCss',\n language: 'css',\n tabName: extraCssTabLabel,\n infoText: gettext(\n 'This feature requires knowledge of CSS and HTML. Changes made here take precedence over built-in styles. Future platform updates may affect custom CSS functionality.'\n )\n },\n loadComponent: () =>\n import('@c8y/ngx-components/branding/plain-branding-editor/lazy').then(\n m => m.AdvancedEditBrandingComponent\n )\n});\n\n@NgModule({\n imports: [SharedBrandingModule],\n providers: [hookTab(ExtraCssBrandingEditorTabFactory)]\n})\nexport class ExtraCssBrandingEditorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAKO,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;AAG/C,MAAO,gCAAiC,SAAQ,kBAAkB,CAAA;AAC5D,IAAA,iBAAiB,CAAC,IAAY,EAAA;QACtC,OAAO;AACL,YAAA;gBACE,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC;AAC1C,gBAAA,KAAK,EAAE,gBAAgB;AACvB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,QAAQ,EAAE;AACX;SACF;IACH
|
|
1
|
+
{"version":3,"file":"c8y-ngx-components-branding-extra-css-branding-editor.mjs","sources":["../../branding/extra-css-branding-editor/extra-css-branding-editor-tab.factory.ts","../../branding/extra-css-branding-editor/extra-css-branding-editor.module.ts","../../branding/extra-css-branding-editor/c8y-ngx-components-branding-extra-css-branding-editor.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { gettext } from '@c8y/ngx-components/gettext';\nimport { Tab } from '@c8y/ngx-components';\nimport { BrandingTabFactory } from '@c8y/ngx-components/branding/shared';\n\nexport const extraCssTabLabel = gettext('Custom CSS');\n\n@Injectable({ providedIn: 'root' })\nexport class ExtraCssBrandingEditorTabFactory extends BrandingTabFactory {\n protected getTabsForVersion(name: string): Tab[] {\n return [\n {\n path: this.getPathForBranding(name, 'css'),\n label: extraCssTabLabel,\n icon: 'c8y-css',\n priority: 300\n }\n ];\n }\n}\n","import { NgModule } from '@angular/core';\nimport {\n ExtraCssBrandingEditorTabFactory,\n extraCssTabLabel\n} from './extra-css-branding-editor-tab.factory';\nimport { hookTab } from '@c8y/ngx-components';\nimport {\n SharedBrandingModule,\n BRANDING_EDIT_CHILD_ROUTES\n} from '@c8y/ngx-components/branding/shared';\nimport { gettext } from '@c8y/ngx-components/gettext';\n\nBRANDING_EDIT_CHILD_ROUTES.push({\n path: 'css',\n data: {\n attributeToEdit: 'extraCss',\n language: 'css',\n tabName: extraCssTabLabel,\n infoText: gettext(\n 'This feature requires knowledge of CSS and HTML. Changes made here take precedence over built-in styles. Future platform updates may affect custom CSS functionality.'\n )\n },\n loadComponent: () =>\n import('@c8y/ngx-components/branding/plain-branding-editor/lazy').then(\n m => m.AdvancedEditBrandingComponent\n )\n});\n\n@NgModule({\n imports: [SharedBrandingModule],\n providers: [hookTab(ExtraCssBrandingEditorTabFactory)]\n})\nexport class ExtraCssBrandingEditorModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;AAKO,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;AAG/C,MAAO,gCAAiC,SAAQ,kBAAkB,CAAA;AAC5D,IAAA,iBAAiB,CAAC,IAAY,EAAA;QACtC,OAAO;AACL,YAAA;gBACE,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC;AAC1C,gBAAA,KAAK,EAAE,gBAAgB;AACvB,gBAAA,IAAI,EAAE,SAAS;AACf,gBAAA,QAAQ,EAAE;AACX;SACF;IACH;+GAVW,gCAAgC,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gCAAgC,cADnB,MAAM,EAAA,CAAA,CAAA;;4FACnB,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAD5C,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACKlC,0BAA0B,CAAC,IAAI,CAAC;AAC9B,IAAA,IAAI,EAAE,KAAK;AACX,IAAA,IAAI,EAAE;AACJ,QAAA,eAAe,EAAE,UAAU;AAC3B,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,OAAO,EAAE,gBAAgB;AACzB,QAAA,QAAQ,EAAE,OAAO,CACf,uKAAuK;AAE1K,KAAA;AACD,IAAA,aAAa,EAAE,MACb,OAAO,yDAAyD,CAAC,CAAC,IAAI,CACpE,CAAC,IAAI,CAAC,CAAC,6BAA6B;AAEzC,CAAA,CAAC;MAMW,4BAA4B,CAAA;+GAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAH7B,oBAAoB,CAAA,EAAA,CAAA,CAAA;gHAGnB,4BAA4B,EAAA,SAAA,EAF5B,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC,YAD5C,oBAAoB,CAAA,EAAA,CAAA,CAAA;;4FAGnB,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAC/B,oBAAA,SAAS,EAAE,CAAC,OAAO,CAAC,gCAAgC,CAAC;AACtD,iBAAA;;;AC/BD;;AAEG;;;;"}
|
|
@@ -70,10 +70,10 @@ class AdvancedEditBrandingComponent {
|
|
|
70
70
|
this.onValidatorChange();
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
74
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
73
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AdvancedEditBrandingComponent, deps: [{ token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
74
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: AdvancedEditBrandingComponent, isStandalone: true, selector: "c8y-advanced-edit-branding", host: { classAttribute: "d-contents" }, ngImport: i0, template: "<div\n class=\"card-block separator-bottom m-b-16\"\n *ngIf=\"infoText\"\n>\n <p class=\"icon-flex\">\n <i\n class=\"text-info m-r-4 icon-16\"\n c8yIcon=\"info-circle\"\n ></i>\n <span>\n {{ infoText | translate }}\n </span>\n </p>\n</div>\n\n<c8y-editor\n class=\"flex-grow\"\n [editorOptions]=\"editorOptions\"\n [ngModel]=\"valueString | async\"\n (ngModelChange)=\"onValueChange($event)\"\n monacoEditorMarkerValidator\n></c8y-editor>\n", dependencies: [{ kind: "component", type: EditorComponent, selector: "c8y-editor", inputs: ["editorOptions", "theme"], outputs: ["editorInit"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: MonacoEditorMarkerValidatorDirective, selector: "c8y-editor [monacoEditorMarkerValidator]" }, { kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }] }); }
|
|
75
75
|
}
|
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: AdvancedEditBrandingComponent, decorators: [{
|
|
77
77
|
type: Component,
|
|
78
78
|
args: [{ selector: 'c8y-advanced-edit-branding', host: { class: 'd-contents' }, standalone: true, imports: [
|
|
79
79
|
EditorComponent,
|