@acorex/components 6.5.29 → 6.5.31
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/README.md +3 -3
- package/acorex-components.d.ts +5 -5
- package/esm2020/acorex-components.mjs +4 -4
- package/esm2020/lib/accordion/accordion.component.mjs +44 -44
- package/esm2020/lib/accordion/accordion.module.mjs +20 -20
- package/esm2020/lib/base/base-page.class.mjs +94 -94
- package/esm2020/lib/base/components.class.mjs +17 -17
- package/esm2020/lib/base/element.class.mjs +294 -294
- package/esm2020/lib/base/events.class.mjs +11 -11
- package/esm2020/lib/button/button.component.mjs +71 -71
- package/esm2020/lib/button/button.module.mjs +21 -21
- package/esm2020/lib/calendar/calendar-box/calendar-box.component.mjs +413 -413
- package/esm2020/lib/calendar/calendar-box/calendar-box.module.mjs +22 -22
- package/esm2020/lib/calendar/scheduler/scheduler-views.property.mjs +54 -54
- package/esm2020/lib/calendar/scheduler/scheduler.class.mjs +18 -18
- package/esm2020/lib/calendar/scheduler/scheduler.component.mjs +213 -213
- package/esm2020/lib/calendar/scheduler/scheduler.module.mjs +68 -68
- package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.mjs +132 -132
- package/esm2020/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.mjs +37 -37
- package/esm2020/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.mjs +47 -47
- package/esm2020/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.mjs +95 -95
- package/esm2020/lib/calendar/scheduler/views/month/scheduler-month-view.component.mjs +204 -204
- package/esm2020/lib/calendar/scheduler/views/scheduler-view.component.mjs +99 -99
- package/esm2020/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.mjs +77 -77
- package/esm2020/lib/checkbox/checkbox.component.mjs +98 -98
- package/esm2020/lib/checkbox/checkbox.module.mjs +20 -20
- package/esm2020/lib/color-picker/color-box/color-box.component.mjs +422 -422
- package/esm2020/lib/color-picker/color-picker.component.mjs +82 -82
- package/esm2020/lib/color-picker/color-picker.module.mjs +24 -24
- package/esm2020/lib/context-menu/context-menu.component.mjs +65 -65
- package/esm2020/lib/context-menu/context-menu.directive.mjs +135 -135
- package/esm2020/lib/context-menu/context-menu.module.mjs +20 -20
- package/esm2020/lib/data-filter/columns/filter-column-date.component.mjs +138 -138
- package/esm2020/lib/data-filter/columns/filter-column-number.component.mjs +117 -117
- package/esm2020/lib/data-filter/columns/filter-column-selection.component.mjs +74 -74
- package/esm2020/lib/data-filter/columns/filter-column-string.component.mjs +117 -117
- package/esm2020/lib/data-filter/filter-panel/filter-panel.component.mjs +258 -258
- package/esm2020/lib/data-filter/filter.class.mjs +44 -44
- package/esm2020/lib/data-filter/filter.module.mjs +90 -90
- package/esm2020/lib/data-filter/toolbar/filter-toolbar.component.mjs +166 -166
- package/esm2020/lib/data-list/core/data-list.component.mjs +40 -40
- package/esm2020/lib/data-list/list/list.component.mjs +124 -124
- package/esm2020/lib/data-list/list/list.module.mjs +22 -22
- package/esm2020/lib/data-list/list/toolbar-list-view.component.mjs +85 -85
- package/esm2020/lib/data-source/datasource.component.mjs +47 -47
- package/esm2020/lib/data-source/datasource.module.mjs +18 -18
- package/esm2020/lib/data-source/read-param.mjs +5 -5
- package/esm2020/lib/date-picker/date-picker.component.mjs +702 -702
- package/esm2020/lib/date-picker/date-picker.module.mjs +25 -25
- package/esm2020/lib/dialog/dialog.component.mjs +24 -24
- package/esm2020/lib/dialog/dialog.module.mjs +21 -21
- package/esm2020/lib/dialog/dialog.service.mjs +150 -150
- package/esm2020/lib/drawer/content.component.mjs +18 -18
- package/esm2020/lib/drawer/drawer-container.component.mjs +36 -36
- package/esm2020/lib/drawer/drawer.component.mjs +142 -142
- package/esm2020/lib/drawer/drawer.module.mjs +23 -23
- package/esm2020/lib/dropdown/dropdown.component.mjs +176 -176
- package/esm2020/lib/dropdown/dropdown.module.mjs +26 -26
- package/esm2020/lib/fieldset/fieldset.component.mjs +59 -59
- package/esm2020/lib/fieldset/fieldset.module.mjs +19 -19
- package/esm2020/lib/form-group/form-group.component.mjs +34 -34
- package/esm2020/lib/form-group/form-group.module.mjs +21 -21
- package/esm2020/lib/label/label.component.mjs +19 -19
- package/esm2020/lib/label/label.module.mjs +21 -21
- package/esm2020/lib/loading/loading-indicator.component.mjs +17 -17
- package/esm2020/lib/loading/loading-panel.component.mjs +44 -44
- package/esm2020/lib/loading/loading.module.mjs +21 -21
- package/esm2020/lib/loading/loading.service.mjs +45 -45
- package/esm2020/lib/menu/menu-item.component.mjs +47 -47
- package/esm2020/lib/menu/menu.component.mjs +86 -86
- package/esm2020/lib/menu/menu.module.mjs +22 -22
- package/esm2020/lib/menu/menu2.component.mjs +96 -96
- package/esm2020/lib/number-box/number-box.component.mjs +622 -622
- package/esm2020/lib/number-box/number-box.module.mjs +21 -21
- package/esm2020/lib/page/content.component.mjs +32 -32
- package/esm2020/lib/page/footer.component.mjs +19 -19
- package/esm2020/lib/page/page.component.mjs +53 -53
- package/esm2020/lib/page/page.module.mjs +22 -22
- package/esm2020/lib/panel-box/panel-box.component.mjs +88 -88
- package/esm2020/lib/panel-box/panel-box.module.mjs +19 -19
- package/esm2020/lib/password-box/password-box.component.mjs +31 -31
- package/esm2020/lib/password-box/password-box.module.mjs +23 -23
- package/esm2020/lib/popover/custom-cdk-overlay.service.mjs +48 -48
- package/esm2020/lib/popover/overlay.service.mjs +90 -90
- package/esm2020/lib/popover/popover.component.mjs +127 -127
- package/esm2020/lib/popover/popover.module.mjs +19 -19
- package/esm2020/lib/popup/popup.component.mjs +147 -147
- package/esm2020/lib/popup/popup.module.mjs +25 -25
- package/esm2020/lib/popup/popup.service.mjs +93 -93
- package/esm2020/lib/progress-bar/progress-bar.component.mjs +19 -19
- package/esm2020/lib/progress-bar/progress-bar.module.mjs +19 -19
- package/esm2020/lib/property-editor/editors/check-editor/check-editor.mjs +61 -61
- package/esm2020/lib/property-editor/editors/check-editor/check.module.mjs +22 -22
- package/esm2020/lib/property-editor/editors/color-editor/color.editor.mjs +38 -38
- package/esm2020/lib/property-editor/editors/color-editor/color.module.mjs +24 -24
- package/esm2020/lib/property-editor/editors/column-editor/column.editor.mjs +115 -115
- package/esm2020/lib/property-editor/editors/column-editor/column.module.mjs +32 -32
- package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.mjs +211 -211
- package/esm2020/lib/property-editor/editors/conditional-color-editor/conditional-color.module.mjs +78 -78
- package/esm2020/lib/property-editor/editors/date-editor/date.editor.mjs +51 -51
- package/esm2020/lib/property-editor/editors/date-editor/date.module.mjs +24 -24
- package/esm2020/lib/property-editor/editors/number-editor/number.editor.mjs +63 -63
- package/esm2020/lib/property-editor/editors/number-editor/number.module.mjs +24 -24
- package/esm2020/lib/property-editor/editors/range-editor/range.editor.mjs +140 -140
- package/esm2020/lib/property-editor/editors/range-editor/range.module.mjs +61 -61
- package/esm2020/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.mjs +72 -72
- package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.editor.mjs +71 -71
- package/esm2020/lib/property-editor/editors/selectbox-editor/selectbox.module.mjs +25 -25
- package/esm2020/lib/property-editor/editors/selection-editor/selection-editor.mjs +69 -69
- package/esm2020/lib/property-editor/editors/selection-editor/selection.module.mjs +22 -22
- package/esm2020/lib/property-editor/editors/switch-editor/number.editor.mjs +29 -29
- package/esm2020/lib/property-editor/editors/switch-editor/number.module.mjs +25 -25
- package/esm2020/lib/property-editor/editors/text-editor/text.editor.mjs +32 -32
- package/esm2020/lib/property-editor/editors/text-editor/text.module.mjs +24 -24
- package/esm2020/lib/property-editor/editors/textarea-editor/textarea.editor.mjs +32 -32
- package/esm2020/lib/property-editor/editors/textarea-editor/textarea.module.mjs +24 -24
- package/esm2020/lib/property-editor/editors/time-editor/time.editor.mjs +43 -43
- package/esm2020/lib/property-editor/editors/time-editor/time.module.mjs +24 -24
- package/esm2020/lib/property-editor/property-editor-renderer.directive.mjs +154 -154
- package/esm2020/lib/property-editor/property-editor.class.mjs +101 -101
- package/esm2020/lib/property-editor/property-editor.module.mjs +196 -196
- package/esm2020/lib/query-builder/query-builder-group.component.mjs +124 -124
- package/esm2020/lib/query-builder/query-builder-popup/query-builder-popup.component.mjs +171 -171
- package/esm2020/lib/query-builder/query-builder-rule.component.mjs +395 -395
- package/esm2020/lib/query-builder/query-builder.class.mjs +20 -20
- package/esm2020/lib/query-builder/query-builder.component.mjs +82 -82
- package/esm2020/lib/query-builder/query-builder.module.mjs +62 -62
- package/esm2020/lib/query-builder/query-builder.service.mjs +197 -197
- package/esm2020/lib/search-bar/search-bar.component.mjs +283 -283
- package/esm2020/lib/search-bar/search-bar.module.mjs +63 -63
- package/esm2020/lib/searchbox/searchbox.component.mjs +79 -79
- package/esm2020/lib/searchbox/searchbox.module.mjs +24 -24
- package/esm2020/lib/selectbox/selectbox.component.mjs +961 -961
- package/esm2020/lib/selectbox/selectbox.module.mjs +44 -44
- package/esm2020/lib/selectbox/selectbox2.component.mjs +574 -574
- package/esm2020/lib/selection-list/selection-list.component.mjs +108 -108
- package/esm2020/lib/selection-list/selection-list.module.mjs +21 -21
- package/esm2020/lib/switch/switch.component.mjs +51 -51
- package/esm2020/lib/switch/switch.module.mjs +20 -20
- package/esm2020/lib/tab-page/tab-page-Renderer.component.mjs +71 -71
- package/esm2020/lib/tab-page/tab-page-host.component.mjs +116 -116
- package/esm2020/lib/tab-page/tab-page.module.mjs +21 -21
- package/esm2020/lib/tab-page/tab-page.service.mjs +156 -156
- package/esm2020/lib/tab-strip/tab-strip.component.mjs +36 -36
- package/esm2020/lib/tab-strip/tab-strip.module.mjs +19 -19
- package/esm2020/lib/tab-view/dynamic-tabs.directive.mjs +24 -24
- package/esm2020/lib/tab-view/tab-view.component.mjs +105 -105
- package/esm2020/lib/tab-view/tab-view.module.mjs +21 -21
- package/esm2020/lib/tab-view/tab.component.mjs +30 -30
- package/esm2020/lib/textarea/textarea.component.mjs +26 -26
- package/esm2020/lib/textarea/textarea.module.mjs +21 -21
- package/esm2020/lib/textbox/textbox.component.mjs +39 -39
- package/esm2020/lib/textbox/textbox.module.mjs +24 -24
- package/esm2020/lib/time-picker/time-picker.component.mjs +943 -943
- package/esm2020/lib/time-picker/time-picker.module.mjs +22 -22
- package/esm2020/lib/toast/toast-message/toast-message.component.mjs +74 -74
- package/esm2020/lib/toast/toast-wrapper/toast-wrapper.component.mjs +13 -13
- package/esm2020/lib/toast/toast.module.mjs +21 -21
- package/esm2020/lib/toast/toast.service.mjs +44 -44
- package/esm2020/lib/toolbar/group-button/toolbar-group-button.component.mjs +78 -78
- package/esm2020/lib/toolbar/menu/toolbar-menu.component.mjs +57 -57
- package/esm2020/lib/toolbar/search/toolbar-search.component.mjs +54 -54
- package/esm2020/lib/toolbar/title/toolbar-title.component.mjs +47 -47
- package/esm2020/lib/toolbar/toolbar-item.mjs +6 -6
- package/esm2020/lib/toolbar/toolbar.component.mjs +13 -13
- package/esm2020/lib/toolbar/toolbar.module.mjs +40 -40
- package/esm2020/lib/tooltip/tooltip.directive.mjs +100 -100
- package/esm2020/lib/tooltip/tooltip.module.mjs +19 -19
- package/esm2020/lib/tree-side-menu/tree-side-menu.component.mjs +646 -646
- package/esm2020/lib/tree-side-menu/tree-side-menu.module.mjs +35 -35
- package/esm2020/lib/tree-view/tree-view.component.mjs +775 -775
- package/esm2020/lib/tree-view/tree-view.module.mjs +22 -22
- package/esm2020/lib/upload-file/upload-file.component.mjs +208 -208
- package/esm2020/lib/upload-file/upload-file.events.mjs +2 -2
- package/esm2020/lib/upload-file/upload-file.module.mjs +24 -24
- package/esm2020/lib/validation/validation-form.component.mjs +65 -65
- package/esm2020/lib/validation/validation-rule.widget.mjs +111 -111
- package/esm2020/lib/validation/validation.class.mjs +2 -2
- package/esm2020/lib/validation/validation.component.mjs +89 -89
- package/esm2020/lib/validation/validation.module.mjs +34 -34
- package/esm2020/public-api.mjs +158 -158
- package/fesm2015/acorex-components.mjs +15616 -15616
- package/fesm2015/acorex-components.mjs.map +1 -1
- package/fesm2020/acorex-components.mjs +15552 -15552
- package/fesm2020/acorex-components.mjs.map +1 -1
- package/lib/accordion/accordion.component.d.ts +13 -13
- package/lib/accordion/accordion.module.d.ts +9 -9
- package/lib/base/base-page.class.d.ts +46 -46
- package/lib/base/components.class.d.ts +10 -10
- package/lib/base/element.class.d.ts +106 -106
- package/lib/base/events.class.d.ts +18 -18
- package/lib/button/button.component.d.ts +21 -21
- package/lib/button/button.module.d.ts +8 -8
- package/lib/calendar/calendar-box/calendar-box.component.d.ts +81 -81
- package/lib/calendar/calendar-box/calendar-box.module.d.ts +11 -11
- package/lib/calendar/scheduler/scheduler-views.property.d.ts +19 -19
- package/lib/calendar/scheduler/scheduler.class.d.ts +36 -36
- package/lib/calendar/scheduler/scheduler.component.d.ts +39 -39
- package/lib/calendar/scheduler/scheduler.module.d.ts +21 -21
- package/lib/calendar/scheduler/toolbars/scheduler-toolbar-navigator.d.ts +25 -25
- package/lib/calendar/scheduler/toolbars/scheduler-toolbar-views.d.ts +14 -14
- package/lib/calendar/scheduler/views/agenda/scheduler-agenda-view.component.d.ts +16 -16
- package/lib/calendar/scheduler/views/daytime/scheduler-daytime-view.component.d.ts +26 -26
- package/lib/calendar/scheduler/views/month/scheduler-month-view.component.d.ts +37 -37
- package/lib/calendar/scheduler/views/scheduler-view.component.d.ts +28 -28
- package/lib/calendar/scheduler/views/timeline/scheduler-timeline-view.component.d.ts +24 -24
- package/lib/checkbox/checkbox.component.d.ts +30 -30
- package/lib/checkbox/checkbox.module.d.ts +9 -9
- package/lib/color-picker/color-box/color-box.component.d.ts +25 -25
- package/lib/color-picker/color-picker.component.d.ts +30 -30
- package/lib/color-picker/color-picker.module.d.ts +13 -13
- package/lib/context-menu/context-menu.component.d.ts +22 -22
- package/lib/context-menu/context-menu.directive.d.ts +38 -38
- package/lib/context-menu/context-menu.module.d.ts +9 -9
- package/lib/data-filter/columns/filter-column-date.component.d.ts +22 -22
- package/lib/data-filter/columns/filter-column-number.component.d.ts +15 -15
- package/lib/data-filter/columns/filter-column-selection.component.d.ts +18 -18
- package/lib/data-filter/columns/filter-column-string.component.d.ts +15 -15
- package/lib/data-filter/filter-panel/filter-panel.component.d.ts +45 -45
- package/lib/data-filter/filter.class.d.ts +40 -40
- package/lib/data-filter/filter.module.d.ts +24 -24
- package/lib/data-filter/toolbar/filter-toolbar.component.d.ts +25 -25
- package/lib/data-list/core/data-list.component.d.ts +15 -15
- package/lib/data-list/list/list.component.d.ts +40 -40
- package/lib/data-list/list/list.module.d.ts +11 -11
- package/lib/data-list/list/toolbar-list-view.component.d.ts +17 -17
- package/lib/data-source/datasource.component.d.ts +16 -16
- package/lib/data-source/datasource.module.d.ts +7 -7
- package/lib/data-source/read-param.d.ts +40 -40
- package/lib/date-picker/date-picker.component.d.ts +81 -81
- package/lib/date-picker/date-picker.module.d.ts +14 -14
- package/lib/dialog/dialog.component.d.ts +14 -14
- package/lib/dialog/dialog.module.d.ts +10 -10
- package/lib/dialog/dialog.service.d.ts +36 -36
- package/lib/drawer/content.component.d.ts +7 -7
- package/lib/drawer/drawer-container.component.d.ts +10 -10
- package/lib/drawer/drawer.component.d.ts +34 -34
- package/lib/drawer/drawer.module.d.ts +10 -10
- package/lib/dropdown/dropdown.component.d.ts +38 -38
- package/lib/dropdown/dropdown.module.d.ts +13 -13
- package/lib/fieldset/fieldset.component.d.ts +11 -11
- package/lib/fieldset/fieldset.module.d.ts +8 -8
- package/lib/form-group/form-group.component.d.ts +14 -14
- package/lib/form-group/form-group.module.d.ts +8 -8
- package/lib/label/label.component.d.ts +9 -9
- package/lib/label/label.module.d.ts +8 -8
- package/lib/loading/loading-indicator.component.d.ts +9 -9
- package/lib/loading/loading-panel.component.d.ts +13 -13
- package/lib/loading/loading.module.d.ts +10 -10
- package/lib/loading/loading.service.d.ts +13 -13
- package/lib/menu/menu-item.component.d.ts +18 -18
- package/lib/menu/menu.component.d.ts +35 -35
- package/lib/menu/menu.module.d.ts +11 -11
- package/lib/menu/menu2.component.d.ts +21 -21
- package/lib/number-box/number-box.component.d.ts +52 -52
- package/lib/number-box/number-box.module.d.ts +10 -10
- package/lib/page/content.component.d.ts +8 -8
- package/lib/page/footer.component.d.ts +5 -5
- package/lib/page/page.component.d.ts +16 -16
- package/lib/page/page.module.d.ts +11 -11
- package/lib/panel-box/panel-box.component.d.ts +19 -19
- package/lib/panel-box/panel-box.module.d.ts +8 -8
- package/lib/password-box/password-box.component.d.ts +12 -12
- package/lib/password-box/password-box.module.d.ts +10 -10
- package/lib/popover/custom-cdk-overlay.service.d.ts +19 -19
- package/lib/popover/overlay.service.d.ts +31 -31
- package/lib/popover/popover.component.d.ts +34 -34
- package/lib/popover/popover.module.d.ts +8 -8
- package/lib/popup/popup.component.d.ts +40 -40
- package/lib/popup/popup.module.d.ts +13 -13
- package/lib/popup/popup.service.d.ts +22 -22
- package/lib/progress-bar/progress-bar.component.d.ts +7 -7
- package/lib/progress-bar/progress-bar.module.d.ts +8 -8
- package/lib/property-editor/editors/check-editor/check-editor.d.ts +19 -19
- package/lib/property-editor/editors/check-editor/check.module.d.ts +11 -11
- package/lib/property-editor/editors/color-editor/color.editor.d.ts +13 -13
- package/lib/property-editor/editors/color-editor/color.module.d.ts +12 -12
- package/lib/property-editor/editors/column-editor/column.editor.d.ts +34 -34
- package/lib/property-editor/editors/column-editor/column.module.d.ts +20 -20
- package/lib/property-editor/editors/conditional-color-editor/conditional-color.editor.d.ts +44 -44
- package/lib/property-editor/editors/conditional-color-editor/conditional-color.module.d.ts +19 -19
- package/lib/property-editor/editors/date-editor/date.editor.d.ts +28 -28
- package/lib/property-editor/editors/date-editor/date.module.d.ts +12 -12
- package/lib/property-editor/editors/number-editor/number.editor.d.ts +20 -20
- package/lib/property-editor/editors/number-editor/number.module.d.ts +12 -12
- package/lib/property-editor/editors/range-editor/range.editor.d.ts +29 -29
- package/lib/property-editor/editors/range-editor/range.module.d.ts +18 -18
- package/lib/property-editor/editors/searchbar-selectbox-editor/searchbar-selectbox-editor.d.ts +29 -29
- package/lib/property-editor/editors/selectbox-editor/selectbox.editor.d.ts +28 -28
- package/lib/property-editor/editors/selectbox-editor/selectbox.module.d.ts +14 -14
- package/lib/property-editor/editors/selection-editor/selection-editor.d.ts +25 -25
- package/lib/property-editor/editors/selection-editor/selection.module.d.ts +11 -11
- package/lib/property-editor/editors/switch-editor/number.editor.d.ts +11 -11
- package/lib/property-editor/editors/switch-editor/number.module.d.ts +13 -13
- package/lib/property-editor/editors/text-editor/text.editor.d.ts +18 -18
- package/lib/property-editor/editors/text-editor/text.module.d.ts +12 -12
- package/lib/property-editor/editors/textarea-editor/textarea.editor.d.ts +17 -17
- package/lib/property-editor/editors/textarea-editor/textarea.module.d.ts +12 -12
- package/lib/property-editor/editors/time-editor/time.editor.d.ts +17 -17
- package/lib/property-editor/editors/time-editor/time.module.d.ts +12 -12
- package/lib/property-editor/property-editor-renderer.directive.d.ts +30 -30
- package/lib/property-editor/property-editor.class.d.ts +92 -92
- package/lib/property-editor/property-editor.module.d.ts +21 -21
- package/lib/query-builder/query-builder-group.component.d.ts +33 -33
- package/lib/query-builder/query-builder-popup/query-builder-popup.component.d.ts +35 -35
- package/lib/query-builder/query-builder-rule.component.d.ts +45 -45
- package/lib/query-builder/query-builder.class.d.ts +45 -45
- package/lib/query-builder/query-builder.component.d.ts +27 -27
- package/lib/query-builder/query-builder.module.d.ts +23 -23
- package/lib/query-builder/query-builder.service.d.ts +18 -18
- package/lib/search-bar/search-bar.component.d.ts +61 -61
- package/lib/search-bar/search-bar.module.d.ts +18 -18
- package/lib/searchbox/searchbox.component.d.ts +22 -22
- package/lib/searchbox/searchbox.module.d.ts +13 -13
- package/lib/selectbox/selectbox.component.d.ts +118 -118
- package/lib/selectbox/selectbox.module.d.ts +15 -15
- package/lib/selectbox/selectbox2.component.d.ts +103 -103
- package/lib/selection-list/selection-list.component.d.ts +32 -32
- package/lib/selection-list/selection-list.module.d.ts +10 -10
- package/lib/switch/switch.component.d.ts +20 -20
- package/lib/switch/switch.module.d.ts +9 -9
- package/lib/tab-page/tab-page-Renderer.component.d.ts +16 -16
- package/lib/tab-page/tab-page-host.component.d.ts +25 -25
- package/lib/tab-page/tab-page.module.d.ts +10 -10
- package/lib/tab-page/tab-page.service.d.ts +30 -30
- package/lib/tab-strip/tab-strip.component.d.ts +28 -28
- package/lib/tab-strip/tab-strip.module.d.ts +8 -8
- package/lib/tab-view/dynamic-tabs.directive.d.ts +16 -16
- package/lib/tab-view/tab-view.component.d.ts +26 -26
- package/lib/tab-view/tab-view.module.d.ts +10 -10
- package/lib/tab-view/tab.component.d.ts +12 -12
- package/lib/textarea/textarea.component.d.ts +12 -12
- package/lib/textarea/textarea.module.d.ts +8 -8
- package/lib/textbox/textbox.component.d.ts +16 -16
- package/lib/textbox/textbox.module.d.ts +11 -11
- package/lib/time-picker/time-picker.component.d.ts +52 -52
- package/lib/time-picker/time-picker.module.d.ts +11 -11
- package/lib/toast/toast-message/toast-message.component.d.ts +18 -18
- package/lib/toast/toast-wrapper/toast-wrapper.component.d.ts +8 -8
- package/lib/toast/toast.module.d.ts +9 -9
- package/lib/toast/toast.service.d.ts +18 -18
- package/lib/toolbar/group-button/toolbar-group-button.component.d.ts +12 -12
- package/lib/toolbar/menu/toolbar-menu.component.d.ts +24 -24
- package/lib/toolbar/search/toolbar-search.component.d.ts +16 -16
- package/lib/toolbar/title/toolbar-title.component.d.ts +9 -9
- package/lib/toolbar/toolbar-item.d.ts +3 -3
- package/lib/toolbar/toolbar.component.d.ts +8 -8
- package/lib/toolbar/toolbar.module.d.ts +14 -14
- package/lib/tooltip/tooltip.directive.d.ts +21 -21
- package/lib/tooltip/tooltip.module.d.ts +8 -8
- package/lib/tree-side-menu/tree-side-menu.component.d.ts +111 -111
- package/lib/tree-side-menu/tree-side-menu.module.d.ts +11 -11
- package/lib/tree-view/tree-view.component.d.ts +121 -121
- package/lib/tree-view/tree-view.module.d.ts +11 -11
- package/lib/upload-file/upload-file.component.d.ts +42 -42
- package/lib/upload-file/upload-file.events.d.ts +10 -10
- package/lib/upload-file/upload-file.module.d.ts +13 -13
- package/lib/validation/validation-form.component.d.ts +19 -19
- package/lib/validation/validation-rule.widget.d.ts +23 -23
- package/lib/validation/validation.class.d.ts +16 -16
- package/lib/validation/validation.component.d.ts +25 -25
- package/lib/validation/validation.module.d.ts +11 -11
- package/package.json +1 -1
- package/public-api.d.ts +155 -155
@@ -1,47 +1,47 @@
|
|
1
|
-
import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';
|
2
|
-
import { AXSchedulerBaseViewComponent } from '../scheduler-view.component';
|
3
|
-
import { AXDateTime, AXDateTimeRange } from '@acorex/core';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "@angular/cdk/drag-drop";
|
6
|
-
import * as i2 from "@angular/common";
|
7
|
-
import * as i3 from "@acorex/core";
|
8
|
-
export class AXSchedulerAgendaViewComponent extends AXSchedulerBaseViewComponent {
|
9
|
-
constructor(elm, cdr) {
|
10
|
-
super();
|
11
|
-
this.elm = elm;
|
12
|
-
this.cdr = cdr;
|
13
|
-
this.hideEmptyDays = true;
|
14
|
-
}
|
15
|
-
updateSize() {
|
16
|
-
}
|
17
|
-
navigate(date = new AXDateTime()) {
|
18
|
-
this.slots = [];
|
19
|
-
for (let i = 0; i < this.interval; i++) {
|
20
|
-
let d = date.addDay(i);
|
21
|
-
const range = new AXDateTimeRange(d, d);
|
22
|
-
const slot = {
|
23
|
-
range,
|
24
|
-
events: this.getEvents(range, 'day')
|
25
|
-
};
|
26
|
-
if (this.hideEmptyDays && slot.events.length === 0) {
|
27
|
-
continue;
|
28
|
-
}
|
29
|
-
this.slots.push(slot);
|
30
|
-
}
|
31
|
-
this.navigatorDate = date;
|
32
|
-
this.cdr.detectChanges();
|
33
|
-
}
|
34
|
-
next() {
|
35
|
-
this.navigate(this.navigatorDate.addDay(this.interval));
|
36
|
-
}
|
37
|
-
prev() {
|
38
|
-
this.navigate(this.navigatorDate.addDay(-this.interval));
|
39
|
-
}
|
40
|
-
}
|
41
|
-
AXSchedulerAgendaViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSchedulerAgendaViewComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
42
|
-
AXSchedulerAgendaViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXSchedulerAgendaViewComponent, selector: "ng-component", providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerAgendaViewComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"view ax-scheduler-agenda-view\">\
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSchedulerAgendaViewComponent, decorators: [{
|
44
|
-
type: Component,
|
45
|
-
args: [{ encapsulation: ViewEncapsulation.None, providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerAgendaViewComponent }], template: "<div class=\"view ax-scheduler-agenda-view\">\
|
46
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; } });
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
1
|
+
import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';
|
2
|
+
import { AXSchedulerBaseViewComponent } from '../scheduler-view.component';
|
3
|
+
import { AXDateTime, AXDateTimeRange } from '@acorex/core';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@angular/cdk/drag-drop";
|
6
|
+
import * as i2 from "@angular/common";
|
7
|
+
import * as i3 from "@acorex/core";
|
8
|
+
export class AXSchedulerAgendaViewComponent extends AXSchedulerBaseViewComponent {
|
9
|
+
constructor(elm, cdr) {
|
10
|
+
super();
|
11
|
+
this.elm = elm;
|
12
|
+
this.cdr = cdr;
|
13
|
+
this.hideEmptyDays = true;
|
14
|
+
}
|
15
|
+
updateSize() {
|
16
|
+
}
|
17
|
+
navigate(date = new AXDateTime()) {
|
18
|
+
this.slots = [];
|
19
|
+
for (let i = 0; i < this.interval; i++) {
|
20
|
+
let d = date.addDay(i);
|
21
|
+
const range = new AXDateTimeRange(d, d);
|
22
|
+
const slot = {
|
23
|
+
range,
|
24
|
+
events: this.getEvents(range, 'day')
|
25
|
+
};
|
26
|
+
if (this.hideEmptyDays && slot.events.length === 0) {
|
27
|
+
continue;
|
28
|
+
}
|
29
|
+
this.slots.push(slot);
|
30
|
+
}
|
31
|
+
this.navigatorDate = date;
|
32
|
+
this.cdr.detectChanges();
|
33
|
+
}
|
34
|
+
next() {
|
35
|
+
this.navigate(this.navigatorDate.addDay(this.interval));
|
36
|
+
}
|
37
|
+
prev() {
|
38
|
+
this.navigate(this.navigatorDate.addDay(-this.interval));
|
39
|
+
}
|
40
|
+
}
|
41
|
+
AXSchedulerAgendaViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSchedulerAgendaViewComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
42
|
+
AXSchedulerAgendaViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXSchedulerAgendaViewComponent, selector: "ng-component", providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerAgendaViewComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"view ax-scheduler-agenda-view\">\n <table class=\"body\" cdkDropListGroup>\n <tbody *ngIf=\"slots.length; else elseTemplate\">\n <tr *ngFor=\"let slot of slots\" cdkDropList [cdkDropListData]=\"slot\" [attr.data-uid]=\"slot.uid\"\n (cdkDropListDropped)=\"onDragDropOnDay($event)\">\n <td class=\"day-column\">\n <div class=\"day-num\">{{slot.range.startTime | dt:\"DD\"}}</div>\n <div class=\"day-name\">{{slot.range.startTime | dt:\"ddd\"}}</div>\n </td>\n <td class=\"day-border\">\n <ul *ngIf=\"slot.events.length\">\n <li *ngFor=\"let e of slot.events\" [style.border-color]=\"e.color\" cdkDrag [cdkDragData]=\"e\"\n [attr.data-uid]=\"e.uid\">\n <div class=\"event-title\">{{e.title}}</div>\n <div class=\"event-time\">{{e.range.startTime | dt:\"HH:mm\"}} - <span\n *ngIf=\"e.range.duration('days')!=0 then a else b\"></span></div>\n <ng-template #a>\n {{e.range.endTime | dt:\"HH:mm\"}}\n </ng-template>\n <ng-template #b>\n {{e.range.endTime | dt:\"YYYY-MM-DD HH:mm\"}}\n </ng-template>\n\n <div *cdkDragPreview [style.background-color]=\"e.color\" class=\"event-drag-preview\">\n {{e.title}}\n </div>\n </li>\n </ul>\n <div *ngIf=\"!slot.events.length\" class=\"event-empty\">No events</div>\n </td>\n </tr>\n </tbody>\n <ng-template #elseTemplate>\n <tbody>\n <tr>\n <td colspan=\"2\">\n <div class=\"event-empty\">No events</div>\n </td>\n </tr>\n </tbody>\n </ng-template>\n </table>\n</div>", styles: [".ax-scheduler-agenda-view{height:100%;overflow-y:auto}.ax-scheduler-agenda-view table{border-top:1px solid var(--border-color)}.ax-scheduler-agenda-view .event-title{color:var(--gray-fore-color)}.ax-scheduler-agenda-view td{padding-top:5px;text-overflow:ellipsis;white-space:nowrap;vertical-align:top;border:none}.ax-scheduler-agenda-view td.day-border{border-bottom:1px solid var(--border-color);padding:5px;vertical-align:middle}.ax-scheduler-agenda-view .day-column{width:80px;text-align:center}.ax-scheduler-agenda-view .day-column .day-num{font-weight:600}.ax-scheduler-agenda-view .day-column .day-name{font-size:smaller}.ax-scheduler-agenda-view ul{list-style:none;padding:0;margin:0}.ax-scheduler-agenda-view ul li{border-left:4px solid var(--primary-color);margin-bottom:var(--sp-sm-size);padding:0 8px}.ax-scheduler-agenda-view ul li:hover{background-color:var(--primary-lighter-color);cursor:pointer}.ax-scheduler-agenda-view ul li .event-time,.ax-scheduler-agenda-view ul li .event-empty{color:var(--gray-fore-color);font-size:smaller}\n"], directives: [{ type: i1.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i1.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i1.CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }], pipes: { "dt": i3.AXDateTimePipe }, encapsulation: i0.ViewEncapsulation.None });
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSchedulerAgendaViewComponent, decorators: [{
|
44
|
+
type: Component,
|
45
|
+
args: [{ encapsulation: ViewEncapsulation.None, providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerAgendaViewComponent }], template: "<div class=\"view ax-scheduler-agenda-view\">\n <table class=\"body\" cdkDropListGroup>\n <tbody *ngIf=\"slots.length; else elseTemplate\">\n <tr *ngFor=\"let slot of slots\" cdkDropList [cdkDropListData]=\"slot\" [attr.data-uid]=\"slot.uid\"\n (cdkDropListDropped)=\"onDragDropOnDay($event)\">\n <td class=\"day-column\">\n <div class=\"day-num\">{{slot.range.startTime | dt:\"DD\"}}</div>\n <div class=\"day-name\">{{slot.range.startTime | dt:\"ddd\"}}</div>\n </td>\n <td class=\"day-border\">\n <ul *ngIf=\"slot.events.length\">\n <li *ngFor=\"let e of slot.events\" [style.border-color]=\"e.color\" cdkDrag [cdkDragData]=\"e\"\n [attr.data-uid]=\"e.uid\">\n <div class=\"event-title\">{{e.title}}</div>\n <div class=\"event-time\">{{e.range.startTime | dt:\"HH:mm\"}} - <span\n *ngIf=\"e.range.duration('days')!=0 then a else b\"></span></div>\n <ng-template #a>\n {{e.range.endTime | dt:\"HH:mm\"}}\n </ng-template>\n <ng-template #b>\n {{e.range.endTime | dt:\"YYYY-MM-DD HH:mm\"}}\n </ng-template>\n\n <div *cdkDragPreview [style.background-color]=\"e.color\" class=\"event-drag-preview\">\n {{e.title}}\n </div>\n </li>\n </ul>\n <div *ngIf=\"!slot.events.length\" class=\"event-empty\">No events</div>\n </td>\n </tr>\n </tbody>\n <ng-template #elseTemplate>\n <tbody>\n <tr>\n <td colspan=\"2\">\n <div class=\"event-empty\">No events</div>\n </td>\n </tr>\n </tbody>\n </ng-template>\n </table>\n</div>", styles: [".ax-scheduler-agenda-view{height:100%;overflow-y:auto}.ax-scheduler-agenda-view table{border-top:1px solid var(--border-color)}.ax-scheduler-agenda-view .event-title{color:var(--gray-fore-color)}.ax-scheduler-agenda-view td{padding-top:5px;text-overflow:ellipsis;white-space:nowrap;vertical-align:top;border:none}.ax-scheduler-agenda-view td.day-border{border-bottom:1px solid var(--border-color);padding:5px;vertical-align:middle}.ax-scheduler-agenda-view .day-column{width:80px;text-align:center}.ax-scheduler-agenda-view .day-column .day-num{font-weight:600}.ax-scheduler-agenda-view .day-column .day-name{font-size:smaller}.ax-scheduler-agenda-view ul{list-style:none;padding:0;margin:0}.ax-scheduler-agenda-view ul li{border-left:4px solid var(--primary-color);margin-bottom:var(--sp-sm-size);padding:0 8px}.ax-scheduler-agenda-view ul li:hover{background-color:var(--primary-lighter-color);cursor:pointer}.ax-scheduler-agenda-view ul li .event-time,.ax-scheduler-agenda-view ul li .event-empty{color:var(--gray-fore-color);font-size:smaller}\n"] }]
|
46
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; } });
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLWFnZW5kYS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3NyYy9saWIvY2FsZW5kYXIvc2NoZWR1bGVyL3ZpZXdzL2FnZW5kYS9zY2hlZHVsZXItYWdlbmRhLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9jYWxlbmRhci9zY2hlZHVsZXIvdmlld3MvYWdlbmRhL3NjaGVkdWxlci1hZ2VuZGEtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7QUFRM0QsTUFBTSxPQUFPLDhCQUErQixTQUFRLDRCQUE0QjtJQUM1RSxZQUNZLEdBQStCLEVBQy9CLEdBQXNCO1FBRTlCLEtBQUssRUFBRSxDQUFDO1FBSEEsUUFBRyxHQUFILEdBQUcsQ0FBNEI7UUFDL0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFLbEMsa0JBQWEsR0FBWSxJQUFJLENBQUM7SUFGOUIsQ0FBQztJQUlELFVBQVU7SUFDVixDQUFDO0lBR0QsUUFBUSxDQUFDLE9BQW1CLElBQUksVUFBVSxFQUFFO1FBQ3hDLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxlQUFlLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxHQUFvQjtnQkFDMUIsS0FBSztnQkFDTCxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDO2FBQ3ZDLENBQUE7WUFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNoRCxTQUFTO2FBQ1o7WUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6QjtRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUk7UUFDQSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFDRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzdELENBQUM7OzRIQXJDUSw4QkFBOEI7Z0hBQTlCLDhCQUE4Qix1Q0FGNUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxXQUFXLEVBQUUsOEJBQThCLEVBQUUsQ0FBQyxpRENUdkcsNG5FQTBDTTs0RkQvQk8sOEJBQThCO2tCQU4xQyxTQUFTO29DQUdTLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxXQUFXLGdDQUFnQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIENoYW5nZURldGVjdG9yUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhTY2hlZHVsZXJCYXNlVmlld0NvbXBvbmVudCB9IGZyb20gJy4uL3NjaGVkdWxlci12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFNjaGVkdWxlclNsb3QgfSBmcm9tICcuLi8uLi9zY2hlZHVsZXIuY2xhc3MnO1xuaW1wb3J0IHsgQVhEYXRlVGltZSwgQVhEYXRlVGltZVJhbmdlIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjaGVkdWxlci1hZ2VuZGEtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2NoZWR1bGVyLWFnZW5kYS12aWV3LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEFYU2NoZWR1bGVyQmFzZVZpZXdDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNjaGVkdWxlckFnZW5kYVZpZXdDb21wb25lbnQgfV1cbn0pXG5leHBvcnQgY2xhc3MgQVhTY2hlZHVsZXJBZ2VuZGFWaWV3Q29tcG9uZW50IGV4dGVuZHMgQVhTY2hlZHVsZXJCYXNlVmlld0NvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZWxtOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PixcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgaGlkZUVtcHR5RGF5czogYm9vbGVhbiA9IHRydWU7XG5cbiAgICB1cGRhdGVTaXplKCkge1xuICAgIH1cblxuXG4gICAgbmF2aWdhdGUoZGF0ZTogQVhEYXRlVGltZSA9IG5ldyBBWERhdGVUaW1lKCkpIHtcbiAgICAgICAgdGhpcy5zbG90cyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaW50ZXJ2YWw7IGkrKykge1xuICAgICAgICAgICAgbGV0IGQgPSBkYXRlLmFkZERheShpKTtcbiAgICAgICAgICAgIGNvbnN0IHJhbmdlID0gbmV3IEFYRGF0ZVRpbWVSYW5nZShkLCBkKTtcbiAgICAgICAgICAgIGNvbnN0IHNsb3Q6IEFYU2NoZWR1bGVyU2xvdCA9IHtcbiAgICAgICAgICAgICAgICByYW5nZSxcbiAgICAgICAgICAgICAgICBldmVudHM6IHRoaXMuZ2V0RXZlbnRzKHJhbmdlLCAnZGF5JylcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLmhpZGVFbXB0eURheXMgJiYgc2xvdC5ldmVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNsb3RzLnB1c2goc2xvdCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5uYXZpZ2F0b3JEYXRlID0gZGF0ZTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIG5leHQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmF2aWdhdGUodGhpcy5uYXZpZ2F0b3JEYXRlLmFkZERheSh0aGlzLmludGVydmFsKSk7XG4gICAgfVxuICAgIHByZXYoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubmF2aWdhdGUodGhpcy5uYXZpZ2F0b3JEYXRlLmFkZERheSgtdGhpcy5pbnRlcnZhbCkpO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ2aWV3IGF4LXNjaGVkdWxlci1hZ2VuZGEtdmlld1wiPlxuICAgIDx0YWJsZSBjbGFzcz1cImJvZHlcIiBjZGtEcm9wTGlzdEdyb3VwPlxuICAgICAgICA8dGJvZHkgKm5nSWY9XCJzbG90cy5sZW5ndGg7IGVsc2UgZWxzZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHNsb3Qgb2Ygc2xvdHNcIiBjZGtEcm9wTGlzdCBbY2RrRHJvcExpc3REYXRhXT1cInNsb3RcIiBbYXR0ci5kYXRhLXVpZF09XCJzbG90LnVpZFwiXG4gICAgICAgICAgICAgICAgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJvbkRyYWdEcm9wT25EYXkoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImRheS1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRheS1udW1cIj57e3Nsb3QucmFuZ2Uuc3RhcnRUaW1lIHwgZHQ6XCJERFwifX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRheS1uYW1lXCI+e3tzbG90LnJhbmdlLnN0YXJ0VGltZSB8IGR0OlwiZGRkXCJ9fTwvZGl2PlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwiZGF5LWJvcmRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8dWwgKm5nSWY9XCJzbG90LmV2ZW50cy5sZW5ndGhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgZSBvZiBzbG90LmV2ZW50c1wiIFtzdHlsZS5ib3JkZXItY29sb3JdPVwiZS5jb2xvclwiIGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cImVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdWlkXT1cImUudWlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LXRpdGxlXCI+e3tlLnRpdGxlfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtdGltZVwiPnt7ZS5yYW5nZS5zdGFydFRpbWUgfCBkdDpcIkhIOm1tXCJ9fSAtIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImUucmFuZ2UuZHVyYXRpb24oJ2RheXMnKSE9MCB0aGVuIGEgZWxzZSBiXCI+PC9zcGFuPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlLnJhbmdlLmVuZFRpbWUgfCBkdDpcIkhIOm1tXCJ9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2UucmFuZ2UuZW5kVGltZSB8IGR0OlwiWVlZWS1NTS1ERCBISDptbVwifX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqY2RrRHJhZ1ByZXZpZXcgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZS5jb2xvclwiIGNsYXNzPVwiZXZlbnQtZHJhZy1wcmV2aWV3XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZS50aXRsZX19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXNsb3QuZXZlbnRzLmxlbmd0aFwiIGNsYXNzPVwiZXZlbnQtZW1wdHlcIj5ObyBldmVudHM8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgPC90Ym9keT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNlbHNlVGVtcGxhdGU+XG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8dGQgY29sc3Bhbj1cIjJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC1lbXB0eVwiPk5vIGV2ZW50czwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvdGFibGU+XG48L2Rpdj4iXX0=
|
@@ -1,95 +1,95 @@
|
|
1
|
-
import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';
|
2
|
-
import { AXSchedulerBaseViewComponent } from '../scheduler-view.component';
|
3
|
-
import { AXDateTime, AXDateTimeRange } from '@acorex/core';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "@angular/common";
|
6
|
-
import * as i2 from "@angular/cdk/drag-drop";
|
7
|
-
import * as i3 from "@acorex/core";
|
8
|
-
export class AXSchedulerDayTimeViewComponent extends AXSchedulerBaseViewComponent {
|
9
|
-
constructor(elm, cdr) {
|
10
|
-
super();
|
11
|
-
this.elm = elm;
|
12
|
-
this.cdr = cdr;
|
13
|
-
this.times = [];
|
14
|
-
}
|
15
|
-
ngOnInit() {
|
16
|
-
}
|
17
|
-
ngAfterViewInit() {
|
18
|
-
this.vScroll = this.elm.nativeElement.querySelector('.v-scroll');
|
19
|
-
this.header = this.elm.nativeElement.querySelector('.header');
|
20
|
-
this.body = this.elm.nativeElement.querySelector('.body');
|
21
|
-
this.view = this.elm.nativeElement.querySelector('.view');
|
22
|
-
this.container = this.elm.nativeElement.closest('.view-container');
|
23
|
-
}
|
24
|
-
updateSize() {
|
25
|
-
const firstTr = this.body.querySelector('tr');
|
26
|
-
if (firstTr) {
|
27
|
-
let index = 0;
|
28
|
-
this.header.querySelectorAll('th').forEach(c => {
|
29
|
-
const td = firstTr.children.item(index++);
|
30
|
-
td.style.width = `${c.offsetWidth}px`;
|
31
|
-
});
|
32
|
-
this.vScroll.style.height = `calc(100% - ${this.header.clientHeight}px)`;
|
33
|
-
if (this.container) {
|
34
|
-
this.view.style.height = `${this.container.clientHeight}px`;
|
35
|
-
}
|
36
|
-
}
|
37
|
-
this.arrangeEvents();
|
38
|
-
}
|
39
|
-
navigate(date = new AXDateTime()) {
|
40
|
-
this.times = [];
|
41
|
-
this.slots = [];
|
42
|
-
for (let i = 0; i < this.interval; i++) {
|
43
|
-
const d = date.addDay(i);
|
44
|
-
const range = new AXDateTimeRange(d, d);
|
45
|
-
const slot = {
|
46
|
-
range,
|
47
|
-
events: this.getEvents(range, 'day')
|
48
|
-
};
|
49
|
-
this.slots.push(slot);
|
50
|
-
}
|
51
|
-
for (let i = 0; i < 24; i++) {
|
52
|
-
this.times.push({
|
53
|
-
display: ('0' + i).slice(-2) + ':00',
|
54
|
-
value: i
|
55
|
-
});
|
56
|
-
}
|
57
|
-
this.navigatorDate = date;
|
58
|
-
this.cdr.detectChanges();
|
59
|
-
}
|
60
|
-
next() {
|
61
|
-
this.navigate(this.navigatorDate.addDay(this.interval));
|
62
|
-
}
|
63
|
-
prev() {
|
64
|
-
this.navigate(this.navigatorDate.addDay(-this.interval));
|
65
|
-
}
|
66
|
-
arrangeEvents() {
|
67
|
-
const events = this.elm.nativeElement.querySelectorAll('.event');
|
68
|
-
if (events.length) {
|
69
|
-
const height = events[0].closest('td').offsetHeight;
|
70
|
-
events.forEach(e => {
|
71
|
-
const uid = e.attributes.getNamedItem('data-uid').value;
|
72
|
-
const event = this.events.find(c => c.uid === uid);
|
73
|
-
const dur = Math.ceil(Math.abs(event.range.duration('hours')));
|
74
|
-
let total = dur + 1;
|
75
|
-
if (event.range.startTime.hour + total > 23) {
|
76
|
-
total = 24 - event.range.startTime.hour;
|
77
|
-
}
|
78
|
-
e.style.height = (total * height) + 'px';
|
79
|
-
});
|
80
|
-
}
|
81
|
-
}
|
82
|
-
findEventIndex(event) {
|
83
|
-
const a = this.events.filter(c => c.range.startTime.equal(event.range.startTime, 'day')).sort((d1, d2) => {
|
84
|
-
return d1.range.startTime.compaireNew(d2.range.startTime);
|
85
|
-
});
|
86
|
-
return a.indexOf(event);
|
87
|
-
}
|
88
|
-
}
|
89
|
-
AXSchedulerDayTimeViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSchedulerDayTimeViewComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
90
|
-
AXSchedulerDayTimeViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXSchedulerDayTimeViewComponent, selector: "ng-component", providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerDayTimeViewComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"view ax-scheduler-day-time-view\">\
|
91
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSchedulerDayTimeViewComponent, decorators: [{
|
92
|
-
type: Component,
|
93
|
-
args: [{ encapsulation: ViewEncapsulation.None, providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerDayTimeViewComponent }], template: "<div class=\"view ax-scheduler-day-time-view\">\
|
94
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; } });
|
95
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLWRheXRpbWUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL2NhbGVuZGFyL3NjaGVkdWxlci92aWV3cy9kYXl0aW1lL3NjaGVkdWxlci1kYXl0aW1lLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9jYWxlbmRhci9zY2hlZHVsZXIvdmlld3MvZGF5dGltZS9zY2hlZHVsZXItZGF5dGltZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQVEzRCxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsNEJBQTRCO0lBQzdFLFlBQW9CLEdBQStCLEVBQVUsR0FBc0I7UUFBSSxLQUFLLEVBQUUsQ0FBQztRQUEzRSxRQUFHLEdBQUgsR0FBRyxDQUE0QjtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ25GLFVBQUssR0FBVSxFQUFFLENBQUM7SUFEOEUsQ0FBQztJQVFqRyxRQUFRO0lBQ1IsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBYyxXQUFXLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FB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QUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQXVCO1FBQ2xDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzdCLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FDeEQsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDZCxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7OzZIQTFGUSwrQkFBK0I7aUhBQS9CLCtCQUErQix1Q0FGN0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxXQUFXLEVBQUUsK0JBQStCLEVBQUUsQ0FBQyxpRENUeEcsaTVFQTRDTTs0RkRqQ08sK0JBQStCO2tCQU4zQyxTQUFTO29DQUdTLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxXQUFXLGlDQUFpQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIENoYW5nZURldGVjdG9yUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWFNjaGVkdWxlckJhc2VWaWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vc2NoZWR1bGVyLXZpZXcuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhTY2hlZHVsZXJTbG90LCBBWFNjaGVkdWxlckV2ZW50IH0gZnJvbSAnLi4vLi4vc2NoZWR1bGVyLmNsYXNzJztcclxuaW1wb3J0IHsgQVhEYXRlVGltZSwgQVhEYXRlVGltZVJhbmdlIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjaGVkdWxlci1kYXl0aW1lLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc2NoZWR1bGVyLWRheXRpbWUtdmlldy5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhTY2hlZHVsZXJCYXNlVmlld0NvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2NoZWR1bGVyRGF5VGltZVZpZXdDb21wb25lbnQgfV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFYU2NoZWR1bGVyRGF5VGltZVZpZXdDb21wb25lbnQgZXh0ZW5kcyBBWFNjaGVkdWxlckJhc2VWaWV3Q29tcG9uZW50IHtcclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxtOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7IHN1cGVyKCk7IH1cclxuICAgIHRpbWVzOiBhbnlbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSB2U2Nyb2xsOiBIVE1MRWxlbWVudDtcclxuICAgIHByaXZhdGUgY29udGFpbmVyOiBIVE1MRWxlbWVudDtcclxuICAgIHByaXZhdGUgdmlldzogSFRNTEVsZW1lbnQ7XHJcbiAgICBwcml2YXRlIGhlYWRlcjogSFRNTEVsZW1lbnQ7XHJcbiAgICBwcml2YXRlIGJvZHk6IEhUTUxFbGVtZW50O1xyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnZTY3JvbGwgPSB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcudi1zY3JvbGwnKTtcclxuICAgICAgICB0aGlzLmhlYWRlciA9IHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5oZWFkZXInKTtcclxuICAgICAgICB0aGlzLmJvZHkgPSB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcuYm9keScpO1xyXG4gICAgICAgIHRoaXMudmlldyA9IHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy52aWV3Jyk7XHJcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LmNsb3Nlc3QoJy52aWV3LWNvbnRhaW5lcicpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIHVwZGF0ZVNpemUoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZmlyc3RUciA9IHRoaXMuYm9keS5xdWVyeVNlbGVjdG9yKCd0cicpO1xyXG4gICAgICAgIGlmIChmaXJzdFRyKSB7XHJcbiAgICAgICAgICAgIGxldCBpbmRleCA9IDA7XHJcbiAgICAgICAgICAgIHRoaXMuaGVhZGVyLnF1ZXJ5U2VsZWN0b3JBbGwoJ3RoJykuZm9yRWFjaChjID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHRkID0gZmlyc3RUci5jaGlsZHJlbi5pdGVtKGluZGV4KyspIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgICAgICAgdGQuc3R5bGUud2lkdGggPSBgJHtjLm9mZnNldFdpZHRofXB4YDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHRoaXMudlNjcm9sbC5zdHlsZS5oZWlnaHQgPSBgY2FsYygxMDAlIC0gJHt0aGlzLmhlYWRlci5jbGllbnRIZWlnaHR9cHgpYDtcclxuICAgICAgICAgICAgaWYgKHRoaXMuY29udGFpbmVyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXcuc3R5bGUuaGVpZ2h0ID0gYCR7dGhpcy5jb250YWluZXIuY2xpZW50SGVpZ2h0fXB4YDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmFycmFuZ2VFdmVudHMoKTtcclxuICAgIH1cclxuXHJcbiAgICBuYXZpZ2F0ZShkYXRlOiBBWERhdGVUaW1lID0gbmV3IEFYRGF0ZVRpbWUoKSkge1xyXG4gICAgICAgIHRoaXMudGltZXMgPSBbXTtcclxuICAgICAgICB0aGlzLnNsb3RzID0gW107XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmludGVydmFsOyBpKyspIHtcclxuICAgICAgICAgICAgY29uc3QgZCA9IGRhdGUuYWRkRGF5KGkpO1xyXG4gICAgICAgICAgICBjb25zdCByYW5nZSA9IG5ldyBBWERhdGVUaW1lUmFuZ2UoZCwgZCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHNsb3Q6IEFYU2NoZWR1bGVyU2xvdCA9IHtcclxuICAgICAgICAgICAgICAgIHJhbmdlLFxyXG4gICAgICAgICAgICAgICAgZXZlbnRzOiB0aGlzLmdldEV2ZW50cyhyYW5nZSwgJ2RheScpXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIHRoaXMuc2xvdHMucHVzaChzbG90KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAyNDsgaSsrKSB7XHJcbiAgICAgICAgICAgIHRoaXMudGltZXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAoJzAnICsgaSkuc2xpY2UoLTIpICsgJzowMCcsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogaVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5uYXZpZ2F0b3JEYXRlID0gZGF0ZTtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmV4dCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm5hdmlnYXRlKHRoaXMubmF2aWdhdG9yRGF0ZS5hZGREYXkodGhpcy5pbnRlcnZhbCkpO1xyXG4gICAgfVxyXG4gICAgcHJldigpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLm5hdmlnYXRlKHRoaXMubmF2aWdhdG9yRGF0ZS5hZGREYXkoLXRoaXMuaW50ZXJ2YWwpKTtcclxuICAgIH1cclxuXHJcbiAgICBhcnJhbmdlRXZlbnRzKCkge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50cyA9IHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbDxIVE1MRWxlbWVudD4oJy5ldmVudCcpO1xyXG4gICAgICAgIGlmIChldmVudHMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IGV2ZW50c1swXS5jbG9zZXN0KCd0ZCcpLm9mZnNldEhlaWdodDtcclxuICAgICAgICAgICAgZXZlbnRzLmZvckVhY2goZSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCB1aWQgPSBlLmF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKCdkYXRhLXVpZCcpLnZhbHVlO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgZXZlbnQgPSB0aGlzLmV2ZW50cy5maW5kKGMgPT4gYy51aWQgPT09IHVpZCk7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBkdXIgPSBNYXRoLmNlaWwoTWF0aC5hYnMoZXZlbnQucmFuZ2UuZHVyYXRpb24oJ2hvdXJzJykpKTtcclxuICAgICAgICAgICAgICAgIGxldCB0b3RhbCA9IGR1ciArIDE7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQucmFuZ2Uuc3RhcnRUaW1lLmhvdXIgKyB0b3RhbCA+IDIzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdG90YWwgPSAyNCAtIGV2ZW50LnJhbmdlLnN0YXJ0VGltZS5ob3VyO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgZS5zdHlsZS5oZWlnaHQgPSAodG90YWwgKiBoZWlnaHQpICsgJ3B4JztcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGZpbmRFdmVudEluZGV4KGV2ZW50OiBBWFNjaGVkdWxlckV2ZW50KTogbnVtYmVyIHtcclxuICAgICAgICBjb25zdCBhID0gdGhpcy5ldmVudHMuZmlsdGVyKGMgPT5cclxuICAgICAgICAgICAgYy5yYW5nZS5zdGFydFRpbWUuZXF1YWwoZXZlbnQucmFuZ2Uuc3RhcnRUaW1lLCAnZGF5JylcclxuICAgICAgICApLnNvcnQoKGQxLCBkMikgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gZDEucmFuZ2Uuc3RhcnRUaW1lLmNvbXBhaXJlTmV3KGQyLnJhbmdlLnN0YXJ0VGltZSk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBhLmluZGV4T2YoZXZlbnQpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ2aWV3IGF4LXNjaGVkdWxlci1kYXktdGltZS12aWV3XCI+XHJcbiAgICA8dGFibGUgY2xhc3M9XCJoZWFkZXJcIj5cclxuICAgICAgICA8dGhlYWQ+XHJcbiAgICAgICAgICAgIDx0aCBjbGFzcz1cInRpbWUtY29sdW1uXCI+PC90aD5cclxuICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBkIG9mIHNsb3RzXCIgY2xhc3M9XCJoZWFkZXItY2VsbFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbY2xhc3Muc2FtZS13ZWVrLWRheV09XCJkLnJhbmdlLnN0YXJ0VGltZS5lcXVhbCh0b2RheSlcIj5cclxuICAgICAgICAgICAgICAgICAgICB7e2QucmFuZ2Uuc3RhcnRUaW1lIHwgZHQ6ICdkZGQnfX08YnI+XHJcbiAgICAgICAgICAgICAgICAgICAge3tkLnJhbmdlLnN0YXJ0VGltZSB8IGR0OiAnREQnfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgIDwvdGhlYWQ+XHJcbiAgICA8L3RhYmxlPlxyXG4gICAgPGRpdiBjbGFzcz1cInYtc2Nyb2xsXCI+XHJcbiAgICAgICAgPHRhYmxlIGNsYXNzPVwiYm9keVwiIGNka0Ryb3BMaXN0R3JvdXA+XHJcbiAgICAgICAgICAgIDx0Ym9keT5cclxuICAgICAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgdCBvZiB0aW1lc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0ZD5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3t0LmRpc3BsYXl9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBkIG9mIHNsb3RzXCIgY2xhc3M9XCJzbG90LWNlbGxcIiBjZGtEcm9wTGlzdCBbY2RrRHJvcExpc3REYXRhXT1cImRcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25EcmFnRHJvcE9uRGF5KCRldmVudCx0LnZhbHVlKVwiIFthdHRyLmRhdGEtdWlkXT1cImQudWlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlIG9mIGQuZXZlbnRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImUucmFuZ2Uuc3RhcnRUaW1lLmhvdXI9PXQudmFsdWVcIiBjbGFzcz1cImV2ZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiIGFyaWEtcmVhZG9ubHk9XCJmYWxzZVwiIGFyaWEtc2VsZWN0ZWQ9XCJ0cnVlXCIgYXJpYS1ncmFiYmVkPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZGtEcmFnIFtjZGtEcmFnRGF0YV09XCJlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdWlkXT1cImUudWlkXCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZS5jb2xvclwiIFt0aXRsZV09XCJlLnRpdGxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJldmVudC10aXRsZVwiPnt7ZS50aXRsZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2UucmFuZ2Uuc3RhcnRUaW1lIHwgZHQ6ICdISDptbSd9fTwvc3Bhbj4gLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3tlLnJhbmdlLmVuZFRpbWUgfCBkdDogJ0hIOm1tJ319PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqY2RrRHJhZ1ByZXZpZXcgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZS5jb2xvclwiIGNsYXNzPVwiZXZlbnQtZHJhZy1wcmV2aWV3XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2UudGl0bGV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LWRyYWctcGxhY2Vob2xkZXJcIiAqY2RrRHJhZ1BsYWNlaG9sZGVyPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICA8L3Rib2R5PlxyXG4gICAgICAgIDwvdGFibGU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
|
1
|
+
import { Component, ElementRef, ChangeDetectorRef, ViewEncapsulation } from '@angular/core';
|
2
|
+
import { AXSchedulerBaseViewComponent } from '../scheduler-view.component';
|
3
|
+
import { AXDateTime, AXDateTimeRange } from '@acorex/core';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@angular/common";
|
6
|
+
import * as i2 from "@angular/cdk/drag-drop";
|
7
|
+
import * as i3 from "@acorex/core";
|
8
|
+
export class AXSchedulerDayTimeViewComponent extends AXSchedulerBaseViewComponent {
|
9
|
+
constructor(elm, cdr) {
|
10
|
+
super();
|
11
|
+
this.elm = elm;
|
12
|
+
this.cdr = cdr;
|
13
|
+
this.times = [];
|
14
|
+
}
|
15
|
+
ngOnInit() {
|
16
|
+
}
|
17
|
+
ngAfterViewInit() {
|
18
|
+
this.vScroll = this.elm.nativeElement.querySelector('.v-scroll');
|
19
|
+
this.header = this.elm.nativeElement.querySelector('.header');
|
20
|
+
this.body = this.elm.nativeElement.querySelector('.body');
|
21
|
+
this.view = this.elm.nativeElement.querySelector('.view');
|
22
|
+
this.container = this.elm.nativeElement.closest('.view-container');
|
23
|
+
}
|
24
|
+
updateSize() {
|
25
|
+
const firstTr = this.body.querySelector('tr');
|
26
|
+
if (firstTr) {
|
27
|
+
let index = 0;
|
28
|
+
this.header.querySelectorAll('th').forEach(c => {
|
29
|
+
const td = firstTr.children.item(index++);
|
30
|
+
td.style.width = `${c.offsetWidth}px`;
|
31
|
+
});
|
32
|
+
this.vScroll.style.height = `calc(100% - ${this.header.clientHeight}px)`;
|
33
|
+
if (this.container) {
|
34
|
+
this.view.style.height = `${this.container.clientHeight}px`;
|
35
|
+
}
|
36
|
+
}
|
37
|
+
this.arrangeEvents();
|
38
|
+
}
|
39
|
+
navigate(date = new AXDateTime()) {
|
40
|
+
this.times = [];
|
41
|
+
this.slots = [];
|
42
|
+
for (let i = 0; i < this.interval; i++) {
|
43
|
+
const d = date.addDay(i);
|
44
|
+
const range = new AXDateTimeRange(d, d);
|
45
|
+
const slot = {
|
46
|
+
range,
|
47
|
+
events: this.getEvents(range, 'day')
|
48
|
+
};
|
49
|
+
this.slots.push(slot);
|
50
|
+
}
|
51
|
+
for (let i = 0; i < 24; i++) {
|
52
|
+
this.times.push({
|
53
|
+
display: ('0' + i).slice(-2) + ':00',
|
54
|
+
value: i
|
55
|
+
});
|
56
|
+
}
|
57
|
+
this.navigatorDate = date;
|
58
|
+
this.cdr.detectChanges();
|
59
|
+
}
|
60
|
+
next() {
|
61
|
+
this.navigate(this.navigatorDate.addDay(this.interval));
|
62
|
+
}
|
63
|
+
prev() {
|
64
|
+
this.navigate(this.navigatorDate.addDay(-this.interval));
|
65
|
+
}
|
66
|
+
arrangeEvents() {
|
67
|
+
const events = this.elm.nativeElement.querySelectorAll('.event');
|
68
|
+
if (events.length) {
|
69
|
+
const height = events[0].closest('td').offsetHeight;
|
70
|
+
events.forEach(e => {
|
71
|
+
const uid = e.attributes.getNamedItem('data-uid').value;
|
72
|
+
const event = this.events.find(c => c.uid === uid);
|
73
|
+
const dur = Math.ceil(Math.abs(event.range.duration('hours')));
|
74
|
+
let total = dur + 1;
|
75
|
+
if (event.range.startTime.hour + total > 23) {
|
76
|
+
total = 24 - event.range.startTime.hour;
|
77
|
+
}
|
78
|
+
e.style.height = (total * height) + 'px';
|
79
|
+
});
|
80
|
+
}
|
81
|
+
}
|
82
|
+
findEventIndex(event) {
|
83
|
+
const a = this.events.filter(c => c.range.startTime.equal(event.range.startTime, 'day')).sort((d1, d2) => {
|
84
|
+
return d1.range.startTime.compaireNew(d2.range.startTime);
|
85
|
+
});
|
86
|
+
return a.indexOf(event);
|
87
|
+
}
|
88
|
+
}
|
89
|
+
AXSchedulerDayTimeViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSchedulerDayTimeViewComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
90
|
+
AXSchedulerDayTimeViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: AXSchedulerDayTimeViewComponent, selector: "ng-component", providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerDayTimeViewComponent }], usesInheritance: true, ngImport: i0, template: "<div class=\"view ax-scheduler-day-time-view\">\n <table class=\"header\">\n <thead>\n <th class=\"time-column\"></th>\n <th *ngFor=\"let d of slots\" class=\"header-cell\">\n <div [class.same-week-day]=\"d.range.startTime.equal(today)\">\n {{d.range.startTime | dt: 'ddd'}}<br>\n {{d.range.startTime | dt: 'DD'}}\n </div>\n </th>\n </thead>\n </table>\n <div class=\"v-scroll\">\n <table class=\"body\" cdkDropListGroup>\n <tbody>\n <tr *ngFor=\"let t of times\">\n <td>\n {{t.display}}\n </td>\n <td *ngFor=\"let d of slots\" class=\"slot-cell\" cdkDropList [cdkDropListData]=\"d\"\n (cdkDropListDropped)=\"onDragDropOnDay($event,t.value)\" [attr.data-uid]=\"d.uid\">\n <div class=\"event-wrapper\">\n <ng-container *ngFor=\"let e of d.events\">\n <div *ngIf=\"e.range.startTime.hour==t.value\" class=\"event\"\n role=\"button\" aria-readonly=\"false\" aria-selected=\"true\" aria-grabbed=\"false\"\n cdkDrag [cdkDragData]=\"e\" \n [attr.data-uid]=\"e.uid\" [style.background-color]=\"e.color\" [title]=\"e.title\">\n <div class=\"event-title\">{{e.title}}</div>\n <div>\n <span>{{e.range.startTime | dt: 'HH:mm'}}</span> -\n <span>{{e.range.endTime | dt: 'HH:mm'}}</span>\n </div>\n <div *cdkDragPreview [style.background-color]=\"e.color\" class=\"event-drag-preview\">\n {{e.title}}\n </div>\n <div class=\"event-drag-placeholder\" *cdkDragPlaceholder></div>\n </div>\n </ng-container>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>", styles: [".ax-scheduler-day-time-view .event-wrapper{position:absolute;top:0;left:0;display:inline-flex;flex:auto;flex-direction:row;flex-wrap:nowrap;justify-content:flex-start;width:100%}.ax-scheduler-day-time-view .event-wrapper .event{display:block;position:relative;flex:1}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.CdkDropListGroup, selector: "[cdkDropListGroup]", inputs: ["cdkDropListGroupDisabled"], exportAs: ["cdkDropListGroup"] }, { type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { type: i2.CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { type: i2.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }], pipes: { "dt": i3.AXDateTimePipe }, encapsulation: i0.ViewEncapsulation.None });
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: AXSchedulerDayTimeViewComponent, decorators: [{
|
92
|
+
type: Component,
|
93
|
+
args: [{ encapsulation: ViewEncapsulation.None, providers: [{ provide: AXSchedulerBaseViewComponent, useExisting: AXSchedulerDayTimeViewComponent }], template: "<div class=\"view ax-scheduler-day-time-view\">\n <table class=\"header\">\n <thead>\n <th class=\"time-column\"></th>\n <th *ngFor=\"let d of slots\" class=\"header-cell\">\n <div [class.same-week-day]=\"d.range.startTime.equal(today)\">\n {{d.range.startTime | dt: 'ddd'}}<br>\n {{d.range.startTime | dt: 'DD'}}\n </div>\n </th>\n </thead>\n </table>\n <div class=\"v-scroll\">\n <table class=\"body\" cdkDropListGroup>\n <tbody>\n <tr *ngFor=\"let t of times\">\n <td>\n {{t.display}}\n </td>\n <td *ngFor=\"let d of slots\" class=\"slot-cell\" cdkDropList [cdkDropListData]=\"d\"\n (cdkDropListDropped)=\"onDragDropOnDay($event,t.value)\" [attr.data-uid]=\"d.uid\">\n <div class=\"event-wrapper\">\n <ng-container *ngFor=\"let e of d.events\">\n <div *ngIf=\"e.range.startTime.hour==t.value\" class=\"event\"\n role=\"button\" aria-readonly=\"false\" aria-selected=\"true\" aria-grabbed=\"false\"\n cdkDrag [cdkDragData]=\"e\" \n [attr.data-uid]=\"e.uid\" [style.background-color]=\"e.color\" [title]=\"e.title\">\n <div class=\"event-title\">{{e.title}}</div>\n <div>\n <span>{{e.range.startTime | dt: 'HH:mm'}}</span> -\n <span>{{e.range.endTime | dt: 'HH:mm'}}</span>\n </div>\n <div *cdkDragPreview [style.background-color]=\"e.color\" class=\"event-drag-preview\">\n {{e.title}}\n </div>\n <div class=\"event-drag-placeholder\" *cdkDragPlaceholder></div>\n </div>\n </ng-container>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</div>", styles: [".ax-scheduler-day-time-view .event-wrapper{position:absolute;top:0;left:0;display:inline-flex;flex:auto;flex-direction:row;flex-wrap:nowrap;justify-content:flex-start;width:100%}.ax-scheduler-day-time-view .event-wrapper .event{display:block;position:relative;flex:1}\n"] }]
|
94
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; } });
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLWRheXRpbWUtdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9zcmMvbGliL2NhbGVuZGFyL3NjaGVkdWxlci92aWV3cy9kYXl0aW1lL3NjaGVkdWxlci1kYXl0aW1lLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvc3JjL2xpYi9jYWxlbmRhci9zY2hlZHVsZXIvdmlld3MvZGF5dGltZS9zY2hlZHVsZXItZGF5dGltZS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTNFLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQVEzRCxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsNEJBQTRCO0lBQzdFLFlBQW9CLEdBQStCLEVBQVUsR0FBc0I7UUFBSSxLQUFLLEVBQUUsQ0FBQztRQUEzRSxRQUFHLEdBQUgsR0FBRyxDQUE0QjtRQUFVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ25GLFVBQUssR0FBVSxFQUFFLENBQUM7SUFEOEUsQ0FBQztJQVFqRyxRQUFRO0lBQ1IsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBYyxXQUFXLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FB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QUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQXVCO1FBQ2xDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQzdCLENBQUMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FDeEQsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDZCxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7OzZIQTFGUSwrQkFBK0I7aUhBQS9CLCtCQUErQix1Q0FGN0IsQ0FBQyxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxXQUFXLEVBQUUsK0JBQStCLEVBQUUsQ0FBQyxpRENUeEcseXpFQTRDTTs0RkRqQ08sK0JBQStCO2tCQU4zQyxTQUFTO29DQUdTLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxFQUFFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxXQUFXLGlDQUFpQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIENoYW5nZURldGVjdG9yUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhTY2hlZHVsZXJCYXNlVmlld0NvbXBvbmVudCB9IGZyb20gJy4uL3NjaGVkdWxlci12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFNjaGVkdWxlclNsb3QsIEFYU2NoZWR1bGVyRXZlbnQgfSBmcm9tICcuLi8uLi9zY2hlZHVsZXIuY2xhc3MnO1xuaW1wb3J0IHsgQVhEYXRlVGltZSwgQVhEYXRlVGltZVJhbmdlIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjaGVkdWxlci1kYXl0aW1lLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NjaGVkdWxlci1kYXl0aW1lLXZpZXcuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQVhTY2hlZHVsZXJCYXNlVmlld0NvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2NoZWR1bGVyRGF5VGltZVZpZXdDb21wb25lbnQgfV1cbn0pXG5leHBvcnQgY2xhc3MgQVhTY2hlZHVsZXJEYXlUaW1lVmlld0NvbXBvbmVudCBleHRlbmRzIEFYU2NoZWR1bGVyQmFzZVZpZXdDb21wb25lbnQge1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxtOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7IHN1cGVyKCk7IH1cbiAgICB0aW1lczogYW55W10gPSBbXTtcbiAgICBwcml2YXRlIHZTY3JvbGw6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgY29udGFpbmVyOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIHZpZXc6IEhUTUxFbGVtZW50O1xuICAgIHByaXZhdGUgaGVhZGVyOiBIVE1MRWxlbWVudDtcbiAgICBwcml2YXRlIGJvZHk6IEhUTUxFbGVtZW50O1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZTY3JvbGwgPSB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcudi1zY3JvbGwnKTtcbiAgICAgICAgdGhpcy5oZWFkZXIgPSB0aGlzLmVsbS5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCcuaGVhZGVyJyk7XG4gICAgICAgIHRoaXMuYm9keSA9IHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy5ib2R5Jyk7XG4gICAgICAgIHRoaXMudmlldyA9IHRoaXMuZWxtLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJy52aWV3Jyk7XG4gICAgICAgIHRoaXMuY29udGFpbmVyID0gdGhpcy5lbG0ubmF0aXZlRWxlbWVudC5jbG9zZXN0KCcudmlldy1jb250YWluZXInKSBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICB1cGRhdGVTaXplKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaXJzdFRyID0gdGhpcy5ib2R5LnF1ZXJ5U2VsZWN0b3IoJ3RyJyk7XG4gICAgICAgIGlmIChmaXJzdFRyKSB7XG4gICAgICAgICAgICBsZXQgaW5kZXggPSAwO1xuICAgICAgICAgICAgdGhpcy5oZWFkZXIucXVlcnlTZWxlY3RvckFsbCgndGgnKS5mb3JFYWNoKGMgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHRkID0gZmlyc3RUci5jaGlsZHJlbi5pdGVtKGluZGV4KyspIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgICAgIHRkLnN0eWxlLndpZHRoID0gYCR7Yy5vZmZzZXRXaWR0aH1weGA7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMudlNjcm9sbC5zdHlsZS5oZWlnaHQgPSBgY2FsYygxMDAlIC0gJHt0aGlzLmhlYWRlci5jbGllbnRIZWlnaHR9cHgpYDtcbiAgICAgICAgICAgIGlmICh0aGlzLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgICAgIHRoaXMudmlldy5zdHlsZS5oZWlnaHQgPSBgJHt0aGlzLmNvbnRhaW5lci5jbGllbnRIZWlnaHR9cHhgO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXJyYW5nZUV2ZW50cygpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlKGRhdGU6IEFYRGF0ZVRpbWUgPSBuZXcgQVhEYXRlVGltZSgpKSB7XG4gICAgICAgIHRoaXMudGltZXMgPSBbXTtcbiAgICAgICAgdGhpcy5zbG90cyA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuaW50ZXJ2YWw7IGkrKykge1xuICAgICAgICAgICAgY29uc3QgZCA9IGRhdGUuYWRkRGF5KGkpO1xuICAgICAgICAgICAgY29uc3QgcmFuZ2UgPSBuZXcgQVhEYXRlVGltZVJhbmdlKGQsIGQpO1xuICAgICAgICAgICAgY29uc3Qgc2xvdDogQVhTY2hlZHVsZXJTbG90ID0ge1xuICAgICAgICAgICAgICAgIHJhbmdlLFxuICAgICAgICAgICAgICAgIGV2ZW50czogdGhpcy5nZXRFdmVudHMocmFuZ2UsICdkYXknKVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIHRoaXMuc2xvdHMucHVzaChzbG90KTtcbiAgICAgICAgfVxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDI0OyBpKyspIHtcbiAgICAgICAgICAgIHRoaXMudGltZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogKCcwJyArIGkpLnNsaWNlKC0yKSArICc6MDAnLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm5hdmlnYXRvckRhdGUgPSBkYXRlO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgbmV4dCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZSh0aGlzLm5hdmlnYXRvckRhdGUuYWRkRGF5KHRoaXMuaW50ZXJ2YWwpKTtcbiAgICB9XG4gICAgcHJldigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5uYXZpZ2F0ZSh0aGlzLm5hdmlnYXRvckRhdGUuYWRkRGF5KC10aGlzLmludGVydmFsKSk7XG4gICAgfVxuXG4gICAgYXJyYW5nZUV2ZW50cygpIHtcbiAgICAgICAgY29uc3QgZXZlbnRzID0gdGhpcy5lbG0ubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PignLmV2ZW50Jyk7XG4gICAgICAgIGlmIChldmVudHMubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBoZWlnaHQgPSBldmVudHNbMF0uY2xvc2VzdCgndGQnKS5vZmZzZXRIZWlnaHQ7XG4gICAgICAgICAgICBldmVudHMuZm9yRWFjaChlID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB1aWQgPSBlLmF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKCdkYXRhLXVpZCcpLnZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IGV2ZW50ID0gdGhpcy5ldmVudHMuZmluZChjID0+IGMudWlkID09PSB1aWQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGR1ciA9IE1hdGguY2VpbChNYXRoLmFicyhldmVudC5yYW5nZS5kdXJhdGlvbignaG91cnMnKSkpO1xuICAgICAgICAgICAgICAgIGxldCB0b3RhbCA9IGR1ciArIDE7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50LnJhbmdlLnN0YXJ0VGltZS5ob3VyICsgdG90YWwgPiAyMykge1xuICAgICAgICAgICAgICAgICAgICB0b3RhbCA9IDI0IC0gZXZlbnQucmFuZ2Uuc3RhcnRUaW1lLmhvdXI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGUuc3R5bGUuaGVpZ2h0ID0gKHRvdGFsICogaGVpZ2h0KSArICdweCc7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZpbmRFdmVudEluZGV4KGV2ZW50OiBBWFNjaGVkdWxlckV2ZW50KTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgYSA9IHRoaXMuZXZlbnRzLmZpbHRlcihjID0+XG4gICAgICAgICAgICBjLnJhbmdlLnN0YXJ0VGltZS5lcXVhbChldmVudC5yYW5nZS5zdGFydFRpbWUsICdkYXknKVxuICAgICAgICApLnNvcnQoKGQxLCBkMikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGQxLnJhbmdlLnN0YXJ0VGltZS5jb21wYWlyZU5ldyhkMi5yYW5nZS5zdGFydFRpbWUpO1xuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gYS5pbmRleE9mKGV2ZW50KTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidmlldyBheC1zY2hlZHVsZXItZGF5LXRpbWUtdmlld1wiPlxuICAgIDx0YWJsZSBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICA8dGhlYWQ+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJ0aW1lLWNvbHVtblwiPjwvdGg+XG4gICAgICAgICAgICA8dGggKm5nRm9yPVwibGV0IGQgb2Ygc2xvdHNcIiBjbGFzcz1cImhlYWRlci1jZWxsXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBbY2xhc3Muc2FtZS13ZWVrLWRheV09XCJkLnJhbmdlLnN0YXJ0VGltZS5lcXVhbCh0b2RheSlcIj5cbiAgICAgICAgICAgICAgICAgICAge3tkLnJhbmdlLnN0YXJ0VGltZSB8IGR0OiAnZGRkJ319PGJyPlxuICAgICAgICAgICAgICAgICAgICB7e2QucmFuZ2Uuc3RhcnRUaW1lIHwgZHQ6ICdERCd9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgPC90aGVhZD5cbiAgICA8L3RhYmxlPlxuICAgIDxkaXYgY2xhc3M9XCJ2LXNjcm9sbFwiPlxuICAgICAgICA8dGFibGUgY2xhc3M9XCJib2R5XCIgY2RrRHJvcExpc3RHcm91cD5cbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICA8dHIgKm5nRm9yPVwibGV0IHQgb2YgdGltZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPHRkPlxuICAgICAgICAgICAgICAgICAgICAgICAge3t0LmRpc3BsYXl9fVxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGQgb2Ygc2xvdHNcIiBjbGFzcz1cInNsb3QtY2VsbFwiIGNka0Ryb3BMaXN0IFtjZGtEcm9wTGlzdERhdGFdPVwiZFwiXG4gICAgICAgICAgICAgICAgICAgIChjZGtEcm9wTGlzdERyb3BwZWQpPVwib25EcmFnRHJvcE9uRGF5KCRldmVudCx0LnZhbHVlKVwiIFthdHRyLmRhdGEtdWlkXT1cImQudWlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGUgb2YgZC5ldmVudHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImUucmFuZ2Uuc3RhcnRUaW1lLmhvdXI9PXQudmFsdWVcIiBjbGFzcz1cImV2ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJidXR0b25cIiBhcmlhLXJlYWRvbmx5PVwiZmFsc2VcIiBhcmlhLXNlbGVjdGVkPVwidHJ1ZVwiIGFyaWEtZ3JhYmJlZD1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNka0RyYWcgW2Nka0RyYWdEYXRhXT1cImVcIiBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmRhdGEtdWlkXT1cImUudWlkXCIgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZS5jb2xvclwiIFt0aXRsZV09XCJlLnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZXZlbnQtdGl0bGVcIj57e2UudGl0bGV9fTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57e2UucmFuZ2Uuc3RhcnRUaW1lIHwgZHQ6ICdISDptbSd9fTwvc3Bhbj4gLVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnt7ZS5yYW5nZS5lbmRUaW1lIHwgZHQ6ICdISDptbSd9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqY2RrRHJhZ1ByZXZpZXcgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiZS5jb2xvclwiIGNsYXNzPVwiZXZlbnQtZHJhZy1wcmV2aWV3XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tlLnRpdGxlfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImV2ZW50LWRyYWctcGxhY2Vob2xkZXJcIiAqY2RrRHJhZ1BsYWNlaG9sZGVyPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
|