@kaspernj/api-maker 1.0.2159 → 1.0.2161
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/build/api.d.ts +46 -34
- package/build/api.d.ts.map +1 -1
- package/build/api.js +32 -25
- package/build/attribute-not-loaded-error.d.ts.map +1 -1
- package/build/attribute-not-loaded-error.js +2 -1
- package/build/base-error.d.ts +49 -60
- package/build/base-error.d.ts.map +1 -1
- package/build/base-error.js +3 -2
- package/build/base-model/column.d.ts +2 -2
- package/build/base-model/column.d.ts.map +1 -1
- package/build/base-model/column.js +3 -2
- package/build/base-model/reflection.d.ts +8 -3
- package/build/base-model/reflection.d.ts.map +1 -1
- package/build/base-model/reflection.js +8 -3
- package/build/base-model/scope.d.ts +1 -1
- package/build/base-model/scope.d.ts.map +1 -1
- package/build/base-model/scope.js +3 -2
- package/build/base-model.d.ts +3801 -117
- package/build/base-model.d.ts.map +1 -1
- package/build/base-model.js +271 -143
- package/build/bootstrap/attribute-row.d.ts +14 -1
- package/build/bootstrap/attribute-row.d.ts.map +1 -1
- package/build/bootstrap/attribute-row.js +23 -5
- package/build/bootstrap/attribute-rows.d.ts +10 -1
- package/build/bootstrap/attribute-rows.d.ts.map +1 -1
- package/build/bootstrap/attribute-rows.js +14 -5
- package/build/bootstrap/card.d.ts +19 -1
- package/build/bootstrap/card.d.ts.map +1 -1
- package/build/bootstrap/card.js +33 -13
- package/build/bootstrap/checkbox.d.ts +18 -1
- package/build/bootstrap/checkbox.d.ts.map +1 -1
- package/build/bootstrap/checkbox.js +23 -3
- package/build/bootstrap/checkboxes.d.ts +33 -1
- package/build/bootstrap/checkboxes.d.ts.map +1 -1
- package/build/bootstrap/checkboxes.js +50 -17
- package/build/bootstrap/index.js +2 -1
- package/build/bootstrap/input.d.ts +24 -0
- package/build/bootstrap/input.d.ts.map +1 -1
- package/build/bootstrap/input.js +27 -2
- package/build/bootstrap/invalid-feedback.d.ts.map +1 -1
- package/build/bootstrap/invalid-feedback.js +2 -1
- package/build/bootstrap/paginate.d.ts +7 -1
- package/build/bootstrap/paginate.d.ts.map +1 -1
- package/build/bootstrap/paginate.js +9 -4
- package/build/bootstrap/radio-buttons.js +2 -1
- package/build/bootstrap/select.js +2 -1
- package/build/bootstrap/sort-link.d.ts +12 -1
- package/build/bootstrap/sort-link.d.ts.map +1 -1
- package/build/bootstrap/sort-link.js +19 -10
- package/build/cable-connection-pool.d.ts +201 -24
- package/build/cable-connection-pool.d.ts.map +1 -1
- package/build/cable-connection-pool.js +76 -16
- package/build/cable-subscription-pool.d.ts +186 -20
- package/build/cable-subscription-pool.d.ts.map +1 -1
- package/build/cable-subscription-pool.js +61 -22
- package/build/cable-subscription.d.ts.map +1 -1
- package/build/cable-subscription.js +3 -2
- package/build/cache-key-generator.d.ts +194 -20
- package/build/cache-key-generator.d.ts.map +1 -1
- package/build/cache-key-generator.js +63 -12
- package/build/can-can.d.ts +146 -29
- package/build/can-can.d.ts.map +1 -1
- package/build/can-can.js +105 -19
- package/build/channels-consumer.d.ts +23 -1
- package/build/channels-consumer.d.ts.map +1 -1
- package/build/channels-consumer.js +26 -8
- package/build/collection-loader.d.ts +4 -1
- package/build/collection-loader.js +2 -1
- package/build/collection.d.ts +361 -370
- package/build/collection.d.ts.map +1 -1
- package/build/collection.js +59 -19
- package/build/command-execution.d.ts +50 -26
- package/build/command-execution.d.ts.map +1 -1
- package/build/command-execution.js +31 -13
- package/build/command-submit-data.d.ts +50 -37
- package/build/command-submit-data.d.ts.map +1 -1
- package/build/command-submit-data.js +35 -22
- package/build/commands-pool.d.ts +65 -27
- package/build/commands-pool.d.ts.map +1 -1
- package/build/commands-pool.js +67 -20
- package/build/compose.d.ts +8 -2
- package/build/compose.d.ts.map +1 -1
- package/build/compose.js +9 -2
- package/build/config.d.ts +31 -15
- package/build/config.d.ts.map +1 -1
- package/build/config.js +60 -23
- package/build/custom-error.d.ts.map +1 -1
- package/build/custom-error.js +2 -1
- package/build/data-set-to-attributes.d.ts +14 -2
- package/build/data-set-to-attributes.d.ts.map +1 -1
- package/build/data-set-to-attributes.js +12 -3
- package/build/deserializer.d.ts +116 -2
- package/build/deserializer.d.ts.map +1 -1
- package/build/deserializer.js +13 -2
- package/build/destroy-error.d.ts.map +1 -1
- package/build/destroy-error.js +2 -1
- package/build/devise.d.ts +638 -39
- package/build/devise.d.ts.map +1 -1
- package/build/devise.js +97 -28
- package/build/draggable-sort/controller.d.ts +126 -35
- package/build/draggable-sort/controller.d.ts.map +1 -1
- package/build/draggable-sort/controller.js +100 -28
- package/build/draggable-sort/index.d.ts +57 -1
- package/build/draggable-sort/index.d.ts.map +1 -1
- package/build/draggable-sort/index.js +71 -3
- package/build/draggable-sort/item.d.ts +56 -1
- package/build/draggable-sort/item.d.ts.map +1 -1
- package/build/draggable-sort/item.js +98 -10
- package/build/error-logger.d.ts +30 -14
- package/build/error-logger.d.ts.map +1 -1
- package/build/error-logger.js +22 -11
- package/build/event-connection.d.ts.map +1 -1
- package/build/event-connection.js +3 -2
- package/build/event-emitter-listener.d.ts.map +1 -1
- package/build/event-emitter-listener.js +2 -1
- package/build/event-model-class.d.ts.map +1 -1
- package/build/event-model-class.js +2 -1
- package/build/events.d.ts.map +1 -1
- package/build/events.js +2 -1
- package/build/form.d.ts +24 -1
- package/build/form.d.ts.map +1 -1
- package/build/form.js +16 -4
- package/build/history-expo.d.ts +6 -2
- package/build/history-expo.d.ts.map +1 -1
- package/build/history-expo.js +5 -2
- package/build/history-react-native.d.ts +6 -2
- package/build/history-react-native.d.ts.map +1 -1
- package/build/history-react-native.js +5 -2
- package/build/history.js +2 -1
- package/build/index.d.ts.map +1 -1
- package/build/index.js +2 -1
- package/build/inputs/attachment.d.ts +13 -1
- package/build/inputs/attachment.d.ts.map +1 -1
- package/build/inputs/attachment.js +22 -8
- package/build/inputs/auto-submit.d.ts +41 -13
- package/build/inputs/auto-submit.d.ts.map +1 -1
- package/build/inputs/auto-submit.js +16 -4
- package/build/inputs/checkbox.d.ts +17 -1
- package/build/inputs/checkbox.d.ts.map +1 -1
- package/build/inputs/checkbox.js +25 -11
- package/build/inputs/checkboxes.d.ts +16 -0
- package/build/inputs/checkboxes.d.ts.map +1 -1
- package/build/inputs/checkboxes.js +20 -4
- package/build/inputs/id-for-component.d.ts +21 -2
- package/build/inputs/id-for-component.d.ts.map +1 -1
- package/build/inputs/id-for-component.js +9 -2
- package/build/inputs/input-wrapper.d.ts.map +1 -1
- package/build/inputs/input-wrapper.js +2 -1
- package/build/inputs/input.d.ts +38 -1
- package/build/inputs/input.d.ts.map +1 -1
- package/build/inputs/input.js +29 -10
- package/build/inputs/money.d.ts +4 -1
- package/build/inputs/money.d.ts.map +1 -1
- package/build/inputs/money.js +6 -3
- package/build/inputs/name-for-component.d.ts +21 -2
- package/build/inputs/name-for-component.d.ts.map +1 -1
- package/build/inputs/name-for-component.js +9 -2
- package/build/inputs/select.d.ts +35 -1
- package/build/inputs/select.d.ts.map +1 -1
- package/build/inputs/select.js +21 -4
- package/build/instance-of-class-name.d.ts +7 -2
- package/build/instance-of-class-name.d.ts.map +1 -1
- package/build/instance-of-class-name.js +8 -4
- package/build/is-expo.d.ts.map +1 -1
- package/build/is-expo.js +2 -1
- package/build/key-value-store.d.ts +24 -14
- package/build/key-value-store.d.ts.map +1 -1
- package/build/key-value-store.js +22 -12
- package/build/link.d.ts +32 -1
- package/build/link.d.ts.map +1 -1
- package/build/link.js +76 -30
- package/build/logger.d.ts +10 -6
- package/build/logger.d.ts.map +1 -1
- package/build/logger.js +7 -4
- package/build/merge-styles.d.ts +10 -2
- package/build/merge-styles.d.ts.map +1 -1
- package/build/merge-styles.js +10 -3
- package/build/modal.d.ts +4 -1
- package/build/modal.d.ts.map +1 -1
- package/build/modal.js +6 -4
- package/build/model-class-require.d.ts +4 -2
- package/build/model-class-require.d.ts.map +1 -1
- package/build/model-class-require.js +4 -2
- package/build/model-events.d.ts +139 -346
- package/build/model-events.d.ts.map +1 -1
- package/build/model-events.js +21 -9
- package/build/model-name.d.ts +21 -7
- package/build/model-name.d.ts.map +1 -1
- package/build/model-name.js +12 -2
- package/build/model-prop-type.d.ts +533 -26
- package/build/model-prop-type.d.ts.map +1 -1
- package/build/model-prop-type.js +69 -11
- package/build/model-recipes-loader.d.ts +7 -3
- package/build/model-recipes-loader.d.ts.map +1 -1
- package/build/model-recipes-loader.js +4 -2
- package/build/model-recipes-model-loader.d.ts +189 -1493
- package/build/model-recipes-model-loader.d.ts.map +1 -1
- package/build/model-recipes-model-loader.js +119 -17
- package/build/models-response-reader.d.ts +600 -195
- package/build/models-response-reader.d.ts.map +1 -1
- package/build/models-response-reader.js +12 -4
- package/build/models.d.ts +438 -1
- package/build/models.d.ts.map +1 -1
- package/build/models.js +2 -1
- package/build/money-formatter.d.ts +25 -31
- package/build/money-formatter.d.ts.map +1 -1
- package/build/money-formatter.js +11 -8
- package/build/not-loaded-error.d.ts.map +1 -1
- package/build/not-loaded-error.js +2 -1
- package/build/params.d.ts +25 -17
- package/build/params.d.ts.map +1 -1
- package/build/params.js +19 -15
- package/build/preloaded.d.ts +61 -64
- package/build/preloaded.d.ts.map +1 -1
- package/build/preloaded.js +10 -4
- package/build/reset-realtime-runtime-state.d.ts.map +1 -1
- package/build/reset-realtime-runtime-state.js +2 -1
- package/build/resize-observer.d.ts +1 -1
- package/build/resize-observer.d.ts.map +1 -1
- package/build/resize-observer.js +2 -1
- package/build/rest-props-validator.d.ts +2 -2
- package/build/rest-props-validator.d.ts.map +1 -1
- package/build/rest-props-validator.js +3 -2
- package/build/result.d.ts +142 -175
- package/build/result.d.ts.map +1 -1
- package/build/result.js +3 -2
- package/build/router/route.d.ts +51 -1
- package/build/router/route.d.ts.map +1 -1
- package/build/router/route.js +48 -12
- package/build/router/switch.d.ts +38 -2
- package/build/router/switch.d.ts.map +1 -1
- package/build/router/switch.js +34 -13
- package/build/router.d.ts +21 -1
- package/build/router.d.ts.map +1 -1
- package/build/router.js +15 -4
- package/build/routes-native.d.ts +13 -13
- package/build/routes-native.d.ts.map +1 -1
- package/build/routes-native.js +23 -11
- package/build/routes.d.ts +17 -9
- package/build/routes.d.ts.map +1 -1
- package/build/routes.js +7 -2
- package/build/run-last.d.ts.map +1 -1
- package/build/run-last.js +2 -1
- package/build/serializer.d.ts +44 -12
- package/build/serializer.d.ts.map +1 -1
- package/build/serializer.js +36 -7
- package/build/services.d.ts +29 -4
- package/build/services.d.ts.map +1 -1
- package/build/services.js +16 -4
- package/build/session-status-updater.d.ts +73 -25
- package/build/session-status-updater.d.ts.map +1 -1
- package/build/session-status-updater.js +52 -14
- package/build/source-maps-loader.d.ts +88 -33
- package/build/source-maps-loader.d.ts.map +1 -1
- package/build/source-maps-loader.js +74 -18
- package/build/super-admin/config-reader.d.ts.map +1 -1
- package/build/super-admin/config-reader.js +11 -16
- package/build/super-admin/edit-page/edit-attribute-checkbox.d.ts +12 -1
- package/build/super-admin/edit-page/edit-attribute-checkbox.d.ts.map +1 -1
- package/build/super-admin/edit-page/edit-attribute-checkbox.js +22 -8
- package/build/super-admin/edit-page/edit-attribute-content.d.ts +10 -1
- package/build/super-admin/edit-page/edit-attribute-content.d.ts.map +1 -1
- package/build/super-admin/edit-page/edit-attribute-content.js +20 -9
- package/build/super-admin/edit-page/edit-attribute-input.d.ts +10 -1
- package/build/super-admin/edit-page/edit-attribute-input.d.ts.map +1 -1
- package/build/super-admin/edit-page/edit-attribute-input.js +13 -4
- package/build/super-admin/edit-page/edit-attribute.d.ts +8 -1
- package/build/super-admin/edit-page/edit-attribute.d.ts.map +1 -1
- package/build/super-admin/edit-page/edit-attribute.js +11 -4
- package/build/super-admin/edit-page.d.ts +7 -1
- package/build/super-admin/edit-page.d.ts.map +1 -1
- package/build/super-admin/edit-page.js +11 -5
- package/build/super-admin/has-edit-config.d.ts.map +1 -1
- package/build/super-admin/has-edit-config.js +2 -1
- package/build/super-admin/index-page.d.ts +6 -1
- package/build/super-admin/index-page.d.ts.map +1 -1
- package/build/super-admin/index-page.js +9 -4
- package/build/super-admin/index.d.ts +6 -1
- package/build/super-admin/index.d.ts.map +1 -1
- package/build/super-admin/index.js +16 -10
- package/build/super-admin/layout/header/index.d.ts +6 -1
- package/build/super-admin/layout/header/index.d.ts.map +1 -1
- package/build/super-admin/layout/header/index.js +18 -12
- package/build/super-admin/layout/index.d.ts +26 -1
- package/build/super-admin/layout/index.d.ts.map +1 -1
- package/build/super-admin/layout/index.js +41 -7
- package/build/super-admin/layout/menu/index.d.ts +4 -1
- package/build/super-admin/layout/menu/index.d.ts.map +1 -1
- package/build/super-admin/layout/menu/index.js +13 -7
- package/build/super-admin/layout/menu/menu-content.d.ts +4 -1
- package/build/super-admin/layout/menu/menu-content.d.ts.map +1 -1
- package/build/super-admin/layout/menu/menu-content.js +6 -4
- package/build/super-admin/layout/menu/menu-item.d.ts +11 -1
- package/build/super-admin/layout/menu/menu-item.d.ts.map +1 -1
- package/build/super-admin/layout/menu/menu-item.js +19 -9
- package/build/super-admin/layout/no-access.d.ts +4 -1
- package/build/super-admin/layout/no-access.d.ts.map +1 -1
- package/build/super-admin/layout/no-access.js +7 -5
- package/build/super-admin/model-class-table.d.ts +6 -1
- package/build/super-admin/model-class-table.d.ts.map +1 -1
- package/build/super-admin/model-class-table.js +9 -4
- package/build/super-admin/models.d.ts.map +1 -1
- package/build/super-admin/models.js +2 -1
- package/build/super-admin/show-nav.d.ts +4 -1
- package/build/super-admin/show-nav.d.ts.map +1 -1
- package/build/super-admin/show-nav.js +6 -4
- package/build/super-admin/show-page/belongs-to-attribute-row.d.ts +18 -1
- package/build/super-admin/show-page/belongs-to-attribute-row.d.ts.map +1 -1
- package/build/super-admin/show-page/belongs-to-attribute-row.js +14 -5
- package/build/super-admin/show-page/index.d.ts +6 -1
- package/build/super-admin/show-page/index.d.ts.map +1 -1
- package/build/super-admin/show-page/index.js +11 -5
- package/build/super-admin/show-reflection-actions.d.ts +8 -1
- package/build/super-admin/show-reflection-actions.d.ts.map +1 -1
- package/build/super-admin/show-reflection-actions.js +11 -4
- package/build/super-admin/show-reflection-link.d.ts +6 -1
- package/build/super-admin/show-reflection-link.d.ts.map +1 -1
- package/build/super-admin/show-reflection-link.js +12 -5
- package/build/super-admin/show-reflection-page.d.ts +7 -1
- package/build/super-admin/show-reflection-page.d.ts.map +1 -1
- package/build/super-admin/show-reflection-page.js +10 -4
- package/build/table/column-content.d.ts +155 -19
- package/build/table/column-content.d.ts.map +1 -1
- package/build/table/column-content.js +55 -12
- package/build/table/column-identifier.d.ts +11 -2
- package/build/table/column-identifier.d.ts.map +1 -1
- package/build/table/column-identifier.js +7 -2
- package/build/table/column-visible.d.ts +11 -2
- package/build/table/column-visible.d.ts.map +1 -1
- package/build/table/column-visible.js +8 -2
- package/build/table/components/column.d.ts +4 -1
- package/build/table/components/column.d.ts.map +1 -1
- package/build/table/components/column.js +6 -4
- package/build/table/components/flat-list.d.ts +4 -1
- package/build/table/components/flat-list.d.ts.map +1 -1
- package/build/table/components/flat-list.js +6 -4
- package/build/table/components/header.d.ts +4 -1
- package/build/table/components/header.d.ts.map +1 -1
- package/build/table/components/header.js +6 -4
- package/build/table/components/row.d.ts +4 -1
- package/build/table/components/row.d.ts.map +1 -1
- package/build/table/components/row.js +6 -4
- package/build/table/filters/attribute-element.d.ts +4 -1
- package/build/table/filters/attribute-element.d.ts.map +1 -1
- package/build/table/filters/attribute-element.js +7 -7
- package/build/table/filters/filter-form.d.ts +60 -1
- package/build/table/filters/filter-form.d.ts.map +1 -1
- package/build/table/filters/filter-form.js +89 -28
- package/build/table/filters/filter.d.ts +4 -1
- package/build/table/filters/filter.d.ts.map +1 -1
- package/build/table/filters/filter.js +6 -4
- package/build/table/filters/index.d.ts +129 -1
- package/build/table/filters/index.d.ts.map +1 -1
- package/build/table/filters/index.js +26 -9
- package/build/table/filters/load-search-modal.d.ts +132 -1
- package/build/table/filters/load-search-modal.d.ts.map +1 -1
- package/build/table/filters/load-search-modal.js +32 -10
- package/build/table/filters/reflection-element.d.ts +4 -1
- package/build/table/filters/reflection-element.d.ts.map +1 -1
- package/build/table/filters/reflection-element.js +6 -4
- package/build/table/filters/save-search-modal.d.ts +136 -1
- package/build/table/filters/save-search-modal.d.ts.map +1 -1
- package/build/table/filters/save-search-modal.js +39 -6
- package/build/table/filters/scope-element.d.ts +8 -1
- package/build/table/filters/scope-element.d.ts.map +1 -1
- package/build/table/filters/scope-element.js +13 -8
- package/build/table/header-column-content.d.ts +9 -1
- package/build/table/header-column-content.d.ts.map +1 -1
- package/build/table/header-column-content.js +12 -4
- package/build/table/header-column.d.ts +52 -1
- package/build/table/header-column.d.ts.map +1 -1
- package/build/table/header-column.js +39 -10
- package/build/table/header-select.d.ts +20 -1
- package/build/table/header-select.d.ts.map +1 -1
- package/build/table/header-select.js +27 -8
- package/build/table/model-callback-args.d.ts +116 -3
- package/build/table/model-callback-args.d.ts.map +1 -1
- package/build/table/model-callback-args.js +10 -3
- package/build/table/model-column.d.ts +138 -1
- package/build/table/model-column.d.ts.map +1 -1
- package/build/table/model-column.js +27 -4
- package/build/table/model-row.d.ts +21 -1
- package/build/table/model-row.d.ts.map +1 -1
- package/build/table/model-row.js +24 -4
- package/build/table/select-calculator.d.ts +37 -2
- package/build/table/select-calculator.d.ts.map +1 -1
- package/build/table/select-calculator.js +29 -6
- package/build/table/settings/column-row.d.ts +8 -1
- package/build/table/settings/column-row.d.ts.map +1 -1
- package/build/table/settings/column-row.js +13 -12
- package/build/table/settings/download-action.d.ts +7 -1
- package/build/table/settings/download-action.d.ts.map +1 -1
- package/build/table/settings/download-action.js +10 -4
- package/build/table/settings/index.d.ts +7 -1
- package/build/table/settings/index.d.ts.map +1 -1
- package/build/table/settings/index.js +10 -4
- package/build/table/should-render-loading-content.d.ts +2 -2
- package/build/table/should-render-loading-content.d.ts.map +1 -1
- package/build/table/should-render-loading-content.js +3 -2
- package/build/table/table-settings.d.ts +236 -43
- package/build/table/table-settings.d.ts.map +1 -1
- package/build/table/table-settings.js +105 -21
- package/build/table/table.d.ts +273 -1
- package/build/table/table.d.ts.map +1 -1
- package/build/table/table.js +210 -53
- package/build/table/use-sorting.d.ts +10 -8
- package/build/table/use-sorting.d.ts.map +1 -1
- package/build/table/use-sorting.js +16 -8
- package/build/table/widths.d.ts +55 -8
- package/build/table/widths.d.ts.map +1 -1
- package/build/table/widths.js +25 -2
- package/build/table/worker-plugins-check-all-checkbox.d.ts +20 -1
- package/build/table/worker-plugins-check-all-checkbox.d.ts.map +1 -1
- package/build/table/worker-plugins-check-all-checkbox.js +29 -9
- package/build/table/worker-plugins-checkbox.d.ts +7 -1
- package/build/table/worker-plugins-checkbox.d.ts.map +1 -1
- package/build/table/worker-plugins-checkbox.js +14 -8
- package/build/translated-attributes.d.ts +7 -2
- package/build/translated-attributes.d.ts.map +1 -1
- package/build/translated-attributes.js +8 -2
- package/build/translated-collections.d.ts +11 -2
- package/build/translated-collections.d.ts.map +1 -1
- package/build/translated-collections.js +9 -3
- package/build/updated-attribute.d.ts.map +1 -1
- package/build/updated-attribute.js +2 -1
- package/build/url-encode.d.ts.map +1 -1
- package/build/url-encode.js +2 -1
- package/build/use-can-can.d.ts +8 -0
- package/build/use-can-can.d.ts.map +1 -1
- package/build/use-can-can.js +39 -13
- package/build/use-collection.d.ts +174 -117
- package/build/use-collection.d.ts.map +1 -1
- package/build/use-collection.js +133 -51
- package/build/use-created-event.d.ts +120 -11
- package/build/use-created-event.d.ts.map +1 -1
- package/build/use-created-event.js +10 -7
- package/build/use-current-user-context.d.ts +2 -2
- package/build/use-current-user-context.d.ts.map +1 -1
- package/build/use-current-user-context.js +3 -2
- package/build/use-current-user.d.ts +86 -70
- package/build/use-current-user.d.ts.map +1 -1
- package/build/use-current-user.js +36 -8
- package/build/use-destroyed-event.d.ts +117 -8
- package/build/use-destroyed-event.d.ts.map +1 -1
- package/build/use-destroyed-event.js +29 -22
- package/build/use-input.d.ts +74 -12
- package/build/use-input.d.ts.map +1 -1
- package/build/use-input.js +33 -5
- package/build/use-model-class-event.d.ts +124 -10
- package/build/use-model-class-event.d.ts.map +1 -1
- package/build/use-model-class-event.js +26 -16
- package/build/use-model-event.d.ts +121 -8
- package/build/use-model-event.d.ts.map +1 -1
- package/build/use-model-event.js +24 -19
- package/build/use-model.d.ts +165 -243
- package/build/use-model.d.ts.map +1 -1
- package/build/use-model.js +94 -35
- package/build/use-resize-observer.d.ts.map +1 -1
- package/build/use-resize-observer.js +2 -1
- package/build/use-router.d.ts.map +1 -1
- package/build/use-router.js +2 -1
- package/build/use-screen-layout.d.ts +7 -2
- package/build/use-screen-layout.d.ts.map +1 -1
- package/build/use-screen-layout.js +8 -5
- package/build/use-shape.js +2 -1
- package/build/use-styles.d.ts +11 -5
- package/build/use-styles.d.ts.map +1 -1
- package/build/use-styles.js +16 -9
- package/build/use-updated-event.d.ts +66 -182
- package/build/use-updated-event.d.ts.map +1 -1
- package/build/use-updated-event.js +22 -18
- package/build/use-validation-errors.d.ts.map +1 -1
- package/build/use-validation-errors.js +2 -1
- package/build/utils/button.d.ts +16 -1
- package/build/utils/button.d.ts.map +1 -1
- package/build/utils/button.js +27 -8
- package/build/utils/card.d.ts +11 -1
- package/build/utils/card.d.ts.map +1 -1
- package/build/utils/card.js +13 -2
- package/build/utils/checkbox.d.ts +14 -1
- package/build/utils/checkbox.d.ts.map +1 -1
- package/build/utils/checkbox.js +22 -9
- package/build/utils/checkboxes.d.ts +27 -1
- package/build/utils/checkboxes.d.ts.map +1 -1
- package/build/utils/checkboxes.js +44 -17
- package/build/utils/default-style.d.ts +11 -4
- package/build/utils/default-style.d.ts.map +1 -1
- package/build/utils/default-style.js +12 -4
- package/build/utils/header.d.ts +6 -1
- package/build/utils/header.d.ts.map +1 -1
- package/build/utils/header.js +4 -2
- package/build/utils/icon.d.ts +9 -7
- package/build/utils/icon.d.ts.map +1 -1
- package/build/utils/icon.js +12 -11
- package/build/utils/invalid-feedback.d.ts +6 -1
- package/build/utils/invalid-feedback.d.ts.map +1 -1
- package/build/utils/invalid-feedback.js +8 -2
- package/build/utils/modal.d.ts +4 -1
- package/build/utils/modal.d.ts.map +1 -1
- package/build/utils/modal.js +11 -9
- package/build/utils/text.d.ts +9 -1
- package/build/utils/text.d.ts.map +1 -1
- package/build/utils/text.js +9 -2
- package/build/validation-error.d.ts +5 -2
- package/build/validation-error.d.ts.map +1 -1
- package/build/validation-error.js +5 -2
- package/build/validation-errors.d.ts +57 -15
- package/build/validation-errors.d.ts.map +1 -1
- package/build/validation-errors.js +37 -8
- package/build/websocket-request-client.d.ts +61 -15
- package/build/websocket-request-client.d.ts.map +1 -1
- package/build/websocket-request-client.js +35 -9
- package/build/with-api-maker.d.ts +2 -1
- package/build/with-api-maker.d.ts.map +1 -1
- package/build/with-api-maker.js +2 -1
- package/build/with-collection.d.ts +2 -1
- package/build/with-collection.d.ts.map +1 -1
- package/build/with-collection.js +2 -1
- package/build/with-current-user.d.ts.map +1 -1
- package/build/with-current-user.js +2 -1
- package/build/with-model.d.ts +2 -1
- package/build/with-model.d.ts.map +1 -1
- package/build/with-model.js +2 -1
- package/build/with-router.d.ts.map +1 -1
- package/build/with-router.js +2 -1
- package/package.json +6 -5
- package/build/base-component.d.ts +0 -4
- package/build/base-component.d.ts.map +0 -1
- package/build/base-component.js +0 -4
package/build/devise.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"devise.d.ts","sourceRoot":"/src/","sources":["devise.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"devise.d.ts","sourceRoot":"/src/","sources":["devise.js"],"names":[],"mappings":"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"}
|
package/build/devise.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// @ts-check
|
|
1
2
|
import * as inflection from "inflection"; // eslint-disable-line sort-imports
|
|
2
3
|
import CableConnectionPool from "./cable-connection-pool.js";
|
|
3
4
|
import { createContext } from "react";
|
|
@@ -6,23 +7,44 @@ import events from "./events.js";
|
|
|
6
7
|
import modelClassRequire from "./model-class-require.js";
|
|
7
8
|
import SessionStatusUpdater from "./session-status-updater.js"; // eslint-disable-line sort-imports
|
|
8
9
|
import Services from "./services.js"; // eslint-disable-line sort-imports
|
|
10
|
+
/** @typedef {{scopes?: Record<string, boolean>, currentApiMakerDevise?: ApiMakerDevise}} ApiMakerDeviseShared */
|
|
11
|
+
/** @typedef {{signed_in: boolean}} DeviseSessionStatusScope */
|
|
12
|
+
/**
|
|
13
|
+
* @typedef {object} DeviseSessionStatusResult
|
|
14
|
+
* @property {string} [csrf_token]
|
|
15
|
+
* @property {Record<string, DeviseSessionStatusScope>} scopes
|
|
16
|
+
* @property {string} [shadow_session_token]
|
|
17
|
+
* @property {DeviseSessionStatusResult} [session_status]
|
|
18
|
+
*/
|
|
19
|
+
/** @typedef {{rememberMe?: boolean, scope?: string, signedIn?: boolean, skipSignInEvent?: boolean}} DeviseScopeArgs */
|
|
20
|
+
/** @typedef {DeviseSessionStatusResult & {model?: import("./base-model.js").default | import("./base-model.js").default[]}} DeviseSignInResponse */
|
|
21
|
+
/** @typedef {{httpResponse: DeviseSessionStatusResult, scope: string, websocketArgs: DeviseScopeArgs}} SyncSessionArgs */
|
|
22
|
+
/** @typedef {import("./base-model.js").default | null} DeviseCurrentScope */
|
|
9
23
|
if (!globalThis.ApiMakerDevise)
|
|
10
24
|
globalThis.ApiMakerDevise = { scopes: {} };
|
|
11
|
-
const shared = globalThis.ApiMakerDevise;
|
|
25
|
+
const shared = /** @type {ApiMakerDeviseShared} */ (globalThis.ApiMakerDevise);
|
|
12
26
|
/** DeviseScope. */
|
|
13
27
|
class DeviseScope {
|
|
14
|
-
/**
|
|
28
|
+
/**
|
|
29
|
+
* Constructor.
|
|
30
|
+
* @param {string} scope
|
|
31
|
+
* @param {DeviseScopeArgs} args
|
|
32
|
+
*/
|
|
15
33
|
constructor(scope, args) {
|
|
16
34
|
this.args = args;
|
|
17
35
|
this.context = createContext(undefined);
|
|
18
36
|
this.scope = scope;
|
|
19
37
|
}
|
|
20
|
-
/**
|
|
38
|
+
/** @returns {import("react").Context<DeviseCurrentScope | undefined>} */
|
|
21
39
|
getContext = () => this.context;
|
|
22
40
|
}
|
|
23
41
|
/** ApiMakerDevise. */
|
|
24
42
|
export default class ApiMakerDevise {
|
|
25
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* Emits the shared sign-out event payload for one scope.
|
|
45
|
+
* @param {DeviseScopeArgs} args
|
|
46
|
+
* @returns {void}
|
|
47
|
+
*/
|
|
26
48
|
static callSignOutEvent(args) {
|
|
27
49
|
events.emit("onDeviseSignOut", { args });
|
|
28
50
|
}
|
|
@@ -33,11 +55,18 @@ export default class ApiMakerDevise {
|
|
|
33
55
|
}
|
|
34
56
|
return shared.currentApiMakerDevise;
|
|
35
57
|
}
|
|
36
|
-
/**
|
|
58
|
+
/**
|
|
59
|
+
* Returns the shared event emitter used for Devise lifecycle events.
|
|
60
|
+
* @returns {typeof events}
|
|
61
|
+
*/
|
|
37
62
|
static events() {
|
|
38
63
|
return events;
|
|
39
64
|
}
|
|
40
|
-
/**
|
|
65
|
+
/**
|
|
66
|
+
* Registers one Devise scope and its helper accessors.
|
|
67
|
+
* @param {string} scope
|
|
68
|
+
* @param {DeviseScopeArgs} args
|
|
69
|
+
*/
|
|
41
70
|
static addUserScope(scope, args = {}) {
|
|
42
71
|
const scopeCamelized = inflection.camelize(scope);
|
|
43
72
|
const currentMethodName = `current${scopeCamelized}`;
|
|
@@ -51,7 +80,11 @@ export default class ApiMakerDevise {
|
|
|
51
80
|
ApiMakerDevise[getArgsMethodName] = () => args;
|
|
52
81
|
ApiMakerDevise[getScopeName] = () => scopeInstance;
|
|
53
82
|
}
|
|
54
|
-
/**
|
|
83
|
+
/**
|
|
84
|
+
* Returns the registered scope helper for one scope name.
|
|
85
|
+
* @param {string} scope
|
|
86
|
+
* @returns {DeviseScope}
|
|
87
|
+
*/
|
|
55
88
|
static getScope(scope) {
|
|
56
89
|
const scopeCamelized = inflection.camelize(scope);
|
|
57
90
|
const getScopeName = `get${scopeCamelized}Scope`;
|
|
@@ -61,13 +94,20 @@ export default class ApiMakerDevise {
|
|
|
61
94
|
static registeredScopes() {
|
|
62
95
|
return Object.keys(shared.scopes);
|
|
63
96
|
}
|
|
97
|
+
/**
|
|
98
|
+
* Signs in one scope over HTTP and refreshes websocket auth state.
|
|
99
|
+
* @param {string} username
|
|
100
|
+
* @param {string} password
|
|
101
|
+
* @param {DeviseScopeArgs} args
|
|
102
|
+
* @returns {Promise<{model: import("./base-model.js").default | undefined, response: DeviseSignInResponse}>}
|
|
103
|
+
*/
|
|
64
104
|
static async signIn(username, password, args = {}) {
|
|
65
105
|
if (!args.scope)
|
|
66
106
|
args.scope = "user";
|
|
67
107
|
const postData = { username, password, args };
|
|
68
108
|
// Sign in over HTTP first so Devise can write the real session cookie and
|
|
69
109
|
// remember-me token in the HTTP response.
|
|
70
|
-
const response = await Services.current().sendRequest("Devise::SignIn", postData, { forceHttp: true });
|
|
110
|
+
const response = /** @type {DeviseSignInResponse} */ (await Services.current().sendRequest("Devise::SignIn", postData, { forceHttp: true }));
|
|
71
111
|
let model = response.model;
|
|
72
112
|
if (Array.isArray(model))
|
|
73
113
|
model = model[0];
|
|
@@ -89,13 +129,13 @@ export default class ApiMakerDevise {
|
|
|
89
129
|
/**
|
|
90
130
|
* Synchronizes the current backend auth state into real HTTP response cookies.
|
|
91
131
|
*
|
|
92
|
-
* @param {
|
|
93
|
-
* @returns {Promise<
|
|
132
|
+
* @param {DeviseScopeArgs} [args]
|
|
133
|
+
* @returns {Promise<DeviseSessionStatusResult>}
|
|
94
134
|
*/
|
|
95
135
|
static async persistSession(args = {}) {
|
|
96
136
|
if (!args.scope)
|
|
97
137
|
args.scope = "user";
|
|
98
|
-
const response = await Services.current().sendRequest("Devise::PersistSession", args, { forceHttp: true });
|
|
138
|
+
const response = /** @type {DeviseSessionStatusResult} */ (await Services.current().sendRequest("Devise::PersistSession", args, { forceHttp: true }));
|
|
99
139
|
const sessionStatusUpdater = SessionStatusUpdater.current();
|
|
100
140
|
if (response.session_status) {
|
|
101
141
|
sessionStatusUpdater.applyResult(response.session_status);
|
|
@@ -105,27 +145,43 @@ export default class ApiMakerDevise {
|
|
|
105
145
|
}
|
|
106
146
|
return response;
|
|
107
147
|
}
|
|
108
|
-
/**
|
|
148
|
+
/**
|
|
149
|
+
* Updates the locally cached current model for one scope.
|
|
150
|
+
* @param {DeviseCurrentScope} model
|
|
151
|
+
* @param {DeviseScopeArgs} args
|
|
152
|
+
*/
|
|
109
153
|
static updateSession(model, args = {}) {
|
|
110
154
|
if (!args.scope)
|
|
111
155
|
args.scope = "user";
|
|
112
156
|
const camelizedScopeName = inflection.camelize(args.scope, true);
|
|
113
157
|
ApiMakerDevise.current().currents[camelizedScopeName] = model;
|
|
114
158
|
}
|
|
115
|
-
/**
|
|
159
|
+
/**
|
|
160
|
+
* Returns whether the current scope cache has been initialized locally.
|
|
161
|
+
* @param {string} scope
|
|
162
|
+
* @returns {boolean}
|
|
163
|
+
*/
|
|
116
164
|
hasCurrentScope(scope) {
|
|
117
165
|
const camelizedScopeName = inflection.camelize(scope, true);
|
|
118
166
|
return camelizedScopeName in ApiMakerDevise.current().currents;
|
|
119
167
|
}
|
|
120
|
-
/**
|
|
168
|
+
/**
|
|
169
|
+
* Marks one scope as signed out in the local current-model cache.
|
|
170
|
+
* @param {DeviseScopeArgs} args
|
|
171
|
+
*/
|
|
121
172
|
static setSignedOut(args) {
|
|
122
173
|
ApiMakerDevise.current().currents[inflection.camelize(args.scope, true)] = null;
|
|
123
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* Signs out one scope over HTTP and refreshes websocket auth state.
|
|
177
|
+
* @param {DeviseScopeArgs} args
|
|
178
|
+
* @returns {Promise<DeviseSessionStatusResult>}
|
|
179
|
+
*/
|
|
124
180
|
static async signOut(args = {}) {
|
|
125
181
|
if (!args.scope) {
|
|
126
182
|
args.scope = "user";
|
|
127
183
|
}
|
|
128
|
-
const response = await Services.current().sendRequest("Devise::SignOut", { args }, { forceHttp: true });
|
|
184
|
+
const response = /** @type {DeviseSessionStatusResult} */ (await Services.current().sendRequest("Devise::SignOut", { args }, { forceHttp: true }));
|
|
129
185
|
const sessionStatus = await ApiMakerDevise.syncSessionStatusAndRefreshWebsocket({
|
|
130
186
|
httpResponse: response,
|
|
131
187
|
scope: args.scope,
|
|
@@ -144,8 +200,8 @@ export default class ApiMakerDevise {
|
|
|
144
200
|
* Applies the latest HTTP session status locally, then refreshes the
|
|
145
201
|
* existing websocket connection so ApiMaker commands use the same auth.
|
|
146
202
|
*
|
|
147
|
-
* @param {
|
|
148
|
-
* @returns {Promise<
|
|
203
|
+
* @param {SyncSessionArgs} args
|
|
204
|
+
* @returns {Promise<DeviseSessionStatusResult>}
|
|
149
205
|
*/
|
|
150
206
|
static async syncSessionStatusAndRefreshWebsocket(args) {
|
|
151
207
|
const sessionStatus = await ApiMakerDevise.syncSessionStatusFromHttpResponse(args.httpResponse);
|
|
@@ -158,8 +214,9 @@ export default class ApiMakerDevise {
|
|
|
158
214
|
return sessionStatus;
|
|
159
215
|
}
|
|
160
216
|
/**
|
|
161
|
-
*
|
|
162
|
-
* @
|
|
217
|
+
* Updates local session status from one HTTP response payload.
|
|
218
|
+
* @param {DeviseSessionStatusResult} httpResponse
|
|
219
|
+
* @returns {Promise<DeviseSessionStatusResult>}
|
|
163
220
|
*/
|
|
164
221
|
static async syncSessionStatusFromHttpResponse(httpResponse) {
|
|
165
222
|
const sessionStatusUpdater = SessionStatusUpdater.current();
|
|
@@ -170,16 +227,16 @@ export default class ApiMakerDevise {
|
|
|
170
227
|
/**
|
|
171
228
|
* Refreshes ApiMaker auth inside the existing websocket connection.
|
|
172
229
|
*
|
|
173
|
-
* @param {
|
|
174
|
-
* @returns {Promise<
|
|
230
|
+
* @param {DeviseScopeArgs & {shadowSessionToken?: string}} args
|
|
231
|
+
* @returns {Promise<DeviseSessionStatusResult>}
|
|
175
232
|
*/
|
|
176
233
|
static async refreshWebsocketSession(args) {
|
|
177
|
-
return Services.current().sendRequest("Devise::PersistSession", args);
|
|
234
|
+
return /** @type {DeviseSessionStatusResult} */ (await Services.current().sendRequest("Devise::PersistSession", args));
|
|
178
235
|
}
|
|
179
236
|
/**
|
|
180
237
|
* Refreshes auth on the existing subscriptions channel pools.
|
|
181
238
|
*
|
|
182
|
-
* @param {
|
|
239
|
+
* @param {DeviseScopeArgs & {shadowSessionToken?: string}} args
|
|
183
240
|
* @returns {Promise<void>}
|
|
184
241
|
*/
|
|
185
242
|
static async refreshSubscriptionAuthentication(args) {
|
|
@@ -187,23 +244,35 @@ export default class ApiMakerDevise {
|
|
|
187
244
|
}
|
|
188
245
|
/** Constructor. */
|
|
189
246
|
constructor() {
|
|
190
|
-
this.currents = {};
|
|
247
|
+
this.currents = /** @type {Record<string, DeviseCurrentScope>} */ ({});
|
|
191
248
|
}
|
|
192
|
-
/**
|
|
249
|
+
/**
|
|
250
|
+
* Returns the current model cached for one scope.
|
|
251
|
+
* @param {string} scope
|
|
252
|
+
* @returns {DeviseCurrentScope}
|
|
253
|
+
*/
|
|
193
254
|
getCurrentScope(scope) {
|
|
194
255
|
if (!(scope in this.currents)) {
|
|
195
256
|
this.currents[scope] = this.loadCurrentScope(scope);
|
|
196
257
|
}
|
|
197
258
|
return this.currents[scope];
|
|
198
259
|
}
|
|
199
|
-
/**
|
|
260
|
+
/**
|
|
261
|
+
* Returns whether the server rendered current-scope payload for one scope.
|
|
262
|
+
* @param {string} scope
|
|
263
|
+
* @returns {boolean}
|
|
264
|
+
*/
|
|
200
265
|
hasGlobalCurrentScope(scope) {
|
|
201
266
|
if (globalThis.apiMakerDeviseCurrent && scope in globalThis.apiMakerDeviseCurrent) {
|
|
202
267
|
return true;
|
|
203
268
|
}
|
|
204
269
|
return false;
|
|
205
270
|
}
|
|
206
|
-
/**
|
|
271
|
+
/**
|
|
272
|
+
* Hydrates the current scope model from the server rendered payload.
|
|
273
|
+
* @param {string} scope
|
|
274
|
+
* @returns {DeviseCurrentScope}
|
|
275
|
+
*/
|
|
207
276
|
loadCurrentScope(scope) {
|
|
208
277
|
if (!this.hasGlobalCurrentScope(scope)) {
|
|
209
278
|
return null;
|
|
@@ -220,4 +289,4 @@ export default class ApiMakerDevise {
|
|
|
220
289
|
return modelInstance;
|
|
221
290
|
}
|
|
222
291
|
}
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aXNlLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJkZXZpc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUEsQ0FBQyxtQ0FBbUM7QUFDNUUsT0FBTyxtQkFBbUIsTUFBTSw0QkFBNEIsQ0FBQTtBQUM1RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sT0FBTyxDQUFBO0FBQ25DLE9BQU8sWUFBWSxNQUFNLG1CQUFtQixDQUFBLENBQUMsbUNBQW1DO0FBQ2hGLE9BQU8sTUFBTSxNQUFNLGFBQWEsQ0FBQTtBQUNoQyxPQUFPLGlCQUFpQixNQUFNLDBCQUEwQixDQUFBO0FBQ3hELE9BQU8sb0JBQW9CLE1BQU0sNkJBQTZCLENBQUEsQ0FBQyxtQ0FBbUM7QUFDbEcsT0FBTyxRQUFRLE1BQU0sZUFBZSxDQUFBLENBQUMsbUNBQW1DO0FBRXhFLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYztJQUFFLFVBQVUsQ0FBQyxjQUFjLEdBQUcsRUFBQyxNQUFNLEVBQUUsRUFBRSxFQUFDLENBQUE7QUFFeEUsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQTtBQUV4QyxtQkFBbUI7QUFDbkIsTUFBTSxXQUFXO0lBQ2YsbUJBQW1CO0lBQ25CLFlBQVksS0FBSyxFQUFFLElBQUk7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFDaEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDcEIsQ0FBQztJQUVELGtCQUFrQjtJQUNsQixVQUFVLEdBQUcsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtDQUNoQztBQUVELHNCQUFzQjtBQUN0QixNQUFNLENBQUMsT0FBTyxPQUFPLGNBQWM7SUFDakMsd0JBQXdCO0lBQ3hCLE1BQU0sQ0FBQyxnQkFBZ0Is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SSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUV6RCxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU8sSUFBSSxDQUFBO1FBRTNCLE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFckQscURBQXFEO1FBQ3JELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7WUFBRSxPQUFPLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUU3RCxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMzQyxNQUFNLGFBQWEsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFDLElBQUksRUFBRSxlQUFlLEVBQUMsQ0FBQyxDQUFBO1FBRTdELE9BQU8sYUFBYSxDQUFBO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuaW1wb3J0IENhYmxlQ29ubmVjdGlvblBvb2wgZnJvbSBcIi4vY2FibGUtY29ubmVjdGlvbi1wb29sLmpzXCJcbmltcG9ydCB7Y3JlYXRlQ29udGV4dH0gZnJvbSBcInJlYWN0XCJcbmltcG9ydCBEZXNlcmlhbGl6ZXIgZnJvbSBcIi4vZGVzZXJpYWxpemVyLmpzXCIgLy8gZXNsaW50LWRpc2FibGUtbGluZSBzb3J0LWltcG9ydHNcbmltcG9ydCBldmVudHMgZnJvbSBcIi4vZXZlbnRzLmpzXCJcbmltcG9ydCBtb2RlbENsYXNzUmVxdWlyZSBmcm9tIFwiLi9tb2RlbC1jbGFzcy1yZXF1aXJlLmpzXCJcbmltcG9ydCBTZXNzaW9uU3RhdHVzVXBkYXRlciBmcm9tIFwiLi9zZXNzaW9uLXN0YXR1cy11cGRhdGVyLmpzXCIgLy8gZXNsaW50LWRpc2FibGUtbGluZSBzb3J0LWltcG9ydHNcbmltcG9ydCBTZXJ2aWNlcyBmcm9tIFwiLi9zZXJ2aWNlcy5qc1wiIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgc29ydC1pbXBvcnRzXG5cbmlmICghZ2xvYmFsVGhpcy5BcGlNYWtlckRldmlzZSkgZ2xvYmFsVGhpcy5BcGlNYWtlckRldmlzZSA9IHtzY29wZXM6IHt9fVxuXG5jb25zdCBzaGFyZWQgPSBnbG9iYWxUaGlzLkFwaU1ha2VyRGV2aXNlXG5cbi8qKiBEZXZpc2VTY29wZS4gKi9cbmNsYXNzIERldmlzZVNjb3BlIHtcbiAgLyoqIENvbnN0cnVjdG9yLiAqL1xuICBjb25zdHJ1Y3RvcihzY29wZSwgYXJncykge1xuICAgIHRoaXMuYXJncyA9IGFyZ3NcbiAgICB0aGlzLmNvbnRleHQgPSBjcmVhdGVDb250ZXh0KHVuZGVmaW5lZClcbiAgICB0aGlzLnNjb3BlID0gc2NvcGVcbiAgfVxuXG4gIC8qKiBnZXRDb250ZXh0LiAqL1xuICBnZXRDb250ZXh0ID0gKCkgPT4gdGhpcy5jb250ZXh0XG59XG5cbi8qKiBBcGlNYWtlckRldmlzZS4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwaU1ha2VyRGV2aXNlIHtcbiAgLyoqIGNhbGxTaWduT3V0RXZlbnQuICovXG4gIHN0YXRpYyBjYWxsU2lnbk91dEV2ZW50KGFyZ3MpIHtcbiAgICBldmVudHMuZW1pdChcIm9uRGV2aXNlU2lnbk91dFwiLCB7YXJnc30pXG4gIH1cblxuICAvKiogQHJldHVybnMge0FwaU1ha2VyRGV2aXNlfSAqL1xuICBzdGF0aWMgY3VycmVudCgpIHtcbiAgICBpZiAoIXNoYXJlZC5jdXJyZW50QXBpTWFrZXJEZXZpc2UpIHtcbiAgICAgIHNoYXJlZC5jdXJyZW50QXBpTWFrZXJEZXZpc2UgPSBuZXcgQXBpTWFrZXJEZXZpc2UoKVxuICAgIH1cblxuICAgIHJldHVybiBzaGFyZWQuY3VycmVudEFwaU1ha2VyRGV2aXNlXG4gIH1cblxuICAvKiogZXZlbnRzLiAqL1xuICBzdGF0aWMgZXZlbnRzKCkge1xuICAgIHJldHVybiBldmVudHNcbiAgfVxuXG4gIC8qKiBhZGRVc2VyU2NvcGUuICovXG4gIHN0YXRpYyBhZGRVc2VyU2NvcGUoc2NvcGUsIGFyZ3MgPSB7fSkge1xuICAgIGNvbnN0IHNjb3BlQ2FtZWxpemVkID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShzY29wZSlcbiAgICBjb25zdCBjdXJyZW50TWV0aG9kTmFtZSA9IGBjdXJyZW50JHtzY29wZUNhbWVsaXplZH1gXG4gICAgY29uc3QgaXNTaWduZWRJbk1ldGhvZE5hbWUgPSBgaXMke3Njb3BlQ2FtZWxpemVkfVNpZ25lZEluYFxuICAgIGNvbnN0IGdldEFyZ3NNZXRob2ROYW1lID0gYGdldCR7c2NvcGVDYW1lbGl6ZWR9QXJnc2BcbiAgICBjb25zdCBnZXRTY29wZU5hbWUgPSBgZ2V0JHtzY29wZUNhbWVsaXplZH1TY29wZWBcbiAgICBjb25zdCBzY29wZUluc3RhbmNlID0gbmV3IERldmlzZVNjb3BlKHNjb3BlLCBhcmdzKVxuXG4gICAgc2hhcmVkLnNjb3Blc1tzY29wZV0gPSB0cnVlXG4gICAgQXBpTWFrZXJEZXZpc2VbY3VycmVudE1ldGhvZE5hbWVdID0gKCkgPT4gQXBpTWFrZXJEZXZpc2UuY3VycmVudCgpLmdldEN1cnJlbnRTY29wZShzY29wZSlcbiAgICBBcGlNYWtlckRldmlzZVtpc1NpZ25lZEluTWV0aG9kTmFtZV0gPSAoKSA9PiBCb29sZWFuKEFwaU1ha2VyRGV2aXNlLmN1cnJlbnQoKS5nZXRDdXJyZW50U2NvcGUoc2NvcGUpKVxuICAgIEFwaU1ha2VyRGV2aXNlW2dldEFyZ3NNZXRob2ROYW1lXSA9ICgpID0+IGFyZ3NcbiAgICBBcGlNYWtlckRldmlzZVtnZXRTY29wZU5hbWVdID0gKCkgPT4gc2NvcGVJbnN0YW5jZVxuICB9XG5cbiAgLyoqIGdldFNjb3BlLiAqL1xuICBzdGF0aWMgZ2V0U2NvcGUoc2NvcGUpIHtcbiAgICBjb25zdCBzY29wZUNhbWVsaXplZCA9IGluZmxlY3Rpb24uY2FtZWxpemUoc2NvcGUpXG4gICAgY29uc3QgZ2V0U2NvcGVOYW1lID0gYGdldCR7c2NvcGVDYW1lbGl6ZWR9U2NvcGVgXG5cbiAgICByZXR1cm4gQXBpTWFrZXJEZXZpc2VbZ2V0U2NvcGVOYW1lXSgpXG4gIH1cblxuICAvKiogQHJldHVybnMge3N0cmluZ1tdfSAqL1xuICBzdGF0aWMgcmVnaXN0ZXJlZFNjb3BlcygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoc2hhcmVkLnNjb3BlcylcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBzaWduSW4odXNlcm5hbWUsIHBhc3N3b3JkLCBhcmdzID0ge30pIHtcbiAgICBpZiAoIWFyZ3Muc2NvcGUpIGFyZ3Muc2NvcGUgPSBcInVzZXJcIlxuXG4gICAgY29uc3QgcG9zdERhdGEgPSB7dXNlcm5hbWUsIHBhc3N3b3JkLCBhcmdzfVxuXG4gICAgLy8gU2lnbiBpbiBvdmVyIEhUVFAgZmlyc3Qgc28gRGV2aXNlIGNhbiB3cml0ZSB0aGUgcmVhbCBzZXNzaW9uIGNvb2tpZSBhbmRcbiAgICAvLyByZW1lbWJlci1tZSB0b2tlbiBpbiB0aGUgSFRUUCByZXNwb25zZS5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFNlcnZpY2VzLmN1cnJlbnQoKS5zZW5kUmVxdWVzdChcIkRldmlzZTo6U2lnbkluXCIsIHBvc3REYXRhLCB7Zm9yY2VIdHRwOiB0cnVlfSlcblxuICAgIGxldCBtb2RlbCA9IHJlc3BvbnNlLm1vZGVsXG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShtb2RlbCkpIG1vZGVsID0gbW9kZWxbMF1cblxuICAgIGF3YWl0IEFwaU1ha2VyRGV2aXNlLnN5bmNTZXNzaW9uU3RhdHVzQW5kUmVmcmVzaFdlYnNvY2tldCh7XG4gICAgICBodHRwUmVzcG9uc2U6IHJlc3BvbnNlLFxuICAgICAgc2NvcGU6IGFyZ3Muc2NvcGUsXG4gICAgICB3ZWJzb2NrZXRBcmdzOiB7XG4gICAgICAgIHJlbWVtYmVyTWU6IGFyZ3MucmVtZW1iZXJNZSxcbiAgICAgICAgc2NvcGU6IGFyZ3Muc2NvcGUsXG4gICAgICAgIHNpZ25lZEluOiB0cnVlXG4gICAgICB9XG4gICAgfSlcblxuICAgIEFwaU1ha2VyRGV2aXNlLnVwZGF0ZVNlc3Npb24obW9kZWwpXG5cbiAgICBpZiAoIWFyZ3Muc2tpcFNpZ25JbkV2ZW50KSB7XG4gICAgICBldmVudHMuZW1pdChcIm9uRGV2aXNlU2lnbkluXCIsIHt1c2VybmFtZSwgLi4uYXJnc30pXG4gICAgfVxuXG4gICAgcmV0dXJuIHttb2RlbCwgcmVzcG9uc2V9XG4gIH1cblxuICAvKipcbiAgICogU3luY2hyb25pemVzIHRoZSBjdXJyZW50IGJhY2tlbmQgYXV0aCBzdGF0ZSBpbnRvIHJlYWwgSFRUUCByZXNwb25zZSBjb29raWVzLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IFthcmdzXVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHBlcnNpc3RTZXNzaW9uKGFyZ3MgPSB7fSkge1xuICAgIGlmICghYXJncy5zY29wZSkgYXJncy5zY29wZSA9IFwidXNlclwiXG5cbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IFNlcnZpY2VzLmN1cnJlbnQoKS5zZW5kUmVxdWVzdChcIkRldmlzZTo6UGVyc2lzdFNlc3Npb25cIiwgYXJncywge2ZvcmNlSHR0cDogdHJ1ZX0pXG5cbiAgICBjb25zdCBzZXNzaW9uU3RhdHVzVXBkYXRlciA9IFNlc3Npb25TdGF0dXNVcGRhdGVyLmN1cnJlbnQoKVxuXG4gICAgaWYgKHJlc3BvbnNlLnNlc3Npb25fc3RhdHVzKSB7XG4gICAgICBzZXNzaW9uU3RhdHVzVXBkYXRlci5hcHBseVJlc3VsdChyZXNwb25zZS5zZXNzaW9uX3N0YXR1cylcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgc2Vzc2lvblN0YXR1c1VwZGF0ZXIudXBkYXRlU2Vzc2lvblN0YXR1cygpXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3BvbnNlXG4gIH1cblxuICAvKiogdXBkYXRlU2Vzc2lvbi4gKi9cbiAgc3RhdGljIHVwZGF0ZVNlc3Npb24obW9kZWwsIGFyZ3MgPSB7fSkge1xuICAgIGlmICghYXJncy5zY29wZSkgYXJncy5zY29wZSA9IFwidXNlclwiXG5cbiAgICBjb25zdCBjYW1lbGl6ZWRTY29wZU5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKGFyZ3Muc2NvcGUsIHRydWUpXG5cbiAgICBBcGlNYWtlckRldmlzZS5jdXJyZW50KCkuY3VycmVudHNbY2FtZWxpemVkU2NvcGVOYW1lXSA9IG1vZGVsXG4gIH1cblxuICAvKiogaGFzQ3VycmVudFNjb3BlLiAqL1xuICBoYXNDdXJyZW50U2NvcGUoc2NvcGUpIHtcbiAgICBjb25zdCBjYW1lbGl6ZWRTY29wZU5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKHNjb3BlLCB0cnVlKVxuXG4gICAgcmV0dXJuIGNhbWVsaXplZFNjb3BlTmFtZSBpbiBBcGlNYWtlckRldmlzZS5jdXJyZW50KCkuY3VycmVudHNcbiAgfVxuXG4gIC8qKiBzZXRTaWduZWRPdXQuICovXG4gIHN0YXRpYyBzZXRTaWduZWRPdXQoYXJncykge1xuICAgIEFwaU1ha2VyRGV2aXNlLmN1cnJlbnQoKS5jdXJyZW50c1tpbmZsZWN0aW9uLmNhbWVsaXplKGFyZ3Muc2NvcGUsIHRydWUpXSA9IG51bGxcbiAgfVxuXG4gIHN0YXRpYyBhc3luYyBzaWduT3V0KGFyZ3MgPSB7fSkge1xuICAgIGlmICghYXJncy5zY29wZSkge1xuICAgICAgYXJncy5zY29wZSA9IFwidXNlclwiXG4gICAgfVxuXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBTZXJ2aWNlcy5jdXJyZW50KCkuc2VuZFJlcXVlc3QoXCJEZXZpc2U6OlNpZ25PdXRcIiwge2FyZ3N9LCB7Zm9yY2VIdHRwOiB0cnVlfSlcbiAgICBjb25zdCBzZXNzaW9uU3RhdHVzID0gYXdhaXQgQXBpTWFrZXJEZXZpc2Uuc3luY1Nlc3Npb25TdGF0dXNBbmRSZWZyZXNoV2Vic29ja2V0KHtcbiAgICAgIGh0dHBSZXNwb25zZTogcmVzcG9uc2UsXG4gICAgICBzY29wZTogYXJncy5zY29wZSxcbiAgICAgIHdlYnNvY2tldEFyZ3M6IHtcbiAgICAgICAgc2NvcGU6IGFyZ3Muc2NvcGUsXG4gICAgICAgIHNpZ25lZEluOiBmYWxzZVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAoIXNlc3Npb25TdGF0dXMuc2NvcGVzPy5bYXJncy5zY29wZV0/LnNpZ25lZF9pbikge1xuICAgICAgQXBpTWFrZXJEZXZpc2Uuc2V0U2lnbmVkT3V0KGFyZ3MpXG4gICAgICBBcGlNYWtlckRldmlzZS5jYWxsU2lnbk91dEV2ZW50KGFyZ3MpXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3BvbnNlXG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyB0aGUgbGF0ZXN0IEhUVFAgc2Vzc2lvbiBzdGF0dXMgbG9jYWxseSwgdGhlbiByZWZyZXNoZXMgdGhlXG4gICAqIGV4aXN0aW5nIHdlYnNvY2tldCBjb25uZWN0aW9uIHNvIEFwaU1ha2VyIGNvbW1hbmRzIHVzZSB0aGUgc2FtZSBhdXRoLlxuICAgKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IGFyZ3NcbiAgICogQHJldHVybnMge1Byb21pc2U8UmVjb3JkPHN0cmluZywgYW55Pj59XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgc3luY1Nlc3Npb25TdGF0dXNBbmRSZWZyZXNoV2Vic29ja2V0KGFyZ3MpIHtcbiAgICBjb25zdCBzZXNzaW9uU3RhdHVzID0gYXdhaXQgQXBpTWFrZXJEZXZpc2Uuc3luY1Nlc3Npb25TdGF0dXNGcm9tSHR0cFJlc3BvbnNlKGFyZ3MuaHR0cFJlc3BvbnNlKVxuICAgIGNvbnN0IHdlYnNvY2tldEFyZ3MgPSB7XG4gICAgICAuLi5hcmdzLndlYnNvY2tldEFyZ3MsXG4gICAgICBzaGFkb3dTZXNzaW9uVG9rZW46IHNlc3Npb25TdGF0dXMuc2hhZG93X3Nlc3Npb25fdG9rZW5cbiAgICB9XG5cbiAgICBhd2FpdCBBcGlNYWtlckRldmlzZS5yZWZyZXNoV2Vic29ja2V0U2Vzc2lvbih3ZWJzb2NrZXRBcmdzKVxuICAgIGF3YWl0IEFwaU1ha2VyRGV2aXNlLnJlZnJlc2hTdWJzY3JpcHRpb25BdXRoZW50aWNhdGlvbih3ZWJzb2NrZXRBcmdzKVxuXG4gICAgcmV0dXJuIHNlc3Npb25TdGF0dXNcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIGFueT59IGh0dHBSZXNwb25zZVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+Pn1cbiAgICovXG4gIHN0YXRpYyBhc3luYyBzeW5jU2Vzc2lvblN0YXR1c0Zyb21IdHRwUmVzcG9uc2UoaHR0cFJlc3BvbnNlKSB7XG4gICAgY29uc3Qgc2Vzc2lvblN0YXR1c1VwZGF0ZXIgPSBTZXNzaW9uU3RhdHVzVXBkYXRlci5jdXJyZW50KClcbiAgICBjb25zdCBzZXNzaW9uU3RhdHVzID0gaHR0cFJlc3BvbnNlLnNlc3Npb25fc3RhdHVzIHx8IGF3YWl0IHNlc3Npb25TdGF0dXNVcGRhdGVyLnNlc3Npb25TdGF0dXMoKVxuXG4gICAgc2Vzc2lvblN0YXR1c1VwZGF0ZXIuYXBwbHlSZXN1bHQoc2Vzc2lvblN0YXR1cylcblxuICAgIHJldHVybiBzZXNzaW9uU3RhdHVzXG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIEFwaU1ha2VyIGF1dGggaW5zaWRlIHRoZSBleGlzdGluZyB3ZWJzb2NrZXQgY29ubmVjdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgcmVmcmVzaFdlYnNvY2tldFNlc3Npb24oYXJncykge1xuICAgIHJldHVybiBTZXJ2aWNlcy5jdXJyZW50KCkuc2VuZFJlcXVlc3QoXCJEZXZpc2U6OlBlcnNpc3RTZXNzaW9uXCIsIGFyZ3MpXG4gIH1cblxuICAvKipcbiAgICogUmVmcmVzaGVzIGF1dGggb24gdGhlIGV4aXN0aW5nIHN1YnNjcmlwdGlvbnMgY2hhbm5lbCBwb29scy5cbiAgICpcbiAgICogQHBhcmFtIHtSZWNvcmQ8c3RyaW5nLCBhbnk+fSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHJlZnJlc2hTdWJzY3JpcHRpb25BdXRoZW50aWNhdGlvbihhcmdzKSB7XG4gICAgYXdhaXQgQ2FibGVDb25uZWN0aW9uUG9vbC5jdXJyZW50KCkucmVmcmVzaEF1dGhlbnRpY2F0aW9uKGFyZ3MpXG4gIH1cblxuICAvKiogQ29uc3RydWN0b3IuICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY3VycmVudHMgPSB7fVxuICB9XG5cbiAgLyoqIGdldEN1cnJlbnRTY29wZS4gKi9cbiAgZ2V0Q3VycmVudFNjb3BlKHNjb3BlKSB7XG4gICAgaWYgKCEoc2NvcGUgaW4gdGhpcy5jdXJyZW50cykpIHtcbiAgICAgIHRoaXMuY3VycmVudHNbc2NvcGVdID0gdGhpcy5sb2FkQ3VycmVudFNjb3BlKHNjb3BlKVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRzW3Njb3BlXVxuICB9XG5cbiAgLyoqIGhhc0dsb2JhbEN1cnJlbnRTY29wZS4gKi9cbiAgaGFzR2xvYmFsQ3VycmVudFNjb3BlKHNjb3BlKSB7XG4gICAgaWYgKGdsb2JhbFRoaXMuYXBpTWFrZXJEZXZpc2VDdXJyZW50ICYmIHNjb3BlIGluIGdsb2JhbFRoaXMuYXBpTWFrZXJEZXZpc2VDdXJyZW50KSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqIGxvYWRDdXJyZW50U2NvcGUuICovXG4gIGxvYWRDdXJyZW50U2NvcGUoc2NvcGUpIHtcbiAgICBpZiAoIXRoaXMuaGFzR2xvYmFsQ3VycmVudFNjb3BlKHNjb3BlKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCBzY29wZURhdGEgPSBnbG9iYWxUaGlzLmFwaU1ha2VyRGV2aXNlQ3VycmVudFtzY29wZV1cblxuICAgIGlmICghc2NvcGVEYXRhKSByZXR1cm4gbnVsbFxuXG4gICAgY29uc3QgcGFyc2VkU2NvcGVEYXRhID0gRGVzZXJpYWxpemVyLnBhcnNlKHNjb3BlRGF0YSlcblxuICAgIC8vIE1pZ2h0IGJlIGEgY29sbGVjdGlvbiB3aXRoIHByZWxvYWRlZCByZWxhdGlvbnNoaXBzXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocGFyc2VkU2NvcGVEYXRhKSkgcmV0dXJuIHBhcnNlZFNjb3BlRGF0YVswXVxuXG4gICAgY29uc3QgTW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NSZXF1aXJlKHNjb3BlKVxuICAgIGNvbnN0IG1vZGVsSW5zdGFuY2UgPSBuZXcgTW9kZWxDbGFzcyh7ZGF0YTogcGFyc2VkU2NvcGVEYXRhfSlcblxuICAgIHJldHVybiBtb2RlbEluc3RhbmNlXG4gIH1cbn1cbiJdfQ==
|
|
292
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aXNlLmpzIiwic291cmNlUm9vdCI6Ii9zcmMvIiwic291cmNlcyI6WyJkZXZpc2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUNaLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBLENBQUMsbUNBQW1DO0FBQzVFLE9BQU8sbUJBQW1CLE1BQU0sNEJBQTRCLENBQUE7QUFDNUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLE9BQU8sQ0FBQTtBQUNuQyxPQUFPLFlBQVksTUFBTSxtQkFBbUIsQ0FBQSxDQUFDLG1DQUFtQztBQUNoRixPQUFPLE1BQU0sTUFBTSxhQUFhLENBQUE7QUFDaEMsT0FBTyxpQkFBaUIsTUFBTSwwQkFBMEIsQ0FBQTtBQUN4RCxPQUFPLG9CQUFvQixNQUFNLDZCQUE2QixDQUFBLENBQUMsbUNBQW1DO0FBQ2xHLE9BQU8sUUFBUSxNQUFNLGVBQWUsQ0FBQSxDQUFDLG1DQUFtQztBQUV4RSxpSEFBaUg7QUFDakgsK0RBQStEO0FBQy9EOzs7Ozs7R0FNRztBQUNILHVIQUF1SDtBQUN2SCxvSkFBb0o7QUFDcEosMEhBQTBIO0FBQzFILDZFQUE2RTtBQUU3RSxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWM7SUFBRSxVQUFVLENBQUMsY0FBYyxHQUFHLEVBQUMsTUFBTSxFQUFFLEVBQUUsRUFBQyxDQUFBO0FBRXhFLE1BQU0sTUFBTSxHQUFHLG1DQUFtQyxDQUFDLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0FBRTlFLG1CQUFtQjtBQUNuQixNQUFNLFdBQVc7SUFDZjs7OztPQUlHO0lBQ0gsWUFBWSxLQUFLLEVBQUUsSUFBSTtRQUNyQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtRQUNoQixJQUFJLENBQUMsT0FBTyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUN2QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtJQUNwQixDQUFDO0lBRUQseUVBQXlFO0lBQ3pFLFVBQVUs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RCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gscUJBQXFCLENBQUMsS0FBSztRQUN6QixJQUFJLFVBQVUsQ0FBQyxxQkFBcUIsSUFBSSxLQUFLLElBQUksVUFBVSxDQUFDLHFCQUFxQixFQUFFLENBQUM7WUFDbEYsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGdCQUFnQixDQUFDLEtBQUs7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUV6RCxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU8sSUFBSSxDQUFBO1FBRTNCLE1BQU0sZUFBZSxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFckQscURBQXFEO1FBQ3JELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7WUFBRSxPQUFPLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUU3RCxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMzQyxNQUFNLGFBQWEsR0FBRyxJQUFJLFVBQVUsQ0FBQyxFQUFDLElBQUksRUFBRSxlQUFlLEVBQUMsQ0FBQyxDQUFBO1FBRTdELE9BQU8sYUFBYSxDQUFBO0lBQ3RCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiIC8vIGVzbGludC1kaXNhYmxlLWxpbmUgc29ydC1pbXBvcnRzXG5pbXBvcnQgQ2FibGVDb25uZWN0aW9uUG9vbCBmcm9tIFwiLi9jYWJsZS1jb25uZWN0aW9uLXBvb2wuanNcIlxuaW1wb3J0IHtjcmVhdGVDb250ZXh0fSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IERlc2VyaWFsaXplciBmcm9tIFwiLi9kZXNlcmlhbGl6ZXIuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuaW1wb3J0IGV2ZW50cyBmcm9tIFwiLi9ldmVudHMuanNcIlxuaW1wb3J0IG1vZGVsQ2xhc3NSZXF1aXJlIGZyb20gXCIuL21vZGVsLWNsYXNzLXJlcXVpcmUuanNcIlxuaW1wb3J0IFNlc3Npb25TdGF0dXNVcGRhdGVyIGZyb20gXCIuL3Nlc3Npb24tc3RhdHVzLXVwZGF0ZXIuanNcIiAvLyBlc2xpbnQtZGlzYWJsZS1saW5lIHNvcnQtaW1wb3J0c1xuaW1wb3J0IFNlcnZpY2VzIGZyb20gXCIuL3NlcnZpY2VzLmpzXCIgLy8gZXNsaW50LWRpc2FibGUtbGluZSBzb3J0LWltcG9ydHNcblxuLyoqIEB0eXBlZGVmIHt7c2NvcGVzPzogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4sIGN1cnJlbnRBcGlNYWtlckRldmlzZT86IEFwaU1ha2VyRGV2aXNlfX0gQXBpTWFrZXJEZXZpc2VTaGFyZWQgKi9cbi8qKiBAdHlwZWRlZiB7e3NpZ25lZF9pbjogYm9vbGVhbn19IERldmlzZVNlc3Npb25TdGF0dXNTY29wZSAqL1xuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBEZXZpc2VTZXNzaW9uU3RhdHVzUmVzdWx0XG4gKiBAcHJvcGVydHkge3N0cmluZ30gW2NzcmZfdG9rZW5dXG4gKiBAcHJvcGVydHkge1JlY29yZDxzdHJpbmcsIERldmlzZVNlc3Npb25TdGF0dXNTY29wZT59IHNjb3Blc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IFtzaGFkb3dfc2Vzc2lvbl90b2tlbl1cbiAqIEBwcm9wZXJ0eSB7RGV2aXNlU2Vzc2lvblN0YXR1c1Jlc3VsdH0gW3Nlc3Npb25fc3RhdHVzXVxuICovXG4vKiogQHR5cGVkZWYge3tyZW1lbWJlck1lPzogYm9vbGVhbiwgc2NvcGU/OiBzdHJpbmcsIHNpZ25lZEluPzogYm9vbGVhbiwgc2tpcFNpZ25JbkV2ZW50PzogYm9vbGVhbn19IERldmlzZVNjb3BlQXJncyAqL1xuLyoqIEB0eXBlZGVmIHtEZXZpc2VTZXNzaW9uU3RhdHVzUmVzdWx0ICYge21vZGVsPzogaW1wb3J0KFwiLi9iYXNlLW1vZGVsLmpzXCIpLmRlZmF1bHQgfCBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdFtdfX0gRGV2aXNlU2lnbkluUmVzcG9uc2UgKi9cbi8qKiBAdHlwZWRlZiB7e2h0dHBSZXNwb25zZTogRGV2aXNlU2Vzc2lvblN0YXR1c1Jlc3VsdCwgc2NvcGU6IHN0cmluZywgd2Vic29ja2V0QXJnczogRGV2aXNlU2NvcGVBcmdzfX0gU3luY1Nlc3Npb25BcmdzICovXG4vKiogQHR5cGVkZWYge2ltcG9ydChcIi4vYmFzZS1tb2RlbC5qc1wiKS5kZWZhdWx0IHwgbnVsbH0gRGV2aXNlQ3VycmVudFNjb3BlICovXG5cbmlmICghZ2xvYmFsVGhpcy5BcGlNYWtlckRldmlzZSkgZ2xvYmFsVGhpcy5BcGlNYWtlckRldmlzZSA9IHtzY29wZXM6IHt9fVxuXG5jb25zdCBzaGFyZWQgPSAvKiogQHR5cGUge0FwaU1ha2VyRGV2aXNlU2hhcmVkfSAqLyAoZ2xvYmFsVGhpcy5BcGlNYWtlckRldmlzZSlcblxuLyoqIERldmlzZVNjb3BlLiAqL1xuY2xhc3MgRGV2aXNlU2NvcGUge1xuICAvKipcbiAgICogQ29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY29wZVxuICAgKiBAcGFyYW0ge0RldmlzZVNjb3BlQXJnc30gYXJnc1xuICAgKi9cbiAgY29uc3RydWN0b3Ioc2NvcGUsIGFyZ3MpIHtcbiAgICB0aGlzLmFyZ3MgPSBhcmdzXG4gICAgdGhpcy5jb250ZXh0ID0gY3JlYXRlQ29udGV4dCh1bmRlZmluZWQpXG4gICAgdGhpcy5zY29wZSA9IHNjb3BlXG4gIH1cblxuICAvKiogQHJldHVybnMge2ltcG9ydChcInJlYWN0XCIpLkNvbnRleHQ8RGV2aXNlQ3VycmVudFNjb3BlIHwgdW5kZWZpbmVkPn0gKi9cbiAgZ2V0Q29udGV4dCA9ICgpID0+IHRoaXMuY29udGV4dFxufVxuXG4vKiogQXBpTWFrZXJEZXZpc2UuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBBcGlNYWtlckRldmlzZSB7XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgc2hhcmVkIHNpZ24tb3V0IGV2ZW50IHBheWxvYWQgZm9yIG9uZSBzY29wZS5cbiAgICogQHBhcmFtIHtEZXZpc2VTY29wZUFyZ3N9IGFyZ3NcbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBzdGF0aWMgY2FsbFNpZ25PdXRFdmVudChhcmdzKSB7XG4gICAgZXZlbnRzLmVtaXQoXCJvbkRldmlzZVNpZ25PdXRcIiwge2FyZ3N9KVxuICB9XG5cbiAgLyoqIEByZXR1cm5zIHtBcGlNYWtlckRldmlzZX0gKi9cbiAgc3RhdGljIGN1cnJlbnQoKSB7XG4gICAgaWYgKCFzaGFyZWQuY3VycmVudEFwaU1ha2VyRGV2aXNlKSB7XG4gICAgICBzaGFyZWQuY3VycmVudEFwaU1ha2VyRGV2aXNlID0gbmV3IEFwaU1ha2VyRGV2aXNlKClcbiAgICB9XG5cbiAgICByZXR1cm4gc2hhcmVkLmN1cnJlbnRBcGlNYWtlckRldmlzZVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHNoYXJlZCBldmVudCBlbWl0dGVyIHVzZWQgZm9yIERldmlzZSBsaWZlY3ljbGUgZXZlbnRzLlxuICAgKiBAcmV0dXJucyB7dHlwZW9mIGV2ZW50c31cbiAgICovXG4gIHN0YXRpYyBldmVudHMoKSB7XG4gICAgcmV0dXJuIGV2ZW50c1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBvbmUgRGV2aXNlIHNjb3BlIGFuZCBpdHMgaGVscGVyIGFjY2Vzc29ycy5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNjb3BlXG4gICAqIEBwYXJhbSB7RGV2aXNlU2NvcGVBcmdzfSBhcmdzXG4gICAqL1xuICBzdGF0aWMgYWRkVXNlclNjb3BlKHNjb3BlLCBhcmdzID0ge30pIHtcbiAgICBjb25zdCBzY29wZUNhbWVsaXplZCA9IGluZmxlY3Rpb24uY2FtZWxpemUoc2NvcGUpXG4gICAgY29uc3QgY3VycmVudE1ldGhvZE5hbWUgPSBgY3VycmVudCR7c2NvcGVDYW1lbGl6ZWR9YFxuICAgIGNvbnN0IGlzU2lnbmVkSW5NZXRob2ROYW1lID0gYGlzJHtzY29wZUNhbWVsaXplZH1TaWduZWRJbmBcbiAgICBjb25zdCBnZXRBcmdzTWV0aG9kTmFtZSA9IGBnZXQke3Njb3BlQ2FtZWxpemVkfUFyZ3NgXG4gICAgY29uc3QgZ2V0U2NvcGVOYW1lID0gYGdldCR7c2NvcGVDYW1lbGl6ZWR9U2NvcGVgXG4gICAgY29uc3Qgc2NvcGVJbnN0YW5jZSA9IG5ldyBEZXZpc2VTY29wZShzY29wZSwgYXJncylcblxuICAgIHNoYXJlZC5zY29wZXNbc2NvcGVdID0gdHJ1ZVxuICAgIEFwaU1ha2VyRGV2aXNlW2N1cnJlbnRNZXRob2ROYW1lXSA9ICgpID0+IEFwaU1ha2VyRGV2aXNlLmN1cnJlbnQoKS5nZXRDdXJyZW50U2NvcGUoc2NvcGUpXG4gICAgQXBpTWFrZXJEZXZpc2VbaXNTaWduZWRJbk1ldGhvZE5hbWVdID0gKCkgPT4gQm9vbGVhbihBcGlNYWtlckRldmlzZS5jdXJyZW50KCkuZ2V0Q3VycmVudFNjb3BlKHNjb3BlKSlcbiAgICBBcGlNYWtlckRldmlzZVtnZXRBcmdzTWV0aG9kTmFtZV0gPSAoKSA9PiBhcmdzXG4gICAgQXBpTWFrZXJEZXZpc2VbZ2V0U2NvcGVOYW1lXSA9ICgpID0+IHNjb3BlSW5zdGFuY2VcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSByZWdpc3RlcmVkIHNjb3BlIGhlbHBlciBmb3Igb25lIHNjb3BlIG5hbWUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY29wZVxuICAgKiBAcmV0dXJucyB7RGV2aXNlU2NvcGV9XG4gICAqL1xuICBzdGF0aWMgZ2V0U2NvcGUoc2NvcGUpIHtcbiAgICBjb25zdCBzY29wZUNhbWVsaXplZCA9IGluZmxlY3Rpb24uY2FtZWxpemUoc2NvcGUpXG4gICAgY29uc3QgZ2V0U2NvcGVOYW1lID0gYGdldCR7c2NvcGVDYW1lbGl6ZWR9U2NvcGVgXG5cbiAgICByZXR1cm4gQXBpTWFrZXJEZXZpc2VbZ2V0U2NvcGVOYW1lXSgpXG4gIH1cblxuICAvKiogQHJldHVybnMge3N0cmluZ1tdfSAqL1xuICBzdGF0aWMgcmVnaXN0ZXJlZFNjb3BlcygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMoc2hhcmVkLnNjb3BlcylcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWducyBpbiBvbmUgc2NvcGUgb3ZlciBIVFRQIGFuZCByZWZyZXNoZXMgd2Vic29ja2V0IGF1dGggc3RhdGUuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB1c2VybmFtZVxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFzc3dvcmRcbiAgICogQHBhcmFtIHtEZXZpc2VTY29wZUFyZ3N9IGFyZ3NcbiAgICogQHJldHVybnMge1Byb21pc2U8e21vZGVsOiBpbXBvcnQoXCIuL2Jhc2UtbW9kZWwuanNcIikuZGVmYXVsdCB8IHVuZGVmaW5lZCwgcmVzcG9uc2U6IERldmlzZVNpZ25JblJlc3BvbnNlfT59XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgc2lnbkluKHVzZXJuYW1lLCBwYXNzd29yZCwgYXJncyA9IHt9KSB7XG4gICAgaWYgKCFhcmdzLnNjb3BlKSBhcmdzLnNjb3BlID0gXCJ1c2VyXCJcblxuICAgIGNvbnN0IHBvc3REYXRhID0ge3VzZXJuYW1lLCBwYXNzd29yZCwgYXJnc31cblxuICAgIC8vIFNpZ24gaW4gb3ZlciBIVFRQIGZpcnN0IHNvIERldmlzZSBjYW4gd3JpdGUgdGhlIHJlYWwgc2Vzc2lvbiBjb29raWUgYW5kXG4gICAgLy8gcmVtZW1iZXItbWUgdG9rZW4gaW4gdGhlIEhUVFAgcmVzcG9uc2UuXG4gICAgY29uc3QgcmVzcG9uc2UgPSAvKiogQHR5cGUge0RldmlzZVNpZ25JblJlc3BvbnNlfSAqLyAoXG4gICAgICBhd2FpdCBTZXJ2aWNlcy5jdXJyZW50KCkuc2VuZFJlcXVlc3QoXCJEZXZpc2U6OlNpZ25JblwiLCBwb3N0RGF0YSwge2ZvcmNlSHR0cDogdHJ1ZX0pXG4gICAgKVxuXG4gICAgbGV0IG1vZGVsID0gcmVzcG9uc2UubW9kZWxcblxuICAgIGlmIChBcnJheS5pc0FycmF5KG1vZGVsKSkgbW9kZWwgPSBtb2RlbFswXVxuXG4gICAgYXdhaXQgQXBpTWFrZXJEZXZpc2Uuc3luY1Nlc3Npb25TdGF0dXNBbmRSZWZyZXNoV2Vic29ja2V0KHtcbiAgICAgIGh0dHBSZXNwb25zZTogcmVzcG9uc2UsXG4gICAgICBzY29wZTogYXJncy5zY29wZSxcbiAgICAgIHdlYnNvY2tldEFyZ3M6IHtcbiAgICAgICAgcmVtZW1iZXJNZTogYXJncy5yZW1lbWJlck1lLFxuICAgICAgICBzY29wZTogYXJncy5zY29wZSxcbiAgICAgICAgc2lnbmVkSW46IHRydWVcbiAgICAgIH1cbiAgICB9KVxuXG4gICAgQXBpTWFrZXJEZXZpc2UudXBkYXRlU2Vzc2lvbihtb2RlbClcblxuICAgIGlmICghYXJncy5za2lwU2lnbkluRXZlbnQpIHtcbiAgICAgIGV2ZW50cy5lbWl0KFwib25EZXZpc2VTaWduSW5cIiwge3VzZXJuYW1lLCAuLi5hcmdzfSlcbiAgICB9XG5cbiAgICByZXR1cm4ge21vZGVsLCByZXNwb25zZX1cbiAgfVxuXG4gIC8qKlxuICAgKiBTeW5jaHJvbml6ZXMgdGhlIGN1cnJlbnQgYmFja2VuZCBhdXRoIHN0YXRlIGludG8gcmVhbCBIVFRQIHJlc3BvbnNlIGNvb2tpZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7RGV2aXNlU2NvcGVBcmdzfSBbYXJnc11cbiAgICogQHJldHVybnMge1Byb21pc2U8RGV2aXNlU2Vzc2lvblN0YXR1c1Jlc3VsdD59XG4gICAqL1xuICBzdGF0aWMgYXN5bmMgcGVyc2lzdFNlc3Npb24oYXJncyA9IHt9KSB7XG4gICAgaWYgKCFhcmdzLnNjb3BlKSBhcmdzLnNjb3BlID0gXCJ1c2VyXCJcblxuICAgIGNvbnN0IHJlc3BvbnNlID0gLyoqIEB0eXBlIHtEZXZpc2VTZXNzaW9uU3RhdHVzUmVzdWx0fSAqLyAoXG4gICAgICBhd2FpdCBTZXJ2aWNlcy5jdXJyZW50KCkuc2VuZFJlcXVlc3QoXCJEZXZpc2U6OlBlcnNpc3RTZXNzaW9uXCIsIGFyZ3MsIHtmb3JjZUh0dHA6IHRydWV9KVxuICAgIClcblxuICAgIGNvbnN0IHNlc3Npb25TdGF0dXNVcGRhdGVyID0gU2Vzc2lvblN0YXR1c1VwZGF0ZXIuY3VycmVudCgpXG5cbiAgICBpZiAocmVzcG9uc2Uuc2Vzc2lvbl9zdGF0dXMpIHtcbiAgICAgIHNlc3Npb25TdGF0dXNVcGRhdGVyLmFwcGx5UmVzdWx0KHJlc3BvbnNlLnNlc3Npb25fc3RhdHVzKVxuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBzZXNzaW9uU3RhdHVzVXBkYXRlci51cGRhdGVTZXNzaW9uU3RhdHVzKClcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBsb2NhbGx5IGNhY2hlZCBjdXJyZW50IG1vZGVsIGZvciBvbmUgc2NvcGUuXG4gICAqIEBwYXJhbSB7RGV2aXNlQ3VycmVudFNjb3BlfSBtb2RlbFxuICAgKiBAcGFyYW0ge0RldmlzZVNjb3BlQXJnc30gYXJnc1xuICAgKi9cbiAgc3RhdGljIHVwZGF0ZVNlc3Npb24obW9kZWwsIGFyZ3MgPSB7fSkge1xuICAgIGlmICghYXJncy5zY29wZSkgYXJncy5zY29wZSA9IFwidXNlclwiXG5cbiAgICBjb25zdCBjYW1lbGl6ZWRTY29wZU5hbWUgPSBpbmZsZWN0aW9uLmNhbWVsaXplKGFyZ3Muc2NvcGUsIHRydWUpXG5cbiAgICBBcGlNYWtlckRldmlzZS5jdXJyZW50KCkuY3VycmVudHNbY2FtZWxpemVkU2NvcGVOYW1lXSA9IG1vZGVsXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB3aGV0aGVyIHRoZSBjdXJyZW50IHNjb3BlIGNhY2hlIGhhcyBiZWVuIGluaXRpYWxpemVkIGxvY2FsbHkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY29wZVxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICovXG4gIGhhc0N1cnJlbnRTY29wZShzY29wZSkge1xuICAgIGNvbnN0IGNhbWVsaXplZFNjb3BlTmFtZSA9IGluZmxlY3Rpb24uY2FtZWxpemUoc2NvcGUsIHRydWUpXG5cbiAgICByZXR1cm4gY2FtZWxpemVkU2NvcGVOYW1lIGluIEFwaU1ha2VyRGV2aXNlLmN1cnJlbnQoKS5jdXJyZW50c1xuICB9XG5cbiAgLyoqXG4gICAqIE1hcmtzIG9uZSBzY29wZSBhcyBzaWduZWQgb3V0IGluIHRoZSBsb2NhbCBjdXJyZW50LW1vZGVsIGNhY2hlLlxuICAgKiBAcGFyYW0ge0RldmlzZVNjb3BlQXJnc30gYXJnc1xuICAgKi9cbiAgc3RhdGljIHNldFNpZ25lZE91dChhcmdzKSB7XG4gICAgQXBpTWFrZXJEZXZpc2UuY3VycmVudCgpLmN1cnJlbnRzW2luZmxlY3Rpb24uY2FtZWxpemUoYXJncy5zY29wZSwgdHJ1ZSldID0gbnVsbFxuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25zIG91dCBvbmUgc2NvcGUgb3ZlciBIVFRQIGFuZCByZWZyZXNoZXMgd2Vic29ja2V0IGF1dGggc3RhdGUuXG4gICAqIEBwYXJhbSB7RGV2aXNlU2NvcGVBcmdzfSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERldmlzZVNlc3Npb25TdGF0dXNSZXN1bHQ+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHNpZ25PdXQoYXJncyA9IHt9KSB7XG4gICAgaWYgKCFhcmdzLnNjb3BlKSB7XG4gICAgICBhcmdzLnNjb3BlID0gXCJ1c2VyXCJcbiAgICB9XG5cbiAgICBjb25zdCByZXNwb25zZSA9IC8qKiBAdHlwZSB7RGV2aXNlU2Vzc2lvblN0YXR1c1Jlc3VsdH0gKi8gKFxuICAgICAgYXdhaXQgU2VydmljZXMuY3VycmVudCgpLnNlbmRSZXF1ZXN0KFwiRGV2aXNlOjpTaWduT3V0XCIsIHthcmdzfSwge2ZvcmNlSHR0cDogdHJ1ZX0pXG4gICAgKVxuICAgIGNvbnN0IHNlc3Npb25TdGF0dXMgPSBhd2FpdCBBcGlNYWtlckRldmlzZS5zeW5jU2Vzc2lvblN0YXR1c0FuZFJlZnJlc2hXZWJzb2NrZXQoe1xuICAgICAgaHR0cFJlc3BvbnNlOiByZXNwb25zZSxcbiAgICAgIHNjb3BlOiBhcmdzLnNjb3BlLFxuICAgICAgd2Vic29ja2V0QXJnczoge1xuICAgICAgICBzY29wZTogYXJncy5zY29wZSxcbiAgICAgICAgc2lnbmVkSW46IGZhbHNlXG4gICAgICB9XG4gICAgfSlcblxuICAgIGlmICghc2Vzc2lvblN0YXR1cy5zY29wZXM/LlthcmdzLnNjb3BlXT8uc2lnbmVkX2luKSB7XG4gICAgICBBcGlNYWtlckRldmlzZS5zZXRTaWduZWRPdXQoYXJncylcbiAgICAgIEFwaU1ha2VyRGV2aXNlLmNhbGxTaWduT3V0RXZlbnQoYXJncylcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzcG9uc2VcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIHRoZSBsYXRlc3QgSFRUUCBzZXNzaW9uIHN0YXR1cyBsb2NhbGx5LCB0aGVuIHJlZnJlc2hlcyB0aGVcbiAgICogZXhpc3Rpbmcgd2Vic29ja2V0IGNvbm5lY3Rpb24gc28gQXBpTWFrZXIgY29tbWFuZHMgdXNlIHRoZSBzYW1lIGF1dGguXG4gICAqXG4gICAqIEBwYXJhbSB7U3luY1Nlc3Npb25BcmdzfSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERldmlzZVNlc3Npb25TdGF0dXNSZXN1bHQ+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHN5bmNTZXNzaW9uU3RhdHVzQW5kUmVmcmVzaFdlYnNvY2tldChhcmdzKSB7XG4gICAgY29uc3Qgc2Vzc2lvblN0YXR1cyA9IGF3YWl0IEFwaU1ha2VyRGV2aXNlLnN5bmNTZXNzaW9uU3RhdHVzRnJvbUh0dHBSZXNwb25zZShhcmdzLmh0dHBSZXNwb25zZSlcbiAgICBjb25zdCB3ZWJzb2NrZXRBcmdzID0ge1xuICAgICAgLi4uYXJncy53ZWJzb2NrZXRBcmdzLFxuICAgICAgc2hhZG93U2Vzc2lvblRva2VuOiBzZXNzaW9uU3RhdHVzLnNoYWRvd19zZXNzaW9uX3Rva2VuXG4gICAgfVxuXG4gICAgYXdhaXQgQXBpTWFrZXJEZXZpc2UucmVmcmVzaFdlYnNvY2tldFNlc3Npb24od2Vic29ja2V0QXJncylcbiAgICBhd2FpdCBBcGlNYWtlckRldmlzZS5yZWZyZXNoU3Vic2NyaXB0aW9uQXV0aGVudGljYXRpb24od2Vic29ja2V0QXJncylcblxuICAgIHJldHVybiBzZXNzaW9uU3RhdHVzXG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlcyBsb2NhbCBzZXNzaW9uIHN0YXR1cyBmcm9tIG9uZSBIVFRQIHJlc3BvbnNlIHBheWxvYWQuXG4gICAqIEBwYXJhbSB7RGV2aXNlU2Vzc2lvblN0YXR1c1Jlc3VsdH0gaHR0cFJlc3BvbnNlXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERldmlzZVNlc3Npb25TdGF0dXNSZXN1bHQ+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHN5bmNTZXNzaW9uU3RhdHVzRnJvbUh0dHBSZXNwb25zZShodHRwUmVzcG9uc2UpIHtcbiAgICBjb25zdCBzZXNzaW9uU3RhdHVzVXBkYXRlciA9IFNlc3Npb25TdGF0dXNVcGRhdGVyLmN1cnJlbnQoKVxuICAgIGNvbnN0IHNlc3Npb25TdGF0dXMgPSBodHRwUmVzcG9uc2Uuc2Vzc2lvbl9zdGF0dXMgfHwgYXdhaXQgc2Vzc2lvblN0YXR1c1VwZGF0ZXIuc2Vzc2lvblN0YXR1cygpXG5cbiAgICBzZXNzaW9uU3RhdHVzVXBkYXRlci5hcHBseVJlc3VsdChzZXNzaW9uU3RhdHVzKVxuXG4gICAgcmV0dXJuIHNlc3Npb25TdGF0dXNcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgQXBpTWFrZXIgYXV0aCBpbnNpZGUgdGhlIGV4aXN0aW5nIHdlYnNvY2tldCBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0ge0RldmlzZVNjb3BlQXJncyAmIHtzaGFkb3dTZXNzaW9uVG9rZW4/OiBzdHJpbmd9fSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPERldmlzZVNlc3Npb25TdGF0dXNSZXN1bHQ+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHJlZnJlc2hXZWJzb2NrZXRTZXNzaW9uKGFyZ3MpIHtcbiAgICByZXR1cm4gLyoqIEB0eXBlIHtEZXZpc2VTZXNzaW9uU3RhdHVzUmVzdWx0fSAqLyAoYXdhaXQgU2VydmljZXMuY3VycmVudCgpLnNlbmRSZXF1ZXN0KFwiRGV2aXNlOjpQZXJzaXN0U2Vzc2lvblwiLCBhcmdzKSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgYXV0aCBvbiB0aGUgZXhpc3Rpbmcgc3Vic2NyaXB0aW9ucyBjaGFubmVsIHBvb2xzLlxuICAgKlxuICAgKiBAcGFyYW0ge0RldmlzZVNjb3BlQXJncyAmIHtzaGFkb3dTZXNzaW9uVG9rZW4/OiBzdHJpbmd9fSBhcmdzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgc3RhdGljIGFzeW5jIHJlZnJlc2hTdWJzY3JpcHRpb25BdXRoZW50aWNhdGlvbihhcmdzKSB7XG4gICAgYXdhaXQgQ2FibGVDb25uZWN0aW9uUG9vbC5jdXJyZW50KCkucmVmcmVzaEF1dGhlbnRpY2F0aW9uKGFyZ3MpXG4gIH1cblxuICAvKiogQ29uc3RydWN0b3IuICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY3VycmVudHMgPSAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIERldmlzZUN1cnJlbnRTY29wZT59ICovICh7fSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IG1vZGVsIGNhY2hlZCBmb3Igb25lIHNjb3BlLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NvcGVcbiAgICogQHJldHVybnMge0RldmlzZUN1cnJlbnRTY29wZX1cbiAgICovXG4gIGdldEN1cnJlbnRTY29wZShzY29wZSkge1xuICAgIGlmICghKHNjb3BlIGluIHRoaXMuY3VycmVudHMpKSB7XG4gICAgICB0aGlzLmN1cnJlbnRzW3Njb3BlXSA9IHRoaXMubG9hZEN1cnJlbnRTY29wZShzY29wZSlcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5jdXJyZW50c1tzY29wZV1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHdoZXRoZXIgdGhlIHNlcnZlciByZW5kZXJlZCBjdXJyZW50LXNjb3BlIHBheWxvYWQgZm9yIG9uZSBzY29wZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IHNjb3BlXG4gICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgKi9cbiAgaGFzR2xvYmFsQ3VycmVudFNjb3BlKHNjb3BlKSB7XG4gICAgaWYgKGdsb2JhbFRoaXMuYXBpTWFrZXJEZXZpc2VDdXJyZW50ICYmIHNjb3BlIGluIGdsb2JhbFRoaXMuYXBpTWFrZXJEZXZpc2VDdXJyZW50KSB7XG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cblxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIEh5ZHJhdGVzIHRoZSBjdXJyZW50IHNjb3BlIG1vZGVsIGZyb20gdGhlIHNlcnZlciByZW5kZXJlZCBwYXlsb2FkLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NvcGVcbiAgICogQHJldHVybnMge0RldmlzZUN1cnJlbnRTY29wZX1cbiAgICovXG4gIGxvYWRDdXJyZW50U2NvcGUoc2NvcGUpIHtcbiAgICBpZiAoIXRoaXMuaGFzR2xvYmFsQ3VycmVudFNjb3BlKHNjb3BlKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCBzY29wZURhdGEgPSBnbG9iYWxUaGlzLmFwaU1ha2VyRGV2aXNlQ3VycmVudFtzY29wZV1cblxuICAgIGlmICghc2NvcGVEYXRhKSByZXR1cm4gbnVsbFxuXG4gICAgY29uc3QgcGFyc2VkU2NvcGVEYXRhID0gRGVzZXJpYWxpemVyLnBhcnNlKHNjb3BlRGF0YSlcblxuICAgIC8vIE1pZ2h0IGJlIGEgY29sbGVjdGlvbiB3aXRoIHByZWxvYWRlZCByZWxhdGlvbnNoaXBzXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocGFyc2VkU2NvcGVEYXRhKSkgcmV0dXJuIHBhcnNlZFNjb3BlRGF0YVswXVxuXG4gICAgY29uc3QgTW9kZWxDbGFzcyA9IG1vZGVsQ2xhc3NSZXF1aXJlKHNjb3BlKVxuICAgIGNvbnN0IG1vZGVsSW5zdGFuY2UgPSBuZXcgTW9kZWxDbGFzcyh7ZGF0YTogcGFyc2VkU2NvcGVEYXRhfSlcblxuICAgIHJldHVybiBtb2RlbEluc3RhbmNlXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,53 +1,144 @@
|
|
|
1
|
+
/** @typedef {import("eventemitter3").EventEmitter} DraggableSortEventEmitter */
|
|
2
|
+
/** @typedef {import("react-native").LayoutRectangle} DraggableSortLayout */
|
|
3
|
+
/** @typedef {import("react-native").PanResponderGestureState} DraggableSortGestureState */
|
|
4
|
+
/** @typedef {{x: number, y: number}} DraggableSortPosition */
|
|
5
|
+
/** @typedef {(item: object) => string} DraggableSortKeyExtractor */
|
|
6
|
+
/**
|
|
7
|
+
* @typedef {object} DraggableSortItemData
|
|
8
|
+
* @property {number} index
|
|
9
|
+
* @property {object} item
|
|
10
|
+
* @property {number} position
|
|
11
|
+
* @property {number} [baseX]
|
|
12
|
+
* @property {DraggableSortEventEmitter} [events]
|
|
13
|
+
* @property {DraggableSortLayout} [initialLayout]
|
|
14
|
+
* @property {string} [key]
|
|
15
|
+
* @property {DraggableSortLayout} [layout]
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* @typedef {object} DraggableSortDragEndArgs
|
|
19
|
+
* @property {number} fromIndex
|
|
20
|
+
* @property {object} fromItem
|
|
21
|
+
* @property {number} fromPosition
|
|
22
|
+
* @property {object} item
|
|
23
|
+
* @property {DraggableSortItemData} itemData
|
|
24
|
+
* @property {object|null} toItem
|
|
25
|
+
* @property {number|null} toPosition
|
|
26
|
+
*/
|
|
1
27
|
/** Controller for drag-sort row state and events. */
|
|
2
28
|
export default class DraggableSortController {
|
|
3
|
-
/**
|
|
29
|
+
/**
|
|
30
|
+
* Set up drag-sort state for a list of draggable items.
|
|
31
|
+
* @param {object} root0
|
|
32
|
+
* @param {object[]} root0.data
|
|
33
|
+
* @param {DraggableSortEventEmitter} [root0.events]
|
|
34
|
+
* @param {DraggableSortKeyExtractor} root0.keyExtractor
|
|
35
|
+
*/
|
|
4
36
|
constructor({ data, events, keyExtractor }: {
|
|
5
|
-
data:
|
|
6
|
-
events
|
|
7
|
-
keyExtractor:
|
|
37
|
+
data: object[];
|
|
38
|
+
events?: DraggableSortEventEmitter;
|
|
39
|
+
keyExtractor: DraggableSortKeyExtractor;
|
|
8
40
|
});
|
|
9
|
-
data: any;
|
|
41
|
+
data: any[];
|
|
10
42
|
currentOrder: any[];
|
|
11
|
-
events: any
|
|
12
|
-
keyExtractor:
|
|
43
|
+
events: EventEmitter<string | symbol, any>;
|
|
44
|
+
keyExtractor: DraggableSortKeyExtractor;
|
|
13
45
|
draggedItem: any;
|
|
14
|
-
draggedItemData:
|
|
46
|
+
draggedItemData: DraggableSortItemData;
|
|
15
47
|
draggedItemNewPosition: number;
|
|
16
48
|
draggedOverItem: any;
|
|
17
|
-
draggedOverItemData:
|
|
18
|
-
itemData:
|
|
19
|
-
/**
|
|
20
|
-
getEvents: () =>
|
|
21
|
-
/**
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
/**
|
|
49
|
+
draggedOverItemData: DraggableSortItemData;
|
|
50
|
+
itemData: Record<number, DraggableSortItemData>;
|
|
51
|
+
/** @returns {DraggableSortEventEmitter} */
|
|
52
|
+
getEvents: () => DraggableSortEventEmitter;
|
|
53
|
+
/**
|
|
54
|
+
* Return the tracked drag metadata for the given item instance.
|
|
55
|
+
* @param {object} item
|
|
56
|
+
* @returns {DraggableSortItemData|undefined}
|
|
57
|
+
*/
|
|
58
|
+
getItemDataForItem: (item: object) => DraggableSortItemData | undefined;
|
|
59
|
+
/**
|
|
60
|
+
* Look up item metadata by its extracted stable key.
|
|
61
|
+
* @param {string} key
|
|
62
|
+
* @returns {DraggableSortItemData|undefined}
|
|
63
|
+
*/
|
|
64
|
+
getItemDataForKey: (key: string) => DraggableSortItemData | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* Return the tracked drag metadata stored for a list index.
|
|
67
|
+
* @param {number} index
|
|
68
|
+
* @returns {DraggableSortItemData|undefined}
|
|
69
|
+
*/
|
|
70
|
+
getItemDataForIndex: (index: number) => DraggableSortItemData | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* Mark an item as the active dragged row and publish the drag-start event.
|
|
73
|
+
* @param {object} root0
|
|
74
|
+
* @param {object} root0.item
|
|
75
|
+
* @param {number} root0.itemIndex
|
|
76
|
+
*/
|
|
28
77
|
onDragStart: ({ item, itemIndex }: {
|
|
29
|
-
item:
|
|
30
|
-
itemIndex:
|
|
78
|
+
item: object;
|
|
79
|
+
itemIndex: number;
|
|
31
80
|
}) => void;
|
|
32
|
-
draggedItemIndex:
|
|
33
|
-
draggedItemPosition:
|
|
34
|
-
/**
|
|
81
|
+
draggedItemIndex: number;
|
|
82
|
+
draggedItemPosition: number;
|
|
83
|
+
/** Finish the current drag and notify listeners about the final ordering. */
|
|
35
84
|
onDragEnd: () => void;
|
|
36
|
-
/**
|
|
85
|
+
/**
|
|
86
|
+
* Store layout data and event bindings for a rendered draggable item.
|
|
87
|
+
* @param {object} root0
|
|
88
|
+
* @param {DraggableSortEventEmitter} root0.events
|
|
89
|
+
* @param {number} root0.index
|
|
90
|
+
* @param {object} root0.item
|
|
91
|
+
* @param {DraggableSortLayout} root0.layout
|
|
92
|
+
*/
|
|
37
93
|
onItemLayout: ({ events, index, item, layout }: {
|
|
38
|
-
events:
|
|
39
|
-
index:
|
|
40
|
-
item:
|
|
41
|
-
layout:
|
|
94
|
+
events: DraggableSortEventEmitter;
|
|
95
|
+
index: number;
|
|
96
|
+
item: object;
|
|
97
|
+
layout: DraggableSortLayout;
|
|
42
98
|
}) => void;
|
|
43
|
-
/**
|
|
99
|
+
/**
|
|
100
|
+
* Update ordering as the active dragged item crosses other item positions.
|
|
101
|
+
* @param {object} root0
|
|
102
|
+
* @param {DraggableSortGestureState} root0.gestate
|
|
103
|
+
*/
|
|
44
104
|
onMove: ({ gestate }: {
|
|
45
|
-
gestate:
|
|
105
|
+
gestate: DraggableSortGestureState;
|
|
46
106
|
}) => void;
|
|
47
|
-
/**
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
107
|
+
/**
|
|
108
|
+
* Store the touch position where the current drag gesture started.
|
|
109
|
+
* @param {DraggableSortPosition} initialDragPosition
|
|
110
|
+
*/
|
|
111
|
+
setInitialDragPosition: (initialDragPosition: DraggableSortPosition) => void;
|
|
112
|
+
initialDragPosition: DraggableSortPosition;
|
|
113
|
+
/** Animate non-dragged items into their current ordered positions. */
|
|
51
114
|
updatePositionOfItems(): void;
|
|
52
115
|
}
|
|
116
|
+
export type DraggableSortEventEmitter = import("eventemitter3").EventEmitter;
|
|
117
|
+
export type DraggableSortLayout = import("react-native").LayoutRectangle;
|
|
118
|
+
export type DraggableSortGestureState = import("react-native").PanResponderGestureState;
|
|
119
|
+
export type DraggableSortPosition = {
|
|
120
|
+
x: number;
|
|
121
|
+
y: number;
|
|
122
|
+
};
|
|
123
|
+
export type DraggableSortKeyExtractor = (item: object) => string;
|
|
124
|
+
export type DraggableSortItemData = {
|
|
125
|
+
index: number;
|
|
126
|
+
item: object;
|
|
127
|
+
position: number;
|
|
128
|
+
baseX?: number;
|
|
129
|
+
events?: DraggableSortEventEmitter;
|
|
130
|
+
initialLayout?: DraggableSortLayout;
|
|
131
|
+
key?: string;
|
|
132
|
+
layout?: DraggableSortLayout;
|
|
133
|
+
};
|
|
134
|
+
export type DraggableSortDragEndArgs = {
|
|
135
|
+
fromIndex: number;
|
|
136
|
+
fromItem: object;
|
|
137
|
+
fromPosition: number;
|
|
138
|
+
item: object;
|
|
139
|
+
itemData: DraggableSortItemData;
|
|
140
|
+
toItem: object | null;
|
|
141
|
+
toPosition: number | null;
|
|
142
|
+
};
|
|
143
|
+
import { EventEmitter } from "eventemitter3";
|
|
53
144
|
//# sourceMappingURL=controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"/src/","sources":["draggable-sort/controller.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"/src/","sources":["draggable-sort/controller.js"],"names":[],"mappings":"AAIA,gFAAgF;AAChF,4EAA4E;AAC5E,2FAA2F;AAC3F,8DAA8D;AAC9D,oEAAoE;AACpE;;;;;;;;;;GAUG;AACH;;;;;;;;;GASG;AAEH,qDAAqD;AACrD;IACE;;;;;;OAMG;IACH,4CAJG;QAAwB,IAAI,EAApB,MAAM,EAAE;QAC0B,MAAM,GAAxC,yBAAyB;QACQ,YAAY,EAA7C,yBAAyB;KACnC,EAoBA;IAlBC,YAA0C;IAC1C,oBAAuD;IACvD,2CAAqF;IACrF,wCAA2E;IAC3E,iBAAoD;IACpD,uCAAuE;IACvE,+BAA+D;IAC/D,qBAAwD;IACxD,2CAA2E;IAC3E,gDAAyE;IAW3E,2CAA2C;IAC3C,iBADc,yBAAyB,CACV;IAE7B;;;;OAIG;IACH,qBAAsB,MAHX,MAGe,KAFb,qBAAqB,GAAC,SAAS,CAEoC;IAEhF;;;;OAIG;IACH,oBAAqB,KAHV,MAGa,KAFX,qBAAqB,GAAC,SAAS,CAEgE;IAE5G;;;;OAIG;IACH,sBAAuB,OAHZ,MAGiB,KAFf,qBAAqB,GAAC,SAAS,CAEkB;IAE9D;;;;;OAKG;IACH,cAAe,qBAHZ;QAAsB,IAAI,EAAlB,MAAM;QACQ,SAAS,EAAvB,MAAM;KAEe,UAU/B;IAJG,yBAAiC;IACjC,4BAAwD;IAK5D,6EAA6E;IAC7E,sBA2BC;IAED;;;;;;;OAOG;IACH,eAAgB,iCALb;QAAyC,MAAM,EAAvC,yBAAyB;QACX,KAAK,EAAnB,MAAM;QACQ,IAAI,EAAlB,MAAM;QACqB,MAAM,EAAjC,mBAAmB;KAEe,UAa5C;IAED;;;;OAIG;IACH,SAAU,aAFP;QAAyC,OAAO,EAAxC,yBAAyB;KAEjB,UA+BlB;IAED;;;OAGG;IACH,yBAA0B,qBAFf,qBAEkC,UAE5C;IADC,2CAA8C;IAGhD,sEAAsE;IACtE,8BAmBC;CACF;wCA3Na,OAAO,eAAe,EAAE,YAAY;kCACpC,OAAO,cAAc,EAAE,eAAe;wCACtC,OAAO,cAAc,EAAE,wBAAwB;oCAC/C;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAC;wCACtB,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM;;WAGxB,MAAM;UACN,MAAM;cACN,MAAM;YACN,MAAM;aACN,yBAAyB;oBACzB,mBAAmB;UACnB,MAAM;aACN,mBAAmB;;;eAInB,MAAM;cACN,MAAM;kBACN,MAAM;UACN,MAAM;cACN,qBAAqB;YACrB,MAAM,GAAC,IAAI;gBACX,MAAM,GAAC,IAAI;;6BA1BE,eAAe"}
|