@ldmjs/ui 1.0.0-dev-10 → 1.0.0-dev-11

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/dist/calendar.js CHANGED
@@ -1,13 +1,13 @@
1
1
  (function webpackUniversalModuleDefinition(root, factory) {
2
2
  if(typeof exports === 'object' && typeof module === 'object')
3
- module.exports = factory(require("vue"));
3
+ module.exports = factory(require("vue"), require("vue-screen-utils"));
4
4
  else if(typeof define === 'function' && define.amd)
5
- define(["vue"], factory);
5
+ define(["vue", "vue-screen-utils"], factory);
6
6
  else if(typeof exports === 'object')
7
- exports["ldmui"] = factory(require("vue"));
7
+ exports["ldmui"] = factory(require("vue"), require("vue-screen-utils"));
8
8
  else
9
- root["ldmui"] = factory(root["vue"]);
10
- })(self, (__WEBPACK_EXTERNAL_MODULE__2380__) => {
9
+ root["ldmui"] = factory(root["vue"], root["vue-screen-utils"]);
10
+ })(self, (__WEBPACK_EXTERNAL_MODULE__2380__, __WEBPACK_EXTERNAL_MODULE__4135__) => {
11
11
  return /******/ (() => { // webpackBootstrap
12
12
  /******/ var __webpack_modules__ = ({
13
13
 
@@ -5968,6 +5968,14 @@ exports.A = (sfc, props) => {
5968
5968
  "use strict";
5969
5969
  module.exports = __WEBPACK_EXTERNAL_MODULE__2380__;
5970
5970
 
5971
+ /***/ }),
5972
+
5973
+ /***/ 4135:
5974
+ /***/ ((module) => {
5975
+
5976
+ "use strict";
5977
+ module.exports = __WEBPACK_EXTERNAL_MODULE__4135__;
5978
+
5971
5979
  /***/ })
5972
5980
 
5973
5981
  /******/ });
@@ -10005,277 +10013,8 @@ const handleWatcher = (watcher, handler) => {
10005
10013
  handler();
10006
10014
  };
10007
10015
 
10008
- ;// CONCATENATED MODULE: ./node_modules/vue-screen-utils/dist/index.mjs
10009
-
10010
-
10011
- function windowExists() {
10012
- return typeof window !== 'undefined';
10013
- }
10014
- function windowHasFeature(feature) {
10015
- return windowExists() && feature in window;
10016
- }
10017
-
10018
- function useMediaQuery(query, callback) {
10019
- let mediaQuery;
10020
- const matches = ref(false);
10021
- function listener(ev) {
10022
- if (callback)
10023
- callback(ev);
10024
- matches.value = ev.matches;
10025
- }
10026
- function cleanup() {
10027
- if (mediaQuery) {
10028
- mediaQuery.removeEventListener('change', listener);
10029
- mediaQuery = undefined;
10030
- }
10031
- }
10032
- function setup(newQuery = query) {
10033
- cleanup();
10034
- if (windowHasFeature('matchMedia') && newQuery) {
10035
- mediaQuery = window.matchMedia(newQuery);
10036
- mediaQuery.addEventListener('change', listener);
10037
- matches.value = mediaQuery.matches;
10038
- }
10039
- }
10040
- onMounted(() => setup());
10041
- onUnmounted(() => cleanup());
10042
- return { matches, setup, cleanup };
10043
- }
10044
-
10045
- function useResizeObserver(target, callback, options = {}) {
10046
- let observer;
10047
- const rect = ref();
10048
- const listener = (...args) => {
10049
- if (callback)
10050
- callback(...args);
10051
- const entry = args[0][0];
10052
- rect.value = entry.contentRect;
10053
- };
10054
- const stopObserver = () => {
10055
- if (observer) {
10056
- observer.disconnect();
10057
- observer = undefined;
10058
- }
10059
- };
10060
- const stopWatch = watch(() => target.value, (elOrComp) => {
10061
- stopObserver();
10062
- if (windowHasFeature('ResizeObserver') && elOrComp) {
10063
- observer = new ResizeObserver(listener);
10064
- observer.observe(elOrComp.$el ?? elOrComp, options);
10065
- }
10066
- }, { immediate: true, flush: 'post' });
10067
- const cleanup = () => {
10068
- stopObserver();
10069
- stopWatch();
10070
- };
10071
- onUnmounted(() => cleanup());
10072
- return { rect, cleanup };
10073
- }
10074
-
10075
- function useDarkMode(config) {
10076
- const isDark = (0,external_vue_.ref)(false);
10077
- const displayMode = (0,external_vue_.computed)(() => (isDark.value ? 'dark' : 'light'));
10078
- let mediaQuery;
10079
- let mutationObserver;
10080
- function mqListener(ev) {
10081
- isDark.value = ev.matches;
10082
- }
10083
- function setupSystem() {
10084
- if (windowHasFeature('matchMedia')) {
10085
- mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
10086
- mediaQuery.addEventListener('change', mqListener);
10087
- isDark.value = mediaQuery.matches;
10088
- }
10089
- }
10090
- function moListener() {
10091
- const { selector = ':root', darkClass = 'dark' } = config.value;
10092
- const el = document.querySelector(selector);
10093
- isDark.value = el.classList.contains(darkClass);
10094
- }
10095
- function setupClass(config) {
10096
- const { selector = ':root', darkClass = 'dark' } = config;
10097
- if (windowExists() && selector && darkClass) {
10098
- const el = document.querySelector(selector);
10099
- if (el) {
10100
- mutationObserver = new MutationObserver(moListener);
10101
- mutationObserver.observe(el, {
10102
- attributes: true,
10103
- attributeFilter: ['class'],
10104
- });
10105
- isDark.value = el.classList.contains(darkClass);
10106
- }
10107
- }
10108
- }
10109
- function setup() {
10110
- stopObservers();
10111
- const type = typeof config.value;
10112
- if (type === 'string' && config.value.toLowerCase() === 'system') {
10113
- setupSystem();
10114
- }
10115
- else if (type === 'object') {
10116
- setupClass(config.value);
10117
- }
10118
- else {
10119
- isDark.value = !!config.value;
10120
- }
10121
- }
10122
- const stopWatch = (0,external_vue_.watch)(() => config.value, () => setup(), {
10123
- immediate: true,
10124
- });
10125
- function stopObservers() {
10126
- if (mediaQuery) {
10127
- mediaQuery.removeEventListener('change', mqListener);
10128
- mediaQuery = undefined;
10129
- }
10130
- if (mutationObserver) {
10131
- mutationObserver.disconnect();
10132
- mutationObserver = undefined;
10133
- }
10134
- }
10135
- function cleanup() {
10136
- stopObservers();
10137
- stopWatch();
10138
- }
10139
- (0,external_vue_.onUnmounted)(() => cleanup());
10140
- return {
10141
- isDark,
10142
- displayMode,
10143
- cleanup,
10144
- };
10145
- }
10146
-
10147
- function resolveValue({ 'min-width': _minWidth, min = _minWidth, max, raw } = {}) {
10148
- return { min, max, raw };
10149
- }
10150
- /**
10151
- * A function that normalizes the various forms that the screens object can be
10152
- * provided in.
10153
- *
10154
- * Input(s):
10155
- * - ['100px', '200px'] // Raw strings
10156
- * - { sm: '100px', md: '200px' } // Object with string values
10157
- * - { sm: { min: '100px' }, md: { max: '100px' } } // Object with object values
10158
- * - { sm: [{ min: '100px' }, { max: '200px' }] } // Object with object array (multiple values)
10159
- *
10160
- * Output(s):
10161
- * - [{ name: 'sm', values: [{ min: '100px', max: '200px' }] }] // List of objects, that contains multiple values
10162
- */
10163
- function normalizeScreens(screens, root = true) {
10164
- if (Array.isArray(screens)) {
10165
- return screens.map((screen) => {
10166
- if (root && Array.isArray(screen)) {
10167
- throw new Error('The tuple syntax is not supported for `screens`.');
10168
- }
10169
- if (typeof screen === 'string') {
10170
- return { name: screen.toString(), values: [{ min: screen, max: undefined }] };
10171
- }
10172
- let [name, options] = screen;
10173
- name = name.toString();
10174
- if (typeof options === 'string') {
10175
- return { name, values: [{ min: options, max: undefined }] };
10176
- }
10177
- if (Array.isArray(options)) {
10178
- return { name, values: options.map((option) => resolveValue(option)) };
10179
- }
10180
- return { name, values: [resolveValue(options)] };
10181
- });
10182
- }
10183
- return normalizeScreens(Object.entries(screens ?? {}), false);
10184
- }
10185
-
10186
- // This function gratuitously borrowed from TailwindCSS
10187
- // https://github.com/tailwindcss/tailwindcss/blob/master/src/util/buildMediaQuery.js
10188
- function buildMediaQuery(screenValues) {
10189
- return screenValues
10190
- .map((sv) => {
10191
- if (sv.raw !== undefined)
10192
- return sv.raw;
10193
- return [sv.min && `(min-width: ${sv.min})`, sv.max && `(max-width: ${sv.max})`].filter(Boolean).join(' and ');
10194
- })
10195
- .join(', ');
10196
- }
10197
-
10198
- var defaultScreens = {
10199
- xs: '0px',
10200
- sm: '640px',
10201
- md: '768px',
10202
- lg: '1024px',
10203
- xl: '1280px',
10204
- };
10205
-
10206
- const defaultInjectKey = '$screens';
10207
- function initScreens(screens) {
10208
- const state = (0,external_vue_.reactive)({
10209
- screens: normalizeScreens(screens || defaultScreens),
10210
- queries: {},
10211
- matches: {},
10212
- hasSetup: false,
10213
- });
10214
- function refreshMatches() {
10215
- Object.entries(state.queries).forEach(([key, query]) => {
10216
- state.matches[key] = query.matches;
10217
- });
10218
- }
10219
- function mapList(config) {
10220
- return (0,external_vue_.computed)(() => Object.keys(state.matches)
10221
- .filter((key) => state.matches[key] === true && config.hasOwnProperty(key))
10222
- .map((key) => config[key]));
10223
- }
10224
- const list = (0,external_vue_.computed)(() => Object.keys(state.matches).filter((k) => state.matches[k]));
10225
- function mapCurrent(config, def) {
10226
- return (0,external_vue_.computed)(() => {
10227
- const curr = current.value;
10228
- if (curr && config.hasOwnProperty(curr))
10229
- return config[curr];
10230
- return def;
10231
- });
10232
- }
10233
- const current = (0,external_vue_.computed)(() => {
10234
- const arr = list.value;
10235
- if (arr.length)
10236
- return arr[arr.length - 1];
10237
- return '';
10238
- });
10239
- function cleanup() {
10240
- Object.values(state.queries).forEach((query) => query.removeEventListener('change', refreshMatches));
10241
- state.queries = {};
10242
- state.matches = {};
10243
- }
10244
- if (!state.hasSetup && windowHasFeature('matchMedia')) {
10245
- cleanup();
10246
- state.queries = state.screens.reduce((result, { name, values }) => {
10247
- const mediaQuery = window.matchMedia(buildMediaQuery(values));
10248
- mediaQuery.addEventListener('change', refreshMatches);
10249
- result[name] = mediaQuery;
10250
- return result;
10251
- }, {});
10252
- refreshMatches();
10253
- state.hasSetup = true;
10254
- }
10255
- return { matches: state.matches, list, mapList, current, mapCurrent, cleanup };
10256
- }
10257
-
10258
- function useScreens(screens, opts) {
10259
- const s = initScreens(screens);
10260
- provide(opts?.injectKey || defaultInjectKey, s);
10261
- onUnmounted(() => s.cleanup());
10262
- return s;
10263
- }
10264
-
10265
- const dist_plugin = {
10266
- install: (app, screens, opts) => {
10267
- const s = initScreens(screens);
10268
- const key = opts?.injectKey || defaultInjectKey;
10269
- // Inject a globally available screens object method
10270
- app.config.globalProperties[key] = s;
10271
- // Provide screens object
10272
- app.provide(key, s);
10273
- },
10274
- };
10275
-
10276
-
10277
- //# sourceMappingURL=index.mjs.map
10278
-
10016
+ // EXTERNAL MODULE: external "vue-screen-utils"
10017
+ var external_vue_screen_utils_ = __webpack_require__(4135);
10279
10018
  ;// CONCATENATED MODULE: ./src/lib/v-calendar/src/utils/glyph.ts
10280
10019
 
10281
10020
  const targetProps = ['base', 'start', 'end', 'startEnd'];
@@ -10569,7 +10308,7 @@ function createBase(props) {
10569
10308
  // #region Computed
10570
10309
  const color = (0,external_vue_.computed)(() => props.color ?? '');
10571
10310
  const isDark = (0,external_vue_.computed)(() => props.isDark ?? false);
10572
- const { displayMode } = useDarkMode(isDark);
10311
+ const { displayMode } = (0,external_vue_screen_utils_.useDarkMode)(isDark);
10573
10312
  const theme = (0,external_vue_.computed)(() => new Theme(color.value));
10574
10313
  const locale = (0,external_vue_.computed)(() => {
10575
10314
  // Return the locale prop if it is an instance of the Locale class
package/dist/css/main.css CHANGED
@@ -8,3 +8,5 @@
8
8
 
9
9
  .ld-datepicker[data-v-2278e290]{min-width:100%;max-width:100%;width:100%;height:100%;font-size:inherit !important;display:flex}.ld-datepicker.column[data-v-2278e290]{flex-flow:column nowrap}.ld-datepicker-validate[data-v-2278e290]{overflow:hidden;height:20px}.custom-time-picker[data-v-2278e290]{max-width:var(--date-time-width);border-radius:var(--border-radius);background-color:var(--white);font-size:inherit !important}.custom-time-picker-validate[data-v-2278e290]{overflow:hidden;height:20px}.date-input[data-v-2278e290]{padding-left:5px;width:100%;font-size:var(--font-size)}.time-input[data-v-2278e290]{width:100%;padding-left:5px;font-size:var(--font-size)}.time-input-btn[data-v-2278e290]{padding-right:5px}.dt-col[data-v-2278e290]{max-width:110px}.time-selector[data-v-2278e290]{display:flex;flex-wrap:wrap;max-width:186px;padding:3px}.time-selector>span[data-v-2278e290]{display:inline-block;width:100%;text-align:center;font-family:'Roboto';font-size:var(--font-size-2);font-weight:700}.time-selector .v-btn[data-v-2278e290]{width:30px !important;height:30px !important;max-width:30px !important;max-height:30px !important;min-width:30px !important;min-height:30px !important;margin:3px}[data-v-2278e290] .vc-popover-content-wrapper{position:fixed !important}[data-v-2278e290] .v-input--is-disabled input{color:var(--text) !important}[data-v-2278e290] .vc-popover-content{border-color:var(--grey-l-5)}[data-v-2278e290] .vc-title span{color:var(--text);font-size:var(--font-size-2);font-weight:600;font-family:'Roboto'}[data-v-2278e290] .vc-arrow{color:var(--grey)}[data-v-2278e290] .vc-weekday{color:var(--grey-l-2);font-size:var(--font-size);font-weight:600;font-family:'Roboto'}[data-v-2278e290] .vc-day-content{color:var(--text);font-size:var(--font-size);font-weight:400;font-family:'Roboto'}[data-v-2278e290] .vc-day-content.vc-disabled{color:var(--grey-l-2) !important}[data-v-2278e290] .vc-day-content.vc-highlight-content-solid{color:var(--white) !important;font-weight:600 !important}
10
10
 
11
+ .ld-tabs[data-v-d17ec18e]{margin-left:0;display:flex;height:100%;width:100%;overflow-y:auto}.ld-tabs .header-text[data-v-d17ec18e]{font-size:var(--font-size-2)}.ld-tabs-mobile[data-v-d17ec18e]{height:100%}.ld-tabs .body[data-v-d17ec18e]{display:flex;flex-flow:column nowrap;max-width:100%;width:100%;height:100%;justify-content:space-between;padding-top:3px}.ld-tabs .vertical-body[data-v-d17ec18e]{display:flex;flex-flow:column nowrap;width:calc(100% - 44px) !important;height:100%}.v-window[data-v-d17ec18e]{background-color:var(--white);box-shadow:1px 0 var(--grey-l-5),-1px 0 0 var(--grey-l-5);overflow-y:auto;height:100%;width:100%}.vertical-window.v-window[data-v-d17ec18e]{padding:10px 12px;border-bottom:1px solid var(--grey-l-5);border-right:1px solid var(--grey-l-5);border-top:1px solid var(--grey-l-5)}[data-v-d17ec18e] .ld-tabs .v-tab{background-color:transparent}[data-v-d17ec18e] .ld-tabs .v-slide-group-item--active{background-color:var(--white)}[data-v-d17ec18e] .v-window.mobile .tg-field .v-row .v-col{flex:1 0 0 !important}[data-v-d17ec18e] .v-window.mobile .tg-field .text-viewer-wrapper .v-col{flex:1 0 0 !important}[data-v-d17ec18e] .vertical-tab .v-tab{justify-content:flex-start;border:1px solid var(--grey-l-5);border-radius:0 !important;text-transform:none !important;width:100%;min-width:auto !important}[data-v-d17ec18e] .vertical-tab .v-tab:last-child{border-bottom:1px solid var(--grey-l-5) !important}[data-v-d17ec18e] .vertical-tab .v-slide-group__content{flex-flow:column nowrap;height:100% !important;width:100% !important}[data-v-d17ec18e] .vertical-tab .v-slide-group__content .v-btn__content{text-overflow:ellipsis;display:inline-flex;justify-content:flex-start;gap:4px;white-space:nowrap;overflow:hidden}[data-v-d17ec18e] .v-tab{height:var(--ld-tab-height) !important;display:flex !important;text-transform:uppercase !important;border-bottom:none !important;padding:0 12px !important;font-size:var(--font-size);color:var(--text) !important;background-color:var(--white);letter-spacing:0 !important}[data-v-d17ec18e] .v-tab.v-slide-group-item--active{border-right-color:transparent}[data-v-d17ec18e] .v-slide-group-item--active .v-btn__content{font-weight:bold;color:var(--primary) !important}[data-v-d17ec18e] .v-btn:hover::before{background-color:inherit}[data-v-d17ec18e] .v-slide-group--vertical{border-color:var(--grey-l-5);border:1px}[data-v-d17ec18e] .v-slide-group--vertical .v-tab__slider{width:0px}[data-v-d17ec18e] .v-tabs-bar{flex:none;height:fit-content;height:-moz-max-content;max-height:fit-content;max-height:-moz-max-content;z-index:1}[data-v-d17ec18e] .v-window-item{height:100%}[data-v-d17ec18e] .ld-tabs-mobile.hide-tabs .v-tab{display:none !important}[data-v-d17ec18e] .ld-tabs-mobile.hide-body .v-slide-group{width:100% !important}[data-v-d17ec18e] .ld-tabs-mobile.hide-body .v-window{display:none !important}[data-v-d17ec18e] .v-tabs-mobile .v-slide-group__content .v-btn__content{display:block !important}
12
+
Binary file
Binary file
Binary file
package/dist/index.js CHANGED
@@ -3944,6 +3944,404 @@ function ld_datepicker_reg(vue, options) {
3944
3944
  }
3945
3945
  /* harmony default export */ const src_ld_datepicker = (ld_datepicker_reg);
3946
3946
 
3947
+ ;// CONCATENATED MODULE: ./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/ld-tab/ld-tab.vue?vue&type=template&id=66af7dd2
3948
+
3949
+
3950
+ const ld_tabvue_type_template_id_66af7dd2_hoisted_1 = { class: "text-crop" }
3951
+
3952
+ function ld_tabvue_type_template_id_66af7dd2_render(_ctx, _cache, $props, $setup, $data, $options) {
3953
+ const _component_v_tab = (0,external_vue_.resolveComponent)("v-tab")
3954
+ const _component_v_window_item = (0,external_vue_.resolveComponent)("v-window-item")
3955
+
3956
+ return (!_ctx.onlyWindows)
3957
+ ? ((0,external_vue_.openBlock)(), (0,external_vue_.createBlock)(_component_v_tab, (0,external_vue_.mergeProps)({
3958
+ key: 0,
3959
+ color: "primary"
3960
+ }, _ctx.$props, {
3961
+ key: `${_ctx.index}-v-tab`
3962
+ }), {
3963
+ default: (0,external_vue_.withCtx)(() => [
3964
+ (0,external_vue_.createElementVNode)("span", ld_tabvue_type_template_id_66af7dd2_hoisted_1, (0,external_vue_.toDisplayString)(_ctx.heading), 1),
3965
+ (0,external_vue_.createTextVNode)(),
3966
+ (0,external_vue_.renderSlot)(_ctx.$slots, "icon")
3967
+ ]),
3968
+ _: 3
3969
+ }, 16))
3970
+ : ((0,external_vue_.openBlock)(), (0,external_vue_.createBlock)(_component_v_window_item, (0,external_vue_.mergeProps)({ key: 1 }, _ctx.$props, {
3971
+ key: `${_ctx.index}-v-window`,
3972
+ value: _ctx.index
3973
+ }), {
3974
+ default: (0,external_vue_.withCtx)(() => [
3975
+ (0,external_vue_.renderSlot)(_ctx.$slots, "default")
3976
+ ]),
3977
+ _: 3
3978
+ }, 16, ["value"]))
3979
+ }
3980
+ ;// CONCATENATED MODULE: ./src/ld-tab/ld-tab.vue?vue&type=template&id=66af7dd2
3981
+
3982
+ ;// CONCATENATED MODULE: ./node_modules/ts-loader/index.js??clonedRuleSet-1.use[0]!./src/ld-tab/ld-tab.ts?vue&type=script&lang=js&external
3983
+ var ld_tabvue_type_script_lang_js_external_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
3984
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3985
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
3986
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
3987
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
3988
+ };
3989
+ var ld_tabvue_type_script_lang_js_external_metadata = (undefined && undefined.__metadata) || function (k, v) {
3990
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
3991
+ };
3992
+
3993
+
3994
+ let LdTabComponent = class LdTabComponent extends external_vue_class_component_.Vue {
3995
+ get onlyWindows() {
3996
+ return this.$parent.$options.name === 'VWindow';
3997
+ }
3998
+ };
3999
+ ld_tabvue_type_script_lang_js_external_decorate([
4000
+ (0,external_vue_property_decorator_.Prop)({ type: String, default: null }),
4001
+ ld_tabvue_type_script_lang_js_external_metadata("design:type", String)
4002
+ ], LdTabComponent.prototype, "index", void 0);
4003
+ ld_tabvue_type_script_lang_js_external_decorate([
4004
+ (0,external_vue_property_decorator_.Prop)({ type: String, default: null }),
4005
+ ld_tabvue_type_script_lang_js_external_metadata("design:type", String)
4006
+ ], LdTabComponent.prototype, "heading", void 0);
4007
+ ld_tabvue_type_script_lang_js_external_decorate([
4008
+ (0,external_vue_property_decorator_.Prop)({ type: Boolean, default: false }),
4009
+ ld_tabvue_type_script_lang_js_external_metadata("design:type", Boolean)
4010
+ ], LdTabComponent.prototype, "disabled", void 0);
4011
+ ld_tabvue_type_script_lang_js_external_decorate([
4012
+ (0,external_vue_property_decorator_.Prop)({ type: String, default: undefined }),
4013
+ ld_tabvue_type_script_lang_js_external_metadata("design:type", String)
4014
+ ], LdTabComponent.prototype, "activeClass", void 0);
4015
+ ld_tabvue_type_script_lang_js_external_decorate([
4016
+ (0,external_vue_property_decorator_.Prop)({ type: Boolean, default: false }),
4017
+ ld_tabvue_type_script_lang_js_external_metadata("design:type", Boolean)
4018
+ ], LdTabComponent.prototype, "lazy", void 0);
4019
+ LdTabComponent = ld_tabvue_type_script_lang_js_external_decorate([
4020
+ (0,external_vue_class_component_.Options)({
4021
+ name: 'ld-tab',
4022
+ })
4023
+ ], LdTabComponent);
4024
+ /* harmony default export */ const ld_tabvue_type_script_lang_js_external = (LdTabComponent);
4025
+ ;
4026
+
4027
+ ;// CONCATENATED MODULE: ./src/ld-tab/ld-tab.ts?vue&type=script&lang=js&external
4028
+
4029
+ ;// CONCATENATED MODULE: ./src/ld-tab/ld-tab.vue
4030
+
4031
+
4032
+
4033
+
4034
+ ;
4035
+ const ld_tab_exports_ = /*#__PURE__*/(0,exportHelper/* default */.A)(ld_tabvue_type_script_lang_js_external, [['render',ld_tabvue_type_template_id_66af7dd2_render]])
4036
+
4037
+ /* harmony default export */ const ld_tab = (ld_tab_exports_);
4038
+ ;// CONCATENATED MODULE: ./src/ld-tab/index.ts
4039
+
4040
+ function ld_tab_reg(vue, options) {
4041
+ vue.component(options.aliases['ld-tab'], ld_tab);
4042
+ }
4043
+ /* harmony default export */ const src_ld_tab = (ld_tab_reg);
4044
+
4045
+ ;// CONCATENATED MODULE: ./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./src/ld-tabs/ld-tabs.vue?vue&type=template&id=d17ec18e&scoped=true
4046
+
4047
+
4048
+ const ld_tabsvue_type_template_id_d17ec18e_scoped_true_withScopeId = n => (_pushScopeId("data-v-d17ec18e"),n=n(),_popScopeId(),n)
4049
+ const ld_tabsvue_type_template_id_d17ec18e_scoped_true_hoisted_1 = { class: "d-flex flex-column h-100" }
4050
+ const ld_tabsvue_type_template_id_d17ec18e_scoped_true_hoisted_2 = {
4051
+ class: "d-flex align-center justify-end",
4052
+ style: {"height":"var(--ld-tab-height)"}
4053
+ }
4054
+ const ld_tabsvue_type_template_id_d17ec18e_scoped_true_hoisted_3 = {
4055
+ key: 0,
4056
+ class: "header-text flex-1-1 px-4 font-weight-bold"
4057
+ }
4058
+
4059
+ function ld_tabsvue_type_template_id_d17ec18e_scoped_true_render(_ctx, _cache, $props, $setup, $data, $options) {
4060
+ const _component_square_button = (0,external_vue_.resolveComponent)("square-button")
4061
+ const _component_v_tooltip = (0,external_vue_.resolveComponent)("v-tooltip")
4062
+ const _component_v_tabs = (0,external_vue_.resolveComponent)("v-tabs")
4063
+ const _component_v_window = (0,external_vue_.resolveComponent)("v-window")
4064
+ const _component_v_row = (0,external_vue_.resolveComponent)("v-row")
4065
+
4066
+ return ((0,external_vue_.openBlock)(), (0,external_vue_.createElementBlock)("div", ld_tabsvue_type_template_id_d17ec18e_scoped_true_hoisted_1, [
4067
+ (0,external_vue_.createVNode)(_component_v_row, {
4068
+ "no-gutters": "",
4069
+ class: (0,external_vue_.normalizeClass)([{ 'ld-tabs-mobile': _ctx.isMobileGlobal && _ctx.vertical, 'hide-tabs': !_ctx.isTabsVisibled, 'hide-body': _ctx.isTabsVisibled }, "ld-tabs"])
4070
+ }, {
4071
+ default: (0,external_vue_.withCtx)(() => [
4072
+ (0,external_vue_.createElementVNode)("div", {
4073
+ class: (0,external_vue_.normalizeClass)(["d-flex h-100 w-100 overflow-hidden", { 'flex-1-1': _ctx.vertical, 'flex-column': !_ctx.vertical }])
4074
+ }, [
4075
+ (0,external_vue_.createVNode)(_component_v_tabs, {
4076
+ modelValue: _ctx.active,
4077
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = $event => ((_ctx.active) = $event)),
4078
+ direction: _ctx.vertical ? 'vertical' : 'horizontal',
4079
+ ref: "tabsListRef",
4080
+ class: (0,external_vue_.normalizeClass)({
4081
+ 'v-tabs-mobile': _ctx.isMobileGlobal,
4082
+ mobile: _ctx.isMobileGlobal,
4083
+ 'flex-shrink-0': true,
4084
+ 'vertical-tab': _ctx.vertical,
4085
+ })
4086
+ }, {
4087
+ default: (0,external_vue_.withCtx)(() => [
4088
+ (_ctx.vertical)
4089
+ ? ((0,external_vue_.openBlock)(), (0,external_vue_.createElementBlock)("div", {
4090
+ key: 0,
4091
+ class: (0,external_vue_.normalizeClass)({ 'w-100': !_ctx.isMobileGlobal, 'tab-mobile': _ctx.isMobileGlobal })
4092
+ }, [
4093
+ (0,external_vue_.createElementVNode)("div", ld_tabsvue_type_template_id_d17ec18e_scoped_true_hoisted_2, [
4094
+ (_ctx.isTabsVisibled)
4095
+ ? ((0,external_vue_.openBlock)(), (0,external_vue_.createElementBlock)("p", ld_tabsvue_type_template_id_d17ec18e_scoped_true_hoisted_3, (0,external_vue_.toDisplayString)(_ctx.header), 1))
4096
+ : (0,external_vue_.createCommentVNode)("", true),
4097
+ (0,external_vue_.createTextVNode)(),
4098
+ (0,external_vue_.createVNode)(_component_v_tooltip, { location: "bottom" }, {
4099
+ activator: (0,external_vue_.withCtx)(({ props }) => [
4100
+ (0,external_vue_.createVNode)(_component_square_button, (0,external_vue_.mergeProps)(props, {
4101
+ class: "mr-2",
4102
+ variant: "text",
4103
+ onClick: _ctx.toggleCollapse
4104
+ }), {
4105
+ default: (0,external_vue_.withCtx)(() => [
4106
+ (_ctx.isTabsVisibled)
4107
+ ? ((0,external_vue_.openBlock)(), (0,external_vue_.createBlock)((0,external_vue_.resolveDynamicComponent)(_ctx.$ldmui.options.aliases['ld-icon']), {
4108
+ key: 0,
4109
+ color: "grey",
4110
+ icon: "keyboard_arrow_left"
4111
+ }))
4112
+ : ((0,external_vue_.openBlock)(), (0,external_vue_.createBlock)((0,external_vue_.resolveDynamicComponent)(_ctx.$ldmui.options.aliases['ld-icon']), {
4113
+ key: 1,
4114
+ color: "grey",
4115
+ icon: "keyboard_arrow_right"
4116
+ }))
4117
+ ]),
4118
+ _: 2
4119
+ }, 1040, ["onClick"])
4120
+ ]),
4121
+ default: (0,external_vue_.withCtx)(() => [
4122
+ (0,external_vue_.createTextVNode)(),
4123
+ (0,external_vue_.createElementVNode)("span", null, (0,external_vue_.toDisplayString)(_ctx.isTabsVisibled ? 'Скрыть вкладки' : 'Показать вкладки'), 1)
4124
+ ]),
4125
+ _: 1
4126
+ })
4127
+ ])
4128
+ ], 2))
4129
+ : (0,external_vue_.createCommentVNode)("", true),
4130
+ (0,external_vue_.createTextVNode)(),
4131
+ (0,external_vue_.renderSlot)(_ctx.$slots, "default", {}, undefined, true),
4132
+ (0,external_vue_.createTextVNode)(),
4133
+ (0,external_vue_.renderSlot)(_ctx.$slots, "tabs-footer", {}, undefined, true)
4134
+ ]),
4135
+ _: 3
4136
+ }, 8, ["modelValue", "direction", "class"]),
4137
+ (0,external_vue_.createTextVNode)(),
4138
+ (_ctx.isBodyVisibled)
4139
+ ? ((0,external_vue_.openBlock)(), (0,external_vue_.createBlock)(_component_v_window, {
4140
+ key: 0,
4141
+ class: (0,external_vue_.normalizeClass)(["h-100", { mobile: _ctx.isMobileGlobal, 'vertical-window': _ctx.vertical }]),
4142
+ style: (0,external_vue_.normalizeStyle)({
4143
+ 'border': _ctx.isTabsVisibled ? 'unset' : '1px solid var(--grey-l-5)'
4144
+ }),
4145
+ "model-value": _ctx.active
4146
+ }, {
4147
+ default: (0,external_vue_.withCtx)(() => [
4148
+ (0,external_vue_.renderSlot)(_ctx.$slots, "default", {}, undefined, true)
4149
+ ]),
4150
+ _: 3
4151
+ }, 8, ["class", "style", "model-value"]))
4152
+ : (0,external_vue_.createCommentVNode)("", true)
4153
+ ], 2)
4154
+ ]),
4155
+ _: 3
4156
+ }, 8, ["class"]),
4157
+ (0,external_vue_.createTextVNode)(),
4158
+ (0,external_vue_.renderSlot)(_ctx.$slots, "footer", {}, undefined, true)
4159
+ ]))
4160
+ }
4161
+ ;// CONCATENATED MODULE: ./src/ld-tabs/ld-tabs.vue?vue&type=template&id=d17ec18e&scoped=true
4162
+
4163
+ ;// CONCATENATED MODULE: ./node_modules/ts-loader/index.js??clonedRuleSet-1.use[0]!./src/ld-tabs/ld-tabs.ts?vue&type=script&lang=js&external
4164
+ var ld_tabsvue_type_script_lang_js_external_decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
4165
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4166
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4167
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
4168
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
4169
+ };
4170
+ var ld_tabsvue_type_script_lang_js_external_metadata = (undefined && undefined.__metadata) || function (k, v) {
4171
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
4172
+ };
4173
+ // import { IActionContext } from 'app/application/actions/action.interface';
4174
+ // import { ContentType } from 'app/domain/models/settings/view.settings';
4175
+
4176
+
4177
+
4178
+ let LdTabsComponent = class LdTabsComponent extends (0,external_vue_property_decorator_.mixins)(ViewportMixin) {
4179
+ constructor() {
4180
+ super(...arguments);
4181
+ this.active = -1;
4182
+ this.isTabsVisibled = true;
4183
+ this.isBodyVisibled = true;
4184
+ this.styleCleaned = false;
4185
+ }
4186
+ emitChangeStep(value) {
4187
+ return value;
4188
+ }
4189
+ emitUpdateModelValue(value) {
4190
+ return value;
4191
+ }
4192
+ onValueChanged(newVal, oldVal) {
4193
+ if (newVal === oldVal) {
4194
+ return;
4195
+ }
4196
+ this.active = newVal;
4197
+ }
4198
+ onIsActiveChanged() {
4199
+ if (this.isActive || this.isActive === 0) {
4200
+ this.active = this.isActive;
4201
+ }
4202
+ }
4203
+ onActiveChanged() {
4204
+ if (this.isMobileGlobal && this.isTabsVisibled) {
4205
+ this.isTabsVisibled = false;
4206
+ }
4207
+ this.emitChangeStep(this.active);
4208
+ this.emitUpdateModelValue(this.active);
4209
+ }
4210
+ onMobileChanged() {
4211
+ if (this.isMobileGlobal) {
4212
+ this.isBodyVisibled = true;
4213
+ this.isTabsVisibled = false;
4214
+ }
4215
+ else {
4216
+ this.isTabsVisibled = true;
4217
+ }
4218
+ }
4219
+ mounted() {
4220
+ if (this.isMobileGlobal) {
4221
+ this.$refs.tabsListRef.$el.style = 'width: 44px !important';
4222
+ }
4223
+ }
4224
+ toggleCollapse() {
4225
+ this.isTabsVisibled = !this.isTabsVisibled;
4226
+ if (!this.$refs.tabsListRef) {
4227
+ return;
4228
+ }
4229
+ if (this.isTabsVisibled) {
4230
+ this.$refs.tabsListRef.$el.style = '';
4231
+ return;
4232
+ }
4233
+ if (this.isMobileGlobal) {
4234
+ this.$refs.tabsListRef.$el.style = 'width: 44px !important';
4235
+ return;
4236
+ }
4237
+ this.$refs.tabsListRef.$el.style = 'width: 60px !important';
4238
+ }
4239
+ onClick() {
4240
+ this.onActiveChanged();
4241
+ }
4242
+ get isBtnVisibled() {
4243
+ if (!this.isMobileGlobal) {
4244
+ return this.vertical;
4245
+ }
4246
+ if (this.vertical) {
4247
+ return this.isBodyVisibled;
4248
+ }
4249
+ return false;
4250
+ }
4251
+ };
4252
+ ld_tabsvue_type_script_lang_js_external_decorate([
4253
+ (0,external_vue_property_decorator_.Prop)(),
4254
+ ld_tabsvue_type_script_lang_js_external_metadata("design:type", Number)
4255
+ ], LdTabsComponent.prototype, "modelValue", void 0);
4256
+ ld_tabsvue_type_script_lang_js_external_decorate([
4257
+ (0,external_vue_property_decorator_.Prop)(),
4258
+ ld_tabsvue_type_script_lang_js_external_metadata("design:type", Number)
4259
+ ], LdTabsComponent.prototype, "isActive", void 0);
4260
+ ld_tabsvue_type_script_lang_js_external_decorate([
4261
+ (0,external_vue_property_decorator_.Prop)({ default: true }),
4262
+ ld_tabsvue_type_script_lang_js_external_metadata("design:type", Boolean)
4263
+ ], LdTabsComponent.prototype, "vertical", void 0);
4264
+ ld_tabsvue_type_script_lang_js_external_decorate([
4265
+ (0,external_vue_property_decorator_.Prop)(),
4266
+ ld_tabsvue_type_script_lang_js_external_metadata("design:type", Boolean)
4267
+ ], LdTabsComponent.prototype, "dark", void 0);
4268
+ ld_tabsvue_type_script_lang_js_external_decorate([
4269
+ (0,external_vue_property_decorator_.Prop)(),
4270
+ ld_tabsvue_type_script_lang_js_external_metadata("design:type", Number)
4271
+ ], LdTabsComponent.prototype, "value", void 0);
4272
+ ld_tabsvue_type_script_lang_js_external_decorate([
4273
+ (0,external_vue_property_decorator_.Prop)({ default: '' }),
4274
+ ld_tabsvue_type_script_lang_js_external_metadata("design:type", String)
4275
+ ], LdTabsComponent.prototype, "header", void 0);
4276
+ ld_tabsvue_type_script_lang_js_external_decorate([
4277
+ Emit('change-step'),
4278
+ ld_tabsvue_type_script_lang_js_external_metadata("design:type", Function),
4279
+ ld_tabsvue_type_script_lang_js_external_metadata("design:paramtypes", [Number]),
4280
+ ld_tabsvue_type_script_lang_js_external_metadata("design:returntype", void 0)
4281
+ ], LdTabsComponent.prototype, "emitChangeStep", null);
4282
+ ld_tabsvue_type_script_lang_js_external_decorate([
4283
+ Emit('update:model-value'),
4284
+ ld_tabsvue_type_script_lang_js_external_metadata("design:type", Function),
4285
+ ld_tabsvue_type_script_lang_js_external_metadata("design:paramtypes", [Number]),
4286
+ ld_tabsvue_type_script_lang_js_external_metadata("design:returntype", void 0)
4287
+ ], LdTabsComponent.prototype, "emitUpdateModelValue", null);
4288
+ ld_tabsvue_type_script_lang_js_external_decorate([
4289
+ (0,external_vue_property_decorator_.Watch)('modelValue', { immediate: true }),
4290
+ ld_tabsvue_type_script_lang_js_external_metadata("design:type", Function),
4291
+ ld_tabsvue_type_script_lang_js_external_metadata("design:paramtypes", [Number, Number]),
4292
+ ld_tabsvue_type_script_lang_js_external_metadata("design:returntype", void 0)
4293
+ ], LdTabsComponent.prototype, "onValueChanged", null);
4294
+ ld_tabsvue_type_script_lang_js_external_decorate([
4295
+ (0,external_vue_property_decorator_.Watch)('isActive', { immediate: true }),
4296
+ ld_tabsvue_type_script_lang_js_external_metadata("design:type", Function),
4297
+ ld_tabsvue_type_script_lang_js_external_metadata("design:paramtypes", []),
4298
+ ld_tabsvue_type_script_lang_js_external_metadata("design:returntype", void 0)
4299
+ ], LdTabsComponent.prototype, "onIsActiveChanged", null);
4300
+ ld_tabsvue_type_script_lang_js_external_decorate([
4301
+ (0,external_vue_property_decorator_.Watch)('active'),
4302
+ ld_tabsvue_type_script_lang_js_external_metadata("design:type", Function),
4303
+ ld_tabsvue_type_script_lang_js_external_metadata("design:paramtypes", []),
4304
+ ld_tabsvue_type_script_lang_js_external_metadata("design:returntype", void 0)
4305
+ ], LdTabsComponent.prototype, "onActiveChanged", null);
4306
+ ld_tabsvue_type_script_lang_js_external_decorate([
4307
+ (0,external_vue_property_decorator_.Watch)('isMobileGlobal', { immediate: true }),
4308
+ ld_tabsvue_type_script_lang_js_external_metadata("design:type", Function),
4309
+ ld_tabsvue_type_script_lang_js_external_metadata("design:paramtypes", []),
4310
+ ld_tabsvue_type_script_lang_js_external_metadata("design:returntype", void 0)
4311
+ ], LdTabsComponent.prototype, "onMobileChanged", null);
4312
+ LdTabsComponent = ld_tabsvue_type_script_lang_js_external_decorate([
4313
+ (0,external_vue_property_decorator_.Options)({
4314
+ inheritAttrs: false,
4315
+ })
4316
+ ], LdTabsComponent);
4317
+ /* harmony default export */ const ld_tabsvue_type_script_lang_js_external = (LdTabsComponent);
4318
+
4319
+ ;// CONCATENATED MODULE: ./src/ld-tabs/ld-tabs.ts?vue&type=script&lang=js&external
4320
+
4321
+ ;// CONCATENATED MODULE: ./src/ld-tabs/ld-tabs.vue
4322
+
4323
+
4324
+
4325
+
4326
+ ;
4327
+
4328
+
4329
+ const ld_tabs_exports_ = /*#__PURE__*/(0,exportHelper/* default */.A)(ld_tabsvue_type_script_lang_js_external, [['render',ld_tabsvue_type_template_id_d17ec18e_scoped_true_render],['__scopeId',"data-v-d17ec18e"]])
4330
+
4331
+ /* harmony default export */ const ld_tabs = (ld_tabs_exports_);
4332
+ ;// CONCATENATED MODULE: ./src/ld-tabs/index.ts
4333
+
4334
+ function ld_tabs_reg(vue, options) {
4335
+ ld_tabs.props = {
4336
+ ...ld_tabs.props,
4337
+ header: {
4338
+ default: options.LdTabs?.header
4339
+ }
4340
+ };
4341
+ vue.component(options.aliases['ld-tabs'], ld_tabs);
4342
+ }
4343
+ /* harmony default export */ const src_ld_tabs = (ld_tabs_reg);
4344
+
3947
4345
  ;// CONCATENATED MODULE: ./src/utils/delay.ts
3948
4346
  async function delay(timeout) {
3949
4347
  return new Promise(resolve => setTimeout(() => resolve(), timeout));
@@ -4046,6 +4444,8 @@ const ActiveDirectiveOptions = {
4046
4444
 
4047
4445
 
4048
4446
 
4447
+
4448
+
4049
4449
  const ldmuiPlugin = {
4050
4450
  install(vue, options) {
4051
4451
  if (!options) {
@@ -4061,6 +4461,8 @@ const ldmuiPlugin = {
4061
4461
  'ld-breadcrumbs': options.aliases?.['ld-breadcrumbs'] ?? 'ld-breadcrumbs',
4062
4462
  'ld-edit-text': options.aliases?.['ld-edit-text'] ?? 'ld-edit-text',
4063
4463
  'ld-datepicker': options.aliases?.['ld-datepicker'] ?? 'ld-datepicker',
4464
+ 'ld-tab': options.aliases?.['ld-tab'] ?? 'ld-tab',
4465
+ 'ld-tabs': options.aliases?.['ld-tabs'] ?? 'ld-tabs',
4064
4466
  };
4065
4467
  vue.config.globalProperties.$utils = {
4066
4468
  isDefined: isDefined,
@@ -4080,6 +4482,8 @@ const ldmuiPlugin = {
4080
4482
  src_ld_breadcrumbs(vue, options);
4081
4483
  src_ld_edit_text(vue, options);
4082
4484
  src_ld_datepicker(vue, options);
4485
+ src_ld_tab(vue, options);
4486
+ src_ld_tabs(vue, options);
4083
4487
  },
4084
4488
  };
4085
4489
  /* harmony default export */ const src = (ldmuiPlugin);
@@ -3,10 +3,13 @@ $input-height: 28px !default; // высота атомарного элемен
3
3
  $border-radius: 4px !default; // радиус скругления атомарного элемента ui
4
4
  $chip-height: 20px !default; // высота элемента chip
5
5
 
6
+ $ld-tab-height: $input-height + 10px; // высота элемента ld-tab
7
+
6
8
  :root {
7
9
  --font-size: #{$font-size};
8
10
  --font-size-2: #{calc(var(--font-size) + 2px)};
9
11
  --input-height: #{$input-height};
10
12
  --border-radius: #{$border-radius};
11
13
  --chip-height: #{$chip-height};
14
+ --ld-tab-height: #{$ld-tab-height};
12
15
  }
@@ -8,6 +8,8 @@ export interface ldmuiOptions {
8
8
  'ld-breadcrumbs'?: string;
9
9
  'ld-edit-text'?: string;
10
10
  'ld-datepicker'?: string;
11
+ 'ld-tab'?: string;
12
+ 'ld-tabs'?: string;
11
13
  },
12
14
  viewport?: {
13
15
  isMobile: string;
@@ -26,5 +28,8 @@ export interface ldmuiOptions {
26
28
  name: string;
27
29
  path: string;
28
30
  }
31
+ },
32
+ LdTabs?: {
33
+ header: string;
29
34
  }
30
35
  }
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@ldmjs/ui",
3
- "version": "1.0.0-dev-10",
3
+ "version": "1.0.0-dev-11",
4
4
  "description": "ldm ui",
5
- "main": "dist/indexjs",
5
+ "main": "dist/index.js",
6
6
  "engines": {
7
7
  "node": ">=16",
8
8
  "npm": ">=8"
@@ -10,7 +10,7 @@
10
10
  "scripts": {
11
11
  "dev": "cross-env NODE_ENV=development webpack serve --config config/webpack.config.dev.js --progress --profile",
12
12
  "build": "cross-env NODE_ENV=production webpack --config config/webpack.config.build.js --stats-error-details",
13
- "serve": "webpack serve --config config/webpack.config.serve.js --progress --profile",
13
+ "serve": "cross-env NODE_ENV=development webpack serve --config config/webpack.config.serve.js --progress --profile",
14
14
  "test": "jest --runInBand --no-cache",
15
15
  "pub": "node config/publish.js && npm publish --access=public"
16
16
  },