work-license-server 1.0.9 → 1.0.10

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/assets/landing.js CHANGED
@@ -719,7 +719,7 @@
719
719
  el.setAttribute('class', (el.tagName === 'circle' ? 'map-dot' : 'rg') + (lvl >= 0 ? ' l' + lvl : '') + (dim ? ' dim' : ''));
720
720
  }
721
721
  const total = visibleRegions().reduce((s, r) => s + vacantOf(r), 0);
722
- $('#statVacant').textContent = total;
722
+ if ($('#statVacant')) $('#statVacant').textContent = total;
723
723
  }
724
724
 
725
725
  function clampView(v) {
@@ -842,7 +842,7 @@
842
842
  svg.addEventListener('click', (e) => {
843
843
  if (MAP.moved) return;
844
844
  const el = e.target.closest && e.target.closest('[data-code]');
845
- if (el) selectRegion(el.dataset.code, { scrollTable: true });
845
+ if (el) selectRegion(el.dataset.code);
846
846
  });
847
847
  svg.addEventListener('dblclick', (e) => { e.preventDefault(); zoomAt(toSvgPoint(e), 0.5); });
848
848
  $$('[data-zoom]').forEach(b => b.addEventListener('click', () => {
@@ -899,12 +899,12 @@
899
899
  const btn = $('#btnReserveSelected');
900
900
  btn.disabled = vac <= 0;
901
901
  btn.textContent = vac > 0 ? `Зарезервировать · залог ${rub(D.franchise.reservationDepositRub)}` : 'Все франшизы субъекта заняты';
902
- $$('#regionsTableBody tr').forEach(tr => tr.classList.toggle('on', tr.dataset.code === selectedCode));
903
- if (scrollTable) $(`#regionsTableBody tr[data-code="${selectedCode}"]`)?.scrollIntoView({ block: 'nearest', behavior: 'smooth' });
904
902
  }
905
903
 
906
904
  const SORT = { key: 'populationMillions', dir: -1 };
907
905
  function renderRegionsTable() {
906
+ const tbody = $('#regionsTableBody');
907
+ if (!tbody) return;
908
908
  const q = ($('#inpRegionFilter')?.value || '').trim().toLowerCase();
909
909
  const rows = visibleRegions()
910
910
  .filter(r => !MAP.district || r.district === MAP.district)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "work-license-server",
3
- "version": "1.0.9",
3
+ "version": "1.0.10",
4
4
  "description": "Лицензионный сервер, биллинг ЮKassa, боты поддержки (MAX, Telegram, VK) и лендинг ПАК WORK (work.odant.org)",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
package/src/landing.js CHANGED
@@ -430,38 +430,10 @@ export function renderLandingPage({ publicKey = '', regions = null, assetVersion
430
430
  </div>
431
431
 
432
432
  <div class="sec-head" style="margin-top:8px">
433
- <div><span class="kicker">Партнёрская программа</span><h2 class="h2">Региональная франшиза ODANT-WORK</h2></div>
433
+ <div><span class="kicker">Партнёрская программа</span><h2 class="h2">Условия региональной франшизы ODANT-WORK</h2></div>
434
434
  <p>Число франшиз в субъекте пропорционально населению, паушальный взнос — экономике региона. Резерв закрепляется сразу после невозвратного залога ${rub(FRANCHISE_PROGRAM.reservationDepositRub)}, полная оплата паушального взноса — в течение 1 года.</p>
435
435
  </div>
436
436
 
437
- <div class="stats">
438
- <div class="stat"><b id="statVacant">${totalVacant}</b><span>вакантных франшиз</span></div>
439
- <div class="stat"><b>${visibleRegions.length}</b><span>субъектов РФ</span></div>
440
- <div class="stat"><b>${rub(FRANCHISE_PROGRAM.baseFranchiseFeeRub)}</b><span>базовый паушальный взнос</span></div>
441
- <div class="stat"><b>${rub(FRANCHISE_PROGRAM.reservationDepositRub)}</b><span>залог за резерв</span></div>
442
- <div class="stat"><b>${FRANCHISE_PROGRAM.minDiscountPercent}→${FRANCHISE_PROGRAM.maxDiscountPercent}%</b><span>скидка партнёра от объёма</span></div>
443
- </div>
444
-
445
- <div class="card">
446
- <div class="map-tools">
447
- <h3 class="h3" style="margin:0">Все субъекты Российской Федерации</h3>
448
- <input type="text" id="inpRegionFilter" placeholder="Поиск: Татарстан, Рязань, ДФО…" style="max-width:320px">
449
- </div>
450
- <div class="table-wrap">
451
- <table class="t">
452
- <thead><tr>
453
- <th data-sort="name">Субъект<span class="arr">↕</span></th>
454
- <th data-sort="district">Округ<span class="arr">↕</span></th>
455
- <th data-sort="populationMillions" class="num">Население<span class="arr">↕</span></th>
456
- <th data-sort="vacantFranchises">Вакантно<span class="arr">↕</span></th>
457
- <th data-sort="franchiseFeeRub" class="num">Паушальный взнос<span class="arr">↕</span></th>
458
- <th></th>
459
- </tr></thead>
460
- <tbody id="regionsTableBody"></tbody>
461
- </table>
462
- </div>
463
- </div>
464
-
465
437
  <div class="split">
466
438
  <div class="card">
467
439
  <span class="kicker">Экономика партнёра</span>