ngx-techlify-core 18.88.0 → 18.89.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/access-control-config/access-control-config-form/access-control-config-form.component.mjs +9 -10
- package/esm2022/lib/access-control-config/access-control-config.component.mjs +6 -7
- package/esm2022/lib/access-control-config/access-control-config.module.mjs +8 -40
- package/esm2022/lib/app-admin/admin-role/admin-role-list/admin-role-list.component.mjs +7 -8
- package/esm2022/lib/app-admin/admin-role/admin-role-list/admin-role-list.module.mjs +8 -43
- package/esm2022/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.component.mjs +9 -10
- package/esm2022/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.module.mjs +5 -46
- package/esm2022/lib/app-admin/app-admin-home/app-admin-home.component.mjs +2 -2
- package/esm2022/lib/audit-log/audit-log-for-model/audit-log-for-model.module.mjs +8 -16
- package/esm2022/lib/audit-log/audit-log-list/audit-log-list.component.mjs +9 -9
- package/esm2022/lib/audit-log/audit-log-list/audit-log-list.module.mjs +8 -31
- package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.component.mjs +6 -6
- package/esm2022/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.mjs +8 -24
- package/esm2022/lib/audit-log/audit-log-view/audit-log-view.module.mjs +8 -12
- package/esm2022/lib/audit-log/audit-log-view-model/audit-log-view-model.module.mjs +8 -12
- package/esm2022/lib/audit-log/audit-logs-view-model/audit-logs-view-model.module.mjs +1 -1
- package/esm2022/lib/base-model/techlify-list/techlify-list.component.mjs +42 -4
- package/esm2022/lib/change-password/change-password.component.mjs +4 -5
- package/esm2022/lib/change-password/change-password.module.mjs +5 -24
- package/esm2022/lib/column-selector/column-selector/column-selector.component.mjs +7 -8
- package/esm2022/lib/column-selector/column-selector.module.mjs +5 -53
- package/esm2022/lib/core/core.module.mjs +1 -1
- package/esm2022/lib/data-table/data-table.component.mjs +11 -13
- package/esm2022/lib/data-table/data-table.module.mjs +5 -17
- package/esm2022/lib/document-viewer/document-viewer.component.mjs +5 -6
- package/esm2022/lib/document-viewer/document-viewer.module.mjs +1 -5
- package/esm2022/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.mjs +5 -17
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.component.mjs +5 -6
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.mjs +5 -21
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.component.mjs +13 -14
- package/esm2022/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.mjs +5 -21
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.component.mjs +5 -6
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.mjs +5 -21
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.component.mjs +13 -14
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.mjs +5 -21
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.component.mjs +4 -5
- package/esm2022/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.mjs +5 -21
- package/esm2022/lib/entity-files/entity-file-form/entity-file-form.component.mjs +8 -8
- package/esm2022/lib/entity-files/entity-file-list/entity-file-list.component.mjs +19 -19
- package/esm2022/lib/entity-files/entity-file-list-widget/entity-file-list-widget.component.mjs +2 -4
- package/esm2022/lib/entity-files/entity-file-list.module.mjs +1 -13
- package/esm2022/lib/entity-files/entity-file.service.mjs +3 -3
- package/esm2022/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.mjs +21 -8
- package/esm2022/lib/file-dragdrop-uploader/file-dragdrop-uploader.module.mjs +5 -21
- package/esm2022/lib/file-dropper/file-dropper.component.mjs +4 -6
- package/esm2022/lib/file-dropper/file-dropper.module.mjs +1 -5
- package/esm2022/lib/forgot-password/forgot-password.component.mjs +1 -1
- package/esm2022/lib/forgot-password/forgot-password.module.mjs +5 -13
- package/esm2022/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.component.mjs +3 -4
- package/esm2022/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.module.mjs +5 -17
- package/esm2022/lib/import-csv/field-mapping/field-mapping.component.mjs +5 -5
- package/esm2022/lib/import-csv/import-csv.component.mjs +6 -6
- package/esm2022/lib/import-csv/import-csv.module.mjs +8 -38
- package/esm2022/lib/import-csv/import-history-list/import-history-list.component.mjs +3 -3
- package/esm2022/lib/import-csv/import-success/import-success.component.mjs +5 -5
- package/esm2022/lib/ip-address-selector/ip-address-selector.module.mjs +5 -29
- package/esm2022/lib/ip-address-selector/ip-range-selector/ip-range-selector.component.mjs +7 -8
- package/esm2022/lib/locked-date/locked-date-form/locked-date-form.component.mjs +1 -1
- package/esm2022/lib/locked-date/locked-date.module.mjs +5 -32
- package/esm2022/lib/locked-date/locked-dates-list/locked-date-list.component.mjs +3 -3
- package/esm2022/lib/login/login-form-fields/login-form-fields.component.mjs +5 -8
- package/esm2022/lib/login/login.module.mjs +5 -29
- package/esm2022/lib/login-history-for-user/login-history-for-user.component.mjs +5 -6
- package/esm2022/lib/login-history-for-user/login-history-for-user.module.mjs +8 -28
- package/esm2022/lib/material.module.mjs +7 -3
- package/esm2022/lib/note/comment-form/comment-form.component.mjs +4 -8
- package/esm2022/lib/note/note-comment-list/note-comment-list.component.mjs +3 -4
- package/esm2022/lib/note/note-list/note-list.component.mjs +17 -18
- package/esm2022/lib/note/note.module.mjs +3 -7
- package/esm2022/lib/number-input-button/number-input-button/number-input-button.component.mjs +7 -7
- package/esm2022/lib/number-input-button/number-input-button.module.mjs +5 -13
- package/esm2022/lib/number-selector/number-selector.component.mjs +4 -6
- package/esm2022/lib/pdf-button/pdf-button.component.mjs +3 -3
- package/esm2022/lib/pdf-button/pdf-button.module.mjs +5 -13
- package/esm2022/lib/phone-number-selector/phone-number-selector.component.mjs +4 -4
- package/esm2022/lib/profile/profile-edit.component.mjs +1 -1
- package/esm2022/lib/profile/profile.module.mjs +5 -13
- package/esm2022/lib/read-more/read-more.module.mjs +3 -7
- package/esm2022/lib/reset-password/reset-password.component.mjs +4 -4
- package/esm2022/lib/reset-password/reset-password.module.mjs +5 -24
- package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector/restrictor-level-selector.component.mjs +3 -3
- package/esm2022/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.mjs +5 -17
- package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector/restrictor-status-selector.component.mjs +3 -3
- package/esm2022/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.mjs +5 -13
- package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector/restrictor-type-selector.component.mjs +4 -4
- package/esm2022/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.mjs +5 -17
- package/esm2022/lib/restrictors/restrictors-form/restrictors-form.component.mjs +9 -10
- package/esm2022/lib/restrictors/restrictors-form-page/restrictors-form-page.component.mjs +6 -7
- package/esm2022/lib/restrictors/restrictors-list-page/restrictors-list-page.component.mjs +12 -13
- package/esm2022/lib/restrictors/restrictors.module.mjs +8 -60
- package/esm2022/lib/role/permission/permission.module.mjs +8 -23
- package/esm2022/lib/role/permission/permissions-management.component.mjs +6 -6
- package/esm2022/lib/role/role-form.component.mjs +1 -1
- package/esm2022/lib/role/role-list/role-list.component.mjs +8 -8
- package/esm2022/lib/role/role-view/role-view.module.mjs +8 -27
- package/esm2022/lib/role/role.module.mjs +8 -30
- package/esm2022/lib/searchable-selector/searchable-selector.component.mjs +6 -6
- package/esm2022/lib/searchable-selector/searchable-selector.module.mjs +1 -5
- package/esm2022/lib/shared.module.mjs +27 -3
- package/esm2022/lib/signup/signup.component.mjs +1 -1
- package/esm2022/lib/signup/signup.module.mjs +5 -13
- package/esm2022/lib/subscription/subscription-form/subscription-form.component.mjs +3 -4
- package/esm2022/lib/subscription/subscription-form/subscription-form.module.mjs +8 -24
- package/esm2022/lib/subscription/subscription-listing/subscription-listing.component.mjs +18 -19
- package/esm2022/lib/subscription/subscription-listing/subscription-listing.module.mjs +8 -35
- package/esm2022/lib/subscription/subscription-package-listing/subscription-package-listing.component.mjs +15 -16
- package/esm2022/lib/subscription/subscription-package-listing/subscription-package-listing.module.mjs +8 -32
- package/esm2022/lib/subscription/subscription-package-view/subscription-package-view.component.mjs +5 -6
- package/esm2022/lib/subscription/subscription-package-view/subscription-package-view.module.mjs +8 -16
- package/esm2022/lib/tag/techlify-tagger-tag-form/techlify-tagger-tag-form.component.mjs +12 -26
- package/esm2022/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.component.mjs +4 -4
- package/esm2022/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.mjs +5 -21
- package/esm2022/lib/tag/techlify-tagger-tag-list/techlify-tagger-tag-list.component.mjs +19 -37
- package/esm2022/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.component.mjs +1 -1
- package/esm2022/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.mjs +5 -29
- package/esm2022/lib/techlify-app-selector/techlify-app-selector.component.mjs +5 -6
- package/esm2022/lib/techlify-app-selector/techlify-app-selector.module.mjs +6 -13
- package/esm2022/lib/techlify-auto-complete-select/techlify-auto-complete-select.component.mjs +11 -22
- package/esm2022/lib/techlify-feature/on-off-switch/on-off-switch.component.mjs +1 -1
- package/esm2022/lib/techlify-feature/techlify-feature-listing.component.mjs +9 -10
- package/esm2022/lib/techlify-feature/techlify-feature.module.mjs +7 -30
- package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.component.mjs +3 -4
- package/esm2022/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.module.mjs +5 -17
- package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.component.mjs +4 -5
- package/esm2022/lib/techlify-update/techlify-update-form/techlify-update-form.module.mjs +5 -17
- package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.component.mjs +10 -11
- package/esm2022/lib/techlify-update/techlify-update-history/techlify-update-history.module.mjs +5 -29
- package/esm2022/lib/techlify-update/techlify-update.module.mjs +7 -31
- package/esm2022/lib/techlify-update/techlify-updates-list/techlify-updates-list.component.mjs +10 -11
- package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.component.mjs +7 -8
- package/esm2022/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.module.mjs +5 -17
- package/esm2022/lib/techlify-update/update-notifier/update-notifier-snack/update-notifier-snack.component.mjs +3 -4
- package/esm2022/lib/techlify-update/update-notifier/update-notifier.module.mjs +8 -20
- package/esm2022/lib/techlify-update/update-view/update-view.component.mjs +3 -4
- package/esm2022/lib/techlify-update/update-view/update-view.module.mjs +5 -13
- package/esm2022/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.component.mjs +7 -9
- package/esm2022/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.module.mjs +7 -15
- package/esm2022/lib/techlify-view/techlify-view-form/techlify-view-form.component.mjs +3 -4
- package/esm2022/lib/techlify-view/techlify-view-form/techlify-view-form.module.mjs +5 -24
- package/esm2022/lib/timeline-activity/timeline-activity-button/timeline-activity-button.module.mjs +6 -18
- package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list.component.mjs +4 -5
- package/esm2022/lib/timeline-activity/timeline-activity-list/timeline-activity-list.module.mjs +8 -32
- package/esm2022/lib/timeline-filter/timeline-filter.component.mjs +10 -11
- package/esm2022/lib/timeline-filter/timeline-filter.module.mjs +1 -5
- package/esm2022/lib/user/app-admin-user-view/app-admin-user-view.module.mjs +1 -5
- package/esm2022/lib/user/user-enable-button-component/user-enable-button.module.mjs +5 -17
- package/esm2022/lib/user/user-explore.component.mjs +3 -4
- package/esm2022/lib/user/user-form/user-form.component.mjs +11 -15
- package/esm2022/lib/user/user-list/user-list.component.mjs +10 -21
- package/esm2022/lib/user/user-sessions/user-sessions/user-sessions.module.mjs +5 -13
- package/esm2022/lib/user/user.module.mjs +1 -9
- package/esm2022/lib/user-client-enable-disable-button/user-client-enable-disable-button.module.mjs +5 -13
- package/esm2022/lib/user-clients-list/user-clients-list.module.mjs +5 -13
- package/esm2022/lib/user-selector/user-selector.component.mjs +3 -3
- package/esm2022/lib/user-selector/user-selector.module.mjs +5 -17
- package/esm2022/lib/utility/utility.module.mjs +5 -9
- package/fesm2022/ngx-techlify-core.mjs +993 -1795
- package/fesm2022/ngx-techlify-core.mjs.map +1 -1
- package/lib/access-control-config/access-control-config.module.d.ts +3 -11
- package/lib/app-admin/admin-role/admin-role-list/admin-role-list.module.d.ts +3 -11
- package/lib/app-admin/admin-role/admin-role-permission-form/admin-role-permission-form.module.d.ts +2 -10
- package/lib/audit-log/audit-log-for-model/audit-log-for-model.module.d.ts +2 -4
- package/lib/audit-log/audit-log-list/audit-log-list.module.d.ts +3 -9
- package/lib/audit-log/audit-log-list-filter/audit-log-list-filter.module.d.ts +2 -6
- package/lib/audit-log/audit-log-view/audit-log-view.module.d.ts +2 -3
- package/lib/audit-log/audit-log-view-model/audit-log-view-model.module.d.ts +2 -3
- package/lib/base-model/techlify-list/techlify-list.component.d.ts +20 -0
- package/lib/change-password/change-password.module.d.ts +3 -7
- package/lib/column-selector/column-selector.module.d.ts +2 -12
- package/lib/data-table/data-table.module.d.ts +2 -5
- package/lib/document-viewer/document-viewer.module.d.ts +3 -4
- package/lib/email-subscription/email-subscription-for-user/email-subscription-for-user.module.d.ts +3 -6
- package/lib/email-subscription/email-subscription-type/email-subscription-type-form/email-subscription-type-form.module.d.ts +4 -8
- package/lib/email-subscription/email-subscription-type/email-subscription-type-list/email-subscription-type-list.module.d.ts +4 -8
- package/lib/email-subscription/email-subscription-user/email-subscription-user-form/email-subscription-user-form.module.d.ts +4 -8
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list/email-subscription-user-list.module.d.ts +5 -9
- package/lib/email-subscription/email-subscription-user/email-subscription-user-list-filter/email-subscription-user-list-filter.module.d.ts +3 -7
- package/lib/entity-files/entity-file-list.module.d.ts +5 -8
- package/lib/entity-files/entity-file.service.d.ts +1 -1
- package/lib/file-dragdrop-uploader/file-dragdrop-uploader/file-dragdrop-uploader.component.d.ts +3 -1
- package/lib/file-dragdrop-uploader/file-dragdrop-uploader.module.d.ts +2 -6
- package/lib/file-dropper/file-dropper.module.d.ts +2 -3
- package/lib/forgot-password/forgot-password.module.d.ts +3 -5
- package/lib/form-configuration/form-configuration-field-form/form-configuration-field-form.module.d.ts +3 -6
- package/lib/import-csv/import-csv.module.d.ts +3 -9
- package/lib/ip-address-selector/ip-address-selector.module.d.ts +2 -8
- package/lib/locked-date/locked-date.module.d.ts +2 -9
- package/lib/login/login.module.d.ts +4 -10
- package/lib/login-history-for-user/login-history-for-user.module.d.ts +2 -7
- package/lib/material.module.d.ts +25 -24
- package/lib/note/note.module.d.ts +3 -4
- package/lib/number-input-button/number-input-button.module.d.ts +2 -4
- package/lib/pdf-button/pdf-button.module.d.ts +2 -4
- package/lib/profile/profile.module.d.ts +3 -5
- package/lib/read-more/read-more.module.d.ts +1 -2
- package/lib/reset-password/reset-password.module.d.ts +4 -8
- package/lib/restrictors/restrictor-level-selector/restrictor-level-selector.module.d.ts +2 -5
- package/lib/restrictors/restrictor-status-selector/restrictor-status-selector.module.d.ts +2 -4
- package/lib/restrictors/restrictor-type-selector/restrictor-type-selector.module.d.ts +2 -5
- package/lib/restrictors/restrictors.module.d.ts +6 -19
- package/lib/role/permission/permission.module.d.ts +2 -5
- package/lib/role/role-view/role-view.module.d.ts +2 -6
- package/lib/role/role.module.d.ts +2 -7
- package/lib/searchable-selector/searchable-selector.module.d.ts +3 -4
- package/lib/shared.module.d.ts +14 -8
- package/lib/signup/signup.module.d.ts +3 -5
- package/lib/subscription/subscription-form/subscription-form.module.d.ts +2 -6
- package/lib/subscription/subscription-listing/subscription-listing.module.d.ts +3 -9
- package/lib/subscription/subscription-package-listing/subscription-package-listing.module.d.ts +2 -8
- package/lib/subscription/subscription-package-view/subscription-package-view.module.d.ts +2 -4
- package/lib/tag/techlify-tagger-tag-form-field/techlify-tagger-tag-form-field.module.d.ts +2 -6
- package/lib/tag/techlify-tagger-tag-selector/techlify-tagger-tag-selector.module.d.ts +2 -8
- package/lib/techlify-app-selector/techlify-app-selector.module.d.ts +4 -5
- package/lib/techlify-feature/techlify-feature.module.d.ts +4 -9
- package/lib/techlify-notifications/techlify-notification-for-user/techlify-notification-for-user.module.d.ts +3 -6
- package/lib/techlify-update/techlify-update-form/techlify-update-form.module.d.ts +3 -6
- package/lib/techlify-update/techlify-update-history/techlify-update-history.module.d.ts +3 -9
- package/lib/techlify-update/techlify-update.module.d.ts +4 -10
- package/lib/techlify-update/techlify-updates-teaser/techlify-updates-teaser.module.d.ts +2 -5
- package/lib/techlify-update/update-notifier/update-notifier.module.d.ts +3 -6
- package/lib/techlify-update/update-view/update-view.module.d.ts +2 -4
- package/lib/techlify-view/my-techlify-view-listing/my-techlify-view-listing.module.d.ts +2 -4
- package/lib/techlify-view/techlify-view-form/techlify-view-form.module.d.ts +2 -6
- package/lib/timeline-activity/timeline-activity-button/timeline-activity-button.module.d.ts +3 -6
- package/lib/timeline-activity/timeline-activity-list/timeline-activity-list.module.d.ts +2 -8
- package/lib/timeline-filter/timeline-filter.module.d.ts +10 -11
- package/lib/user/app-admin-user-view/app-admin-user-view.module.d.ts +6 -7
- package/lib/user/user-enable-button-component/user-enable-button.module.d.ts +2 -5
- package/lib/user/user-sessions/user-sessions/user-sessions.module.d.ts +2 -4
- package/lib/user/user.module.d.ts +7 -9
- package/lib/user-client-enable-disable-button/user-client-enable-disable-button.module.d.ts +2 -4
- package/lib/user-clients-list/user-clients-list.module.d.ts +3 -5
- package/lib/user-selector/user-selector.module.d.ts +2 -4
- package/lib/utility/utility.module.d.ts +2 -3
- package/package.json +2 -1
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { Component, Input, Output, EventEmitter } from "@angular/core";
|
|
2
|
-
import { FlexLayoutModule } from "@angular/flex-layout";
|
|
3
|
-
import { ReadMoreModule } from "../../read-more/read-more.module";
|
|
4
2
|
import { SharedModule } from "../../shared.module";
|
|
5
3
|
import * as i0 from "@angular/core";
|
|
6
4
|
import * as i1 from "@angular/forms";
|
|
@@ -10,9 +8,7 @@ import * as i4 from "@angular/material/button";
|
|
|
10
8
|
import * as i5 from "@angular/material/form-field";
|
|
11
9
|
import * as i6 from "@angular/material/icon";
|
|
12
10
|
import * as i7 from "@angular/material/input";
|
|
13
|
-
import * as i8 from "
|
|
14
|
-
import * as i9 from "@angular/flex-layout/extended";
|
|
15
|
-
import * as i10 from "../../read-more/read-more.component";
|
|
11
|
+
import * as i8 from "../../read-more/read-more.component";
|
|
16
12
|
export class CommentFormComponent {
|
|
17
13
|
set commentData(data) {
|
|
18
14
|
this.view = !!data;
|
|
@@ -67,14 +63,14 @@ export class CommentFormComponent {
|
|
|
67
63
|
}
|
|
68
64
|
ngOnDestroy() { }
|
|
69
65
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommentFormComponent, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.CredentialsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
70
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CommentFormComponent, isStandalone: true, selector: "app-comment-form", inputs: { commentData: "commentData" }, outputs: { action: "action" }, ngImport: i0, template: "<form (ngSubmit)=\"submit()\" [formGroup]=\"commentFormGroup\">\n <div
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: CommentFormComponent, isStandalone: true, selector: "app-comment-form", inputs: { commentData: "commentData" }, outputs: { action: "action" }, ngImport: i0, template: "<form (ngSubmit)=\"submit()\" [formGroup]=\"commentFormGroup\">\n <div class=\"my-2 d-flex flex-column\" [ngClass]=\"{ 'border border-primary shadow rounded ': view}\">\n <div *ngIf=\"!view\" class=\"d-flex flex-column\">\n <mat-form-field appearance=\"outline\" style=\"background-color:white;\">\n <mat-label>Comment</mat-label>\n <textarea matInput rows=\"5\" placeholder=\"Add a comment...\" formControlName=\"note\" autocomplete=\"off\"></textarea>\n </mat-form-field>\n\n <div class=\"mt-2 d-flex gap-3\">\n <span class=\"flex-fill\"></span>\n <button *ngIf=\"_commentData\" mat-button type=\"button\" (click)=\"view = !view\">\n Cancel\n </button>\n <button mat-raised-button color=\"primary\" type=\"submit\">\n {{ _commentData ? \"Update\" : \"Post comment\" }}\n </button>\n </div>\n </div>\n\n <div *ngIf=\"view\" class=\"p-2 m-2 d-flex flex-column\">\n <div class=\"row g-2\">\n <div class=\"col-2 d-flex justify-content-start\">\n <button mat-icon-button type=\"button\" style=\"color:grey\">\n <mat-icon style=\"font-size:60px\">account_circle</mat-icon>\n </button>\n </div>\n <div class=\"col-9\">\n <div class=\"d-flex flex-column gap-2\">\n <div class=\"font-weight-bold\">{{ _commentData?.creator?.name }}</div>\n <div class=\"text-muted\">{{ _commentData.updated_at | date:'medium' }}</div>\n </div>\n </div>\n </div>\n <app-read-more class=\"mt-2\" [text]=\"_commentData.note\"></app-read-more>\n <div class=\"mt-1 d-flex gap-3\" *ngIf=\"isLoggedIn && currentUser.id === _commentData.creator_id\">\n <a href=\"javascript:;\" (click)=\"editComment()\">\n Edit\n </a>\n <a href=\"javascript:;\" (click)=\"deleteComment()\">\n Delete\n </a>\n </div>\n </div>\n </div>\n</form>", styles: [":host ::ng-deep .mat-form-field-wrapper{padding-bottom:0!important;margin:0!important}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8.ReadMoreComponent, selector: "app-read-more", inputs: ["text", "maxLength"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
71
67
|
}
|
|
72
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CommentFormComponent, decorators: [{
|
|
73
69
|
type: Component,
|
|
74
|
-
args: [{ selector: "app-comment-form", standalone: true, imports: [SharedModule
|
|
70
|
+
args: [{ selector: "app-comment-form", standalone: true, imports: [SharedModule], template: "<form (ngSubmit)=\"submit()\" [formGroup]=\"commentFormGroup\">\n <div class=\"my-2 d-flex flex-column\" [ngClass]=\"{ 'border border-primary shadow rounded ': view}\">\n <div *ngIf=\"!view\" class=\"d-flex flex-column\">\n <mat-form-field appearance=\"outline\" style=\"background-color:white;\">\n <mat-label>Comment</mat-label>\n <textarea matInput rows=\"5\" placeholder=\"Add a comment...\" formControlName=\"note\" autocomplete=\"off\"></textarea>\n </mat-form-field>\n\n <div class=\"mt-2 d-flex gap-3\">\n <span class=\"flex-fill\"></span>\n <button *ngIf=\"_commentData\" mat-button type=\"button\" (click)=\"view = !view\">\n Cancel\n </button>\n <button mat-raised-button color=\"primary\" type=\"submit\">\n {{ _commentData ? \"Update\" : \"Post comment\" }}\n </button>\n </div>\n </div>\n\n <div *ngIf=\"view\" class=\"p-2 m-2 d-flex flex-column\">\n <div class=\"row g-2\">\n <div class=\"col-2 d-flex justify-content-start\">\n <button mat-icon-button type=\"button\" style=\"color:grey\">\n <mat-icon style=\"font-size:60px\">account_circle</mat-icon>\n </button>\n </div>\n <div class=\"col-9\">\n <div class=\"d-flex flex-column gap-2\">\n <div class=\"font-weight-bold\">{{ _commentData?.creator?.name }}</div>\n <div class=\"text-muted\">{{ _commentData.updated_at | date:'medium' }}</div>\n </div>\n </div>\n </div>\n <app-read-more class=\"mt-2\" [text]=\"_commentData.note\"></app-read-more>\n <div class=\"mt-1 d-flex gap-3\" *ngIf=\"isLoggedIn && currentUser.id === _commentData.creator_id\">\n <a href=\"javascript:;\" (click)=\"editComment()\">\n Edit\n </a>\n <a href=\"javascript:;\" (click)=\"deleteComment()\">\n Delete\n </a>\n </div>\n </div>\n </div>\n</form>", styles: [":host ::ng-deep .mat-form-field-wrapper{padding-bottom:0!important;margin:0!important}\n"] }]
|
|
75
71
|
}], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.CredentialsService }], propDecorators: { commentData: [{
|
|
76
72
|
type: Input
|
|
77
73
|
}], action: [{
|
|
78
74
|
type: Output
|
|
79
75
|
}] } });
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9jb21tZW50LWZvcm0vY29tbWVudC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9jb21tZW50LWZvcm0vY29tbWVudC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRWIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7O0FBU25ELE1BQU0sT0FBTyxvQkFBb0I7SUFLL0IsSUFBYSxXQUFXLENBQUMsSUFBUztRQUNoQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBSUQsWUFBb0IsRUFBc0IsRUFDaEMsaUJBQXFDO1FBRDNCLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ2hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBb0I7UUFIckMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFLcEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxRQUFRLEtBQUssQ0FBQztJQUVkLElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQztJQUNqRCxDQUFDO0lBRU8sVUFBVTtRQUNoQiwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3BDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNSLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNWLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNoQixnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM1QyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDdEIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDekIsQ0FBQztZQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hDLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUMxQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELFdBQVcsS0FBSyxDQUFDOytHQWxFTixvQkFBb0I7bUdBQXBCLG9CQUFvQixtSkNuQmpDLDY2REE0Q08saUpEN0JLLFlBQVk7OzRGQUlYLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDO3dIQVNWLFdBQVc7c0JBQXZCLEtBQUs7Z0JBTUksTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkluaXQsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgT25EZXN0cm95XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUdyb3VwLCBVbnR5cGVkRm9ybUJ1aWxkZXIgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IENyZWRlbnRpYWxzU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2NyZWRlbnRpYWxzLnNlcnZpY2VcIjtcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gXCIuLi8uLi9zaGFyZWQubW9kdWxlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJhcHAtY29tbWVudC1mb3JtXCIsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtTaGFyZWRNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogXCIuL2NvbW1lbnQtZm9ybS5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vY29tbWVudC1mb3JtLmNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIENvbW1lbnRGb3JtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBjb21tZW50Rm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwO1xuICB2aWV3OiBib29sZWFuO1xuICBfY29tbWVudERhdGE6IGFueTtcblxuICBASW5wdXQoKSBzZXQgY29tbWVudERhdGEoZGF0YTogYW55KSB7XG4gICAgdGhpcy52aWV3ID0gISFkYXRhO1xuICAgIHRoaXMuX2NvbW1lbnREYXRhID0gZGF0YTtcbiAgICB0aGlzLmNvbW1lbnRGb3JtR3JvdXAucGF0Y2hWYWx1ZShkYXRhKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBhY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmYjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgY3JlZGVudGlhbFNlcnZpY2U6IENyZWRlbnRpYWxzU2VydmljZVxuICApIHtcbiAgICB0aGlzLmNyZWF0ZUZvcm0oKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkgeyB9XG5cbiAgZ2V0IGlzTG9nZ2VkSW4oKSB7XG4gICAgcmV0dXJuIHRoaXMuY3JlZGVudGlhbFNlcnZpY2UuaXNBdXRoZW50aWNhdGVkO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRVc2VyKCkge1xuICAgIHJldHVybiB0aGlzLmNyZWRlbnRpYWxTZXJ2aWNlLmNyZWRlbnRpYWxzLnVzZXI7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZvcm0oKSB7XG4gICAgLy9UT0RPOiBGaW5pYWxpemUgYW5kIGFkZCBtb3JlIHZhbGlkYXRpb25zLlxuICAgIHRoaXMuY29tbWVudEZvcm1Hcm91cCA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgaWQ6IFtcIlwiXSxcbiAgICAgIG5vdGU6IFtcIlwiXSxcbiAgICAgIG1vZGVsX3R5cGU6IFtcIlwiXSxcbiAgICAgIHJlbGF0ZWRfbW9kZWxfaWQ6IFtcIlwiXSxcbiAgICB9KTtcbiAgfVxuXG4gIHN1Ym1pdCgpIHtcbiAgICBpZiAodGhpcy5jb21tZW50Rm9ybUdyb3VwLmdldChcIm5vdGVcIikudmFsdWUpIHtcbiAgICAgIGlmICh0aGlzLl9jb21tZW50RGF0YSkge1xuICAgICAgICB0aGlzLnZpZXcgPSAhdGhpcy52aWV3O1xuICAgICAgfVxuICAgICAgdGhpcy5hY3Rpb24uZW1pdCh7IHR5cGU6IFwic2F2ZVwiLCB2YWx1ZTogdGhpcy5jb21tZW50Rm9ybUdyb3VwLnZhbHVlIH0pO1xuICAgICAgdGhpcy5jb21tZW50Rm9ybUdyb3VwLnJlc2V0KCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbW1lbnRGb3JtR3JvdXAuZ2V0KFwiaWRcIikudmFsdWUpIHtcbiAgICAgIHRoaXMuZGVsZXRlQ29tbWVudCgpO1xuICAgIH1cbiAgfVxuXG4gIGhpZGVFZGl0KCkge1xuICAgIGlmICh0aGlzLmNvbW1lbnRGb3JtR3JvdXAuZ2V0KFwiaWRcIikudmFsdWUpIHtcbiAgICAgIHRoaXMudmlldyA9ICF0aGlzLnZpZXc7XG4gICAgfVxuICB9XG5cbiAgZWRpdENvbW1lbnQoKSB7XG4gICAgdGhpcy52aWV3ID0gIXRoaXMudmlldztcbiAgICB0aGlzLmNvbW1lbnRGb3JtR3JvdXAucGF0Y2hWYWx1ZSh0aGlzLl9jb21tZW50RGF0YSk7XG4gIH1cblxuICBkZWxldGVDb21tZW50KCkge1xuICAgIHRoaXMuYWN0aW9uLmVtaXQoeyB0eXBlOiBcImRlbGV0ZVwiLCB2YWx1ZTogdGhpcy5jb21tZW50Rm9ybUdyb3VwLnZhbHVlIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7IH1cbn1cbiIsIjxmb3JtIChuZ1N1Ym1pdCk9XCJzdWJtaXQoKVwiIFtmb3JtR3JvdXBdPVwiY29tbWVudEZvcm1Hcm91cFwiPlxuICA8ZGl2IGNsYXNzPVwibXktMiBkLWZsZXggZmxleC1jb2x1bW5cIiBbbmdDbGFzc109XCJ7ICdib3JkZXIgYm9yZGVyLXByaW1hcnkgc2hhZG93IHJvdW5kZWQgJzogdmlld31cIj5cbiAgICA8ZGl2ICpuZ0lmPVwiIXZpZXdcIiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOndoaXRlO1wiPlxuICAgICAgICA8bWF0LWxhYmVsPkNvbW1lbnQ8L21hdC1sYWJlbD5cbiAgICAgICAgPHRleHRhcmVhIG1hdElucHV0IHJvd3M9XCI1XCIgcGxhY2Vob2xkZXI9XCJBZGQgYSBjb21tZW50Li4uXCIgZm9ybUNvbnRyb2xOYW1lPVwibm90ZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiPjwvdGV4dGFyZWE+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtMiBkLWZsZXggZ2FwLTNcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJmbGV4LWZpbGxcIj48L3NwYW4+XG4gICAgICAgIDxidXR0b24gKm5nSWY9XCJfY29tbWVudERhdGFcIiBtYXQtYnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwidmlldyA9ICF2aWV3XCI+XG4gICAgICAgICAgQ2FuY2VsXG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIj5cbiAgICAgICAgICB7eyBfY29tbWVudERhdGEgPyBcIlVwZGF0ZVwiIDogXCJQb3N0IGNvbW1lbnRcIiB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cInZpZXdcIiBjbGFzcz1cInAtMiBtLTIgZC1mbGV4IGZsZXgtY29sdW1uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicm93IGctMlwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTIgZC1mbGV4IGp1c3RpZnktY29udGVudC1zdGFydFwiPlxuICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIHR5cGU9XCJidXR0b25cIiBzdHlsZT1cImNvbG9yOmdyZXlcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImZvbnQtc2l6ZTo2MHB4XCI+YWNjb3VudF9jaXJjbGU8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtd2VpZ2h0LWJvbGRcIj57eyBfY29tbWVudERhdGE/LmNyZWF0b3I/Lm5hbWUgfX08L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW11dGVkXCI+e3sgX2NvbW1lbnREYXRhLnVwZGF0ZWRfYXQgfCBkYXRlOidtZWRpdW0nIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8YXBwLXJlYWQtbW9yZSBjbGFzcz1cIm10LTJcIiBbdGV4dF09XCJfY29tbWVudERhdGEubm90ZVwiPjwvYXBwLXJlYWQtbW9yZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtdC0xIGQtZmxleCBnYXAtM1wiICpuZ0lmPVwiaXNMb2dnZWRJbiAmJiBjdXJyZW50VXNlci5pZCA9PT0gX2NvbW1lbnREYXRhLmNyZWF0b3JfaWRcIj5cbiAgICAgICAgPGEgaHJlZj1cImphdmFzY3JpcHQ6O1wiIChjbGljayk9XCJlZGl0Q29tbWVudCgpXCI+XG4gICAgICAgICAgRWRpdFxuICAgICAgICA8L2E+XG4gICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OjtcIiAoY2xpY2spPVwiZGVsZXRlQ29tbWVudCgpXCI+XG4gICAgICAgICAgRGVsZXRlXG4gICAgICAgIDwvYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZm9ybT4iXX0=
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Component, Input } from '@angular/core';
|
|
2
2
|
import { finalize } from 'rxjs/operators';
|
|
3
3
|
import { ActionPopupComponent } from '../../action-popup';
|
|
4
|
-
import { ActionPopupModule } from '../../action-popup/action-popup.module';
|
|
5
4
|
import { TechlifyListComponent } from '../../base-model';
|
|
6
5
|
import { CommentFormComponent } from '../comment-form/comment-form.component';
|
|
7
6
|
import { SharedModule } from '../../shared.module';
|
|
@@ -88,11 +87,11 @@ export class NoteCommentListComponent extends TechlifyListComponent {
|
|
|
88
87
|
});
|
|
89
88
|
}
|
|
90
89
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoteCommentListComponent, deps: [{ token: i1.NoteService }, { token: i2.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: NoteCommentListComponent, isStandalone: true, selector: "app-note-comment-list", inputs: { relatedModelId: "relatedModelId", modelType: "modelType", labelText: "labelText" }, usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-column gap-3\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n </div>\n\n <div class=\"w-100 scroll-container jumbotron\" infiniteScroll [infiniteScrollDistance]=\"1\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <app-comment-form [commentData]=\"comment\" (action)=\"commentAction($event)\"\n *ngFor=\"let comment of models\"></app-comment-form>\n <app-comment-form (action)=\"commentAction($event)\"></app-comment-form>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "
|
|
90
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: NoteCommentListComponent, isStandalone: true, selector: "app-note-comment-list", inputs: { relatedModelId: "relatedModelId", modelType: "modelType", labelText: "labelText" }, usesInheritance: true, ngImport: i0, template: "<div class=\"d-flex flex-column gap-3\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n </div>\n\n <div class=\"w-100 scroll-container jumbotron\" infiniteScroll [infiniteScrollDistance]=\"1\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <app-comment-form [commentData]=\"comment\" (action)=\"commentAction($event)\"\n *ngFor=\"let comment of models\"></app-comment-form>\n <app-comment-form (action)=\"commentAction($event)\"></app-comment-form>\n </div>\n</div>\n", dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: CommentFormComponent, selector: "app-comment-form", inputs: ["commentData"], outputs: ["action"] }] }); }
|
|
92
91
|
}
|
|
93
92
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoteCommentListComponent, decorators: [{
|
|
94
93
|
type: Component,
|
|
95
|
-
args: [{ selector: 'app-note-comment-list', standalone: true, imports: [SharedModule,
|
|
94
|
+
args: [{ selector: 'app-note-comment-list', standalone: true, imports: [SharedModule, CommentFormComponent], template: "<div class=\"d-flex flex-column gap-3\">\n <div class=\"d-flex justify-content-center align-items-center\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n </div>\n\n <div class=\"w-100 scroll-container jumbotron\" infiniteScroll [infiniteScrollDistance]=\"1\"\n [infiniteScrollThrottle]=\"50\" (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <app-comment-form [commentData]=\"comment\" (action)=\"commentAction($event)\"\n *ngFor=\"let comment of models\"></app-comment-form>\n <app-comment-form (action)=\"commentAction($event)\"></app-comment-form>\n </div>\n</div>\n" }]
|
|
96
95
|
}], ctorParameters: () => [{ type: i1.NoteService }, { type: i2.MatDialog }], propDecorators: { relatedModelId: [{
|
|
97
96
|
type: Input
|
|
98
97
|
}], modelType: [{
|
|
@@ -100,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
100
99
|
}], labelText: [{
|
|
101
100
|
type: Input
|
|
102
101
|
}] } });
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS1jb21tZW50LWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlY2hsaWZ5LWNvcmUvc3JjL2xpYi9ub3RlL25vdGUtY29tbWVudC1saXN0L25vdGUtY29tbWVudC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWNvbW1lbnQtbGlzdC9ub3RlLWNvbW1lbnQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFlLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7QUFFbkQ7OztHQUdHO0FBT0gsTUFBTSxPQUFPLHdCQUF5QixTQUFRLHFCQUFxQjtJQU1qRSxZQUNZLE9BQW9CLEVBQ3RCLE1BQWlCO1FBRXpCLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhMLFlBQU8sR0FBUCxPQUFPLENBQWE7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUpsQixjQUFTLEdBQUcsU0FBUyxDQUFDO1FBTzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRUQsUUFBUTtR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QUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQW5GVSx3QkFBd0I7bUdBQXhCLHdCQUF3QixzTUNuQnJDLG1sQkFZQSwyQ0RJWSxZQUFZLGdpQkFBRSxvQkFBb0I7OzRGQUdqQyx3QkFBd0I7a0JBTnBDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBQ3JCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxvQkFBb0IsQ0FBQzt3R0FLcEMsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFjdGlvblBvcHVwLCBBY3Rpb25Qb3B1cENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2FjdGlvbi1wb3B1cCc7XG5pbXBvcnQgeyBUZWNobGlmeUxpc3RDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlLW1vZGVsJztcbmltcG9ydCB7IENvbW1lbnRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tbWVudC1mb3JtL2NvbW1lbnQtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTm90ZVNlcnZpY2UgfSBmcm9tICcuLi9ub3RlLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkLm1vZHVsZSc7XG5cbi8qKlxuICogTm90ZXMgcmVuZGVyZWQgYXMgYSBjb21tZW50IHRocmVhZCwgd2hlcmUgZWFjaCBjb21tZW50IGlzIGVkaXRlZCBpbiBwbGFjZVxuICogdGhyb3VnaCBhcHAtY29tbWVudC1mb3JtLiBVc2UgYXBwLW5vdGUtbGlzdCBmb3IgdGhlIHRhYmxlL3RpbWVsaW5lIHZpZXdzLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbm90ZS1jb21tZW50LWxpc3QnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbU2hhcmVkTW9kdWxlLCBDb21tZW50Rm9ybUNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RlLWNvbW1lbnQtbGlzdC5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIE5vdGVDb21tZW50TGlzdENvbXBvbmVudCBleHRlbmRzIFRlY2hsaWZ5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgcmVsYXRlZE1vZGVsSWQgITogYW55O1xuICBASW5wdXQoKSBtb2RlbFR5cGUgITogYW55O1xuICBASW5wdXQoKSBsYWJlbFRleHQgPSAnQ29tbWVudCc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHNlcnZpY2U6IE5vdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2dcbiAgKSB7XG4gICAgc3VwZXIoc2VydmljZSk7XG4gICAgdGhpcy5sYXN0UGFnZSA9IDA7XG4gICAgdGhpcy5maWx0ZXJzID0geyBzb3J0X2J5OiAnY3JlYXRlZF9hdHxERVNDJyB9O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJzLnJlbGF0ZWRfbW9kZWxfaWQgPSB0aGlzLnJlbGF0ZWRNb2RlbElkO1xuICAgIHRoaXMuZmlsdGVycy5tb2RlbF90eXBlID0gdGhpcy5tb2RlbFR5cGU7XG4gICAgdGhpcy5sb2FkRGF0YSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbW1lbnRzIGFyZSBub3QgZmlsdGVyZWQgZnJvbSB0aGUgcm91dGUsIHNvIHRoZSBmaWx0ZXJzIGFyZSBoZWxkXG4gICAqIG9uIHRoZSBjb21wb25lbnQgcmF0aGVyIHRoYW4gaW4gYSBmaWx0ZXIgZm9ybVxuICAgKi9cbiAgb3ZlcnJpZGUgbG9hZERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIHRoaXMuc2VydmljZS5pbmRleCh7XG4gICAgICAuLi50aGlzLmZpbHRlcnMsXG4gICAgICBwYWdlOiB0aGlzLnBhZ2UsXG4gICAgICB3aXRoOiAnY3JlYXRvcidcbiAgICB9KVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5pc1dvcmtpbmcgPSBmYWxzZSkpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm1vZGVscyA9IHRoaXMubW9kZWxzLmNvbmNhdChyZXN1bHQ/LmRhdGEpO1xuICAgICAgICB0aGlzLmxhc3RQYWdlID0gcmVzdWx0Py5sYXN0X3BhZ2U7XG4gICAgICB9KTtcbiAgfVxuXG4gIGNvbW1lbnRBY3Rpb24oZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgIGlmIChldmVudC50eXBlID09PSAnc2F2ZScpIHtcbiAgICAgIGlmIChldmVudC52YWx1ZS5pZCkge1xuICAgICAgICB0aGlzLmVkaXRDb21tZW50KGV2ZW50LnZhbHVlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdGhpcy5hZGRDb21tZW50KGV2ZW50LnZhbHVlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5kZWxldGVDb21tZW50KGV2ZW50LnZhbHVlKTtcbiAgfVxuXG4gIGFkZENvbW1lbnQoY29tbWVudDogYW55KTogdm9pZCB7XG4gICAgY29tbWVudC5yZWxhdGVkX21vZGVsX2lkID0gdGhpcy5yZWxhdGVkTW9kZWxJZDtcbiAgICBjb21tZW50Lm1vZGVsX3R5cGUgPSB0aGlzLm1vZGVsVHlwZTtcbiAgICB0aGlzLnNlcnZpY2Uuc3RvcmUoY29tbWVudClcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB0aGlzLm1vZGVscyA9IFsuLi50aGlzLm1vZGVscywgcmVzdWx0Py5pdGVtXSk7XG4gIH1cblxuICBlZGl0Q29tbWVudChjb21tZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlcnZpY2UudXBkYXRlKGNvbW1lbnQpXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IGFueSkgPT4gdGhpcy5tb2RlbHNVcGRhdGVkQnlJZChyZXN1bHQ/Lml0ZW0pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBhcHAtY29tbWVudC1mb3JtIGhhcyBpdHMgb3duIGRlbGV0ZSBsaW5rIHJhdGhlciB0aGFuXG4gICAqIGFwcC10ZWNobGlmeS1kZWxldGUtYnV0dG9uLCBzbyB0aGUgY29uZmlybWF0aW9uIGlzIG9wZW5lZCBoZXJlXG4gICAqL1xuICBkZWxldGVDb21tZW50KGNvbW1lbnQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuZGlhbG9nLm9wZW4oQWN0aW9uUG9wdXBDb21wb25lbnQsIHtcbiAgICAgIHdpZHRoOiAnNDAwcHgnLFxuICAgICAgZGF0YToge1xuICAgICAgICB0aXRsZTogYERlbGV0ZSAke3RoaXMubGFiZWxUZXh0fWAsXG4gICAgICAgIG1lc3NhZ2U6IGBBcmUgeW91IHN1cmUgdG8gZGVsZXRlP2BcbiAgICAgIH0gYXMgQWN0aW9uUG9wdXAsXG4gICAgICBhdXRvRm9jdXM6IGZhbHNlXG4gICAgfSlcbiAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICB0aGlzLnNlcnZpY2UuZGVsZXRlKGNvbW1lbnQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMubW9kZWxzRGVsZXRlZEJ5SWQoY29tbWVudCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiPlxuICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgPGg1IGNsYXNzPVwibS0wXCI+e3sgbGFiZWxUZXh0IH19czwvaDU+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJ3LTEwMCBzY3JvbGwtY29udGFpbmVyIGp1bWJvdHJvblwiIGluZmluaXRlU2Nyb2xsIFtpbmZpbml0ZVNjcm9sbERpc3RhbmNlXT1cIjFcIlxuICAgIFtpbmZpbml0ZVNjcm9sbFRocm90dGxlXT1cIjUwXCIgKHNjcm9sbGVkKT1cIm9uU2Nyb2xsKClcIiBbc2Nyb2xsV2luZG93XT1cImZhbHNlXCI+XG4gICAgPGFwcC1jb21tZW50LWZvcm0gW2NvbW1lbnREYXRhXT1cImNvbW1lbnRcIiAoYWN0aW9uKT1cImNvbW1lbnRBY3Rpb24oJGV2ZW50KVwiXG4gICAgICAqbmdGb3I9XCJsZXQgY29tbWVudCBvZiBtb2RlbHNcIj48L2FwcC1jb21tZW50LWZvcm0+XG4gICAgPGFwcC1jb21tZW50LWZvcm0gKGFjdGlvbik9XCJjb21tZW50QWN0aW9uKCRldmVudClcIj48L2FwcC1jb21tZW50LWZvcm0+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -5,21 +5,20 @@ import { finalize } from 'rxjs/operators';
|
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
import * as i1 from "../note.service";
|
|
7
7
|
import * as i2 from "../../core";
|
|
8
|
-
import * as i3 from "@angular/
|
|
9
|
-
import * as i4 from "@angular/
|
|
10
|
-
import * as i5 from "
|
|
11
|
-
import * as i6 from "
|
|
12
|
-
import * as i7 from "@angular/material/
|
|
13
|
-
import * as i8 from "@angular/material/
|
|
14
|
-
import * as i9 from "@angular/material/
|
|
15
|
-
import * as i10 from "@angular/material/
|
|
16
|
-
import * as i11 from "@angular/material/
|
|
17
|
-
import * as i12 from "@angular/material/
|
|
18
|
-
import * as i13 from "@angular/material/
|
|
19
|
-
import * as i14 from "
|
|
20
|
-
import * as i15 from "../../
|
|
21
|
-
import * as i16 from "
|
|
22
|
-
import * as i17 from "../note-comment-list/note-comment-list.component";
|
|
8
|
+
import * as i3 from "@angular/common";
|
|
9
|
+
import * as i4 from "@angular/forms";
|
|
10
|
+
import * as i5 from "ngx-infinite-scroll";
|
|
11
|
+
import * as i6 from "@angular/material/form-field";
|
|
12
|
+
import * as i7 from "@angular/material/icon";
|
|
13
|
+
import * as i8 from "@angular/material/input";
|
|
14
|
+
import * as i9 from "@angular/material/progress-spinner";
|
|
15
|
+
import * as i10 from "@angular/material/table";
|
|
16
|
+
import * as i11 from "@angular/material/card";
|
|
17
|
+
import * as i12 from "@angular/material/divider";
|
|
18
|
+
import * as i13 from "@angular/material/progress-bar";
|
|
19
|
+
import * as i14 from "../../delete-button/techlify-delete-button.component";
|
|
20
|
+
import * as i15 from "../../form-button/techlify-form-button.component";
|
|
21
|
+
import * as i16 from "../note-comment-list/note-comment-list.component";
|
|
23
22
|
export class NoteListComponent extends TechlifyListComponent {
|
|
24
23
|
constructor(noteService, alertService) {
|
|
25
24
|
super(noteService);
|
|
@@ -91,11 +90,11 @@ export class NoteListComponent extends TechlifyListComponent {
|
|
|
91
90
|
});
|
|
92
91
|
}
|
|
93
92
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoteListComponent, deps: [{ token: i1.NoteService }, { token: i2.AlertService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
94
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: NoteListComponent, selector: "app-note-list", inputs: { relatedModelId: "relatedModelId", modelType: "modelType", readonly: "readonly", labelText: "labelText", commentsView: "commentsView", viewMode: "viewMode" }, usesInheritance: true, ngImport: i0, template: "<app-note-comment-list *ngIf=\"commentsView\" [relatedModelId]=\"relatedModelId\" [modelType]=\"modelType\"\n [labelText]=\"labelText\"></app-note-comment-list>\n\n<div fxLayout=\"column\" fxLayoutGap=\"1.5rem\" *ngIf=\"!commentsView\">\n\n <ng-container *ngIf=\"viewMode === 'list'\">\n <div class=\"d-flex align-items-center\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n <app-techlify-form-button class=\"d-print-none ml-1\" [component]=\"noteForm()\" width=\"400px\"\n [data]=\"{ model_type: modelType, related_model_id: relatedModelId, labelText: labelText }\"\n (saved)=\"modelCreated($event); total = total + 1\"></app-techlify-form-button>\n </div>\n\n <div class=\"w-100 scroll-container\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"models\" class=\"w-100\" multiTemplateDataRows>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> #</th>\n <td mat-cell *matCellDef=\"let note; let i = dataIndex\"> {{ i + 1 }}</td>\n </ng-container>\n\n\n <ng-container matColumnDef=\"note\">\n <th mat-header-cell *matHeaderCellDef> {{ labelText }}</th>\n <td mat-cell *matCellDef=\"let note\">\n {{ note?.note }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef class=\"d-print-none\"> Actions</th>\n <td mat-cell *matCellDef=\"let note\" class=\"d-print-none text-secondary\">\n <div class=\"d-flex flex-row align-items-center gap-1\">\n <app-techlify-form-button [component]=\"noteForm()\" [model]=\"note\" width=\"400px\"\n [data]=\"{ labelText: labelText }\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <app-techlify-delete-button [service]=\"noteService\" [model]=\"note\"\n [data]=\"{ type: labelText, title: note?.note }\"\n (deleted)=\"modelsDeletedById(note); total = total - 1\"></app-techlify-delete-button>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"viewMode === 'timeline'\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-start align-items-center gap-2\">\n <h5 class=\"mb-0\">Notes</h5>\n <span class=\"badge badge-info ml-1\" *ngIf=\"total\">{{ total }}</span>\n </mat-card-content>\n <mat-card-content class=\"mt-2\">\n <form (ngSubmit)=\"saveNote()\">\n <mat-form-field class=\"w-100\" appearance=\"outline\">\n <input [(ngModel)]=\"note\" [ngModelOptions]=\"{standalone: true}\" type=\"text\" matInput\n placeholder=\"Write your notes here...\" [disabled]=\"isSaving\">\n <mat-icon *ngIf=\"!isSaving\" matSuffix class=\"cursor-pointer\" (click)=\"saveNote()\">send</mat-icon>\n <mat-progress-spinner matSuffix mode=\"indeterminate\" diameter=\"20\" *ngIf=\"isSaving\"></mat-progress-spinner>\n </mat-form-field>\n </form>\n </mat-card-content>\n <mat-card-content>\n <div *ngFor=\"let note of models;last as isLast\">\n <div class=\"d-flex justify-content-between align-items-center gap-2\">\n <div class=\"d-flex flex-column\">\n <p class=\"mb-0\">{{ note?.creator?.name }}</p>\n <small class=\"text-secondary\">On {{ note?.created_at | date: 'medium' }}</small>\n </div>\n <div class=\"d-flex justify-content-end align-items-center gap-1\">\n <app-techlify-form-button [component]=\"noteForm()\" [model]=\"note\" width=\"400px\"\n [data]=\"{ labelText: labelText }\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <!-- @todo Pass $event once NoteController::destroy returns the deleted item -->\n <app-techlify-delete-button [service]=\"noteService\" [model]=\"note\"\n [data]=\"{ type: labelText, title: note?.note }\"\n (deleted)=\"modelsDeletedById(note); total = total - 1\"></app-techlify-delete-button>\n </div>\n </div>\n <div>{{ note?.note }}</div>\n <mat-divider class=\"my-2\" *ngIf=\"!isLast\"></mat-divider>\n </div>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n </ng-container>\n\n</div>\n", styles: [".scroll-container{max-height:400px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.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: "directive", type: i6.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i11.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i11.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i11.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i11.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i11.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i11.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i11.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i11.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i11.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i11.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i12.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i12.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i13.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i14.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i15.TechlifyDeleteButtonComponent, selector: "app-techlify-delete-button", inputs: ["data", "model", "message", "service"], outputs: ["deleted"] }, { kind: "component", type: i16.TechlifyFormButtonComponent, selector: "app-techlify-form-button", inputs: ["component", "model", "data", "width"], outputs: ["saved"] }, { kind: "component", type: i17.NoteCommentListComponent, selector: "app-note-comment-list", inputs: ["relatedModelId", "modelType", "labelText"] }, { kind: "pipe", type: i4.DatePipe, name: "date" }] }); }
|
|
93
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: NoteListComponent, selector: "app-note-list", inputs: { relatedModelId: "relatedModelId", modelType: "modelType", readonly: "readonly", labelText: "labelText", commentsView: "commentsView", viewMode: "viewMode" }, usesInheritance: true, ngImport: i0, template: "<app-note-comment-list *ngIf=\"commentsView\" [relatedModelId]=\"relatedModelId\" [modelType]=\"modelType\"\n [labelText]=\"labelText\"></app-note-comment-list>\n\n<div class=\"d-flex flex-column gap-4\" *ngIf=\"!commentsView\">\n\n <ng-container *ngIf=\"viewMode === 'list'\">\n <div class=\"d-flex align-items-center\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n <app-techlify-form-button class=\"d-print-none ml-1\" [component]=\"noteForm()\" width=\"400px\"\n [data]=\"{ model_type: modelType, related_model_id: relatedModelId, labelText: labelText }\"\n (saved)=\"modelCreated($event); total = total + 1\"></app-techlify-form-button>\n </div>\n\n <div class=\"w-100 scroll-container\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"models\" class=\"w-100\" multiTemplateDataRows>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> #</th>\n <td mat-cell *matCellDef=\"let note; let i = dataIndex\"> {{ i + 1 }}</td>\n </ng-container>\n\n\n <ng-container matColumnDef=\"note\">\n <th mat-header-cell *matHeaderCellDef> {{ labelText }}</th>\n <td mat-cell *matCellDef=\"let note\">\n {{ note?.note }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef class=\"d-print-none\"> Actions</th>\n <td mat-cell *matCellDef=\"let note\" class=\"d-print-none text-secondary\">\n <div class=\"d-flex flex-row align-items-center gap-1\">\n <app-techlify-form-button [component]=\"noteForm()\" [model]=\"note\" width=\"400px\"\n [data]=\"{ labelText: labelText }\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <app-techlify-delete-button [service]=\"noteService\" [model]=\"note\"\n [data]=\"{ type: labelText, title: note?.note }\"\n (deleted)=\"modelsDeletedById(note); total = total - 1\"></app-techlify-delete-button>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"viewMode === 'timeline'\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-start align-items-center gap-2\">\n <h5 class=\"mb-0\">Notes</h5>\n <span class=\"badge badge-info ml-1\" *ngIf=\"total\">{{ total }}</span>\n </mat-card-content>\n <mat-card-content class=\"mt-2\">\n <form (ngSubmit)=\"saveNote()\">\n <mat-form-field class=\"w-100\" appearance=\"outline\">\n <input [(ngModel)]=\"note\" [ngModelOptions]=\"{standalone: true}\" type=\"text\" matInput\n placeholder=\"Write your notes here...\" [disabled]=\"isSaving\">\n <mat-icon *ngIf=\"!isSaving\" matSuffix class=\"cursor-pointer\" (click)=\"saveNote()\">send</mat-icon>\n <mat-progress-spinner matSuffix mode=\"indeterminate\" diameter=\"20\" *ngIf=\"isSaving\"></mat-progress-spinner>\n </mat-form-field>\n </form>\n </mat-card-content>\n <mat-card-content>\n <div *ngFor=\"let note of models;last as isLast\">\n <div class=\"d-flex justify-content-between align-items-center gap-2\">\n <div class=\"d-flex flex-column\">\n <p class=\"mb-0\">{{ note?.creator?.name }}</p>\n <small class=\"text-secondary\">On {{ note?.created_at | date: 'medium' }}</small>\n </div>\n <div class=\"d-flex justify-content-end align-items-center gap-1\">\n <app-techlify-form-button [component]=\"noteForm()\" [model]=\"note\" width=\"400px\"\n [data]=\"{ labelText: labelText }\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <!-- @todo Pass $event once NoteController::destroy returns the deleted item -->\n <app-techlify-delete-button [service]=\"noteService\" [model]=\"note\"\n [data]=\"{ type: labelText, title: note?.note }\"\n (deleted)=\"modelsDeletedById(note); total = total - 1\"></app-techlify-delete-button>\n </div>\n </div>\n <div>{{ note?.note }}</div>\n <mat-divider class=\"my-2\" *ngIf=\"!isLast\"></mat-divider>\n </div>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n </ng-container>\n\n</div>\n", styles: [".scroll-container{max-height:400px;overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i9.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i10.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i10.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i10.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i10.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i10.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i10.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i10.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i10.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i10.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "component", type: i11.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i11.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i12.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i13.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i14.TechlifyDeleteButtonComponent, selector: "app-techlify-delete-button", inputs: ["data", "model", "message", "service"], outputs: ["deleted"] }, { kind: "component", type: i15.TechlifyFormButtonComponent, selector: "app-techlify-form-button", inputs: ["component", "model", "data", "width"], outputs: ["saved"] }, { kind: "component", type: i16.NoteCommentListComponent, selector: "app-note-comment-list", inputs: ["relatedModelId", "modelType", "labelText"] }, { kind: "pipe", type: i3.DatePipe, name: "date" }] }); }
|
|
95
94
|
}
|
|
96
95
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoteListComponent, decorators: [{
|
|
97
96
|
type: Component,
|
|
98
|
-
args: [{ selector: 'app-note-list', template: "<app-note-comment-list *ngIf=\"commentsView\" [relatedModelId]=\"relatedModelId\" [modelType]=\"modelType\"\n [labelText]=\"labelText\"></app-note-comment-list>\n\n<div
|
|
97
|
+
args: [{ selector: 'app-note-list', template: "<app-note-comment-list *ngIf=\"commentsView\" [relatedModelId]=\"relatedModelId\" [modelType]=\"modelType\"\n [labelText]=\"labelText\"></app-note-comment-list>\n\n<div class=\"d-flex flex-column gap-4\" *ngIf=\"!commentsView\">\n\n <ng-container *ngIf=\"viewMode === 'list'\">\n <div class=\"d-flex align-items-center\">\n <h5 class=\"m-0\">{{ labelText }}s</h5>\n <app-techlify-form-button class=\"d-print-none ml-1\" [component]=\"noteForm()\" width=\"400px\"\n [data]=\"{ model_type: modelType, related_model_id: relatedModelId, labelText: labelText }\"\n (saved)=\"modelCreated($event); total = total + 1\"></app-techlify-form-button>\n </div>\n\n <div class=\"w-100 scroll-container\" infiniteScroll [infiniteScrollDistance]=\"1\" [infiniteScrollThrottle]=\"50\"\n (scrolled)=\"onScroll()\" [scrollWindow]=\"false\">\n <table mat-table [dataSource]=\"models\" class=\"w-100\" multiTemplateDataRows>\n\n <!-- Index Column -->\n <ng-container matColumnDef=\"index\">\n <th mat-header-cell *matHeaderCellDef> #</th>\n <td mat-cell *matCellDef=\"let note; let i = dataIndex\"> {{ i + 1 }}</td>\n </ng-container>\n\n\n <ng-container matColumnDef=\"note\">\n <th mat-header-cell *matHeaderCellDef> {{ labelText }}</th>\n <td mat-cell *matCellDef=\"let note\">\n {{ note?.note }}\n </td>\n </ng-container>\n\n <ng-container matColumnDef=\"actions\">\n <th mat-header-cell *matHeaderCellDef class=\"d-print-none\"> Actions</th>\n <td mat-cell *matCellDef=\"let note\" class=\"d-print-none text-secondary\">\n <div class=\"d-flex flex-row align-items-center gap-1\">\n <app-techlify-form-button [component]=\"noteForm()\" [model]=\"note\" width=\"400px\"\n [data]=\"{ labelText: labelText }\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <app-techlify-delete-button [service]=\"noteService\" [model]=\"note\"\n [data]=\"{ type: labelText, title: note?.note }\"\n (deleted)=\"modelsDeletedById(note); total = total - 1\"></app-techlify-delete-button>\n </div>\n </td>\n </ng-container>\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n </table>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"viewMode === 'timeline'\">\n <mat-card>\n <mat-card-content class=\"d-flex justify-content-start align-items-center gap-2\">\n <h5 class=\"mb-0\">Notes</h5>\n <span class=\"badge badge-info ml-1\" *ngIf=\"total\">{{ total }}</span>\n </mat-card-content>\n <mat-card-content class=\"mt-2\">\n <form (ngSubmit)=\"saveNote()\">\n <mat-form-field class=\"w-100\" appearance=\"outline\">\n <input [(ngModel)]=\"note\" [ngModelOptions]=\"{standalone: true}\" type=\"text\" matInput\n placeholder=\"Write your notes here...\" [disabled]=\"isSaving\">\n <mat-icon *ngIf=\"!isSaving\" matSuffix class=\"cursor-pointer\" (click)=\"saveNote()\">send</mat-icon>\n <mat-progress-spinner matSuffix mode=\"indeterminate\" diameter=\"20\" *ngIf=\"isSaving\"></mat-progress-spinner>\n </mat-form-field>\n </form>\n </mat-card-content>\n <mat-card-content>\n <div *ngFor=\"let note of models;last as isLast\">\n <div class=\"d-flex justify-content-between align-items-center gap-2\">\n <div class=\"d-flex flex-column\">\n <p class=\"mb-0\">{{ note?.creator?.name }}</p>\n <small class=\"text-secondary\">On {{ note?.created_at | date: 'medium' }}</small>\n </div>\n <div class=\"d-flex justify-content-end align-items-center gap-1\">\n <app-techlify-form-button [component]=\"noteForm()\" [model]=\"note\" width=\"400px\"\n [data]=\"{ labelText: labelText }\" (saved)=\"modelsUpdatedById($event)\"></app-techlify-form-button>\n <!-- @todo Pass $event once NoteController::destroy returns the deleted item -->\n <app-techlify-delete-button [service]=\"noteService\" [model]=\"note\"\n [data]=\"{ type: labelText, title: note?.note }\"\n (deleted)=\"modelsDeletedById(note); total = total - 1\"></app-techlify-delete-button>\n </div>\n </div>\n <div>{{ note?.note }}</div>\n <mat-divider class=\"my-2\" *ngIf=\"!isLast\"></mat-divider>\n </div>\n <mat-progress-bar mode=\"indeterminate\" *ngIf=\"isWorking\"></mat-progress-bar>\n </mat-card-content>\n </mat-card>\n </ng-container>\n\n</div>\n", styles: [".scroll-container{max-height:400px;overflow-y:auto}\n"] }]
|
|
99
98
|
}], ctorParameters: () => [{ type: i1.NoteService }, { type: i2.AlertService }], propDecorators: { relatedModelId: [{
|
|
100
99
|
type: Input
|
|
101
100
|
}], modelType: [{
|
|
@@ -109,4 +108,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
109
108
|
}], viewMode: [{
|
|
110
109
|
type: Input
|
|
111
110
|
}] } });
|
|
112
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPMUMsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHFCQUFxQjtJQW1CMUQsWUFDWSxXQUF3QixFQUMxQixZQUEwQjtRQUVsQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFIVCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUMxQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWpCM0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixjQUFTLEdBQUcsTUFBTSxDQUFDO1FBQ25CLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLGFBQVEsR0FBd0IsTUFBTSxDQUFDO1FBRWhELHFCQUFnQixHQUFHO1lBQ2pCLE9BQU87WUFDUCxNQUFNO1lBQ04sU0FBUztTQUNWLENBQUM7UUFDRixhQUFRLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFckMsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixVQUFLLEdBQUcsQ0FBQyxD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QUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOb3RlU2VydmljZSB9IGZyb20gJy4uL25vdGUuc2VydmljZSc7XG5pbXBvcnQgeyBOb3RlRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL25vdGUtZm9ybS9ub3RlLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFRlY2hsaWZ5TGlzdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UtbW9kZWwnO1xuaW1wb3J0IHsgQWxlcnRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmVcIjtcbmltcG9ydCB7IGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbm90ZS1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGUtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL25vdGUtbGlzdC5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTm90ZUxpc3RDb21wb25lbnQgZXh0ZW5kcyBUZWNobGlmeUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHJlbGF0ZWRNb2RlbElkICE6IGFueTtcbiAgQElucHV0KCkgbW9kZWxUeXBlICE6IGFueTtcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgbGFiZWxUZXh0ID0gJ05vdGUnO1xuICBASW5wdXQoKSBjb21tZW50c1ZpZXcgPSBmYWxzZTtcbiAgQElucHV0KCkgdmlld01vZGU6ICdsaXN0JyB8ICd0aW1lbGluZScgPSAnbGlzdCc7XG5cbiAgZGlzcGxheWVkQ29sdW1ucyA9IFtcbiAgICAnaW5kZXgnLFxuICAgICdub3RlJyxcbiAgICAnYWN0aW9ucydcbiAgXTtcbiAgbm90ZUZvcm0gPSBzaWduYWwoTm90ZUZvcm1Db21wb25lbnQpO1xuICBub3RlOiBhbnk7XG4gIGlzU2F2aW5nID0gZmFsc2U7XG4gIHRvdGFsID0gMDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgbm90ZVNlcnZpY2U6IE5vdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWxlcnRTZXJ2aWNlOiBBbGVydFNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIobm90ZVNlcnZpY2UpO1xuICAgIHRoaXMubGFzdFBhZ2UgPSAwO1xuICAgIHRoaXMuZmlsdGVycyA9IHsgc29ydF9ieTogJ2NyZWF0ZWRfYXR8REVTQycgfTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vYXBwLW5vdGUtY29tbWVudC1saXN0IGxvYWRzIGl0cyBvd24gbm90ZXNcbiAgICBpZiAodGhpcy5jb21tZW50c1ZpZXcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yZWFkb25seSkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5kaXNwbGF5ZWRDb2x1bW5zLmZpbHRlcih4ID0+IHggIT09ICdhY3Rpb25zJyk7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVycy5yZWxhdGVkX21vZGVsX2lkID0gdGhpcy5yZWxhdGVkTW9kZWxJZDtcbiAgICB0aGlzLmZpbHRlcnMubW9kZWxfdHlwZSA9IHRoaXMubW9kZWxUeXBlO1xuICAgIHRoaXMubG9hZERhdGEoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGxvYWREYXRhKCk6IHZvaWQge1xuICAgIHRoaXMuaXNXb3JraW5nID0gdHJ1ZTtcbiAgICB0aGlzLm5vdGVTZXJ2aWNlLmluZGV4KHtcbiAgICAgIC4uLnRoaXMuZmlsdGVycyxcbiAgICAgIHBhZ2U6IHRoaXMucGFnZSxcbiAgICAgIHdpdGg6ICdjcmVhdG9yJ1xuICAgIH0pXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzV29ya2luZyA9IGZhbHNlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgIHRoaXMubW9kZWxzID0gdGhpcy5tb2RlbHMuY29uY2F0KHJlc3VsdD8uZGF0YSk7XG4gICAgICAgIHRoaXMubGFzdFBhZ2UgPSByZXN1bHQ/Lmxhc3RfcGFnZTtcbiAgICAgICAgdGhpcy50b3RhbCA9IHJlc3VsdD8udG90YWw7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIGlzIG5lZWRlZCBoZXJlIGZvciB0aGUgdGltZWxpbmUgdmlld1xuICAgKi9cbiAgc2F2ZU5vdGUoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm5vdGUpIHtcbiAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KCdQbGVhc2UgZW50ZXIgdGhlIG5vdGUnLCAnZXJyb3InKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZGF0YTogYW55ID0ge1xuICAgICAgbm90ZTogdGhpcy5ub3RlLFxuICAgICAgbW9kZWxfdHlwZTogdGhpcy5tb2RlbFR5cGUsXG4gICAgICByZWxhdGVkX21vZGVsX2lkOiB0aGlzLnJlbGF0ZWRNb2RlbElkLFxuICAgICAgd2l0aDogJ2NyZWF0b3InLFxuICAgIH07XG4gICAgdGhpcy5pc1NhdmluZyA9IHRydWU7XG4gICAgdGhpcy5ub3RlU2VydmljZS5zdG9yZShkYXRhKVxuICAgICAgLnBpcGUoZmluYWxpemUoKCkgPT4gdGhpcy5pc1NhdmluZyA9IGZhbHNlKSlcbiAgICAgIC5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5tb2RlbENyZWF0ZWQocmVzcG9uc2U/Lml0ZW0pO1xuICAgICAgICB0aGlzLmFsZXJ0U2VydmljZS5hZGRBbGVydCgnVGhlIG5vdGUgc2F2ZWQgc3VjY2Vzc2Z1bGx5LicsICdzdWNjZXNzJyk7XG4gICAgICAgIHRoaXMubm90ZSA9ICcnO1xuICAgICAgICB0aGlzLnRvdGFsICs9IDE7XG4gICAgICB9KTtcbiAgfVxufVxuIiwiPGFwcC1ub3RlLWNvbW1lbnQtbGlzdCAqbmdJZj1cImNvbW1lbnRzVmlld1wiIFtyZWxhdGVkTW9kZWxJZF09XCJyZWxhdGVkTW9kZWxJZFwiIFttb2RlbFR5cGVdPVwibW9kZWxUeXBlXCJcbiAgW2xhYmVsVGV4dF09XCJsYWJlbFRleHRcIj48L2FwcC1ub3RlLWNvbW1lbnQtbGlzdD5cblxuPGRpdiBmeExheW91dD1cImNvbHVtblwiIGZ4TGF5b3V0R2FwPVwiMS41cmVtXCIgKm5nSWY9XCIhY29tbWVudHNWaWV3XCI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdNb2RlID09PSAnbGlzdCdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGg1IGNsYXNzPVwibS0wXCI+e3sgbGFiZWxUZXh0IH19czwvaDU+XG4gICAgICA8YXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uIGNsYXNzPVwiZC1wcmludC1ub25lIG1sLTFcIiBbY29tcG9uZW50XT1cIm5vdGVGb3JtKClcIiB3aWR0aD1cIjQwMHB4XCJcbiAgICAgICAgW2RhdGFdPVwieyBtb2RlbF90eXBlOiBtb2RlbFR5cGUsIHJlbGF0ZWRfbW9kZWxfaWQ6IHJlbGF0ZWRNb2RlbElkLCBsYWJlbFRleHQ6IGxhYmVsVGV4dCB9XCJcbiAgICAgICAgKHNhdmVkKT1cIm1vZGVsQ3JlYXRlZCgkZXZlbnQpOyB0b3RhbCA9IHRvdGFsICsgMVwiPjwvYXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInctMTAwIHNjcm9sbC1jb250YWluZXJcIiBpbmZpbml0ZVNjcm9sbCBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCIxXCIgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiNTBcIlxuICAgICAgKHNjcm9sbGVkKT1cIm9uU2Nyb2xsKClcIiBbc2Nyb2xsV2luZG93XT1cImZhbHNlXCI+XG4gICAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cIm1vZGVsc1wiIGNsYXNzPVwidy0xMDBcIiBtdWx0aVRlbXBsYXRlRGF0YVJvd3M+XG5cbiAgICAgICAgPCEtLSBJbmRleCBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaW5kZXhcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiAjPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgbm90ZTsgbGV0IGkgPSBkYXRhSW5kZXhcIj4ge3sgaSArIDEgfX08L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibm90ZVwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IHt7IGxhYmVsVGV4dCB9fTwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IG5vdGVcIj5cbiAgICAgICAgICAgIHt7IG5vdGU/Lm5vdGUgfX1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwiZC1wcmludC1ub25lXCI+IEFjdGlvbnM8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBub3RlXCIgY2xhc3M9XCJkLXByaW50LW5vbmUgdGV4dC1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XG4gICAgICAgICAgICAgIDxhcHAtdGVjaGxpZnktZm9ybS1idXR0b24gW2NvbXBvbmVudF09XCJub3RlRm9ybSgpXCIgW21vZGVsXT1cIm5vdGVcIiB3aWR0aD1cIjQwMHB4XCJcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJ7IGxhYmVsVGV4dDogbGFiZWxUZXh0IH1cIiAoc2F2ZWQpPVwibW9kZWxzVXBkYXRlZEJ5SWQoJGV2ZW50KVwiPjwvYXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uPlxuICAgICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24gW3NlcnZpY2VdPVwibm90ZVNlcnZpY2VcIiBbbW9kZWxdPVwibm90ZVwiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwieyB0eXBlOiBsYWJlbFRleHQsIHRpdGxlOiBub3RlPy5ub3RlIH1cIlxuICAgICAgICAgICAgICAgIChkZWxldGVkKT1cIm1vZGVsc0RlbGV0ZWRCeUlkKG5vdGUpOyB0b3RhbCA9IHRvdGFsIC0gMVwiPjwvYXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cbiAgICAgIDwvdGFibGU+XG4gICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiICpuZ0lmPVwiaXNXb3JraW5nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidmlld01vZGUgPT09ICd0aW1lbGluZSdcIj5cbiAgICA8bWF0LWNhcmQ+XG4gICAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgIDxoNSBjbGFzcz1cIm1iLTBcIj5Ob3RlczwvaDU+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtaW5mbyBtbC0xXCIgKm5nSWY9XCJ0b3RhbFwiPnt7IHRvdGFsIH19PC9zcGFuPlxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJtdC0yXCI+XG4gICAgICAgIDxmb3JtIChuZ1N1Ym1pdCk9XCJzYXZlTm90ZSgpXCI+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwibm90ZVwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIiB0eXBlPVwidGV4dFwiIG1hdElucHV0XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiV3JpdGUgeW91ciBub3RlcyBoZXJlLi4uXCIgW2Rpc2FibGVkXT1cImlzU2F2aW5nXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhaXNTYXZpbmdcIiBtYXRTdWZmaXggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzYXZlTm90ZSgpXCI+c2VuZDwvbWF0LWljb24+XG4gICAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgbWF0U3VmZml4IG1vZGU9XCJpbmRldGVybWluYXRlXCIgZGlhbWV0ZXI9XCIyMFwiICpuZ0lmPVwiaXNTYXZpbmdcIj48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBub3RlIG9mIG1vZGVscztsYXN0IGFzIGlzTGFzdFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMFwiPnt7IG5vdGU/LmNyZWF0b3I/Lm5hbWUgfX08L3A+XG4gICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+T24ge3sgbm90ZT8uY3JlYXRlZF9hdCB8IGRhdGU6ICdtZWRpdW0nIH19PC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMVwiPlxuICAgICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uIFtjb21wb25lbnRdPVwibm90ZUZvcm0oKVwiIFttb2RlbF09XCJub3RlXCIgd2lkdGg9XCI0MDBweFwiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwieyBsYWJlbFRleHQ6IGxhYmVsVGV4dCB9XCIgKHNhdmVkKT1cIm1vZGVsc1VwZGF0ZWRCeUlkKCRldmVudClcIj48L2FwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPCEtLSBAdG9kbyBQYXNzICRldmVudCBvbmNlIE5vdGVDb250cm9sbGVyOjpkZXN0cm95IHJldHVybnMgdGhlIGRlbGV0ZWQgaXRlbSAtLT5cbiAgICAgICAgICAgICAgPGFwcC10ZWNobGlmeS1kZWxldGUtYnV0dG9uIFtzZXJ2aWNlXT1cIm5vdGVTZXJ2aWNlXCIgW21vZGVsXT1cIm5vdGVcIlxuICAgICAgICAgICAgICAgIFtkYXRhXT1cInsgdHlwZTogbGFiZWxUZXh0LCB0aXRsZTogbm90ZT8ubm90ZSB9XCJcbiAgICAgICAgICAgICAgICAoZGVsZXRlZCk9XCJtb2RlbHNEZWxldGVkQnlJZChub3RlKTsgdG90YWwgPSB0b3RhbCAtIDFcIj48L2FwcC10ZWNobGlmeS1kZWxldGUtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj57eyBub3RlPy5ub3RlIH19PC9kaXY+XG4gICAgICAgICAgPG1hdC1kaXZpZGVyIGNsYXNzPVwibXktMlwiICpuZ0lmPVwiIWlzTGFzdFwiPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiICpuZ0lmPVwiaXNXb3JraW5nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgIDwvbWF0LWNhcmQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG48L2Rpdj5cbiJdfQ==
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZWNobGlmeS1jb3JlL3NyYy9saWIvbm90ZS9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU8xQyxNQUFNLE9BQU8saUJBQWtCLFNBQVEscUJBQXFCO0lBbUIxRCxZQUNZLFdBQXdCLEVBQzFCLFlBQTBCO1FBRWxDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUhULGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQzFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBakIzQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxNQUFNLENBQUM7UUFDbkIsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsYUFBUSxHQUF3QixNQUFNLENBQUM7UUFFaEQscUJBQWdCLEdBQUc7WUFDakIsT0FBTztZQUNQLE1BQU07WUFDTixTQUFTO1NBQ1YsQ0FBQztRQUNGLGFBQVEsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUVyQyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFVBQUssR0FBRyxDQUFDLENB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SztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vdGVTZXJ2aWNlIH0gZnJvbSAnLi4vbm90ZS5zZXJ2aWNlJztcbmltcG9ydCB7IE5vdGVGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vbm90ZS1mb3JtL25vdGUtZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVjaGxpZnlMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1tb2RlbCc7XG5pbXBvcnQgeyBBbGVydFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZVwiO1xuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1ub3RlLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbm90ZS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbm90ZS1saXN0LmNvbXBvbmVudC5jc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBOb3RlTGlzdENvbXBvbmVudCBleHRlbmRzIFRlY2hsaWZ5TGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgcmVsYXRlZE1vZGVsSWQgITogYW55O1xuICBASW5wdXQoKSBtb2RlbFR5cGUgITogYW55O1xuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xuICBASW5wdXQoKSBsYWJlbFRleHQgPSAnTm90ZSc7XG4gIEBJbnB1dCgpIGNvbW1lbnRzVmlldyA9IGZhbHNlO1xuICBASW5wdXQoKSB2aWV3TW9kZTogJ2xpc3QnIHwgJ3RpbWVsaW5lJyA9ICdsaXN0JztcblxuICBkaXNwbGF5ZWRDb2x1bW5zID0gW1xuICAgICdpbmRleCcsXG4gICAgJ25vdGUnLFxuICAgICdhY3Rpb25zJ1xuICBdO1xuICBub3RlRm9ybSA9IHNpZ25hbChOb3RlRm9ybUNvbXBvbmVudCk7XG4gIG5vdGU6IGFueTtcbiAgaXNTYXZpbmcgPSBmYWxzZTtcbiAgdG90YWwgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBub3RlU2VydmljZTogTm90ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZVxuICApIHtcbiAgICBzdXBlcihub3RlU2VydmljZSk7XG4gICAgdGhpcy5sYXN0UGFnZSA9IDA7XG4gICAgdGhpcy5maWx0ZXJzID0geyBzb3J0X2J5OiAnY3JlYXRlZF9hdHxERVNDJyB9O1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy9hcHAtbm90ZS1jb21tZW50LWxpc3QgbG9hZHMgaXRzIG93biBub3Rlc1xuICAgIGlmICh0aGlzLmNvbW1lbnRzVmlldykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XG4gICAgICB0aGlzLmRpc3BsYXllZENvbHVtbnMgPSB0aGlzLmRpc3BsYXllZENvbHVtbnMuZmlsdGVyKHggPT4geCAhPT0gJ2FjdGlvbnMnKTtcbiAgICB9XG4gICAgdGhpcy5maWx0ZXJzLnJlbGF0ZWRfbW9kZWxfaWQgPSB0aGlzLnJlbGF0ZWRNb2RlbElkO1xuICAgIHRoaXMuZmlsdGVycy5tb2RlbF90eXBlID0gdGhpcy5tb2RlbFR5cGU7XG4gICAgdGhpcy5sb2FkRGF0YSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbG9hZERhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5pc1dvcmtpbmcgPSB0cnVlO1xuICAgIHRoaXMubm90ZVNlcnZpY2UuaW5kZXgoe1xuICAgICAgLi4udGhpcy5maWx0ZXJzLFxuICAgICAgcGFnZTogdGhpcy5wYWdlLFxuICAgICAgd2l0aDogJ2NyZWF0b3InXG4gICAgfSlcbiAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuaXNXb3JraW5nID0gZmFsc2UpKVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgdGhpcy5tb2RlbHMgPSB0aGlzLm1vZGVscy5jb25jYXQocmVzdWx0Py5kYXRhKTtcbiAgICAgICAgdGhpcy5sYXN0UGFnZSA9IHJlc3VsdD8ubGFzdF9wYWdlO1xuICAgICAgICB0aGlzLnRvdGFsID0gcmVzdWx0Py50b3RhbDtcbiAgICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgaXMgbmVlZGVkIGhlcmUgZm9yIHRoZSB0aW1lbGluZSB2aWV3XG4gICAqL1xuICBzYXZlTm90ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubm90ZSkge1xuICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkQWxlcnQoJ1BsZWFzZSBlbnRlciB0aGUgbm90ZScsICdlcnJvcicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBkYXRhOiBhbnkgPSB7XG4gICAgICBub3RlOiB0aGlzLm5vdGUsXG4gICAgICBtb2RlbF90eXBlOiB0aGlzLm1vZGVsVHlwZSxcbiAgICAgIHJlbGF0ZWRfbW9kZWxfaWQ6IHRoaXMucmVsYXRlZE1vZGVsSWQsXG4gICAgICB3aXRoOiAnY3JlYXRvcicsXG4gICAgfTtcbiAgICB0aGlzLmlzU2F2aW5nID0gdHJ1ZTtcbiAgICB0aGlzLm5vdGVTZXJ2aWNlLnN0b3JlKGRhdGEpXG4gICAgICAucGlwZShmaW5hbGl6ZSgoKSA9PiB0aGlzLmlzU2F2aW5nID0gZmFsc2UpKVxuICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLm1vZGVsQ3JlYXRlZChyZXNwb25zZT8uaXRlbSk7XG4gICAgICAgIHRoaXMuYWxlcnRTZXJ2aWNlLmFkZEFsZXJ0KCdUaGUgbm90ZSBzYXZlZCBzdWNjZXNzZnVsbHkuJywgJ3N1Y2Nlc3MnKTtcbiAgICAgICAgdGhpcy5ub3RlID0gJyc7XG4gICAgICAgIHRoaXMudG90YWwgKz0gMTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8YXBwLW5vdGUtY29tbWVudC1saXN0ICpuZ0lmPVwiY29tbWVudHNWaWV3XCIgW3JlbGF0ZWRNb2RlbElkXT1cInJlbGF0ZWRNb2RlbElkXCIgW21vZGVsVHlwZV09XCJtb2RlbFR5cGVcIlxuICBbbGFiZWxUZXh0XT1cImxhYmVsVGV4dFwiPjwvYXBwLW5vdGUtY29tbWVudC1saXN0PlxuXG48ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGdhcC00XCIgKm5nSWY9XCIhY29tbWVudHNWaWV3XCI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXdNb2RlID09PSAnbGlzdCdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGg1IGNsYXNzPVwibS0wXCI+e3sgbGFiZWxUZXh0IH19czwvaDU+XG4gICAgICA8YXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uIGNsYXNzPVwiZC1wcmludC1ub25lIG1sLTFcIiBbY29tcG9uZW50XT1cIm5vdGVGb3JtKClcIiB3aWR0aD1cIjQwMHB4XCJcbiAgICAgICAgW2RhdGFdPVwieyBtb2RlbF90eXBlOiBtb2RlbFR5cGUsIHJlbGF0ZWRfbW9kZWxfaWQ6IHJlbGF0ZWRNb2RlbElkLCBsYWJlbFRleHQ6IGxhYmVsVGV4dCB9XCJcbiAgICAgICAgKHNhdmVkKT1cIm1vZGVsQ3JlYXRlZCgkZXZlbnQpOyB0b3RhbCA9IHRvdGFsICsgMVwiPjwvYXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInctMTAwIHNjcm9sbC1jb250YWluZXJcIiBpbmZpbml0ZVNjcm9sbCBbaW5maW5pdGVTY3JvbGxEaXN0YW5jZV09XCIxXCIgW2luZmluaXRlU2Nyb2xsVGhyb3R0bGVdPVwiNTBcIlxuICAgICAgKHNjcm9sbGVkKT1cIm9uU2Nyb2xsKClcIiBbc2Nyb2xsV2luZG93XT1cImZhbHNlXCI+XG4gICAgICA8dGFibGUgbWF0LXRhYmxlIFtkYXRhU291cmNlXT1cIm1vZGVsc1wiIGNsYXNzPVwidy0xMDBcIiBtdWx0aVRlbXBsYXRlRGF0YVJvd3M+XG5cbiAgICAgICAgPCEtLSBJbmRleCBDb2x1bW4gLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwiaW5kZXhcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmPiAjPC90aD5cbiAgICAgICAgICA8dGQgbWF0LWNlbGwgKm1hdENlbGxEZWY9XCJsZXQgbm90ZTsgbGV0IGkgPSBkYXRhSW5kZXhcIj4ge3sgaSArIDEgfX08L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuXG4gICAgICAgIDxuZy1jb250YWluZXIgbWF0Q29sdW1uRGVmPVwibm90ZVwiPlxuICAgICAgICAgIDx0aCBtYXQtaGVhZGVyLWNlbGwgKm1hdEhlYWRlckNlbGxEZWY+IHt7IGxhYmVsVGV4dCB9fTwvdGg+XG4gICAgICAgICAgPHRkIG1hdC1jZWxsICptYXRDZWxsRGVmPVwibGV0IG5vdGVcIj5cbiAgICAgICAgICAgIHt7IG5vdGU/Lm5vdGUgfX1cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyIG1hdENvbHVtbkRlZj1cImFjdGlvbnNcIj5cbiAgICAgICAgICA8dGggbWF0LWhlYWRlci1jZWxsICptYXRIZWFkZXJDZWxsRGVmIGNsYXNzPVwiZC1wcmludC1ub25lXCI+IEFjdGlvbnM8L3RoPlxuICAgICAgICAgIDx0ZCBtYXQtY2VsbCAqbWF0Q2VsbERlZj1cImxldCBub3RlXCIgY2xhc3M9XCJkLXByaW50LW5vbmUgdGV4dC1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1yb3cgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0xXCI+XG4gICAgICAgICAgICAgIDxhcHAtdGVjaGxpZnktZm9ybS1idXR0b24gW2NvbXBvbmVudF09XCJub3RlRm9ybSgpXCIgW21vZGVsXT1cIm5vdGVcIiB3aWR0aD1cIjQwMHB4XCJcbiAgICAgICAgICAgICAgICBbZGF0YV09XCJ7IGxhYmVsVGV4dDogbGFiZWxUZXh0IH1cIiAoc2F2ZWQpPVwibW9kZWxzVXBkYXRlZEJ5SWQoJGV2ZW50KVwiPjwvYXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uPlxuICAgICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24gW3NlcnZpY2VdPVwibm90ZVNlcnZpY2VcIiBbbW9kZWxdPVwibm90ZVwiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwieyB0eXBlOiBsYWJlbFRleHQsIHRpdGxlOiBub3RlPy5ub3RlIH1cIlxuICAgICAgICAgICAgICAgIChkZWxldGVkKT1cIm1vZGVsc0RlbGV0ZWRCeUlkKG5vdGUpOyB0b3RhbCA9IHRvdGFsIC0gMVwiPjwvYXBwLXRlY2hsaWZ5LWRlbGV0ZS1idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3RkPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPHRyIG1hdC1oZWFkZXItcm93ICptYXRIZWFkZXJSb3dEZWY9XCJkaXNwbGF5ZWRDb2x1bW5zXCI+PC90cj5cbiAgICAgICAgPHRyIG1hdC1yb3cgKm1hdFJvd0RlZj1cImxldCByb3c7IGNvbHVtbnM6IGRpc3BsYXllZENvbHVtbnM7XCI+PC90cj5cbiAgICAgIDwvdGFibGU+XG4gICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiICpuZ0lmPVwiaXNXb3JraW5nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwidmlld01vZGUgPT09ICd0aW1lbGluZSdcIj5cbiAgICA8bWF0LWNhcmQ+XG4gICAgICA8bWF0LWNhcmQtY29udGVudCBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtc3RhcnQgYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgIDxoNSBjbGFzcz1cIm1iLTBcIj5Ob3RlczwvaDU+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtaW5mbyBtbC0xXCIgKm5nSWY9XCJ0b3RhbFwiPnt7IHRvdGFsIH19PC9zcGFuPlxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgICAgPG1hdC1jYXJkLWNvbnRlbnQgY2xhc3M9XCJtdC0yXCI+XG4gICAgICAgIDxmb3JtIChuZ1N1Ym1pdCk9XCJzYXZlTm90ZSgpXCI+XG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwibm90ZVwiIFtuZ01vZGVsT3B0aW9uc109XCJ7c3RhbmRhbG9uZTogdHJ1ZX1cIiB0eXBlPVwidGV4dFwiIG1hdElucHV0XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiV3JpdGUgeW91ciBub3RlcyBoZXJlLi4uXCIgW2Rpc2FibGVkXT1cImlzU2F2aW5nXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCIhaXNTYXZpbmdcIiBtYXRTdWZmaXggY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIChjbGljayk9XCJzYXZlTm90ZSgpXCI+c2VuZDwvbWF0LWljb24+XG4gICAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXIgbWF0U3VmZml4IG1vZGU9XCJpbmRldGVybWluYXRlXCIgZGlhbWV0ZXI9XCIyMFwiICpuZ0lmPVwiaXNTYXZpbmdcIj48L21hdC1wcm9ncmVzcy1zcGlubmVyPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cbiAgICAgIDxtYXQtY2FyZC1jb250ZW50PlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBub3RlIG9mIG1vZGVscztsYXN0IGFzIGlzTGFzdFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMFwiPnt7IG5vdGU/LmNyZWF0b3I/Lm5hbWUgfX08L3A+XG4gICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cInRleHQtc2Vjb25kYXJ5XCI+T24ge3sgbm90ZT8uY3JlYXRlZF9hdCB8IGRhdGU6ICdtZWRpdW0nIH19PC9zbWFsbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtZW5kIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMVwiPlxuICAgICAgICAgICAgICA8YXBwLXRlY2hsaWZ5LWZvcm0tYnV0dG9uIFtjb21wb25lbnRdPVwibm90ZUZvcm0oKVwiIFttb2RlbF09XCJub3RlXCIgd2lkdGg9XCI0MDBweFwiXG4gICAgICAgICAgICAgICAgW2RhdGFdPVwieyBsYWJlbFRleHQ6IGxhYmVsVGV4dCB9XCIgKHNhdmVkKT1cIm1vZGVsc1VwZGF0ZWRCeUlkKCRldmVudClcIj48L2FwcC10ZWNobGlmeS1mb3JtLWJ1dHRvbj5cbiAgICAgICAgICAgICAgPCEtLSBAdG9kbyBQYXNzICRldmVudCBvbmNlIE5vdGVDb250cm9sbGVyOjpkZXN0cm95IHJldHVybnMgdGhlIGRlbGV0ZWQgaXRlbSAtLT5cbiAgICAgICAgICAgICAgPGFwcC10ZWNobGlmeS1kZWxldGUtYnV0dG9uIFtzZXJ2aWNlXT1cIm5vdGVTZXJ2aWNlXCIgW21vZGVsXT1cIm5vdGVcIlxuICAgICAgICAgICAgICAgIFtkYXRhXT1cInsgdHlwZTogbGFiZWxUZXh0LCB0aXRsZTogbm90ZT8ubm90ZSB9XCJcbiAgICAgICAgICAgICAgICAoZGVsZXRlZCk9XCJtb2RlbHNEZWxldGVkQnlJZChub3RlKTsgdG90YWwgPSB0b3RhbCAtIDFcIj48L2FwcC10ZWNobGlmeS1kZWxldGUtYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdj57eyBub3RlPy5ub3RlIH19PC9kaXY+XG4gICAgICAgICAgPG1hdC1kaXZpZGVyIGNsYXNzPVwibXktMlwiICpuZ0lmPVwiIWlzTGFzdFwiPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bWF0LXByb2dyZXNzLWJhciBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiICpuZ0lmPVwiaXNXb3JraW5nXCI+PC9tYXQtcHJvZ3Jlc3MtYmFyPlxuICAgICAgPC9tYXQtY2FyZC1jb250ZW50PlxuICAgIDwvbWF0LWNhcmQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
|
-
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
3
2
|
import { NoteCommentListComponent } from './note-comment-list/note-comment-list.component';
|
|
4
3
|
import { NoteListComponent } from './note-list/note-list.component';
|
|
5
4
|
import { SharedModule } from '../shared.module';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
6
|
export class NoteModule {
|
|
8
7
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoteModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: NoteModule, declarations: [NoteListComponent], imports: [
|
|
10
|
-
SharedModule,
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: NoteModule, declarations: [NoteListComponent], imports: [SharedModule,
|
|
11
9
|
NoteCommentListComponent], exports: [NoteListComponent,
|
|
12
10
|
NoteCommentListComponent] }); }
|
|
13
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoteModule, imports: [
|
|
14
|
-
SharedModule,
|
|
11
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoteModule, imports: [SharedModule,
|
|
15
12
|
NoteCommentListComponent] }); }
|
|
16
13
|
}
|
|
17
14
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NoteModule, decorators: [{
|
|
@@ -21,7 +18,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
21
18
|
NoteListComponent,
|
|
22
19
|
],
|
|
23
20
|
imports: [
|
|
24
|
-
FlexLayoutModule,
|
|
25
21
|
SharedModule,
|
|
26
22
|
NoteCommentListComponent
|
|
27
23
|
],
|
|
@@ -31,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
31
27
|
]
|
|
32
28
|
}]
|
|
33
29
|
}] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL25vdGUvbm90ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUMzRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBZWhELE1BQU0sT0FBTyxVQUFVOytHQUFWLFVBQVU7Z0hBQVYsVUFBVSxpQkFYZixpQkFBaUIsYUFHakIsWUFBWTtZQUNaLHdCQUF3QixhQUd4QixpQkFBaUI7WUFDakIsd0JBQXdCO2dIQUduQixVQUFVLFlBUmYsWUFBWTtZQUNaLHdCQUF3Qjs7NEZBT25CLFVBQVU7a0JBYnRCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLGlCQUFpQjtxQkFDcEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osd0JBQXdCO3FCQUMzQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsaUJBQWlCO3dCQUNqQix3QkFBd0I7cUJBQzNCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vdGVDb21tZW50TGlzdENvbXBvbmVudCB9IGZyb20gJy4vbm90ZS1jb21tZW50LWxpc3Qvbm90ZS1jb21tZW50LWxpc3QuY29tcG9uZW50JztcbmltcG9ydCB7IE5vdGVMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9ub3RlLWxpc3Qvbm90ZS1saXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgTm90ZUxpc3RDb21wb25lbnQsXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFNoYXJlZE1vZHVsZSxcbiAgICAgICAgTm90ZUNvbW1lbnRMaXN0Q29tcG9uZW50XG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIE5vdGVMaXN0Q29tcG9uZW50LFxuICAgICAgICBOb3RlQ29tbWVudExpc3RDb21wb25lbnRcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIE5vdGVNb2R1bGUgeyB9XG4iXX0=
|
package/esm2022/lib/number-input-button/number-input-button/number-input-button.component.mjs
CHANGED
|
@@ -2,12 +2,12 @@ import { UntypedFormControl, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
|
2
2
|
import { Component, Input, ViewChild } from '@angular/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
|
-
import * as i2 from "@angular/
|
|
6
|
-
import * as i3 from "@angular/material/
|
|
7
|
-
import * as i4 from "@angular/material/
|
|
8
|
-
import * as i5 from "@angular/material/
|
|
9
|
-
import * as i6 from "@angular/material/
|
|
10
|
-
import * as i7 from "@angular/
|
|
5
|
+
import * as i2 from "@angular/forms";
|
|
6
|
+
import * as i3 from "@angular/material/form-field";
|
|
7
|
+
import * as i4 from "@angular/material/icon";
|
|
8
|
+
import * as i5 from "@angular/material/input";
|
|
9
|
+
import * as i6 from "@angular/material/tooltip";
|
|
10
|
+
import * as i7 from "@angular/material/button-toggle";
|
|
11
11
|
// set the default value
|
|
12
12
|
export const DEFAULT_SELECTED_VALUE = 1;
|
|
13
13
|
export class NumberInputButtonComponent {
|
|
@@ -80,7 +80,7 @@ export class NumberInputButtonComponent {
|
|
|
80
80
|
multi: true,
|
|
81
81
|
useExisting: NumberInputButtonComponent
|
|
82
82
|
}
|
|
83
|
-
], viewQueries: [{ propertyName: "customInput", first: true, predicate: ["customInput"], descendants: true }], ngImport: i0, template: "<span *ngIf=\"showLabel\" class=\"mr-1\">{{ label }}</span> <br *ngIf=\"showLabel\">\n<mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n [formControl]=\"selectedOption\">\n <mat-button-toggle [matTooltip]=\"option?.hint || ''\" *ngFor=\"let option of options\" [value]=\"option?.value\">\n <span *ngIf=\"option.type =='text'\">{{ option?.title }}</span>\n <mat-icon class=\"small-icon\" *ngIf=\"option.type == 'icon'\">{{option?.title}}</mat-icon>\n </mat-button-toggle>\n</mat-button-toggle-group>\n<mat-form-field class=\"mt-1 w-100\" *ngIf=\"showCustomInput\">\n <mat-label>{{ label }}</mat-label>\n <input type=\"number\" min=\"0\" #customInput matInput [formControl]=\"customValue\">\n</mat-form-field>", styles: [":host ::ng-deep .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:30px;padding:0 12px;font-size:12px}:host ::ng-deep .mat-button-toggle-checked{color:#fff!important}:host ::ng-deep .small-icon{height:18px;width:18px;font-size:18px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "
|
|
83
|
+
], viewQueries: [{ propertyName: "customInput", first: true, predicate: ["customInput"], descendants: true }], ngImport: i0, template: "<span *ngIf=\"showLabel\" class=\"mr-1\">{{ label }}</span> <br *ngIf=\"showLabel\">\n<mat-button-toggle-group [hideSingleSelectionIndicator]=\"true\" [hideMultipleSelectionIndicator]=\"true\"\n [formControl]=\"selectedOption\">\n <mat-button-toggle [matTooltip]=\"option?.hint || ''\" *ngFor=\"let option of options\" [value]=\"option?.value\">\n <span *ngIf=\"option.type =='text'\">{{ option?.title }}</span>\n <mat-icon class=\"small-icon\" *ngIf=\"option.type == 'icon'\">{{option?.title}}</mat-icon>\n </mat-button-toggle>\n</mat-button-toggle-group>\n<mat-form-field class=\"mt-1 w-100\" *ngIf=\"showCustomInput\">\n <mat-label>{{ label }}</mat-label>\n <input type=\"number\" min=\"0\" #customInput matInput [formControl]=\"customValue\">\n</mat-form-field>", styles: [":host ::ng-deep .mat-button-toggle-appearance-standard .mat-button-toggle-label-content{line-height:30px;padding:0 12px;font-size:12px}:host ::ng-deep .mat-button-toggle-checked{color:#fff!important}:host ::ng-deep .small-icon{height:18px;width:18px;font-size:18px}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i7.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i7.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
|
|
84
84
|
}
|
|
85
85
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberInputButtonComponent, decorators: [{
|
|
86
86
|
type: Component,
|
|
@@ -1,17 +1,11 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
2
|
import { NumberInputButtonComponent } from './number-input-button/number-input-button.component';
|
|
4
|
-
import {
|
|
5
|
-
import { MaterialModule } from '../material.module';
|
|
3
|
+
import { SharedModule } from '../shared.module';
|
|
6
4
|
import * as i0 from "@angular/core";
|
|
7
5
|
export class NumberInputButtonModule {
|
|
8
6
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberInputButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
9
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: NumberInputButtonModule, declarations: [NumberInputButtonComponent], imports: [
|
|
10
|
-
|
|
11
|
-
ReactiveFormsModule], exports: [NumberInputButtonComponent] }); }
|
|
12
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberInputButtonModule, imports: [CommonModule,
|
|
13
|
-
MaterialModule,
|
|
14
|
-
ReactiveFormsModule] }); }
|
|
7
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: NumberInputButtonModule, declarations: [NumberInputButtonComponent], imports: [SharedModule], exports: [NumberInputButtonComponent] }); }
|
|
8
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberInputButtonModule, imports: [SharedModule] }); }
|
|
15
9
|
}
|
|
16
10
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: NumberInputButtonModule, decorators: [{
|
|
17
11
|
type: NgModule,
|
|
@@ -23,10 +17,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
23
17
|
NumberInputButtonComponent
|
|
24
18
|
],
|
|
25
19
|
imports: [
|
|
26
|
-
|
|
27
|
-
MaterialModule,
|
|
28
|
-
ReactiveFormsModule,
|
|
20
|
+
SharedModule
|
|
29
21
|
]
|
|
30
22
|
}]
|
|
31
23
|
}] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWlucHV0LWJ1dHRvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVjaGxpZnktY29yZS9zcmMvbGliL251bWJlci1pbnB1dC1idXR0b24vbnVtYmVyLWlucHV0LWJ1dHRvbi5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBYWhELE1BQU0sT0FBTyx1QkFBdUI7K0dBQXZCLHVCQUF1QjtnSEFBdkIsdUJBQXVCLGlCQVRoQywwQkFBMEIsYUFNMUIsWUFBWSxhQUhaLDBCQUEwQjtnSEFNakIsdUJBQXVCLFlBSGhDLFlBQVk7OzRGQUdILHVCQUF1QjtrQkFYbkMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osMEJBQTBCO3FCQUMzQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsMEJBQTBCO3FCQUMzQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOdW1iZXJJbnB1dEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vbnVtYmVyLWlucHV0LWJ1dHRvbi9udW1iZXItaW5wdXQtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTnVtYmVySW5wdXRCdXR0b25Db21wb25lbnRcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIE51bWJlcklucHV0QnV0dG9uQ29tcG9uZW50XG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBTaGFyZWRNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBOdW1iZXJJbnB1dEJ1dHRvbk1vZHVsZSB7IH1cbiJdfQ==
|